UNPKG

3.08 MBJavaScriptView Raw
1/*!
2 * @alifd/next@1.25.44 (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 = 493);
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__(206);
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__(236);
164
165var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);
166
167var _create = __webpack_require__(240);
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__(243)();
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__(245);
237
238var _events = _interopRequireWildcard(_events2);
239
240var _func2 = __webpack_require__(246);
241
242var _func = _interopRequireWildcard(_func2);
243
244var _log2 = __webpack_require__(125);
245
246var _log = _interopRequireWildcard(_log2);
247
248var _object2 = __webpack_require__(37);
249
250var _object = _interopRequireWildcard(_object2);
251
252var _string2 = __webpack_require__(124);
253
254var _string = _interopRequireWildcard(_string2);
255
256var _support2 = __webpack_require__(254);
257
258var _support = _interopRequireWildcard(_support2);
259
260var _focus2 = __webpack_require__(255);
261
262var _focus = _interopRequireWildcard(_focus2);
263
264var _htmlId2 = __webpack_require__(256);
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__(257);
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__(258);
441
442var _consumer = __webpack_require__(262);
443
444var _consumer2 = _interopRequireDefault(_consumer);
445
446var _errorBoundary = __webpack_require__(131);
447
448var _errorBoundary2 = _interopRequireDefault(_errorBoundary);
449
450var _cache = __webpack_require__(263);
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 _configProvider = __webpack_require__(9);
864
865var _configProvider2 = _interopRequireDefault(_configProvider);
866
867var _iconFont = __webpack_require__(284);
868
869var _iconFont2 = _interopRequireDefault(_iconFont);
870
871var _icon = __webpack_require__(140);
872
873var _icon2 = _interopRequireDefault(_icon);
874
875function _interopRequireDefault(obj) {
876 return obj && obj.__esModule ? obj : { default: obj };
877}
878
879_icon2.default.createFromIconfontCN = _iconFont2.default;
880
881exports.default = _configProvider2.default.config(_icon2.default);
882module.exports = exports['default'];
883
884/***/ }),
885/* 12 */
886/***/ (function(module, exports) {
887
888module.exports = __WEBPACK_EXTERNAL_MODULE_12__;
889
890/***/ }),
891/* 13 */
892/***/ (function(module, exports, __webpack_require__) {
893
894"use strict";
895
896
897exports.__esModule = true;
898exports.default = {
899 momentLocale: 'zh-cn',
900 Timeline: {
901 expand: '展开',
902 fold: '收起'
903 },
904 Balloon: {
905 close: '关闭'
906 },
907 Card: {
908 expand: '展开',
909 fold: '收起'
910 },
911 Calendar: {
912 today: '今天',
913 now: '此刻',
914 ok: '确定',
915 clear: '清除',
916 month: '月',
917 year: '年',
918 prevYear: '上一年',
919 nextYear: '下一年',
920 prevMonth: '上个月',
921 nextMonth: '下个月',
922 prevDecade: '上十年',
923 nextDecade: '后十年',
924 yearSelectAriaLabel: '选择年份',
925 monthSelectAriaLabel: '选择月份'
926 },
927 DatePicker: {
928 placeholder: '请选择日期',
929 datetimePlaceholder: '请选择日期和时间',
930 monthPlaceholder: '请选择月',
931 yearPlaceholder: '请选择年',
932 weekPlaceholder: '请选择周',
933 now: '此刻',
934 selectTime: '选择时间',
935 selectDate: '选择日期',
936 ok: '确定',
937 clear: '清除',
938 startPlaceholder: '起始日期',
939 endPlaceholder: '结束日期',
940 hour: '时',
941 minute: '分',
942 second: '秒'
943 },
944 Dialog: {
945 close: '关闭',
946 ok: '确定',
947 cancel: '取消'
948 },
949 Drawer: {
950 close: '关闭'
951 },
952 Message: {
953 closeAriaLabel: '关闭'
954 },
955 Pagination: {
956 prev: '上一页',
957 next: '下一页',
958 goTo: '到第',
959 page: '页',
960 go: '确定',
961 total: '第{current}页,共{total}页',
962 labelPrev: '上一页,当前第{current}页',
963 labelNext: '下一页,当前第{current}页',
964 inputAriaLabel: '请输入跳转到第几页',
965 selectAriaLabel: '请选择每页显示几条',
966 pageSize: '每页显示:'
967 },
968 Input: {
969 clear: '清除'
970 },
971 List: {
972 empty: '没有数据'
973 },
974 Select: {
975 selectPlaceholder: '请选择',
976 autoCompletePlaceholder: '请输入',
977 notFoundContent: '无选项',
978 maxTagPlaceholder: '已选择 {selected}/{total} 项',
979 selectAll: '全选'
980 },
981 TreeSelect: {
982 maxTagPlaceholder: '已选择 {selected}/{total} 项',
983 shortMaxTagPlaceholder: '已选择 {selected} 项'
984 },
985 Table: {
986 empty: '没有数据',
987 ok: '确认',
988 reset: '重置',
989 asc: '升序',
990 desc: '降序',
991 expanded: '已展开',
992 folded: '已折叠',
993 filter: '筛选',
994 selectAll: '全选'
995 },
996 TimePicker: {
997 placeholder: '请选择时间',
998 clear: '清除',
999 hour: '时',
1000 minute: '分',
1001 second: '秒',
1002 ok: '确定'
1003 },
1004 Transfer: {
1005 items: '项',
1006 item: '项',
1007 moveAll: '移动全部',
1008 searchPlaceholder: '请输入',
1009 moveToLeft: '撤销选中元素',
1010 moveToRight: '提交选中元素'
1011 },
1012 Upload: {
1013 card: {
1014 cancel: '取消',
1015 addPhoto: '上传图片',
1016 download: '下载',
1017 delete: '删除'
1018 },
1019 drag: {
1020 text: '点击或者拖动文件到虚线框内上传',
1021 hint: '支持 docx, xls, PDF, rar, zip, PNG, JPG 等类型的文件'
1022 },
1023 upload: {
1024 delete: '删除'
1025 }
1026 },
1027 Search: {
1028 buttonText: '搜索'
1029 },
1030 Tag: {
1031 delete: '删除'
1032 },
1033 Rating: {
1034 description: '评分选项'
1035 },
1036 Switch: {
1037 on: '已打开',
1038 off: '已关闭'
1039 },
1040 Tab: {
1041 closeAriaLabel: '关闭'
1042 },
1043 Form: {
1044 Validate: {
1045 default: '%s 校验失败',
1046 required: '%s 是必填字段',
1047 format: {
1048 number: '%s 不是合法的数字',
1049 email: '%s 不是合法的 email 地址',
1050 url: '%s 不是合法的 URL 地址',
1051 tel: '%s 不是合法的电话号码'
1052 },
1053 number: {
1054 length: '%s 长度必须是 %s',
1055 min: '%s 不得小于 %s',
1056 max: '%s 不得大于 %s',
1057 minLength: '%s 字段字符长度不得少于 %s',
1058 maxLength: '%s 字段字符长度不得超过 %s'
1059 },
1060 string: {
1061 length: '%s 长度必须是 %s',
1062 min: '%s 不得小于 %s',
1063 max: '%s 不得大于 %s',
1064 minLength: '%s 长度不得少于 %s',
1065 maxLength: '%s 长度不得超过 %s'
1066 },
1067 array: {
1068 length: '%s 个数必须是 %s',
1069 minLength: '%s 个数不得少于 %s',
1070 maxLength: '%s 个数不得超过 %s'
1071 },
1072 pattern: '%s 数值 %s 不匹配正则 %s'
1073 }
1074 }
1075};
1076module.exports = exports['default'];
1077
1078/***/ }),
1079/* 14 */
1080/***/ (function(module, exports, __webpack_require__) {
1081
1082"use strict";
1083
1084
1085exports.__esModule = true;
1086
1087var _iterator = __webpack_require__(214);
1088
1089var _iterator2 = _interopRequireDefault(_iterator);
1090
1091var _symbol = __webpack_require__(226);
1092
1093var _symbol2 = _interopRequireDefault(_symbol);
1094
1095var _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; };
1096
1097function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1098
1099exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {
1100 return typeof obj === "undefined" ? "undefined" : _typeof(obj);
1101} : function (obj) {
1102 return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);
1103};
1104
1105/***/ }),
1106/* 15 */
1107/***/ (function(module, exports, __webpack_require__) {
1108
1109"use strict";
1110
1111
1112exports.__esModule = true;
1113
1114var _extends2 = __webpack_require__(1);
1115
1116var _extends3 = _interopRequireDefault(_extends2);
1117
1118var _objectWithoutProperties2 = __webpack_require__(8);
1119
1120var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
1121
1122var _classCallCheck2 = __webpack_require__(2);
1123
1124var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
1125
1126var _possibleConstructorReturn2 = __webpack_require__(3);
1127
1128var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
1129
1130var _inherits2 = __webpack_require__(4);
1131
1132var _inherits3 = _interopRequireDefault(_inherits2);
1133
1134var _react = __webpack_require__(0);
1135
1136var _react2 = _interopRequireDefault(_react);
1137
1138var _configProvider = __webpack_require__(9);
1139
1140var _configProvider2 = _interopRequireDefault(_configProvider);
1141
1142var _overlay = __webpack_require__(136);
1143
1144var _overlay2 = _interopRequireDefault(_overlay);
1145
1146var _overlayV = __webpack_require__(279);
1147
1148var _overlayV2 = _interopRequireDefault(_overlayV);
1149
1150var _gateway = __webpack_require__(137);
1151
1152var _gateway2 = _interopRequireDefault(_gateway);
1153
1154var _position = __webpack_require__(138);
1155
1156var _position2 = _interopRequireDefault(_position);
1157
1158var _popup = __webpack_require__(282);
1159
1160var _popup2 = _interopRequireDefault(_popup);
1161
1162var _popupV = __webpack_require__(283);
1163
1164var _popupV2 = _interopRequireDefault(_popupV);
1165
1166var _util = __webpack_require__(6);
1167
1168function _interopRequireDefault(obj) {
1169 return obj && obj.__esModule ? obj : { default: obj };
1170}
1171
1172var Overlay = function (_React$Component) {
1173 (0, _inherits3.default)(Overlay, _React$Component);
1174
1175 function Overlay(props) {
1176 (0, _classCallCheck3.default)(this, Overlay);
1177
1178 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
1179
1180 _this.overlayRef = null;
1181 _this.saveRef = _this.saveRef.bind(_this);
1182 return _this;
1183 }
1184
1185 Overlay.prototype.saveRef = function saveRef(ref) {
1186 this.overlayRef = ref;
1187 };
1188 /**
1189 * 兼容 1.x API, will be removed in 2.1.0
1190 */
1191
1192 Overlay.prototype.getContent = function getContent() {
1193 if (this.overlayRef) {
1194 return this.overlayRef.getContent();
1195 }
1196 return null;
1197 };
1198 /**
1199 * 兼容 1.x API, will be removed in 2.1.0
1200 */
1201
1202 Overlay.prototype.getContentNode = function getContentNode() {
1203 if (this.overlayRef) {
1204 return this.overlayRef.getContentNode();
1205 }
1206 return null;
1207 };
1208
1209 Overlay.prototype.render = function render() {
1210 var _props = this.props,
1211 v2 = _props.v2,
1212 others = (0, _objectWithoutProperties3.default)(_props, ['v2']);
1213
1214 if (v2) {
1215 if ('needAdjust' in others) {
1216 _util.log.deprecated('needAdjust', 'needAdjust', 'Overlay v2');
1217 others.autoAdjust = others.needAdjust;
1218 delete others.needAdjust;
1219 }
1220 return _react2.default.createElement(_overlayV2.default, others);
1221 } else {
1222 return _react2.default.createElement(_overlay2.default, (0, _extends3.default)({}, others, { ref: this.saveRef }));
1223 }
1224 };
1225
1226 return Overlay;
1227}(_react2.default.Component);
1228// eslint-disable-next-line
1229
1230
1231Overlay.displayName = 'Overlay';
1232
1233var Popup = function (_React$Component2) {
1234 (0, _inherits3.default)(Popup, _React$Component2);
1235
1236 function Popup(props) {
1237 (0, _classCallCheck3.default)(this, Popup);
1238
1239 var _this2 = (0, _possibleConstructorReturn3.default)(this, _React$Component2.call(this, props));
1240
1241 _this2.overlay = null;
1242 _this2.saveRef = _this2.saveRef.bind(_this2);
1243 return _this2;
1244 }
1245
1246 Popup.prototype.saveRef = function saveRef(ref) {
1247 if (ref) {
1248 this.overlay = ref.overlay;
1249 }
1250 };
1251
1252 Popup.prototype.render = function render() {
1253 var _props2 = this.props,
1254 v2 = _props2.v2,
1255 others = (0, _objectWithoutProperties3.default)(_props2, ['v2']);
1256
1257 if (v2) {
1258 if ('needAdjust' in others) {
1259 _util.log.deprecated('needAdjust', 'needAdjust', 'Popup v2');
1260 others.autoAdjust = others.needAdjust;
1261 delete others.needAdjust;
1262 }
1263
1264 return _react2.default.createElement(_popupV2.default, others);
1265 } else {
1266 return _react2.default.createElement(_popup2.default, (0, _extends3.default)({}, others, { ref: this.saveRef }));
1267 }
1268 };
1269
1270 return Popup;
1271}(_react2.default.Component);
1272
1273Popup.displayName = 'Popup';
1274
1275Overlay.Gateway = _gateway2.default;
1276Overlay.Position = _position2.default;
1277Overlay.Popup = _configProvider2.default.config(Popup, {
1278 exportNames: ['overlay']
1279});
1280
1281exports.default = _configProvider2.default.config(Overlay, {
1282 exportNames: ['getContent', 'getContentNode']
1283});
1284module.exports = exports['default'];
1285
1286/***/ }),
1287/* 16 */
1288/***/ (function(module, exports, __webpack_require__) {
1289
1290"use strict";
1291
1292
1293exports.__esModule = true;
1294
1295var _extends2 = __webpack_require__(1);
1296
1297var _extends3 = _interopRequireDefault(_extends2);
1298
1299var _objectWithoutProperties2 = __webpack_require__(8);
1300
1301var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
1302
1303var _configProvider = __webpack_require__(9);
1304
1305var _configProvider2 = _interopRequireDefault(_configProvider);
1306
1307var _menu = __webpack_require__(142);
1308
1309var _menu2 = _interopRequireDefault(_menu);
1310
1311var _subMenu = __webpack_require__(143);
1312
1313var _subMenu2 = _interopRequireDefault(_subMenu);
1314
1315var _selectableItem = __webpack_require__(88);
1316
1317var _selectableItem2 = _interopRequireDefault(_selectableItem);
1318
1319var _checkboxItem = __webpack_require__(288);
1320
1321var _checkboxItem2 = _interopRequireDefault(_checkboxItem);
1322
1323var _radioItem = __webpack_require__(296);
1324
1325var _radioItem2 = _interopRequireDefault(_radioItem);
1326
1327var _popupItem = __webpack_require__(144);
1328
1329var _popupItem2 = _interopRequireDefault(_popupItem);
1330
1331var _group = __webpack_require__(297);
1332
1333var _group2 = _interopRequireDefault(_group);
1334
1335var _divider = __webpack_require__(298);
1336
1337var _divider2 = _interopRequireDefault(_divider);
1338
1339var _create = __webpack_require__(299);
1340
1341var _create2 = _interopRequireDefault(_create);
1342
1343function _interopRequireDefault(obj) {
1344 return obj && obj.__esModule ? obj : { default: obj };
1345}
1346
1347_menu2.default.SubMenu = _subMenu2.default;
1348_menu2.default.Item = _selectableItem2.default;
1349_menu2.default.CheckboxItem = _checkboxItem2.default;
1350_menu2.default.RadioItem = _radioItem2.default;
1351_menu2.default.PopupItem = _popupItem2.default;
1352_menu2.default.Group = _group2.default;
1353_menu2.default.Divider = _divider2.default;
1354_menu2.default.create = _create2.default;
1355
1356/* istanbul ignore next */
1357var transform = function transform(props, deprecated) {
1358 if ('indentSize' in props) {
1359 deprecated('indentSize', 'inlineIndent', 'Menu');
1360
1361 var _props = props,
1362 indentSize = _props.indentSize,
1363 others = (0, _objectWithoutProperties3.default)(_props, ['indentSize']);
1364
1365 props = (0, _extends3.default)({ inlineIndent: indentSize }, others);
1366 }
1367
1368 if ('onDeselect' in props) {
1369 deprecated('onDeselect', 'onSelect', 'Menu');
1370 if (props.onDeselect) {
1371 var _props2 = props,
1372 onDeselect = _props2.onDeselect,
1373 onSelect = _props2.onSelect,
1374 _others = (0, _objectWithoutProperties3.default)(_props2, ['onDeselect', 'onSelect']);
1375
1376 var newOnSelect = function newOnSelect(selectedKeys, item, extra) {
1377 if (!extra.select) {
1378 onDeselect(extra.key);
1379 }
1380 if (onSelect) {
1381 onSelect(selectedKeys, item, extra);
1382 }
1383 };
1384
1385 props = (0, _extends3.default)({ onSelect: newOnSelect }, _others);
1386 }
1387 }
1388
1389 return props;
1390};
1391
1392exports.default = _configProvider2.default.config(_menu2.default, {
1393 transform: transform
1394});
1395module.exports = exports['default'];
1396
1397/***/ }),
1398/* 17 */
1399/***/ (function(module, exports, __webpack_require__) {
1400
1401"use strict";
1402
1403
1404exports.__esModule = true;
1405
1406var _extends2 = __webpack_require__(1);
1407
1408var _extends3 = _interopRequireDefault(_extends2);
1409
1410var _objectWithoutProperties2 = __webpack_require__(8);
1411
1412var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
1413
1414var _configProvider = __webpack_require__(9);
1415
1416var _configProvider2 = _interopRequireDefault(_configProvider);
1417
1418var _button = __webpack_require__(301);
1419
1420var _button2 = _interopRequireDefault(_button);
1421
1422var _group = __webpack_require__(302);
1423
1424var _group2 = _interopRequireDefault(_group);
1425
1426function _interopRequireDefault(obj) {
1427 return obj && obj.__esModule ? obj : { default: obj };
1428}
1429
1430_button2.default.Group = _group2.default;
1431
1432exports.default = _configProvider2.default.config(_button2.default, {
1433 transform: /* istanbul ignore next */function transform(props, deprecated) {
1434 if ('shape' in props) {
1435 deprecated('shape', 'text | warning | ghost', 'Button');
1436
1437 var _props = props,
1438 shape = _props.shape,
1439 type = _props.type,
1440 others = (0, _objectWithoutProperties3.default)(_props, ['shape', 'type']);
1441
1442 var newType = type;
1443 if (type === 'light' || type === 'dark' || type === 'secondary' && shape === 'warning') {
1444 newType = 'normal';
1445 }
1446
1447 var ghost = void 0;
1448 if (shape === 'ghost') {
1449 ghost = {
1450 primary: 'dark',
1451 secondary: 'dark',
1452 normal: 'light',
1453 dark: 'dark',
1454 light: 'light'
1455 }[type || _button2.default.defaultProps.type];
1456 }
1457
1458 var text = shape === 'text';
1459 var warning = shape === 'warning';
1460
1461 props = (0, _extends3.default)({ type: newType, ghost: ghost, text: text, warning: warning }, others);
1462 }
1463
1464 return props;
1465 }
1466});
1467module.exports = exports['default'];
1468
1469/***/ }),
1470/* 18 */
1471/***/ (function(module, exports, __webpack_require__) {
1472
1473"use strict";
1474
1475
1476exports.__esModule = true;
1477
1478var _extends2 = __webpack_require__(1);
1479
1480var _extends3 = _interopRequireDefault(_extends2);
1481
1482var _objectWithoutProperties2 = __webpack_require__(8);
1483
1484var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
1485
1486var _configProvider = __webpack_require__(9);
1487
1488var _configProvider2 = _interopRequireDefault(_configProvider);
1489
1490var _input = __webpack_require__(151);
1491
1492var _input2 = _interopRequireDefault(_input);
1493
1494var _password = __webpack_require__(309);
1495
1496var _password2 = _interopRequireDefault(_password);
1497
1498var _textarea = __webpack_require__(310);
1499
1500var _textarea2 = _interopRequireDefault(_textarea);
1501
1502var _group = __webpack_require__(153);
1503
1504var _group2 = _interopRequireDefault(_group);
1505
1506function _interopRequireDefault(obj) {
1507 return obj && obj.__esModule ? obj : { default: obj };
1508}
1509
1510_input2.default.Password = _configProvider2.default.config(_password2.default, {
1511 exportNames: ['getInputNode', 'focus'],
1512 transform: /* istanbul ignore next */function transform(props, deprecated) {
1513 if ('hasLimitHint' in props) {
1514 deprecated('hasLimitHint', 'showLimitHint', 'Input');
1515 var _props = props,
1516 hasLimitHint = _props.hasLimitHint,
1517 others = (0, _objectWithoutProperties3.default)(_props, ['hasLimitHint']);
1518
1519 props = (0, _extends3.default)({ showLimitHint: hasLimitHint }, others);
1520 }
1521
1522 return props;
1523 }
1524});
1525
1526_input2.default.TextArea = _configProvider2.default.config(_textarea2.default, {
1527 exportNames: ['getInputNode', 'focus'],
1528 transform: /* istanbul ignore next */function transform(props, deprecated) {
1529 if ('hasLimitHint' in props) {
1530 deprecated('hasLimitHint', 'showLimitHint', 'Input');
1531 var _props2 = props,
1532 hasLimitHint = _props2.hasLimitHint,
1533 others = (0, _objectWithoutProperties3.default)(_props2, ['hasLimitHint']);
1534
1535 props = (0, _extends3.default)({ showLimitHint: hasLimitHint }, others);
1536 }
1537
1538 return props;
1539 }
1540});
1541_input2.default.Group = _group2.default;
1542
1543// 用来自动生成文档的工具底层依赖的 react-docgen,无法解析生成 HOC 的方法中存在第二个参数的情况
1544// 所以不能在 input.jsx/textarea.jsx 中生成 HOC
1545exports.default = _configProvider2.default.config(_input2.default, {
1546 exportNames: ['getInputNode', 'focus'],
1547 transform: /* istanbul ignore next */function transform(props, deprecated) {
1548 if ('hasLimitHint' in props) {
1549 deprecated('hasLimitHint', 'showLimitHint', 'Input');
1550 var _props3 = props,
1551 hasLimitHint = _props3.hasLimitHint,
1552 others = (0, _objectWithoutProperties3.default)(_props3, ['hasLimitHint']);
1553
1554 props = (0, _extends3.default)({ showLimitHint: hasLimitHint }, others);
1555 }
1556
1557 return props;
1558 }
1559});
1560module.exports = exports['default'];
1561
1562/***/ }),
1563/* 19 */
1564/***/ (function(module, exports) {
1565
1566module.exports = __WEBPACK_EXTERNAL_MODULE_19__;
1567
1568/***/ }),
1569/* 20 */
1570/***/ (function(module, exports, __webpack_require__) {
1571
1572"use strict";
1573
1574
1575exports.__esModule = true;
1576
1577var _animate = __webpack_require__(132);
1578
1579var _animate2 = _interopRequireDefault(_animate);
1580
1581var _expand = __webpack_require__(272);
1582
1583var _expand2 = _interopRequireDefault(_expand);
1584
1585var _overlayAnimate = __webpack_require__(273);
1586
1587var _overlayAnimate2 = _interopRequireDefault(_overlayAnimate);
1588
1589function _interopRequireDefault(obj) {
1590 return obj && obj.__esModule ? obj : { default: obj };
1591}
1592
1593_animate2.default.Expand = _expand2.default;
1594_animate2.default.OverlayAnimate = _overlayAnimate2.default;
1595
1596exports.default = _animate2.default;
1597module.exports = exports['default'];
1598
1599/***/ }),
1600/* 21 */
1601/***/ (function(module, exports, __webpack_require__) {
1602
1603"use strict";
1604
1605
1606exports.__esModule = true;
1607exports.setStickyStyle = exports.fetchDataByPath = exports.statics = undefined;
1608
1609var _extends2 = __webpack_require__(1);
1610
1611var _extends3 = _interopRequireDefault(_extends2);
1612
1613var _typeof2 = __webpack_require__(14);
1614
1615var _typeof3 = _interopRequireDefault(_typeof2);
1616
1617var _classnames3 = __webpack_require__(7);
1618
1619var _classnames4 = _interopRequireDefault(_classnames3);
1620
1621function _interopRequireDefault(obj) {
1622 return obj && obj.__esModule ? obj : { default: obj };
1623}
1624
1625var blackList = ['defaultProps', 'propTypes', 'contextTypes', 'childContextTypes', 'displayName', 'getDerivedStateFromProps'];
1626
1627var statics = exports.statics = function statics(Target, Component) {
1628 Object.keys(Component).forEach(function (property) {
1629 if (blackList.indexOf(property) === -1) {
1630 Target[property] = Component[property];
1631 }
1632 });
1633};
1634
1635var fetchDataByPath = exports.fetchDataByPath = function fetchDataByPath(object, path) {
1636 if (!object || !path) {
1637 return false;
1638 }
1639 path = path.toString();
1640 var field = path.split('.');
1641 var val = void 0,
1642 key = void 0;
1643 if (field.length) {
1644 key = field[0];
1645 // lists[1].name
1646 if (key.indexOf('[') >= 0) {
1647 key = key.match(/(.*)\[(.*)\]/);
1648 if (key && (0, _typeof3.default)(key[1]) === 'object' && (0, _typeof3.default)(object[key[1]]) === 'object') {
1649 val = object[key[1]][key[2]];
1650 }
1651 } else {
1652 val = object[field[0]];
1653 }
1654 if (val) {
1655 for (var colIndex = 1; colIndex < field.length; colIndex++) {
1656 val = val[field[colIndex]];
1657 if (typeof val === 'undefined') {
1658 break;
1659 }
1660 }
1661 }
1662 }
1663 return val;
1664};
1665
1666/**
1667 * @param {Array} lockChildren
1668 * @param {String} dir 'left', 'right'
1669 */
1670var setStickyStyle = exports.setStickyStyle = function setStickyStyle(lockChildren, flatenChildren, dir) {
1671 var offsetArr = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
1672 var prefix = arguments[4];
1673
1674 var len = flatenChildren.length;
1675
1676 flatenChildren.forEach(function (col, index) {
1677 var _classnames;
1678
1679 var isLeftLast = dir === 'left' && index === len - 1;
1680 var isRightFirst = dir === 'right' && index === 0;
1681 var style = {
1682 position: 'sticky'
1683 };
1684 var offset = offsetArr[index];
1685
1686 if (offset > -1) {
1687 style[dir] = offset;
1688 }
1689
1690 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));
1691 col.style = (0, _extends3.default)({}, col.style, style);
1692 col.cellStyle = style;
1693 });
1694
1695 var setOffset = function setOffset(col, index, dir, isBorder) {
1696 var _classnames2;
1697
1698 var style = {
1699 position: 'sticky'
1700 };
1701 var offset = offsetArr[index];
1702
1703 if (offset > -1) {
1704 style[dir] = offset;
1705 }
1706
1707 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));
1708 col.style = (0, _extends3.default)({}, col.style, style);
1709 col.cellStyle = style;
1710 };
1711
1712 // 查看当前元素的叶子结点数量
1713 var getLeafNodes = function getLeafNodes(node) {
1714 var nodesLen = 0;
1715 var arrLen = Array.isArray(node && node.children) && node.children.length || 0;
1716 if (arrLen > 0) {
1717 nodesLen = node.children.reduce(function (ret, item, idx) {
1718 return ret + getLeafNodes(item.children);
1719 }, 0);
1720 } else {
1721 nodesLen = 1;
1722 }
1723 return nodesLen;
1724 };
1725
1726 var getPreNodes = function getPreNodes(arr, idx) {
1727 return arr.reduce(function (ret, item, i) {
1728 if (i < idx) {
1729 return ret + getLeafNodes(item);
1730 }
1731 return ret;
1732 }, 0);
1733 };
1734
1735 // for multiple header
1736 // nodesLen 前序叶子结点数
1737 var loop = function loop(arr, i) {
1738 dir === 'right' && arr.reverse();
1739 arr.forEach(function (child, j) {
1740 var p = dir === 'right' ? i - getPreNodes(arr, j) : i + getPreNodes(arr, j);
1741 if (child.children) {
1742 // 合并单元格的节点
1743 loop(child.children, p);
1744 // 查询当前元素下的 前序叶子结点数 比如为n
1745 // const isBorder = (dir === 'right' && j === 0) || (dir === 'left' && j === (arr.length - 1));
1746 setOffset(child, p, dir, j === arr.length - 1);
1747 }
1748 });
1749 dir === 'right' && arr.reverse();
1750 };
1751
1752 loop(lockChildren, dir === 'left' ? 0 : len - 1);
1753};
1754
1755/***/ }),
1756/* 22 */
1757/***/ (function(module, exports, __webpack_require__) {
1758
1759"use strict";
1760
1761
1762exports.__esModule = true;
1763exports.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;
1764
1765var _extends2 = __webpack_require__(1);
1766
1767var _extends3 = _interopRequireDefault(_extends2);
1768
1769exports.isDisabledDate = isDisabledDate;
1770exports.checkMomentObj = checkMomentObj;
1771exports.formatDateValue = formatDateValue;
1772exports.getVisibleMonth = getVisibleMonth;
1773exports.isSameYearMonth = isSameYearMonth;
1774exports.preFormatDateValue = preFormatDateValue;
1775exports.getYears = getYears;
1776exports.getMonths = getMonths;
1777
1778var _moment = __webpack_require__(19);
1779
1780var _moment2 = _interopRequireDefault(_moment);
1781
1782function _interopRequireDefault(obj) {
1783 return obj && obj.__esModule ? obj : { default: obj };
1784}
1785
1786var DAYS_OF_WEEK = exports.DAYS_OF_WEEK = 7;
1787
1788var CALENDAR_TABLE_COL_COUNT = exports.CALENDAR_TABLE_COL_COUNT = 7;
1789
1790var CALENDAR_TABLE_ROW_COUNT = exports.CALENDAR_TABLE_ROW_COUNT = 6;
1791
1792var MONTH_TABLE_ROW_COUNT = exports.MONTH_TABLE_ROW_COUNT = 4;
1793
1794var MONTH_TABLE_COL_COUNT = exports.MONTH_TABLE_COL_COUNT = 3;
1795
1796var YEAR_TABLE_ROW_COUNT = exports.YEAR_TABLE_ROW_COUNT = 4;
1797
1798var YEAR_TABLE_COL_COUNT = exports.YEAR_TABLE_COL_COUNT = 3;
1799
1800var CALENDAR_MODE_YEAR = exports.CALENDAR_MODE_YEAR = 'year';
1801
1802var CALENDAR_MODE_MONTH = exports.CALENDAR_MODE_MONTH = 'month';
1803
1804var CALENDAR_MODE_DATE = exports.CALENDAR_MODE_DATE = 'date';
1805
1806var CALENDAR_MODES = exports.CALENDAR_MODES = [CALENDAR_MODE_DATE, CALENDAR_MODE_MONTH, CALENDAR_MODE_YEAR];
1807
1808function isDisabledDate(date, fn, view) {
1809 if (typeof fn === 'function' && fn(date, view)) {
1810 return true;
1811 }
1812 return false;
1813}
1814
1815function checkMomentObj(props, propName, componentName) {
1816 if (props[propName] && !_moment2.default.isMoment(props[propName])) {
1817 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a moment object');
1818 }
1819}
1820
1821function formatDateValue(value) {
1822 var reservedValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1823
1824 if (value && _moment2.default.isMoment(value)) {
1825 return value;
1826 }
1827 return reservedValue;
1828}
1829
1830function getVisibleMonth(defaultVisibleMonth, value) {
1831 var getVM = defaultVisibleMonth;
1832 if (typeof getVM !== 'function' || !_moment2.default.isMoment(getVM())) {
1833 getVM = function getVM() {
1834 if (value) {
1835 return value;
1836 }
1837 return (0, _moment2.default)();
1838 };
1839 }
1840 return getVM();
1841}
1842
1843function isSameYearMonth(dateA, dateB) {
1844 return dateA.month() === dateB.month() && dateA.year() === dateB.year();
1845}
1846
1847function preFormatDateValue(value, format) {
1848 var val = typeof value === 'string' ? (0, _moment2.default)(value, format, false) : value;
1849 if (val && _moment2.default.isMoment(val) && val.isValid()) {
1850 return val;
1851 }
1852
1853 return null;
1854}
1855
1856function getLocaleData(_ref, localeData) {
1857 var _months = _ref.months,
1858 shortMonths = _ref.shortMonths,
1859 _firstDayOfWeek = _ref.firstDayOfWeek,
1860 _weekdays = _ref.weekdays,
1861 shortWeekdays = _ref.shortWeekdays,
1862 veryShortWeekdays = _ref.veryShortWeekdays;
1863
1864 return (0, _extends3.default)({}, localeData, {
1865 monthsShort: function monthsShort() {
1866 return shortMonths || localeData.monthsShort();
1867 },
1868 months: function months() {
1869 return _months || localeData.months();
1870 },
1871 firstDayOfWeek: function firstDayOfWeek() {
1872 return _firstDayOfWeek || localeData.firstDayOfWeek();
1873 },
1874 weekdays: function weekdays() {
1875 return _weekdays || localeData.weekdays;
1876 },
1877 weekdaysShort: function weekdaysShort() {
1878 return shortWeekdays || localeData.weekdaysShort();
1879 },
1880 weekdaysMin: function weekdaysMin() {
1881 return veryShortWeekdays || localeData.weekdaysMin();
1882 }
1883 });
1884}
1885
1886/* istanbul ignore next */
1887exports.getLocaleData = getLocaleData;
1888function getYears(yearRange, yearRangeOffset, year) {
1889 var options = [];
1890 var startYear = yearRange[0],
1891 endYear = yearRange[1];
1892
1893 if (!startYear || !endYear) {
1894 startYear = year - yearRangeOffset;
1895 endYear = year + yearRangeOffset;
1896 }
1897
1898 for (var i = startYear; i <= endYear; i++) {
1899 options.push({
1900 label: i,
1901 value: i
1902 });
1903 }
1904 return options;
1905}
1906
1907/* istanbul ignore next */
1908function getMonths(momentLocale) {
1909 var localeMonths = momentLocale.monthsShort();
1910 var options = [];
1911 for (var i = 0; i < 12; i++) {
1912 options.push({
1913 value: i,
1914 label: localeMonths[i]
1915 });
1916 }
1917 return options;
1918}
1919
1920/***/ }),
1921/* 23 */
1922/***/ (function(module, exports) {
1923
1924// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
1925var global = module.exports = typeof window != 'undefined' && window.Math == Math
1926 ? window : typeof self != 'undefined' && self.Math == Math ? self
1927 // eslint-disable-next-line no-new-func
1928 : Function('return this')();
1929if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
1930
1931
1932/***/ }),
1933/* 24 */
1934/***/ (function(module, exports) {
1935
1936var core = module.exports = { version: '2.6.12' };
1937if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
1938
1939
1940/***/ }),
1941/* 25 */
1942/***/ (function(module, exports, __webpack_require__) {
1943
1944// Thank's IE8 for his funny defineProperty
1945module.exports = !__webpack_require__(47)(function () {
1946 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
1947});
1948
1949
1950/***/ }),
1951/* 26 */
1952/***/ (function(module, exports, __webpack_require__) {
1953
1954var anObject = __webpack_require__(46);
1955var IE8_DOM_DEFINE = __webpack_require__(113);
1956var toPrimitive = __webpack_require__(70);
1957var dP = Object.defineProperty;
1958
1959exports.f = __webpack_require__(25) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
1960 anObject(O);
1961 P = toPrimitive(P, true);
1962 anObject(Attributes);
1963 if (IE8_DOM_DEFINE) try {
1964 return dP(O, P, Attributes);
1965 } catch (e) { /* empty */ }
1966 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
1967 if ('value' in Attributes) O[P] = Attributes.value;
1968 return O;
1969};
1970
1971
1972/***/ }),
1973/* 27 */
1974/***/ (function(module, exports) {
1975
1976var hasOwnProperty = {}.hasOwnProperty;
1977module.exports = function (it, key) {
1978 return hasOwnProperty.call(it, key);
1979};
1980
1981
1982/***/ }),
1983/* 28 */
1984/***/ (function(module, exports) {
1985
1986function _interopRequireDefault(obj) {
1987 return obj && obj.__esModule ? obj : {
1988 "default": obj
1989 };
1990}
1991
1992module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
1993
1994/***/ }),
1995/* 29 */
1996/***/ (function(module, exports, __webpack_require__) {
1997
1998"use strict";
1999
2000
2001exports.__esModule = true;
2002
2003var _objectWithoutProperties2 = __webpack_require__(8);
2004
2005var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
2006
2007var _configProvider = __webpack_require__(9);
2008
2009var _configProvider2 = _interopRequireDefault(_configProvider);
2010
2011var _select = __webpack_require__(305);
2012
2013var _select2 = _interopRequireDefault(_select);
2014
2015var _autoComplete = __webpack_require__(313);
2016
2017var _autoComplete2 = _interopRequireDefault(_autoComplete);
2018
2019var _option = __webpack_require__(314);
2020
2021var _option2 = _interopRequireDefault(_option);
2022
2023var _optionGroup = __webpack_require__(315);
2024
2025var _optionGroup2 = _interopRequireDefault(_optionGroup);
2026
2027function _interopRequireDefault(obj) {
2028 return obj && obj.__esModule ? obj : { default: obj };
2029}
2030
2031_select2.default.AutoComplete = _configProvider2.default.config(_autoComplete2.default, {
2032 componentName: 'Select'
2033});
2034
2035_select2.default.Option = _option2.default;
2036_select2.default.OptionGroup = _optionGroup2.default;
2037
2038// compatible with 0.x version
2039/* istanbul ignore next */
2040function _transform(props, deprecated) {
2041 var shape = props.shape,
2042 container = props.container,
2043 multiple = props.multiple,
2044 filterBy = props.filterBy,
2045 overlay = props.overlay,
2046 safeNode = props.safeNode,
2047 noFoundContent = props.noFoundContent,
2048 others = (0, _objectWithoutProperties3.default)(props, ['shape', 'container', 'multiple', 'filterBy', 'overlay', 'safeNode', 'noFoundContent']);
2049
2050 var newprops = others;
2051 if (shape === 'arrow-only') {
2052 deprecated('shape=arrow-only', 'hasBorder=false', 'Select');
2053 newprops.hasBorder = false;
2054 }
2055 if (container) {
2056 deprecated('container', 'popupContainer', 'Select');
2057 newprops.popupContainer = container;
2058 }
2059 if (multiple) {
2060 deprecated('multiple', 'mode=multiple', 'Select');
2061 newprops.mode = 'multiple';
2062 }
2063 if (filterBy) {
2064 deprecated('filterBy', 'filter', 'Select');
2065 newprops.filter = filterBy;
2066 }
2067 if (overlay) {
2068 deprecated('overlay', 'popupContent', 'Select');
2069 newprops.popupContent = overlay;
2070 newprops.autoWidth = false;
2071 }
2072
2073 if (noFoundContent) {
2074 deprecated('noFoundContent', 'notFoundContent', 'Select');
2075 newprops.notFoundContent = noFoundContent;
2076 }
2077
2078 if (safeNode) {
2079 deprecated('safeNode', 'popupProps={safeNode}', 'Select');
2080 newprops.popupProps = {
2081 safeNode: safeNode
2082 };
2083 }
2084
2085 return newprops;
2086}
2087
2088// compatible with 0.x version: Select.Combobox
2089_select2.default.Combobox = _configProvider2.default.config(_select2.default, {
2090 transform: /* istanbul ignore next */function transform(props, deprecated) {
2091 deprecated('Select.Combobox', '<Select showSearch={true}/>', 'Select');
2092
2093 var newprops = _transform(props, deprecated);
2094 if (props.onInputUpdate) {
2095 newprops.onSearch = props.onInputUpdate;
2096 newprops.showSearch = true;
2097 }
2098 return newprops;
2099 }
2100});
2101
2102exports.default = _configProvider2.default.config(_select2.default, {
2103 transform: _transform,
2104 exportNames: ['focusInput', 'handleSearchClear']
2105});
2106module.exports = exports['default'];
2107
2108/***/ }),
2109/* 30 */
2110/***/ (function(module, exports, __webpack_require__) {
2111
2112"use strict";
2113
2114
2115exports.__esModule = true;
2116exports.DEFAULT_TIME_FORMAT = exports.PANEL = undefined;
2117exports.isFunction = isFunction;
2118exports.resetValueTime = resetValueTime;
2119exports.formatDateValue = formatDateValue;
2120exports.checkDateValue = checkDateValue;
2121exports.getDateTimeFormat = getDateTimeFormat;
2122exports.extend = extend;
2123exports.onDateKeydown = onDateKeydown;
2124exports.onTimeKeydown = onTimeKeydown;
2125
2126var _moment = __webpack_require__(19);
2127
2128var _moment2 = _interopRequireDefault(_moment);
2129
2130var _util = __webpack_require__(6);
2131
2132function _interopRequireDefault(obj) {
2133 return obj && obj.__esModule ? obj : { default: obj };
2134}
2135
2136var PANEL = exports.PANEL = {
2137 TIME: 'time-panel',
2138 DATE: 'date-panel'
2139};
2140
2141var DEFAULT_TIME_FORMAT = exports.DEFAULT_TIME_FORMAT = 'HH:mm:ss';
2142
2143function isFunction(obj) {
2144 return !!(obj && obj.constructor && obj.call && obj.apply);
2145}
2146
2147/**
2148 * 将 source 的 time 替换为 target 的 time
2149 * @param {Object} source 输入值
2150 * @param {Object} target 目标值
2151 */
2152function resetValueTime(source, target) {
2153 if (!_moment2.default.isMoment(source) || !_moment2.default.isMoment(target)) {
2154 return source;
2155 }
2156 return source.clone().hour(target.hour()).minute(target.minute()).second(target.second());
2157}
2158
2159function formatDateValue(value, format) {
2160 var val = typeof value === 'string' ? (0, _moment2.default)(value, format, false) : value;
2161 if (val && _moment2.default.isMoment(val) && val.isValid()) {
2162 return val;
2163 }
2164
2165 return null;
2166}
2167
2168function checkDateValue(props, propName, componentName) {
2169 // 支持传入 moment 对象或字符串,字符串不检测是否为日期字符串
2170 if (props[propName] && !_moment2.default.isMoment(props[propName]) && typeof props[propName] !== 'string') {
2171 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a moment object or format date string!');
2172 }
2173}
2174
2175function getDateTimeFormat(format, showTime, type) {
2176 if (!format && type) {
2177 format = {
2178 date: 'YYYY-MM-DD',
2179 month: 'YYYY-MM',
2180 year: 'YYYY',
2181 time: ''
2182 }[type];
2183 }
2184 var timeFormat = showTime ? showTime.format || DEFAULT_TIME_FORMAT : '';
2185 var dateTimeFormat = timeFormat ? format + ' ' + timeFormat : format;
2186 return {
2187 format: format,
2188 timeFormat: timeFormat,
2189 dateTimeFormat: dateTimeFormat
2190 };
2191}
2192
2193function extend(source, target) {
2194 for (var key in source) {
2195 if (source.hasOwnProperty(key)) {
2196 target[key] = source[key];
2197 }
2198 }
2199 return target;
2200}
2201
2202/**
2203 * 监听键盘事件,操作日期字符串
2204 * @param {KeyboardEvent} e 事件对象
2205 * @param {Object} param1
2206 * @param {String} type 类型 year month day
2207 */
2208function onDateKeydown(e, _ref, type) {
2209 var format = _ref.format,
2210 dateInputStr = _ref.dateInputStr,
2211 value = _ref.value;
2212
2213 if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1) {
2214 return;
2215 }
2216
2217 if (e.altKey && [_util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1 || e.controlKey || e.shiftKey) {
2218 return;
2219 }
2220
2221 var date = (0, _moment2.default)(dateInputStr, format, true);
2222
2223 if (date.isValid()) {
2224 var stepUnit = e.altKey ? 'year' : 'month';
2225 switch (e.keyCode) {
2226 case _util.KEYCODE.UP:
2227 date.subtract(1, type);
2228 break;
2229 case _util.KEYCODE.DOWN:
2230 date.add(1, type);
2231 break;
2232 case _util.KEYCODE.PAGE_UP:
2233 date.subtract(1, stepUnit);
2234 break;
2235 case _util.KEYCODE.PAGE_DOWN:
2236 date.add(1, stepUnit);
2237 break;
2238 }
2239 } else if (value) {
2240 date = value.clone();
2241 } else {
2242 date = (0, _moment2.default)();
2243 }
2244
2245 e.preventDefault();
2246 return date.format(format);
2247}
2248
2249/**
2250 * 监听键盘事件,操作时间
2251 * @param {KeyboardEvent} e
2252 * @param {Object} param1
2253 * @param {String} type second hour minute
2254 */
2255function onTimeKeydown(e, _ref2, type) {
2256 var format = _ref2.format,
2257 timeInputStr = _ref2.timeInputStr,
2258 steps = _ref2.steps,
2259 value = _ref2.value;
2260
2261 if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1) return;
2262 if (e.altKey && [_util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1 || e.controlKey || e.shiftKey) return;
2263
2264 var time = (0, _moment2.default)(timeInputStr, format, true);
2265
2266 if (time.isValid()) {
2267 var stepUnit = e.altKey ? 'hour' : 'minute';
2268 switch (e.keyCode) {
2269 case _util.KEYCODE.UP:
2270 time.subtract(steps[type], type);
2271 break;
2272 case _util.KEYCODE.DOWN:
2273 time.add(steps[type], type);
2274 break;
2275 case _util.KEYCODE.PAGE_UP:
2276 time.subtract(steps[stepUnit], stepUnit);
2277 break;
2278 case _util.KEYCODE.PAGE_DOWN:
2279 time.add(steps[stepUnit], stepUnit);
2280 break;
2281 }
2282 } else if (value) {
2283 time = value.clone();
2284 } else {
2285 time = (0, _moment2.default)().hours(0).minutes(0).seconds(0);
2286 }
2287
2288 e.preventDefault();
2289 return time.format(format);
2290}
2291
2292/***/ }),
2293/* 31 */
2294/***/ (function(module, exports) {
2295
2296function _typeof(obj) {
2297 "@babel/helpers - typeof";
2298
2299 return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
2300 return typeof obj;
2301 } : function (obj) {
2302 return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
2303 }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
2304}
2305
2306module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
2307
2308/***/ }),
2309/* 32 */
2310/***/ (function(module, exports, __webpack_require__) {
2311
2312var global = __webpack_require__(23);
2313var core = __webpack_require__(24);
2314var ctx = __webpack_require__(112);
2315var hide = __webpack_require__(33);
2316var has = __webpack_require__(27);
2317var PROTOTYPE = 'prototype';
2318
2319var $export = function (type, name, source) {
2320 var IS_FORCED = type & $export.F;
2321 var IS_GLOBAL = type & $export.G;
2322 var IS_STATIC = type & $export.S;
2323 var IS_PROTO = type & $export.P;
2324 var IS_BIND = type & $export.B;
2325 var IS_WRAP = type & $export.W;
2326 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
2327 var expProto = exports[PROTOTYPE];
2328 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
2329 var key, own, out;
2330 if (IS_GLOBAL) source = name;
2331 for (key in source) {
2332 // contains in native
2333 own = !IS_FORCED && target && target[key] !== undefined;
2334 if (own && has(exports, key)) continue;
2335 // export native or passed
2336 out = own ? target[key] : source[key];
2337 // prevent global pollution for namespaces
2338 exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
2339 // bind timers to global for call from export context
2340 : IS_BIND && own ? ctx(out, global)
2341 // wrap global constructors for prevent change them in library
2342 : IS_WRAP && target[key] == out ? (function (C) {
2343 var F = function (a, b, c) {
2344 if (this instanceof C) {
2345 switch (arguments.length) {
2346 case 0: return new C();
2347 case 1: return new C(a);
2348 case 2: return new C(a, b);
2349 } return new C(a, b, c);
2350 } return C.apply(this, arguments);
2351 };
2352 F[PROTOTYPE] = C[PROTOTYPE];
2353 return F;
2354 // make static versions for prototype methods
2355 })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
2356 // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
2357 if (IS_PROTO) {
2358 (exports.virtual || (exports.virtual = {}))[key] = out;
2359 // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
2360 if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
2361 }
2362 }
2363};
2364// type bitmap
2365$export.F = 1; // forced
2366$export.G = 2; // global
2367$export.S = 4; // static
2368$export.P = 8; // proto
2369$export.B = 16; // bind
2370$export.W = 32; // wrap
2371$export.U = 64; // safe
2372$export.R = 128; // real proto method for `library`
2373module.exports = $export;
2374
2375
2376/***/ }),
2377/* 33 */
2378/***/ (function(module, exports, __webpack_require__) {
2379
2380var dP = __webpack_require__(26);
2381var createDesc = __webpack_require__(53);
2382module.exports = __webpack_require__(25) ? function (object, key, value) {
2383 return dP.f(object, key, createDesc(1, value));
2384} : function (object, key, value) {
2385 object[key] = value;
2386 return object;
2387};
2388
2389
2390/***/ }),
2391/* 34 */
2392/***/ (function(module, exports) {
2393
2394module.exports = function (it) {
2395 return typeof it === 'object' ? it !== null : typeof it === 'function';
2396};
2397
2398
2399/***/ }),
2400/* 35 */
2401/***/ (function(module, exports, __webpack_require__) {
2402
2403// to indexed object, toObject with fallback for non-array-like ES3 strings
2404var IObject = __webpack_require__(116);
2405var defined = __webpack_require__(71);
2406module.exports = function (it) {
2407 return IObject(defined(it));
2408};
2409
2410
2411/***/ }),
2412/* 36 */
2413/***/ (function(module, exports, __webpack_require__) {
2414
2415var store = __webpack_require__(74)('wks');
2416var uid = __webpack_require__(56);
2417var Symbol = __webpack_require__(23).Symbol;
2418var USE_SYMBOL = typeof Symbol == 'function';
2419
2420var $exports = module.exports = function (name) {
2421 return store[name] || (store[name] =
2422 USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
2423};
2424
2425$exports.store = store;
2426
2427
2428/***/ }),
2429/* 37 */
2430/***/ (function(module, exports, __webpack_require__) {
2431
2432"use strict";
2433
2434
2435exports.__esModule = true;
2436
2437var _extends4 = __webpack_require__(1);
2438
2439var _extends5 = _interopRequireDefault(_extends4);
2440
2441var _typeof2 = __webpack_require__(14);
2442
2443var _typeof3 = _interopRequireDefault(_typeof2);
2444
2445exports.typeOf = typeOf;
2446exports.isArrayLike = isArrayLike;
2447exports.isPromise = isPromise;
2448exports.isPlainObject = isPlainObject;
2449exports.shallowEqual = shallowEqual;
2450exports.each = each;
2451exports.pickOthers = pickOthers;
2452exports.pickProps = pickProps;
2453exports.pickAttrsWith = pickAttrsWith;
2454exports.isNil = isNil;
2455exports.deepMerge = deepMerge;
2456exports.isFunctionComponent = isFunctionComponent;
2457exports.isClassComponent = isClassComponent;
2458exports.isReactFragment = isReactFragment;
2459exports.values = values;
2460
2461var _react = __webpack_require__(0);
2462
2463var _react2 = _interopRequireDefault(_react);
2464
2465function _interopRequireDefault(obj) {
2466 return obj && obj.__esModule ? obj : { default: obj };
2467}
2468
2469/**
2470 * 获取对象的类型
2471 * @param {*} obj
2472 * @return {String}
2473 *
2474 * @example
2475 * typeOf([]) === 'Array'
2476 * typeOf() === 'Undefined'
2477 * typeOf(1) === 'Number'
2478 */
2479function typeOf(obj) {
2480 return Object.prototype.toString.call(obj).replace(/\[object\s|]/g, '');
2481}
2482
2483/**
2484 * 判断是否是数组或类数组对象
2485 * @param {*} obj
2486 * @return {Boolean}
2487 *
2488 * @example
2489 * isArrayLike([]) === true
2490 * isArrayLike(arguments) === true
2491 * isArrayLike(this.props.children) === true
2492 */
2493function isArrayLike(obj) {
2494 var length = !!obj && 'length' in obj && obj.length;
2495 var type = typeOf(obj);
2496
2497 return type === 'Array' || length === 0 || typeof length === 'number' && length > 0 && length - 1 in obj;
2498}
2499
2500/**
2501 * 判断对象是否是一个promise,即是否可以用.then
2502 * @param {*} obj
2503 * @return {Boolean}
2504 */
2505function isPromise(obj) {
2506 return !!obj && ((typeof obj === 'undefined' ? 'undefined' : (0, _typeof3.default)(obj)) === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
2507}
2508
2509/**
2510 * 是否是一个纯净的对象
2511 * @param {*} obj
2512 * @return {Boolean}
2513 * @reference https://github.com/jonschlinkert/is-plain-object
2514 */
2515function isPlainObject(obj) {
2516 if (typeOf(obj) !== 'Object') {
2517 return false;
2518 }
2519
2520 var ctor = obj.constructor;
2521
2522 if (typeof ctor !== 'function') {
2523 return false;
2524 }
2525
2526 var prot = ctor.prototype;
2527
2528 if (typeOf(prot) !== 'Object') {
2529 return false;
2530 }
2531
2532 if (!prot.hasOwnProperty('isPrototypeOf')) {
2533 return false;
2534 }
2535
2536 return true;
2537}
2538
2539/**
2540 * 对象浅比较
2541 * @param {Object} objA
2542 * @param {Object} objB
2543 * @param {Function} [compare] 手动调用方法比较
2544 * @return {Boolean} 对象浅比较是否相等
2545 *
2546 * @example
2547 * object.shallowEqual({a: 100}, {a: 100}); // true
2548 */
2549function shallowEqual(objA, objB, compare) {
2550 if (objA === objB) {
2551 return true;
2552 }
2553
2554 // 其中一个不是object,则不相等
2555 if (!objA || !objB || (typeof objA === 'undefined' ? 'undefined' : (0, _typeof3.default)(objA)) + (typeof objB === 'undefined' ? 'undefined' : (0, _typeof3.default)(objB)) !== 'objectobject') {
2556 return false;
2557 }
2558
2559 var keyA = Object.keys(objA);
2560 var keyB = Object.keys(objB);
2561 var len = keyA.length;
2562
2563 // key 数量不一致则不相等
2564 if (len !== keyB.length) {
2565 return false;
2566 }
2567
2568 var hasCallback = typeof compare === 'function';
2569
2570 for (var i = 0; i < len; i++) {
2571 var key = keyA[i];
2572
2573 if (!Object.prototype.hasOwnProperty.call(objB, key)) {
2574 return false;
2575 }
2576
2577 var valA = objA[key];
2578 var valB = objB[key];
2579
2580 var ret = hasCallback ? compare(valA, valB, key) : void 0;
2581
2582 if (ret === false || ret === void 0 && valA !== valB) {
2583 return false;
2584 }
2585 }
2586
2587 return true;
2588}
2589
2590/**
2591 * 遍历对象或数组,或者类数组,例如React中的children对象、arguments等
2592 * @param {Object|Array} obj
2593 * @param {Function} callback fn(n, i) or fn(val, key)
2594 * @param {Number} [direction = 1] 是否倒序遍历,只对数组有效
2595 * @return {Object|Array}
2596 *
2597 * @example
2598 * // 遍历数组
2599 * object.each([100, 200, 300], (n, i) => console.log(n, i));
2600 * // 遍历json对象
2601 * object.each({a: 100, b: 200}, (value, key) => console.log(key, value));
2602 * // 遍历React子节点
2603 * object.each(this.props.children, (child, index) => console.log(child));
2604 * // 遍历arguments
2605 * object.each(arguments, (arg, i) => console.log(arg));
2606 */
2607function each(obj, callback, direction) {
2608 var reversed = direction === -1;
2609 var length = obj.length;
2610 var value = void 0,
2611 i = reversed ? length - 1 : 0;
2612
2613 if (isArrayLike(obj)) {
2614 for (; i < length && i >= 0; reversed ? i-- : i++) {
2615 value = callback.call(obj[i], obj[i], i);
2616
2617 if (value === false) {
2618 break;
2619 }
2620 }
2621 } else {
2622 for (i in obj) {
2623 /* istanbul ignore else */
2624 if (obj.hasOwnProperty(i)) {
2625 value = callback.call(obj[i], obj[i], i);
2626
2627 if (value === false) {
2628 break;
2629 }
2630 }
2631 }
2632 }
2633
2634 return obj;
2635}
2636
2637// @private 判断key是否在数组或对象中
2638var _isInObj = function _isInObj(key, obj, isArray) {
2639 return isArray ? obj.indexOf(key) > -1 : key in obj;
2640};
2641
2642/**
2643 * 过滤出其它属性
2644 * @param {Object|Array} holdProps 过滤的参照对象,最终的结果只保留不在参照对象中的key
2645 * @param {Object} props 被过滤的对象
2646 * @return {Object} others
2647 *
2648 * @example
2649 * object.pickOthers(FooComponent.propTypes, this.props);
2650 * object.pickOthers(['className', 'onChange'], this.props);
2651 */
2652function pickOthers(holdProps, props) {
2653 var others = {};
2654 var isArray = typeOf(holdProps) === 'Array';
2655
2656 for (var key in props) {
2657 if (!_isInObj(key, holdProps, isArray)) {
2658 others[key] = props[key];
2659 }
2660 }
2661
2662 return others;
2663}
2664
2665/**
2666 * 过滤出需要的属性
2667 * @param {Object|Array} holdProps 过滤的参照对象,最终的结果只保留在参照对象中的key
2668 * @param {Object} props 被过滤的对象
2669 * @return {Object} others
2670 *
2671 * @example
2672 * object.pickProps(FooComponent.propTypes, this.props);
2673 * object.pickProps(['className', 'onChange'], this.props);
2674 */
2675function pickProps(holdProps, props) {
2676 var others = {};
2677 var isArray = typeOf(holdProps) === 'Array';
2678
2679 for (var key in props) {
2680 if (_isInObj(key, holdProps, isArray)) {
2681 others[key] = props[key];
2682 }
2683 }
2684
2685 return others;
2686}
2687
2688/**
2689 * 过滤出带prefix的属性
2690 * @param {Object} holdProps 过滤的参照对象,最终的结果只保留不在参照对象中的key
2691 * @param {string} prefix 包含的字符串
2692 * @return {Object} others
2693 *
2694 * @example
2695 * object.pickAttrsWith(FooComponent.propTypes, 'data-');
2696 */
2697function pickAttrsWith(holdProps, prefix) {
2698 var others = {};
2699
2700 for (var key in holdProps) {
2701 if (key.match(prefix)) {
2702 others[key] = holdProps[key];
2703 }
2704 }
2705
2706 return others;
2707}
2708
2709/**
2710 * Checks if value is `null` or `undefined`.
2711 * @param {*} value
2712 * @return {Boolean}
2713 */
2714function isNil(value) {
2715 // It will returns `true` only if `null` or `undefined` compare with `null`
2716 // with loose equaliy
2717 return value == null; // eslint-disable-line eqeqeq
2718}
2719
2720/**
2721 * Deep merge two objects.
2722 * @param target
2723 * @param ...sources
2724 * @reference https://stackoverflow.com/questions/27936772/how-to-deep-merge-instead-of-shallow-merge?page=1&tab=votes#tab-top
2725 */
2726function deepMerge(target) {
2727 for (var _len = arguments.length, sources = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2728 sources[_key - 1] = arguments[_key];
2729 }
2730
2731 if (!sources.length) return target;
2732 var source = sources.shift();
2733
2734 if (!isPlainObject(target)) {
2735 target = {};
2736 }
2737
2738 if (isPlainObject(target) && isPlainObject(source)) {
2739 for (var key in source) {
2740 // 如果是object 进行深拷贝
2741 if (isPlainObject(source[key]) && !_react2.default.isValidElement(source[key])) {
2742 var _extends2;
2743
2744 if (!target[key]) (0, _extends5.default)(target, (_extends2 = {}, _extends2[key] = {}, _extends2));
2745 // fix {a: 'te'}, {a:{b:3}}
2746 if (!isPlainObject(target[key])) {
2747 target[key] = source[key];
2748 }
2749 deepMerge(target[key], source[key]);
2750 // string/number/function/react node 等直接复制
2751 } else {
2752 var _extends3;
2753
2754 (0, _extends5.default)(target, (_extends3 = {}, _extends3[key] = source[key], _extends3));
2755 }
2756 }
2757 }
2758
2759 return deepMerge.apply(undefined, [target].concat(sources));
2760}
2761
2762/**
2763 * 组件是否为 Fucntion Component
2764 * @param {*} component 传入的组件
2765 */
2766function isFunctionComponent(component) {
2767 return typeOf(component) === 'Function' && component.prototype && component.prototype.isReactComponent === undefined;
2768}
2769
2770/**
2771 * 组件是否为 Class Component
2772 * @param {*} component 传入的组件
2773 */
2774function isClassComponent(component) {
2775 return typeOf(component) === 'Function' && component.prototype && component.prototype.isReactComponent !== undefined;
2776}
2777
2778/**
2779 * 判断是否为 ReactFragment
2780 * @param {*} component 传入的组件
2781 */
2782function isReactFragment(component) {
2783 if (isNil(component)) {
2784 return false;
2785 }
2786
2787 if (component.type) {
2788 return component.type === _react2.default.Fragment;
2789 }
2790 return component === _react2.default.Fragment;
2791}
2792
2793/**
2794 * Creates an array of the own enumerable string keyed property values of object.
2795 *
2796 * @param {Object} obj
2797 * @returns {Array}
2798 *
2799 * @example
2800 * // returns [1, 2]
2801 * values({a: 1, b: 2})
2802 */
2803function values(obj) {
2804 if (Object.values) {
2805 return Object.values(obj);
2806 }
2807
2808 var vals = [];
2809
2810 for (var key in obj) {
2811 if (obj.hasOwnProperty(key)) {
2812 vals.push(obj[key]);
2813 }
2814 }
2815
2816 return vals;
2817}
2818
2819/***/ }),
2820/* 38 */
2821/***/ (function(module, exports, __webpack_require__) {
2822
2823"use strict";
2824
2825
2826exports.__esModule = true;
2827exports.default = undefined;
2828
2829var _extends3 = __webpack_require__(1);
2830
2831var _extends4 = _interopRequireDefault(_extends3);
2832
2833var _classCallCheck2 = __webpack_require__(2);
2834
2835var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
2836
2837var _possibleConstructorReturn2 = __webpack_require__(3);
2838
2839var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
2840
2841var _inherits2 = __webpack_require__(4);
2842
2843var _inherits3 = _interopRequireDefault(_inherits2);
2844
2845var _class, _temp;
2846
2847var _react = __webpack_require__(0);
2848
2849var _react2 = _interopRequireDefault(_react);
2850
2851var _reactDom = __webpack_require__(12);
2852
2853var _propTypes = __webpack_require__(5);
2854
2855var _propTypes2 = _interopRequireDefault(_propTypes);
2856
2857var _classnames = __webpack_require__(7);
2858
2859var _classnames2 = _interopRequireDefault(_classnames);
2860
2861var _util = __webpack_require__(6);
2862
2863function _interopRequireDefault(obj) {
2864 return obj && obj.__esModule ? obj : { default: obj };
2865}
2866
2867var bindCtx = _util.func.bindCtx;
2868var pickOthers = _util.obj.pickOthers;
2869var Item = (_temp = _class = function (_Component) {
2870 (0, _inherits3.default)(Item, _Component);
2871
2872 function Item(props) {
2873 (0, _classCallCheck3.default)(this, Item);
2874
2875 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
2876
2877 bindCtx(_this, ['handleClick', 'handleKeyDown']);
2878 return _this;
2879 }
2880
2881 Item.prototype.componentDidMount = function componentDidMount() {
2882 this.itemNode = (0, _reactDom.findDOMNode)(this);
2883
2884 var _props = this.props,
2885 parentMode = _props.parentMode,
2886 root = _props.root,
2887 menu = _props.menu;
2888
2889 if (menu) {
2890 this.menuNode = (0, _reactDom.findDOMNode)(menu);
2891 } else if (parentMode === 'popup') {
2892 this.menuNode = this.itemNode.parentNode;
2893 } else {
2894 this.menuNode = (0, _reactDom.findDOMNode)(root);
2895 var _root$props = root.props,
2896 prefix = _root$props.prefix,
2897 header = _root$props.header,
2898 footer = _root$props.footer;
2899
2900 if (header || footer) {
2901 this.menuNode = this.menuNode.querySelector('.' + prefix + 'menu-content');
2902 }
2903 }
2904
2905 this.setFocus();
2906 };
2907
2908 Item.prototype.componentDidUpdate = function componentDidUpdate() {
2909 if (this.props.root.props.focusable) {
2910 this.setFocus();
2911 }
2912 };
2913
2914 Item.prototype.focusable = function focusable() {
2915 var _props2 = this.props,
2916 root = _props2.root,
2917 type = _props2.type,
2918 disabled = _props2.disabled;
2919 var focusable = root.props.focusable;
2920
2921 return focusable && (type === 'submenu' || !disabled);
2922 };
2923
2924 Item.prototype.getFocused = function getFocused() {
2925 var _props3 = this.props,
2926 _key = _props3._key,
2927 root = _props3.root;
2928 var focusedKey = root.state.focusedKey;
2929
2930 return focusedKey === _key;
2931 };
2932
2933 Item.prototype.setFocus = function setFocus() {
2934 var focused = this.getFocused();
2935 if (focused) {
2936 if (this.focusable()) {
2937 this.itemNode.focus({ preventScroll: true });
2938 }
2939 if (this.menuNode && this.menuNode.scrollHeight > this.menuNode.clientHeight) {
2940 var scrollBottom = this.menuNode.clientHeight + this.menuNode.scrollTop;
2941 var itemBottom = this.itemNode.offsetTop + this.itemNode.offsetHeight;
2942 if (itemBottom > scrollBottom) {
2943 this.menuNode.scrollTop = itemBottom - this.menuNode.clientHeight;
2944 } else if (this.itemNode.offsetTop < this.menuNode.scrollTop) {
2945 this.menuNode.scrollTop = this.itemNode.offsetTop;
2946 }
2947 }
2948 }
2949 };
2950
2951 Item.prototype.handleClick = function handleClick(e) {
2952 e.stopPropagation();
2953
2954 var _props4 = this.props,
2955 _key = _props4._key,
2956 root = _props4.root,
2957 disabled = _props4.disabled;
2958
2959 if (!disabled) {
2960 root.handleItemClick(_key, this, e);
2961
2962 this.props.onClick && this.props.onClick(e);
2963 } else {
2964 e.preventDefault();
2965 }
2966 };
2967
2968 Item.prototype.handleKeyDown = function handleKeyDown(e) {
2969 var _props5 = this.props,
2970 _key = _props5._key,
2971 root = _props5.root,
2972 type = _props5.type;
2973
2974 if (this.focusable()) {
2975 root.handleItemKeyDown(_key, type, this, e);
2976
2977 switch (e.keyCode) {
2978 case _util.KEYCODE.ENTER:
2979 {
2980 if (!(type === 'submenu')) {
2981 this.handleClick(e);
2982 }
2983 break;
2984 }
2985 }
2986 }
2987
2988 this.props.onKeyDown && this.props.onKeyDown(e);
2989 };
2990
2991 Item.prototype.getTitle = function getTitle(children) {
2992 if (typeof children === 'string') {
2993 return children;
2994 }
2995 return;
2996 };
2997
2998 Item.prototype.render = function render() {
2999 var _cx;
3000
3001 var _props6 = this.props,
3002 inlineLevel = _props6.inlineLevel,
3003 root = _props6.root,
3004 replaceClassName = _props6.replaceClassName,
3005 groupIndent = _props6.groupIndent,
3006 component = _props6.component,
3007 disabled = _props6.disabled,
3008 className = _props6.className,
3009 children = _props6.children,
3010 needIndent = _props6.needIndent,
3011 parentMode = _props6.parentMode,
3012 _key = _props6._key;
3013
3014 var others = pickOthers(Object.keys(Item.propTypes), this.props);
3015
3016 var _root$props2 = root.props,
3017 prefix = _root$props2.prefix,
3018 focusable = _root$props2.focusable,
3019 inlineIndent = _root$props2.inlineIndent,
3020 itemClassName = _root$props2.itemClassName,
3021 rtl = _root$props2.rtl;
3022
3023 var focused = this.getFocused();
3024
3025 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));
3026 if (disabled) {
3027 others['aria-disabled'] = true;
3028 others['aria-hidden'] = true;
3029 }
3030
3031 others.tabIndex = root.state.tabbableKey === _key ? '0' : '-1';
3032
3033 if (parentMode === 'inline' && inlineLevel > 1 && inlineIndent > 0 && needIndent) {
3034 var _extends2;
3035
3036 var paddingProp = rtl ? 'paddingRight' : 'paddingLeft';
3037 others.style = (0, _extends4.default)({}, others.style || {}, (_extends2 = {}, _extends2[paddingProp] = inlineLevel * inlineIndent - (groupIndent || 0) * 0.4 * inlineIndent + 'px', _extends2));
3038 }
3039 var TagName = component;
3040
3041 var role = 'menuitem';
3042 if ('selectMode' in root.props) {
3043 role = 'option';
3044 }
3045
3046 return _react2.default.createElement(TagName, (0, _extends4.default)({
3047 role: role,
3048 title: this.getTitle(children)
3049 }, others, {
3050 className: newClassName,
3051 onClick: this.handleClick,
3052 onKeyDown: this.handleKeyDown
3053 }), _react2.default.createElement('div', { className: prefix + 'menu-item-inner' }, children));
3054 };
3055
3056 return Item;
3057}(_react.Component), _class.propTypes = {
3058 _key: _propTypes2.default.string,
3059 level: _propTypes2.default.number,
3060 inlineLevel: _propTypes2.default.number,
3061 groupIndent: _propTypes2.default.number,
3062 root: _propTypes2.default.object,
3063 menu: _propTypes2.default.any,
3064 parent: _propTypes2.default.object,
3065 parentMode: _propTypes2.default.oneOf(['inline', 'popup']),
3066 type: _propTypes2.default.oneOf(['submenu', 'item']),
3067 component: _propTypes2.default.string,
3068 disabled: _propTypes2.default.bool,
3069 className: _propTypes2.default.string,
3070 onClick: _propTypes2.default.func,
3071 onKeyDown: _propTypes2.default.func,
3072 needIndent: _propTypes2.default.bool,
3073 replaceClassName: _propTypes2.default.bool
3074}, _class.defaultProps = {
3075 component: 'li',
3076 groupIndent: 0,
3077 replaceClassName: false,
3078 needIndent: true
3079}, _temp);
3080Item.displayName = 'Item';
3081exports.default = Item;
3082module.exports = exports['default'];
3083
3084/***/ }),
3085/* 39 */
3086/***/ (function(module, exports, __webpack_require__) {
3087
3088"use strict";
3089
3090
3091exports.__esModule = true;
3092
3093var _objectWithoutProperties2 = __webpack_require__(8);
3094
3095var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
3096
3097var _configProvider = __webpack_require__(9);
3098
3099var _configProvider2 = _interopRequireDefault(_configProvider);
3100
3101var _utils = __webpack_require__(22);
3102
3103var _calendar = __webpack_require__(303);
3104
3105var _calendar2 = _interopRequireDefault(_calendar);
3106
3107var _rangeCalendar = __webpack_require__(161);
3108
3109var _rangeCalendar2 = _interopRequireDefault(_rangeCalendar);
3110
3111function _interopRequireDefault(obj) {
3112 return obj && obj.__esModule ? obj : { default: obj };
3113}
3114
3115/* istanbul ignore next */
3116var transform = function transform(props, deprecated) {
3117 var type = props.type,
3118 onChange = props.onChange,
3119 base = props.base,
3120 disabledMonth = props.disabledMonth,
3121 disabledYear = props.disabledYear,
3122 others = (0, _objectWithoutProperties3.default)(props, ['type', 'onChange', 'base', 'disabledMonth', 'disabledYear']);
3123
3124 var newProps = others;
3125
3126 if ('type' in props) {
3127 deprecated('type', 'shape', 'Calendar');
3128
3129 newProps.shape = type;
3130
3131 if ('shape' in props) {
3132 newProps.shape = props.shape;
3133 }
3134 }
3135
3136 if ('base' in props) {
3137 deprecated('base', 'defaultVisibleMonth', 'Calendar');
3138
3139 var newDefaultVisibleMonth = function newDefaultVisibleMonth() {
3140 (0, _utils.preFormatDateValue)(base, 'YYYY-MM-DD');
3141 };
3142
3143 if ('defaultVisibleMonth' in props) {
3144 newDefaultVisibleMonth = props.defaultVisibleMonth;
3145 }
3146
3147 newProps.defaultVisibleMonth = newDefaultVisibleMonth;
3148 }
3149
3150 if ('onChange' in props && typeof onChange === 'function') {
3151 deprecated('onChange', 'onSelect', 'Calendar');
3152
3153 var newOnSelect = function newOnSelect(date) {
3154 onChange({ mode: others.mode, value: date });
3155
3156 if ('onSelect' in props) {
3157 props.onSelect(date);
3158 }
3159 };
3160
3161 newProps.onSelect = newOnSelect;
3162 }
3163
3164 if ('disabledMonth' in props && typeof disabledMonth === 'function') {
3165 deprecated('disabledMonth', 'disabledDate', 'Calendar');
3166 }
3167
3168 if ('disabledYear' in props && typeof disabledYear === 'function') {
3169 deprecated('disabledYear', 'disabledDate', 'Calendar');
3170 }
3171
3172 if ('yearCellRender' in props && typeof yearCellRender === 'function') {
3173 deprecated('yearCellRender', 'monthCellRender/dateCellRender', 'Calendar');
3174 }
3175
3176 if ('language' in props) {
3177 deprecated('language', 'moment.locale', 'Calendar');
3178 }
3179
3180 return newProps;
3181};
3182
3183_calendar2.default.RangeCalendar = _rangeCalendar2.default;
3184exports.default = _configProvider2.default.config(_calendar2.default, {
3185 transform: transform
3186});
3187module.exports = exports['default'];
3188
3189/***/ }),
3190/* 40 */
3191/***/ (function(module, exports, __webpack_require__) {
3192
3193"use strict";
3194
3195
3196var _interopRequireDefault = __webpack_require__(28);
3197
3198Object.defineProperty(exports, "__esModule", {
3199 value: true
3200});
3201exports.asyncMap = asyncMap;
3202exports.asyncMapPromise = asyncMapPromise;
3203exports.complementError = complementError;
3204exports.format = format;
3205exports.processErrorResults = processErrorResults;
3206
3207var _regenerator = _interopRequireDefault(__webpack_require__(96));
3208
3209var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(97));
3210
3211var formatRegExp = /%[sdj%]/g;
3212
3213function format() {
3214 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3215 args[_key] = arguments[_key];
3216 }
3217
3218 var i = 1;
3219 var f = args[0];
3220 var len = args.length;
3221
3222 if (typeof f === 'function') {
3223 return f(args.slice(1));
3224 }
3225
3226 if (typeof f === 'string') {
3227 var str = String(f).replace(formatRegExp, function (x) {
3228 if (x === '%%') {
3229 return '%';
3230 }
3231
3232 if (i >= len) {
3233 return x;
3234 }
3235
3236 switch (x) {
3237 case '%s':
3238 return String(args[i++]);
3239
3240 case '%d':
3241 return Number(args[i++]);
3242
3243 case '%j':
3244 try {
3245 return JSON.stringify(args[i++]);
3246 } catch (_) {
3247 return '[Circular]';
3248 }
3249
3250 default:
3251 return x;
3252 }
3253 });
3254 return str;
3255 }
3256
3257 return f;
3258}
3259/**
3260 * 串联校验一组数据,只返回第一个出错结果
3261 * @param {*} arr
3262 * @param {*} validator
3263 * @param {*} callback 出递归,告诉错误校验完成
3264 */
3265
3266
3267function _asyncValidateSerials(arr, validator, callback) {
3268 var index = 0;
3269 var arrLength = arr.length;
3270
3271 function next(errors) {
3272 if (errors && errors.length) {
3273 return callback(errors);
3274 }
3275
3276 var original = index;
3277 index = index + 1;
3278
3279 if (original < arrLength) {
3280 validator(arr[original], next);
3281 } else {
3282 return callback([]);
3283 }
3284 }
3285
3286 next([]);
3287}
3288/**
3289 * 串联校验一组数据,只返回第一个出错结果
3290 * @param {*} arr
3291 * @param {*} validator
3292 * @returns
3293 */
3294
3295
3296function _promiseValidateSeries(_x, _x2) {
3297 return _promiseValidateSeries2.apply(this, arguments);
3298}
3299/**
3300 * 平铺规则
3301 * @param {object} objArr {name: [{value, rule}, {value, rule2}], name2: [{value2, rule3}]}
3302 * @return {Array} [{value, rule}, {value, rule2}, {value2, rule3}]
3303 */
3304
3305
3306function _promiseValidateSeries2() {
3307 _promiseValidateSeries2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(arr, validator) {
3308 return _regenerator.default.wrap(function _callee2$(_context2) {
3309 while (1) {
3310 switch (_context2.prev = _context2.next) {
3311 case 0:
3312 return _context2.abrupt("return", arr.reduce( /*#__PURE__*/function () {
3313 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(prevPromise, next) {
3314 var errors;
3315 return _regenerator.default.wrap(function _callee$(_context) {
3316 while (1) {
3317 switch (_context.prev = _context.next) {
3318 case 0:
3319 _context.prev = 0;
3320 _context.next = 3;
3321 return prevPromise;
3322
3323 case 3:
3324 errors = _context.sent;
3325 _context.next = 9;
3326 break;
3327
3328 case 6:
3329 _context.prev = 6;
3330 _context.t0 = _context["catch"](0);
3331 errors = _context.t0;
3332
3333 case 9:
3334 if (!(errors && errors.length)) {
3335 _context.next = 11;
3336 break;
3337 }
3338
3339 return _context.abrupt("return", errors);
3340
3341 case 11:
3342 return _context.abrupt("return", validator(next));
3343
3344 case 12:
3345 case "end":
3346 return _context.stop();
3347 }
3348 }
3349 }, _callee, null, [[0, 6]]);
3350 }));
3351
3352 return function (_x6, _x7) {
3353 return _ref.apply(this, arguments);
3354 };
3355 }(), []));
3356
3357 case 1:
3358 case "end":
3359 return _context2.stop();
3360 }
3361 }
3362 }, _callee2);
3363 }));
3364 return _promiseValidateSeries2.apply(this, arguments);
3365}
3366
3367function flattenObjArr(objArr) {
3368 var ret = [];
3369 Object.keys(objArr).forEach(function (k) {
3370 Object.keys(objArr[k]).forEach(function (r) {
3371 ret.push(objArr[k][r]);
3372 });
3373 });
3374 return ret;
3375}
3376/**
3377 * 异步调用
3378 * @param {map} objArr 校验规则对象列表
3379 * @param {object} option 配置项
3380 * @param {Function} validator 每个校验规则
3381 * @param {Function} callback 全部完成后的执行
3382 */
3383
3384
3385function asyncMap(objArr, option, validator, callback) {
3386 // 发现第一个错误即返回
3387 if (option.first) {
3388 var flattenArr = flattenObjArr(objArr);
3389 return _asyncValidateSerials(flattenArr, validator, callback);
3390 }
3391
3392 var objArrKeys = Object.keys(objArr);
3393 var objArrLength = objArrKeys.length;
3394 var total = 0;
3395 var results = [];
3396
3397 var next = function next(errors) {
3398 results.push(errors);
3399 total++;
3400
3401 if (total === objArrLength) {
3402 return callback(results);
3403 }
3404 };
3405
3406 objArrKeys.forEach(function (key) {
3407 var arr = objArr[key];
3408
3409 _asyncValidateSerials(arr, validator, next);
3410 });
3411}
3412
3413function asyncMapPromise(_x3, _x4, _x5) {
3414 return _asyncMapPromise.apply(this, arguments);
3415}
3416
3417function _asyncMapPromise() {
3418 _asyncMapPromise = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(objArr, option, validator) {
3419 var flatObjArr, objArrValues;
3420 return _regenerator.default.wrap(function _callee3$(_context3) {
3421 while (1) {
3422 switch (_context3.prev = _context3.next) {
3423 case 0:
3424 if (!option.first) {
3425 _context3.next = 5;
3426 break;
3427 }
3428
3429 flatObjArr = flattenObjArr(objArr);
3430 _context3.next = 4;
3431 return _promiseValidateSeries(flatObjArr, validator);
3432
3433 case 4:
3434 return _context3.abrupt("return", _context3.sent);
3435
3436 case 5:
3437 objArrValues = Object.values(objArr);
3438 _context3.next = 8;
3439 return Promise.all(objArrValues.map(function (val) {
3440 return _promiseValidateSeries(val, validator);
3441 }));
3442
3443 case 8:
3444 return _context3.abrupt("return", _context3.sent);
3445
3446 case 9:
3447 case "end":
3448 return _context3.stop();
3449 }
3450 }
3451 }, _callee3);
3452 }));
3453 return _asyncMapPromise.apply(this, arguments);
3454}
3455
3456function complementError(rule) {
3457 return function (oe) {
3458 if (oe && oe.message) {
3459 oe.field = rule.field;
3460 return oe;
3461 }
3462
3463 return {
3464 message: oe,
3465 field: rule.field
3466 };
3467 };
3468}
3469/**
3470 *
3471 * @param {Array} results errors from running validation
3472 * @returns {Object} { errors: Array, fields: Object }
3473 */
3474
3475
3476function processErrorResults() {
3477 var results = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
3478 var errors = [];
3479 var fields = {};
3480
3481 function add(e) {
3482 if (Array.isArray(e)) {
3483 errors = errors.concat(e);
3484 } else {
3485 errors.push(e);
3486 }
3487 }
3488
3489 for (var i = 0; i < results.length; i++) {
3490 add(results[i]);
3491 }
3492
3493 if (!errors.length) {
3494 errors = null;
3495 fields = null;
3496 } else {
3497 for (var _i = 0; _i < errors.length; _i++) {
3498 var field = errors[_i].field;
3499
3500 if (field) {
3501 fields[field] = fields[field] || [];
3502 fields[field].push(errors[_i]);
3503 }
3504 }
3505 }
3506
3507 return {
3508 errors: errors,
3509 fields: fields
3510 };
3511}
3512
3513/***/ }),
3514/* 41 */
3515/***/ (function(module, exports, __webpack_require__) {
3516
3517"use strict";
3518
3519
3520exports.__esModule = true;
3521exports.inRange = inRange;
3522exports.getPercent = getPercent;
3523exports.getPrecision = getPrecision;
3524exports.isEqual = isEqual;
3525exports.getDragging = getDragging;
3526function inRange(value, range, min) {
3527 if (!Array.isArray(range)) {
3528 range = [min, range];
3529 }
3530
3531 return value >= range[0] && value <= range[1];
3532}
3533
3534function getPercent(min, max, value) {
3535 return (value - min) * 100 / (max - min);
3536}
3537
3538function getPrecision(step) {
3539 var precision = 0;
3540 var stepString = step.toString();
3541 if (stepString.indexOf('.') !== -1) {
3542 precision = stepString.length - stepString.indexOf('.') - 1;
3543 }
3544 return precision;
3545}
3546
3547function isEqual(left, right) {
3548 if (Array.isArray(left)) {
3549 return left[0] === right[0] && left[1] === right[1];
3550 } else {
3551 return left === right;
3552 }
3553}
3554
3555function getDragging(current, preValue) {
3556 var dragging = 'upper';
3557
3558 if (current > preValue[1]) {
3559 dragging = 'upper';
3560 } else if (current < preValue[0]) {
3561 dragging = 'lower';
3562 } else {
3563 var mid = (preValue[0] + preValue[1]) / 2;
3564
3565 dragging = current < mid ? 'lower' : 'upper';
3566 }
3567
3568 return dragging;
3569}
3570
3571/***/ }),
3572/* 42 */
3573/***/ (function(module, exports, __webpack_require__) {
3574
3575"use strict";
3576
3577
3578exports.__esModule = true;
3579exports.uid = uid;
3580exports.fileToObject = fileToObject;
3581exports.getFileItem = getFileItem;
3582exports.removeFileItem = removeFileItem;
3583exports.previewFile = previewFile;
3584var now = +new Date();
3585
3586/**
3587 * 生成唯一的id
3588 * @return {String} uid
3589 */
3590function uid() {
3591 return (now++).toString(36);
3592}
3593
3594function fileToObject(file) {
3595 if (!file.uid) {
3596 file.uid = uid();
3597 }
3598
3599 return {
3600 lastModified: file.lastModified,
3601 lastModifiedDate: file.lastModifiedDate,
3602 name: file.filename || file.name,
3603 size: file.size,
3604 type: file.type,
3605 uid: file.uid,
3606 error: file.error,
3607 percent: 0,
3608 originFileObj: file
3609 };
3610}
3611
3612function getFileItem(file, fileList) {
3613 var matchKey = file.uid !== undefined ? 'uid' : 'name';
3614 return fileList.filter(function (item) {
3615 return item[matchKey] === file[matchKey];
3616 })[0];
3617}
3618
3619function removeFileItem(file, fileList) {
3620 var matchKey = file.uid !== undefined ? 'uid' : 'name';
3621 var removed = fileList.filter(function (item) {
3622 return item[matchKey] !== file[matchKey];
3623 });
3624 if (removed.length === fileList.length) {
3625 return null;
3626 }
3627 return removed;
3628}
3629
3630// https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL
3631function previewFile(file, callback) {
3632 var reader = new FileReader();
3633 reader.onloadend = function () {
3634 return callback(reader.result);
3635 };
3636 reader.readAsDataURL(file);
3637}
3638
3639var errorCode = exports.errorCode = {
3640 EXCEED_LIMIT: 'EXCEED_LIMIT',
3641 BEFOREUPLOAD_REJECT: 'BEFOREUPLOAD_REJECT',
3642 RESPONSE_FAIL: 'RESPONSE_FAIL'
3643};
3644
3645/***/ }),
3646/* 43 */
3647/***/ (function(module, exports, __webpack_require__) {
3648
3649"use strict";
3650
3651
3652exports.__esModule = true;
3653exports.setTime = setTime;
3654exports.switchInputType = switchInputType;
3655exports.mode2unit = mode2unit;
3656exports.fmtValue = fmtValue;
3657exports.isValueChanged = isValueChanged;
3658
3659var _util = __webpack_require__(6);
3660
3661var _constant = __webpack_require__(44);
3662
3663function setTime(targetVal, sourceVal) {
3664 if (sourceVal && targetVal) {
3665 return targetVal.hour(sourceVal.hour()).minute(sourceVal.minute()).second(sourceVal.second()).millisecond(sourceVal.millisecond());
3666 }
3667 return targetVal;
3668}
3669
3670function switchInputType(inputType) {
3671 var BEGIN = _constant.DATE_INPUT_TYPE.BEGIN,
3672 END = _constant.DATE_INPUT_TYPE.END;
3673
3674 return inputType === BEGIN ? END : BEGIN;
3675}
3676
3677function mode2unit(mode) {
3678 return mode === 'date' ? 'day' : mode;
3679}
3680
3681/**
3682 * 获取输入框值
3683 * @param {*} value 日期值
3684 * @param {string | funtion} format 日期格式
3685 * @returns {string | string[]}
3686 */
3687function fmtValue(value, fmt) {
3688 var formater = function formater(v, idx) {
3689 var _fmt = fmt;
3690
3691 if (Array.isArray(fmt)) {
3692 _fmt = fmt[idx];
3693 }
3694
3695 return v ? typeof _fmt === 'function' ? _fmt(v) : v.format(_fmt) : '';
3696 };
3697
3698 return Array.isArray(value) ? value.map(function (v, idx) {
3699 return formater(v, idx);
3700 }) : formater(value);
3701}
3702
3703/**
3704 * 判断值是否改变
3705 * @param {dayjs.ConfigType}} newValue
3706 * @param {dayjs.ConfigType} oldValue
3707 * @returns {boolean}
3708 */
3709function isValueChanged(newValue, oldValue) {
3710 return Array.isArray(newValue) ? isValueChanged(newValue[0], oldValue && oldValue[0]) || isValueChanged(newValue[1], oldValue && oldValue[1]) : newValue !== oldValue && !(0, _util.datejs)(newValue).isSame(oldValue);
3711}
3712
3713/***/ }),
3714/* 44 */
3715/***/ (function(module, exports, __webpack_require__) {
3716
3717"use strict";
3718
3719
3720exports.__esModule = true;
3721var DATE_PICKER_TYPE = exports.DATE_PICKER_TYPE = {
3722 DATE: 'date',
3723 RANGE: 'range'
3724};
3725
3726var DATE_INPUT_TYPE = exports.DATE_INPUT_TYPE = {
3727 BEGIN: 0,
3728 END: 1
3729};
3730
3731var DATE_PICKER_MODE = exports.DATE_PICKER_MODE = {
3732 DATE: 'date',
3733 MONTH: 'month',
3734 WEEK: 'week',
3735 QUARTER: 'quarter',
3736 YEAR: 'year'
3737};
3738
3739/***/ }),
3740/* 45 */
3741/***/ (function(module, exports, __webpack_require__) {
3742
3743"use strict";
3744
3745
3746exports.__esModule = true;
3747exports.error = undefined;
3748
3749var _typeof2 = __webpack_require__(14);
3750
3751var _typeof3 = _interopRequireDefault(_typeof2);
3752
3753var _propTypes = __webpack_require__(5);
3754
3755var PT = _interopRequireWildcard(_propTypes);
3756
3757var _constant = __webpack_require__(44);
3758
3759var _util = __webpack_require__(6);
3760
3761function _interopRequireWildcard(obj) {
3762 if (obj && obj.__esModule) {
3763 return obj;
3764 } else {
3765 var newObj = {};if (obj != null) {
3766 for (var key in obj) {
3767 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
3768 }
3769 }newObj.default = obj;return newObj;
3770 }
3771}
3772
3773function _interopRequireDefault(obj) {
3774 return obj && obj.__esModule ? obj : { default: obj };
3775}
3776
3777var error = exports.error = function error(propName, ComponentName) {
3778 return new Error('Invalid prop ' + propName + ' supplied to ' + ComponentName + '. Validation failed.');
3779};
3780
3781function checkType(type) {
3782 return function (props, propName, componentName) {
3783 var value = props[propName];
3784 if (value) {
3785 if (!Array.isArray(value)) {
3786 value = [value];
3787 }
3788
3789 if (!Array.isArray(type)) {
3790 type = [type];
3791 }
3792
3793 if (!value.every(function (v) {
3794 return type.includes(typeof v === 'undefined' ? 'undefined' : (0, _typeof3.default)(v));
3795 })) {
3796 throw error(propName, componentName);
3797 }
3798 }
3799 };
3800}
3801
3802var SharedPT = {
3803 date: function date(props, propName, componentName) {
3804 if (propName in props && !(0, _util.datejs)(props.propName).isValid()) {
3805 throw error(propName, componentName);
3806 }
3807 },
3808 value: function value(props, propName, componentName) {
3809 if (props[propName]) {
3810 var value = props[propName];
3811
3812 if (props.type === _constant.DATE_PICKER_TYPE.RANGE && !Array.isArray(value)) {
3813 throw error(propName, componentName);
3814 } else if (!Array.isArray(value)) {
3815 value = [value];
3816 }
3817
3818 if (!value.every(function (v) {
3819 return !v || (0, _util.datejs)(v).isValid();
3820 })) {
3821 throw error(propName, componentName);
3822 }
3823 }
3824 },
3825
3826 format: checkType(['string', 'function']),
3827 inputValue: checkType('string'),
3828 placeholder: checkType('string'),
3829 readOnly: checkType('boolean'),
3830 disabled: checkType('boolean'),
3831 disabledTime: checkType(['object', 'function']),
3832 ariaLabel: checkType('string'),
3833
3834 render: PT.oneOfType([PT.node, PT.func]),
3835 mode: PT.oneOf(Object.values(_constant.DATE_PICKER_MODE)),
3836 type: PT.oneOf(Object.values(_constant.DATE_PICKER_TYPE)),
3837 inputType: PT.oneOf(Object.values(_constant.DATE_INPUT_TYPE)),
3838 size: PT.oneOf(['small', 'medium', 'large'])
3839};
3840
3841exports.default = SharedPT;
3842
3843/***/ }),
3844/* 46 */
3845/***/ (function(module, exports, __webpack_require__) {
3846
3847var isObject = __webpack_require__(34);
3848module.exports = function (it) {
3849 if (!isObject(it)) throw TypeError(it + ' is not an object!');
3850 return it;
3851};
3852
3853
3854/***/ }),
3855/* 47 */
3856/***/ (function(module, exports) {
3857
3858module.exports = function (exec) {
3859 try {
3860 return !!exec();
3861 } catch (e) {
3862 return true;
3863 }
3864};
3865
3866
3867/***/ }),
3868/* 48 */
3869/***/ (function(module, exports, __webpack_require__) {
3870
3871"use strict";
3872
3873
3874exports.__esModule = true;
3875
3876var _configProvider = __webpack_require__(9);
3877
3878var _configProvider2 = _interopRequireDefault(_configProvider);
3879
3880var _dropdown = __webpack_require__(287);
3881
3882var _dropdown2 = _interopRequireDefault(_dropdown);
3883
3884function _interopRequireDefault(obj) {
3885 return obj && obj.__esModule ? obj : { default: obj };
3886}
3887
3888exports.default = _configProvider2.default.config(_dropdown2.default, {
3889 transform: /* istanbul ignore next */function transform(props, deprecated) {
3890 if ('triggerType' in props) {
3891 var triggerType = Array.isArray(props.triggerType) ? [].concat(props.triggerType) : [props.triggerType];
3892
3893 if (triggerType.indexOf('focus') > -1) {
3894 deprecated('triggerType[focus]', 'triggerType[hover, click]', 'Balloon');
3895 }
3896 }
3897
3898 return props;
3899 }
3900});
3901module.exports = exports['default'];
3902
3903/***/ }),
3904/* 49 */
3905/***/ (function(module, exports, __webpack_require__) {
3906
3907"use strict";
3908
3909
3910exports.__esModule = true;
3911
3912var _extends2 = __webpack_require__(1);
3913
3914var _extends3 = _interopRequireDefault(_extends2);
3915
3916var _objectWithoutProperties2 = __webpack_require__(8);
3917
3918var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
3919
3920var _checkbox = __webpack_require__(146);
3921
3922var _checkbox2 = _interopRequireDefault(_checkbox);
3923
3924var _checkboxGroup = __webpack_require__(293);
3925
3926var _checkboxGroup2 = _interopRequireDefault(_checkboxGroup);
3927
3928var _configProvider = __webpack_require__(9);
3929
3930var _configProvider2 = _interopRequireDefault(_configProvider);
3931
3932function _interopRequireDefault(obj) {
3933 return obj && obj.__esModule ? obj : { default: obj };
3934}
3935
3936_checkbox2.default.Group = _configProvider2.default.config(_checkboxGroup2.default, {
3937 transform: /* istanbul ignore next */function transform(props, deprecated) {
3938 if ('itemDirection' in props) {
3939 deprecated('itemDirection', 'direction', 'Checkbox');
3940 var _props = props,
3941 itemDirection = _props.itemDirection,
3942 others = (0, _objectWithoutProperties3.default)(_props, ['itemDirection']);
3943
3944 props = (0, _extends3.default)({ direction: itemDirection }, others);
3945 }
3946
3947 return props;
3948 }
3949});
3950
3951exports.default = _checkbox2.default;
3952module.exports = exports['default'];
3953
3954/***/ }),
3955/* 50 */
3956/***/ (function(module, exports, __webpack_require__) {
3957
3958"use strict";
3959
3960
3961exports.__esModule = true;
3962
3963var _extends2 = __webpack_require__(1);
3964
3965var _extends3 = _interopRequireDefault(_extends2);
3966
3967var _objectWithoutProperties2 = __webpack_require__(8);
3968
3969var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
3970
3971var _radio = __webpack_require__(149);
3972
3973var _radio2 = _interopRequireDefault(_radio);
3974
3975var _radioGroup = __webpack_require__(295);
3976
3977var _radioGroup2 = _interopRequireDefault(_radioGroup);
3978
3979var _configProvider = __webpack_require__(9);
3980
3981var _configProvider2 = _interopRequireDefault(_configProvider);
3982
3983function _interopRequireDefault(obj) {
3984 return obj && obj.__esModule ? obj : { default: obj };
3985}
3986
3987_radio2.default.Group = _configProvider2.default.config(_radioGroup2.default, {
3988 transform: /* istanbul ignore next */function transform(props, deprecated) {
3989 if ('itemDirection' in props) {
3990 deprecated('itemDirection', 'direction', 'Radio');
3991 var _props = props,
3992 itemDirection = _props.itemDirection,
3993 others = (0, _objectWithoutProperties3.default)(_props, ['itemDirection']);
3994
3995 props = (0, _extends3.default)({ direction: itemDirection }, others);
3996 }
3997
3998 return props;
3999 }
4000});
4001
4002exports.default = _radio2.default;
4003module.exports = exports['default'];
4004
4005/***/ }),
4006/* 51 */
4007/***/ (function(module, exports, __webpack_require__) {
4008
4009"use strict";
4010
4011
4012exports.__esModule = true;
4013
4014var _configProvider = __webpack_require__(9);
4015
4016var _configProvider2 = _interopRequireDefault(_configProvider);
4017
4018var _virtualList = __webpack_require__(312);
4019
4020var _virtualList2 = _interopRequireDefault(_virtualList);
4021
4022function _interopRequireDefault(obj) {
4023 return obj && obj.__esModule ? obj : { default: obj };
4024}
4025
4026exports.default = _configProvider2.default.config(_virtualList2.default);
4027module.exports = exports['default'];
4028
4029/***/ }),
4030/* 52 */
4031/***/ (function(module, exports, __webpack_require__) {
4032
4033"use strict";
4034
4035
4036exports.__esModule = true;
4037// 日历shape
4038var CALENDAR_SHAPE = exports.CALENDAR_SHAPE = {
4039 FULLSCREEN: 'fullscreen',
4040 CARD: 'card',
4041 PANEL: 'panel'
4042};
4043
4044// 日历模式
4045var CALENDAR_MODE = exports.CALENDAR_MODE = {
4046 MONTH: 'month',
4047 YEAR: 'year'
4048};
4049
4050// 日期面板的模式
4051var DATE_PANEL_MODE = exports.DATE_PANEL_MODE = {
4052 DATE: 'date',
4053 WEEK: 'week',
4054 MONTH: 'month',
4055 QUARTER: 'quarter',
4056 YEAR: 'year',
4057 DECADE: 'decade'
4058};
4059
4060// 单元格选中状态
4061var CALENDAR_CELL_STATE = exports.CALENDAR_CELL_STATE = {
4062 UN_SELECTED: 0,
4063 SELECTED: 1,
4064 SELECTED_BEGIN: 2,
4065 SELECTED_END: 3
4066};
4067
4068/***/ }),
4069/* 53 */
4070/***/ (function(module, exports) {
4071
4072module.exports = function (bitmap, value) {
4073 return {
4074 enumerable: !(bitmap & 1),
4075 configurable: !(bitmap & 2),
4076 writable: !(bitmap & 4),
4077 value: value
4078 };
4079};
4080
4081
4082/***/ }),
4083/* 54 */
4084/***/ (function(module, exports, __webpack_require__) {
4085
4086// 19.1.2.14 / 15.2.3.14 Object.keys(O)
4087var $keys = __webpack_require__(115);
4088var enumBugKeys = __webpack_require__(75);
4089
4090module.exports = Object.keys || function keys(O) {
4091 return $keys(O, enumBugKeys);
4092};
4093
4094
4095/***/ }),
4096/* 55 */
4097/***/ (function(module, exports) {
4098
4099module.exports = true;
4100
4101
4102/***/ }),
4103/* 56 */
4104/***/ (function(module, exports) {
4105
4106var id = 0;
4107var px = Math.random();
4108module.exports = function (key) {
4109 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
4110};
4111
4112
4113/***/ }),
4114/* 57 */
4115/***/ (function(module, exports) {
4116
4117exports.f = {}.propertyIsEnumerable;
4118
4119
4120/***/ }),
4121/* 58 */
4122/***/ (function(module, __webpack_exports__, __webpack_require__) {
4123
4124"use strict";
4125Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
4126/* WEBPACK VAR INJECTION */(function(global) {/**
4127 * A collection of shims that provide minimal functionality of the ES6 collections.
4128 *
4129 * These implementations are not meant to be used outside of the ResizeObserver
4130 * modules as they cover only a limited range of use cases.
4131 */
4132/* eslint-disable require-jsdoc, valid-jsdoc */
4133var MapShim = (function () {
4134 if (typeof Map !== 'undefined') {
4135 return Map;
4136 }
4137 /**
4138 * Returns index in provided array that matches the specified key.
4139 *
4140 * @param {Array<Array>} arr
4141 * @param {*} key
4142 * @returns {number}
4143 */
4144 function getIndex(arr, key) {
4145 var result = -1;
4146 arr.some(function (entry, index) {
4147 if (entry[0] === key) {
4148 result = index;
4149 return true;
4150 }
4151 return false;
4152 });
4153 return result;
4154 }
4155 return /** @class */ (function () {
4156 function class_1() {
4157 this.__entries__ = [];
4158 }
4159 Object.defineProperty(class_1.prototype, "size", {
4160 /**
4161 * @returns {boolean}
4162 */
4163 get: function () {
4164 return this.__entries__.length;
4165 },
4166 enumerable: true,
4167 configurable: true
4168 });
4169 /**
4170 * @param {*} key
4171 * @returns {*}
4172 */
4173 class_1.prototype.get = function (key) {
4174 var index = getIndex(this.__entries__, key);
4175 var entry = this.__entries__[index];
4176 return entry && entry[1];
4177 };
4178 /**
4179 * @param {*} key
4180 * @param {*} value
4181 * @returns {void}
4182 */
4183 class_1.prototype.set = function (key, value) {
4184 var index = getIndex(this.__entries__, key);
4185 if (~index) {
4186 this.__entries__[index][1] = value;
4187 }
4188 else {
4189 this.__entries__.push([key, value]);
4190 }
4191 };
4192 /**
4193 * @param {*} key
4194 * @returns {void}
4195 */
4196 class_1.prototype.delete = function (key) {
4197 var entries = this.__entries__;
4198 var index = getIndex(entries, key);
4199 if (~index) {
4200 entries.splice(index, 1);
4201 }
4202 };
4203 /**
4204 * @param {*} key
4205 * @returns {void}
4206 */
4207 class_1.prototype.has = function (key) {
4208 return !!~getIndex(this.__entries__, key);
4209 };
4210 /**
4211 * @returns {void}
4212 */
4213 class_1.prototype.clear = function () {
4214 this.__entries__.splice(0);
4215 };
4216 /**
4217 * @param {Function} callback
4218 * @param {*} [ctx=null]
4219 * @returns {void}
4220 */
4221 class_1.prototype.forEach = function (callback, ctx) {
4222 if (ctx === void 0) { ctx = null; }
4223 for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {
4224 var entry = _a[_i];
4225 callback.call(ctx, entry[1], entry[0]);
4226 }
4227 };
4228 return class_1;
4229 }());
4230})();
4231
4232/**
4233 * Detects whether window and document objects are available in current environment.
4234 */
4235var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;
4236
4237// Returns global object of a current environment.
4238var global$1 = (function () {
4239 if (typeof global !== 'undefined' && global.Math === Math) {
4240 return global;
4241 }
4242 if (typeof self !== 'undefined' && self.Math === Math) {
4243 return self;
4244 }
4245 if (typeof window !== 'undefined' && window.Math === Math) {
4246 return window;
4247 }
4248 // eslint-disable-next-line no-new-func
4249 return Function('return this')();
4250})();
4251
4252/**
4253 * A shim for the requestAnimationFrame which falls back to the setTimeout if
4254 * first one is not supported.
4255 *
4256 * @returns {number} Requests' identifier.
4257 */
4258var requestAnimationFrame$1 = (function () {
4259 if (typeof requestAnimationFrame === 'function') {
4260 // It's required to use a bounded function because IE sometimes throws
4261 // an "Invalid calling object" error if rAF is invoked without the global
4262 // object on the left hand side.
4263 return requestAnimationFrame.bind(global$1);
4264 }
4265 return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };
4266})();
4267
4268// Defines minimum timeout before adding a trailing call.
4269var trailingTimeout = 2;
4270/**
4271 * Creates a wrapper function which ensures that provided callback will be
4272 * invoked only once during the specified delay period.
4273 *
4274 * @param {Function} callback - Function to be invoked after the delay period.
4275 * @param {number} delay - Delay after which to invoke callback.
4276 * @returns {Function}
4277 */
4278function throttle (callback, delay) {
4279 var leadingCall = false, trailingCall = false, lastCallTime = 0;
4280 /**
4281 * Invokes the original callback function and schedules new invocation if
4282 * the "proxy" was called during current request.
4283 *
4284 * @returns {void}
4285 */
4286 function resolvePending() {
4287 if (leadingCall) {
4288 leadingCall = false;
4289 callback();
4290 }
4291 if (trailingCall) {
4292 proxy();
4293 }
4294 }
4295 /**
4296 * Callback invoked after the specified delay. It will further postpone
4297 * invocation of the original function delegating it to the
4298 * requestAnimationFrame.
4299 *
4300 * @returns {void}
4301 */
4302 function timeoutCallback() {
4303 requestAnimationFrame$1(resolvePending);
4304 }
4305 /**
4306 * Schedules invocation of the original function.
4307 *
4308 * @returns {void}
4309 */
4310 function proxy() {
4311 var timeStamp = Date.now();
4312 if (leadingCall) {
4313 // Reject immediately following calls.
4314 if (timeStamp - lastCallTime < trailingTimeout) {
4315 return;
4316 }
4317 // Schedule new call to be in invoked when the pending one is resolved.
4318 // This is important for "transitions" which never actually start
4319 // immediately so there is a chance that we might miss one if change
4320 // happens amids the pending invocation.
4321 trailingCall = true;
4322 }
4323 else {
4324 leadingCall = true;
4325 trailingCall = false;
4326 setTimeout(timeoutCallback, delay);
4327 }
4328 lastCallTime = timeStamp;
4329 }
4330 return proxy;
4331}
4332
4333// Minimum delay before invoking the update of observers.
4334var REFRESH_DELAY = 20;
4335// A list of substrings of CSS properties used to find transition events that
4336// might affect dimensions of observed elements.
4337var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];
4338// Check if MutationObserver is available.
4339var mutationObserverSupported = typeof MutationObserver !== 'undefined';
4340/**
4341 * Singleton controller class which handles updates of ResizeObserver instances.
4342 */
4343var ResizeObserverController = /** @class */ (function () {
4344 /**
4345 * Creates a new instance of ResizeObserverController.
4346 *
4347 * @private
4348 */
4349 function ResizeObserverController() {
4350 /**
4351 * Indicates whether DOM listeners have been added.
4352 *
4353 * @private {boolean}
4354 */
4355 this.connected_ = false;
4356 /**
4357 * Tells that controller has subscribed for Mutation Events.
4358 *
4359 * @private {boolean}
4360 */
4361 this.mutationEventsAdded_ = false;
4362 /**
4363 * Keeps reference to the instance of MutationObserver.
4364 *
4365 * @private {MutationObserver}
4366 */
4367 this.mutationsObserver_ = null;
4368 /**
4369 * A list of connected observers.
4370 *
4371 * @private {Array<ResizeObserverSPI>}
4372 */
4373 this.observers_ = [];
4374 this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);
4375 this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);
4376 }
4377 /**
4378 * Adds observer to observers list.
4379 *
4380 * @param {ResizeObserverSPI} observer - Observer to be added.
4381 * @returns {void}
4382 */
4383 ResizeObserverController.prototype.addObserver = function (observer) {
4384 if (!~this.observers_.indexOf(observer)) {
4385 this.observers_.push(observer);
4386 }
4387 // Add listeners if they haven't been added yet.
4388 if (!this.connected_) {
4389 this.connect_();
4390 }
4391 };
4392 /**
4393 * Removes observer from observers list.
4394 *
4395 * @param {ResizeObserverSPI} observer - Observer to be removed.
4396 * @returns {void}
4397 */
4398 ResizeObserverController.prototype.removeObserver = function (observer) {
4399 var observers = this.observers_;
4400 var index = observers.indexOf(observer);
4401 // Remove observer if it's present in registry.
4402 if (~index) {
4403 observers.splice(index, 1);
4404 }
4405 // Remove listeners if controller has no connected observers.
4406 if (!observers.length && this.connected_) {
4407 this.disconnect_();
4408 }
4409 };
4410 /**
4411 * Invokes the update of observers. It will continue running updates insofar
4412 * it detects changes.
4413 *
4414 * @returns {void}
4415 */
4416 ResizeObserverController.prototype.refresh = function () {
4417 var changesDetected = this.updateObservers_();
4418 // Continue running updates if changes have been detected as there might
4419 // be future ones caused by CSS transitions.
4420 if (changesDetected) {
4421 this.refresh();
4422 }
4423 };
4424 /**
4425 * Updates every observer from observers list and notifies them of queued
4426 * entries.
4427 *
4428 * @private
4429 * @returns {boolean} Returns "true" if any observer has detected changes in
4430 * dimensions of it's elements.
4431 */
4432 ResizeObserverController.prototype.updateObservers_ = function () {
4433 // Collect observers that have active observations.
4434 var activeObservers = this.observers_.filter(function (observer) {
4435 return observer.gatherActive(), observer.hasActive();
4436 });
4437 // Deliver notifications in a separate cycle in order to avoid any
4438 // collisions between observers, e.g. when multiple instances of
4439 // ResizeObserver are tracking the same element and the callback of one
4440 // of them changes content dimensions of the observed target. Sometimes
4441 // this may result in notifications being blocked for the rest of observers.
4442 activeObservers.forEach(function (observer) { return observer.broadcastActive(); });
4443 return activeObservers.length > 0;
4444 };
4445 /**
4446 * Initializes DOM listeners.
4447 *
4448 * @private
4449 * @returns {void}
4450 */
4451 ResizeObserverController.prototype.connect_ = function () {
4452 // Do nothing if running in a non-browser environment or if listeners
4453 // have been already added.
4454 if (!isBrowser || this.connected_) {
4455 return;
4456 }
4457 // Subscription to the "Transitionend" event is used as a workaround for
4458 // delayed transitions. This way it's possible to capture at least the
4459 // final state of an element.
4460 document.addEventListener('transitionend', this.onTransitionEnd_);
4461 window.addEventListener('resize', this.refresh);
4462 if (mutationObserverSupported) {
4463 this.mutationsObserver_ = new MutationObserver(this.refresh);
4464 this.mutationsObserver_.observe(document, {
4465 attributes: true,
4466 childList: true,
4467 characterData: true,
4468 subtree: true
4469 });
4470 }
4471 else {
4472 document.addEventListener('DOMSubtreeModified', this.refresh);
4473 this.mutationEventsAdded_ = true;
4474 }
4475 this.connected_ = true;
4476 };
4477 /**
4478 * Removes DOM listeners.
4479 *
4480 * @private
4481 * @returns {void}
4482 */
4483 ResizeObserverController.prototype.disconnect_ = function () {
4484 // Do nothing if running in a non-browser environment or if listeners
4485 // have been already removed.
4486 if (!isBrowser || !this.connected_) {
4487 return;
4488 }
4489 document.removeEventListener('transitionend', this.onTransitionEnd_);
4490 window.removeEventListener('resize', this.refresh);
4491 if (this.mutationsObserver_) {
4492 this.mutationsObserver_.disconnect();
4493 }
4494 if (this.mutationEventsAdded_) {
4495 document.removeEventListener('DOMSubtreeModified', this.refresh);
4496 }
4497 this.mutationsObserver_ = null;
4498 this.mutationEventsAdded_ = false;
4499 this.connected_ = false;
4500 };
4501 /**
4502 * "Transitionend" event handler.
4503 *
4504 * @private
4505 * @param {TransitionEvent} event
4506 * @returns {void}
4507 */
4508 ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
4509 var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;
4510 // Detect whether transition may affect dimensions of an element.
4511 var isReflowProperty = transitionKeys.some(function (key) {
4512 return !!~propertyName.indexOf(key);
4513 });
4514 if (isReflowProperty) {
4515 this.refresh();
4516 }
4517 };
4518 /**
4519 * Returns instance of the ResizeObserverController.
4520 *
4521 * @returns {ResizeObserverController}
4522 */
4523 ResizeObserverController.getInstance = function () {
4524 if (!this.instance_) {
4525 this.instance_ = new ResizeObserverController();
4526 }
4527 return this.instance_;
4528 };
4529 /**
4530 * Holds reference to the controller's instance.
4531 *
4532 * @private {ResizeObserverController}
4533 */
4534 ResizeObserverController.instance_ = null;
4535 return ResizeObserverController;
4536}());
4537
4538/**
4539 * Defines non-writable/enumerable properties of the provided target object.
4540 *
4541 * @param {Object} target - Object for which to define properties.
4542 * @param {Object} props - Properties to be defined.
4543 * @returns {Object} Target object.
4544 */
4545var defineConfigurable = (function (target, props) {
4546 for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {
4547 var key = _a[_i];
4548 Object.defineProperty(target, key, {
4549 value: props[key],
4550 enumerable: false,
4551 writable: false,
4552 configurable: true
4553 });
4554 }
4555 return target;
4556});
4557
4558/**
4559 * Returns the global object associated with provided element.
4560 *
4561 * @param {Object} target
4562 * @returns {Object}
4563 */
4564var getWindowOf = (function (target) {
4565 // Assume that the element is an instance of Node, which means that it
4566 // has the "ownerDocument" property from which we can retrieve a
4567 // corresponding global object.
4568 var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;
4569 // Return the local global object if it's not possible extract one from
4570 // provided element.
4571 return ownerGlobal || global$1;
4572});
4573
4574// Placeholder of an empty content rectangle.
4575var emptyRect = createRectInit(0, 0, 0, 0);
4576/**
4577 * Converts provided string to a number.
4578 *
4579 * @param {number|string} value
4580 * @returns {number}
4581 */
4582function toFloat(value) {
4583 return parseFloat(value) || 0;
4584}
4585/**
4586 * Extracts borders size from provided styles.
4587 *
4588 * @param {CSSStyleDeclaration} styles
4589 * @param {...string} positions - Borders positions (top, right, ...)
4590 * @returns {number}
4591 */
4592function getBordersSize(styles) {
4593 var positions = [];
4594 for (var _i = 1; _i < arguments.length; _i++) {
4595 positions[_i - 1] = arguments[_i];
4596 }
4597 return positions.reduce(function (size, position) {
4598 var value = styles['border-' + position + '-width'];
4599 return size + toFloat(value);
4600 }, 0);
4601}
4602/**
4603 * Extracts paddings sizes from provided styles.
4604 *
4605 * @param {CSSStyleDeclaration} styles
4606 * @returns {Object} Paddings box.
4607 */
4608function getPaddings(styles) {
4609 var positions = ['top', 'right', 'bottom', 'left'];
4610 var paddings = {};
4611 for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {
4612 var position = positions_1[_i];
4613 var value = styles['padding-' + position];
4614 paddings[position] = toFloat(value);
4615 }
4616 return paddings;
4617}
4618/**
4619 * Calculates content rectangle of provided SVG element.
4620 *
4621 * @param {SVGGraphicsElement} target - Element content rectangle of which needs
4622 * to be calculated.
4623 * @returns {DOMRectInit}
4624 */
4625function getSVGContentRect(target) {
4626 var bbox = target.getBBox();
4627 return createRectInit(0, 0, bbox.width, bbox.height);
4628}
4629/**
4630 * Calculates content rectangle of provided HTMLElement.
4631 *
4632 * @param {HTMLElement} target - Element for which to calculate the content rectangle.
4633 * @returns {DOMRectInit}
4634 */
4635function getHTMLElementContentRect(target) {
4636 // Client width & height properties can't be
4637 // used exclusively as they provide rounded values.
4638 var clientWidth = target.clientWidth, clientHeight = target.clientHeight;
4639 // By this condition we can catch all non-replaced inline, hidden and
4640 // detached elements. Though elements with width & height properties less
4641 // than 0.5 will be discarded as well.
4642 //
4643 // Without it we would need to implement separate methods for each of
4644 // those cases and it's not possible to perform a precise and performance
4645 // effective test for hidden elements. E.g. even jQuery's ':visible' filter
4646 // gives wrong results for elements with width & height less than 0.5.
4647 if (!clientWidth && !clientHeight) {
4648 return emptyRect;
4649 }
4650 var styles = getWindowOf(target).getComputedStyle(target);
4651 var paddings = getPaddings(styles);
4652 var horizPad = paddings.left + paddings.right;
4653 var vertPad = paddings.top + paddings.bottom;
4654 // Computed styles of width & height are being used because they are the
4655 // only dimensions available to JS that contain non-rounded values. It could
4656 // be possible to utilize the getBoundingClientRect if only it's data wasn't
4657 // affected by CSS transformations let alone paddings, borders and scroll bars.
4658 var width = toFloat(styles.width), height = toFloat(styles.height);
4659 // Width & height include paddings and borders when the 'border-box' box
4660 // model is applied (except for IE).
4661 if (styles.boxSizing === 'border-box') {
4662 // Following conditions are required to handle Internet Explorer which
4663 // doesn't include paddings and borders to computed CSS dimensions.
4664 //
4665 // We can say that if CSS dimensions + paddings are equal to the "client"
4666 // properties then it's either IE, and thus we don't need to subtract
4667 // anything, or an element merely doesn't have paddings/borders styles.
4668 if (Math.round(width + horizPad) !== clientWidth) {
4669 width -= getBordersSize(styles, 'left', 'right') + horizPad;
4670 }
4671 if (Math.round(height + vertPad) !== clientHeight) {
4672 height -= getBordersSize(styles, 'top', 'bottom') + vertPad;
4673 }
4674 }
4675 // Following steps can't be applied to the document's root element as its
4676 // client[Width/Height] properties represent viewport area of the window.
4677 // Besides, it's as well not necessary as the <html> itself neither has
4678 // rendered scroll bars nor it can be clipped.
4679 if (!isDocumentElement(target)) {
4680 // In some browsers (only in Firefox, actually) CSS width & height
4681 // include scroll bars size which can be removed at this step as scroll
4682 // bars are the only difference between rounded dimensions + paddings
4683 // and "client" properties, though that is not always true in Chrome.
4684 var vertScrollbar = Math.round(width + horizPad) - clientWidth;
4685 var horizScrollbar = Math.round(height + vertPad) - clientHeight;
4686 // Chrome has a rather weird rounding of "client" properties.
4687 // E.g. for an element with content width of 314.2px it sometimes gives
4688 // the client width of 315px and for the width of 314.7px it may give
4689 // 314px. And it doesn't happen all the time. So just ignore this delta
4690 // as a non-relevant.
4691 if (Math.abs(vertScrollbar) !== 1) {
4692 width -= vertScrollbar;
4693 }
4694 if (Math.abs(horizScrollbar) !== 1) {
4695 height -= horizScrollbar;
4696 }
4697 }
4698 return createRectInit(paddings.left, paddings.top, width, height);
4699}
4700/**
4701 * Checks whether provided element is an instance of the SVGGraphicsElement.
4702 *
4703 * @param {Element} target - Element to be checked.
4704 * @returns {boolean}
4705 */
4706var isSVGGraphicsElement = (function () {
4707 // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement
4708 // interface.
4709 if (typeof SVGGraphicsElement !== 'undefined') {
4710 return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };
4711 }
4712 // If it's so, then check that element is at least an instance of the
4713 // SVGElement and that it has the "getBBox" method.
4714 // eslint-disable-next-line no-extra-parens
4715 return function (target) { return (target instanceof getWindowOf(target).SVGElement &&
4716 typeof target.getBBox === 'function'); };
4717})();
4718/**
4719 * Checks whether provided element is a document element (<html>).
4720 *
4721 * @param {Element} target - Element to be checked.
4722 * @returns {boolean}
4723 */
4724function isDocumentElement(target) {
4725 return target === getWindowOf(target).document.documentElement;
4726}
4727/**
4728 * Calculates an appropriate content rectangle for provided html or svg element.
4729 *
4730 * @param {Element} target - Element content rectangle of which needs to be calculated.
4731 * @returns {DOMRectInit}
4732 */
4733function getContentRect(target) {
4734 if (!isBrowser) {
4735 return emptyRect;
4736 }
4737 if (isSVGGraphicsElement(target)) {
4738 return getSVGContentRect(target);
4739 }
4740 return getHTMLElementContentRect(target);
4741}
4742/**
4743 * Creates rectangle with an interface of the DOMRectReadOnly.
4744 * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly
4745 *
4746 * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.
4747 * @returns {DOMRectReadOnly}
4748 */
4749function createReadOnlyRect(_a) {
4750 var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
4751 // If DOMRectReadOnly is available use it as a prototype for the rectangle.
4752 var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;
4753 var rect = Object.create(Constr.prototype);
4754 // Rectangle's properties are not writable and non-enumerable.
4755 defineConfigurable(rect, {
4756 x: x, y: y, width: width, height: height,
4757 top: y,
4758 right: x + width,
4759 bottom: height + y,
4760 left: x
4761 });
4762 return rect;
4763}
4764/**
4765 * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.
4766 * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit
4767 *
4768 * @param {number} x - X coordinate.
4769 * @param {number} y - Y coordinate.
4770 * @param {number} width - Rectangle's width.
4771 * @param {number} height - Rectangle's height.
4772 * @returns {DOMRectInit}
4773 */
4774function createRectInit(x, y, width, height) {
4775 return { x: x, y: y, width: width, height: height };
4776}
4777
4778/**
4779 * Class that is responsible for computations of the content rectangle of
4780 * provided DOM element and for keeping track of it's changes.
4781 */
4782var ResizeObservation = /** @class */ (function () {
4783 /**
4784 * Creates an instance of ResizeObservation.
4785 *
4786 * @param {Element} target - Element to be observed.
4787 */
4788 function ResizeObservation(target) {
4789 /**
4790 * Broadcasted width of content rectangle.
4791 *
4792 * @type {number}
4793 */
4794 this.broadcastWidth = 0;
4795 /**
4796 * Broadcasted height of content rectangle.
4797 *
4798 * @type {number}
4799 */
4800 this.broadcastHeight = 0;
4801 /**
4802 * Reference to the last observed content rectangle.
4803 *
4804 * @private {DOMRectInit}
4805 */
4806 this.contentRect_ = createRectInit(0, 0, 0, 0);
4807 this.target = target;
4808 }
4809 /**
4810 * Updates content rectangle and tells whether it's width or height properties
4811 * have changed since the last broadcast.
4812 *
4813 * @returns {boolean}
4814 */
4815 ResizeObservation.prototype.isActive = function () {
4816 var rect = getContentRect(this.target);
4817 this.contentRect_ = rect;
4818 return (rect.width !== this.broadcastWidth ||
4819 rect.height !== this.broadcastHeight);
4820 };
4821 /**
4822 * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data
4823 * from the corresponding properties of the last observed content rectangle.
4824 *
4825 * @returns {DOMRectInit} Last observed content rectangle.
4826 */
4827 ResizeObservation.prototype.broadcastRect = function () {
4828 var rect = this.contentRect_;
4829 this.broadcastWidth = rect.width;
4830 this.broadcastHeight = rect.height;
4831 return rect;
4832 };
4833 return ResizeObservation;
4834}());
4835
4836var ResizeObserverEntry = /** @class */ (function () {
4837 /**
4838 * Creates an instance of ResizeObserverEntry.
4839 *
4840 * @param {Element} target - Element that is being observed.
4841 * @param {DOMRectInit} rectInit - Data of the element's content rectangle.
4842 */
4843 function ResizeObserverEntry(target, rectInit) {
4844 var contentRect = createReadOnlyRect(rectInit);
4845 // According to the specification following properties are not writable
4846 // and are also not enumerable in the native implementation.
4847 //
4848 // Property accessors are not being used as they'd require to define a
4849 // private WeakMap storage which may cause memory leaks in browsers that
4850 // don't support this type of collections.
4851 defineConfigurable(this, { target: target, contentRect: contentRect });
4852 }
4853 return ResizeObserverEntry;
4854}());
4855
4856var ResizeObserverSPI = /** @class */ (function () {
4857 /**
4858 * Creates a new instance of ResizeObserver.
4859 *
4860 * @param {ResizeObserverCallback} callback - Callback function that is invoked
4861 * when one of the observed elements changes it's content dimensions.
4862 * @param {ResizeObserverController} controller - Controller instance which
4863 * is responsible for the updates of observer.
4864 * @param {ResizeObserver} callbackCtx - Reference to the public
4865 * ResizeObserver instance which will be passed to callback function.
4866 */
4867 function ResizeObserverSPI(callback, controller, callbackCtx) {
4868 /**
4869 * Collection of resize observations that have detected changes in dimensions
4870 * of elements.
4871 *
4872 * @private {Array<ResizeObservation>}
4873 */
4874 this.activeObservations_ = [];
4875 /**
4876 * Registry of the ResizeObservation instances.
4877 *
4878 * @private {Map<Element, ResizeObservation>}
4879 */
4880 this.observations_ = new MapShim();
4881 if (typeof callback !== 'function') {
4882 throw new TypeError('The callback provided as parameter 1 is not a function.');
4883 }
4884 this.callback_ = callback;
4885 this.controller_ = controller;
4886 this.callbackCtx_ = callbackCtx;
4887 }
4888 /**
4889 * Starts observing provided element.
4890 *
4891 * @param {Element} target - Element to be observed.
4892 * @returns {void}
4893 */
4894 ResizeObserverSPI.prototype.observe = function (target) {
4895 if (!arguments.length) {
4896 throw new TypeError('1 argument required, but only 0 present.');
4897 }
4898 // Do nothing if current environment doesn't have the Element interface.
4899 if (typeof Element === 'undefined' || !(Element instanceof Object)) {
4900 return;
4901 }
4902 if (!(target instanceof getWindowOf(target).Element)) {
4903 throw new TypeError('parameter 1 is not of type "Element".');
4904 }
4905 var observations = this.observations_;
4906 // Do nothing if element is already being observed.
4907 if (observations.has(target)) {
4908 return;
4909 }
4910 observations.set(target, new ResizeObservation(target));
4911 this.controller_.addObserver(this);
4912 // Force the update of observations.
4913 this.controller_.refresh();
4914 };
4915 /**
4916 * Stops observing provided element.
4917 *
4918 * @param {Element} target - Element to stop observing.
4919 * @returns {void}
4920 */
4921 ResizeObserverSPI.prototype.unobserve = function (target) {
4922 if (!arguments.length) {
4923 throw new TypeError('1 argument required, but only 0 present.');
4924 }
4925 // Do nothing if current environment doesn't have the Element interface.
4926 if (typeof Element === 'undefined' || !(Element instanceof Object)) {
4927 return;
4928 }
4929 if (!(target instanceof getWindowOf(target).Element)) {
4930 throw new TypeError('parameter 1 is not of type "Element".');
4931 }
4932 var observations = this.observations_;
4933 // Do nothing if element is not being observed.
4934 if (!observations.has(target)) {
4935 return;
4936 }
4937 observations.delete(target);
4938 if (!observations.size) {
4939 this.controller_.removeObserver(this);
4940 }
4941 };
4942 /**
4943 * Stops observing all elements.
4944 *
4945 * @returns {void}
4946 */
4947 ResizeObserverSPI.prototype.disconnect = function () {
4948 this.clearActive();
4949 this.observations_.clear();
4950 this.controller_.removeObserver(this);
4951 };
4952 /**
4953 * Collects observation instances the associated element of which has changed
4954 * it's content rectangle.
4955 *
4956 * @returns {void}
4957 */
4958 ResizeObserverSPI.prototype.gatherActive = function () {
4959 var _this = this;
4960 this.clearActive();
4961 this.observations_.forEach(function (observation) {
4962 if (observation.isActive()) {
4963 _this.activeObservations_.push(observation);
4964 }
4965 });
4966 };
4967 /**
4968 * Invokes initial callback function with a list of ResizeObserverEntry
4969 * instances collected from active resize observations.
4970 *
4971 * @returns {void}
4972 */
4973 ResizeObserverSPI.prototype.broadcastActive = function () {
4974 // Do nothing if observer doesn't have active observations.
4975 if (!this.hasActive()) {
4976 return;
4977 }
4978 var ctx = this.callbackCtx_;
4979 // Create ResizeObserverEntry instance for every active observation.
4980 var entries = this.activeObservations_.map(function (observation) {
4981 return new ResizeObserverEntry(observation.target, observation.broadcastRect());
4982 });
4983 this.callback_.call(ctx, entries, ctx);
4984 this.clearActive();
4985 };
4986 /**
4987 * Clears the collection of active observations.
4988 *
4989 * @returns {void}
4990 */
4991 ResizeObserverSPI.prototype.clearActive = function () {
4992 this.activeObservations_.splice(0);
4993 };
4994 /**
4995 * Tells whether observer has active observations.
4996 *
4997 * @returns {boolean}
4998 */
4999 ResizeObserverSPI.prototype.hasActive = function () {
5000 return this.activeObservations_.length > 0;
5001 };
5002 return ResizeObserverSPI;
5003}());
5004
5005// Registry of internal observers. If WeakMap is not available use current shim
5006// for the Map collection as it has all required methods and because WeakMap
5007// can't be fully polyfilled anyway.
5008var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();
5009/**
5010 * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation
5011 * exposing only those methods and properties that are defined in the spec.
5012 */
5013var ResizeObserver = /** @class */ (function () {
5014 /**
5015 * Creates a new instance of ResizeObserver.
5016 *
5017 * @param {ResizeObserverCallback} callback - Callback that is invoked when
5018 * dimensions of the observed elements change.
5019 */
5020 function ResizeObserver(callback) {
5021 if (!(this instanceof ResizeObserver)) {
5022 throw new TypeError('Cannot call a class as a function.');
5023 }
5024 if (!arguments.length) {
5025 throw new TypeError('1 argument required, but only 0 present.');
5026 }
5027 var controller = ResizeObserverController.getInstance();
5028 var observer = new ResizeObserverSPI(callback, controller, this);
5029 observers.set(this, observer);
5030 }
5031 return ResizeObserver;
5032}());
5033// Expose public methods of ResizeObserver.
5034[
5035 'observe',
5036 'unobserve',
5037 'disconnect'
5038].forEach(function (method) {
5039 ResizeObserver.prototype[method] = function () {
5040 var _a;
5041 return (_a = observers.get(this))[method].apply(_a, arguments);
5042 };
5043});
5044
5045var index = (function () {
5046 // Export existing implementation if available.
5047 if (typeof global$1.ResizeObserver !== 'undefined') {
5048 return global$1.ResizeObserver;
5049 }
5050 return ResizeObserver;
5051})();
5052
5053/* harmony default export */ __webpack_exports__["default"] = (index);
5054
5055/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(122)))
5056
5057/***/ }),
5058/* 59 */
5059/***/ (function(module, exports, __webpack_require__) {
5060
5061"use strict";
5062
5063
5064exports.__esModule = true;
5065
5066var _extends2 = __webpack_require__(1);
5067
5068var _extends3 = _interopRequireDefault(_extends2);
5069
5070var _objectWithoutProperties2 = __webpack_require__(8);
5071
5072var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
5073
5074var _configProvider = __webpack_require__(9);
5075
5076var _configProvider2 = _interopRequireDefault(_configProvider);
5077
5078var _balloon = __webpack_require__(276);
5079
5080var _balloon2 = _interopRequireDefault(_balloon);
5081
5082var _tooltip = __webpack_require__(285);
5083
5084var _tooltip2 = _interopRequireDefault(_tooltip);
5085
5086var _inner = __webpack_require__(86);
5087
5088var _inner2 = _interopRequireDefault(_inner);
5089
5090function _interopRequireDefault(obj) {
5091 return obj && obj.__esModule ? obj : { default: obj };
5092}
5093
5094_balloon2.default.Tooltip = _configProvider2.default.config(_tooltip2.default, {
5095 transform: /* istanbul ignore next */function transform(props, deprecated) {
5096 if ('text' in props) {
5097 deprecated('text', 'children', 'Tooltip');
5098 var _props = props,
5099 text = _props.text,
5100 others = (0, _objectWithoutProperties3.default)(_props, ['text']);
5101
5102 props = (0, _extends3.default)({ children: text }, others);
5103 }
5104
5105 return props;
5106 }
5107});
5108_balloon2.default.Inner = _inner2.default;
5109
5110exports.default = _configProvider2.default.config(_balloon2.default, {
5111 transform: /* istanbul ignore next */function transform(props, deprecated) {
5112 if (props.alignment) {
5113 deprecated('alignment', 'alignEdge', 'Balloon');
5114 var _props2 = props,
5115 alignment = _props2.alignment,
5116 others = (0, _objectWithoutProperties3.default)(_props2, ['alignment']);
5117
5118 props = (0, _extends3.default)({ alignEdge: alignment === 'edge' }, others);
5119 }
5120 if (props.onCloseClick) {
5121 deprecated('onCloseClick', 'onVisibleChange(visible, [type = "closeClick"])', 'Balloon');
5122
5123 var _props3 = props,
5124 onCloseClick = _props3.onCloseClick,
5125 onVisibleChange = _props3.onVisibleChange,
5126 _others = (0, _objectWithoutProperties3.default)(_props3, ['onCloseClick', 'onVisibleChange']);
5127
5128 var newOnVisibleChange = function newOnVisibleChange(visible, type) {
5129 if (type === 'closeClick') {
5130 onCloseClick();
5131 }
5132 if (onVisibleChange) {
5133 onVisibleChange(visible, type);
5134 }
5135 };
5136 props = (0, _extends3.default)({ onVisibleChange: newOnVisibleChange }, _others);
5137 }
5138
5139 return props;
5140 }
5141});
5142module.exports = exports['default'];
5143
5144/***/ }),
5145/* 60 */
5146/***/ (function(module, exports, __webpack_require__) {
5147
5148"use strict";
5149
5150
5151exports.__esModule = true;
5152exports.default = findNode;
5153
5154var _reactDom = __webpack_require__(12);
5155
5156function findNode(target, param) {
5157 if (!target) {
5158 return null;
5159 }
5160
5161 if (typeof target === 'string') {
5162 return document.getElementById(target);
5163 }
5164
5165 if (typeof target === 'function') {
5166 try {
5167 target = target(param);
5168 } catch (err) {
5169 target = null;
5170 }
5171 }
5172
5173 if (!target) {
5174 return null;
5175 }
5176
5177 try {
5178 return (0, _reactDom.findDOMNode)(target);
5179 } catch (err) {
5180 return target;
5181 }
5182}
5183module.exports = exports['default'];
5184
5185/***/ }),
5186/* 61 */
5187/***/ (function(module, exports) {
5188
5189function _extends() {
5190 module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
5191 for (var i = 1; i < arguments.length; i++) {
5192 var source = arguments[i];
5193
5194 for (var key in source) {
5195 if (Object.prototype.hasOwnProperty.call(source, key)) {
5196 target[key] = source[key];
5197 }
5198 }
5199 }
5200
5201 return target;
5202 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
5203 return _extends.apply(this, arguments);
5204}
5205
5206module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
5207
5208/***/ }),
5209/* 62 */
5210/***/ (function(module, exports, __webpack_require__) {
5211
5212"use strict";
5213
5214
5215exports.__esModule = true;
5216
5217var _objectWithoutProperties2 = __webpack_require__(8);
5218
5219var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
5220
5221var _typeof2 = __webpack_require__(14);
5222
5223var _typeof3 = _interopRequireDefault(_typeof2);
5224
5225var _extends2 = __webpack_require__(1);
5226
5227var _extends3 = _interopRequireDefault(_extends2);
5228
5229exports.isSingle = isSingle;
5230exports.isNull = isNull;
5231exports.escapeForReg = escapeForReg;
5232exports.filter = filter;
5233exports.loopMap = loopMap;
5234exports.parseDataSourceFromChildren = parseDataSourceFromChildren;
5235exports.normalizeDataSource = normalizeDataSource;
5236exports.flattingDataSource = flattingDataSource;
5237exports.filterDataSource = filterDataSource;
5238exports.getValueDataSource = getValueDataSource;
5239exports.valueToSelectKey = valueToSelectKey;
5240
5241var _react = __webpack_require__(0);
5242
5243function _interopRequireDefault(obj) {
5244 return obj && obj.__esModule ? obj : { default: obj };
5245}
5246
5247/**
5248 * util module
5249 */
5250
5251/**
5252 * 是否是单选模式
5253 * @param {string} mode
5254 * @return {boolean} is single mode
5255 */
5256function isSingle(mode) {
5257 return !mode || mode === 'single';
5258}
5259
5260/**
5261 * 在 Select 中,认为 null 和 undefined 都是空值
5262 * @param {*} n any object
5263 * @return {boolean}
5264 */
5265function isNull(n) {
5266 return n === null || n === undefined;
5267}
5268
5269/**
5270 * 将字符串中的正则表达式关键字符添加转义
5271 * @param {string} str
5272 * @return {string}
5273 */
5274function escapeForReg(str) {
5275 return str.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
5276}
5277
5278/**
5279 * filter by key
5280 * @param {string} key filter key
5281 * @param {object} item item object
5282 * @return {boolean} it's filtered
5283 */
5284function filter(key, item) {
5285 var _key = escapeForReg('' + key);
5286 var regExp = new RegExp('(' + _key + ')', 'ig');
5287
5288 return regExp.test('' + item.value) || regExp.test('' + item.label);
5289}
5290
5291/**
5292 * loop map
5293 * @param {Array} dataSource
5294 * @param {function} callback
5295 * @return {Array}
5296 * ----
5297 * @callback ~loopCallback
5298 * @param {object} option
5299 */
5300function loopMap(dataSource, callback) {
5301 var result = [];
5302 dataSource.forEach(function (option) {
5303 if (option.children) {
5304 var children = loopMap(option.children, callback);
5305 result.push((0, _extends3.default)({}, option, {
5306 children: children
5307 }));
5308 } else {
5309 // eslint-disable-next-line callback-return
5310 var tmp = callback(option);
5311 tmp && result.push(tmp);
5312 }
5313 });
5314
5315 return result;
5316}
5317
5318/**
5319 * Parse dataSource from MenuItem
5320 * @static
5321 * @param {Array<Element>} children
5322 * @param {number} [deep=0] recursion deep level
5323 */
5324function parseDataSourceFromChildren(children) {
5325 var deep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
5326
5327 var source = [];
5328
5329 _react.Children.forEach(children, function (child, index) {
5330 if (!child) {
5331 return;
5332 }
5333 var type = child.type,
5334 childProps = child.props;
5335
5336 var item2 = { deep: deep };
5337
5338 var isOption = false;
5339 var isOptionGroup = false;
5340
5341 if (typeof type === 'function' && type._typeMark === 'next_select_option' || type === 'option') {
5342 isOption = true;
5343 }
5344 if (typeof type === 'function' && type._typeMark === 'next_select_option_group' || type === 'optgroup') {
5345 isOptionGroup = true;
5346 }
5347
5348 if (!isOption && !isOptionGroup) {
5349 return;
5350 }
5351
5352 if (isOption) {
5353 // option
5354 // If children is a string, it can be used as value
5355 var isStrChild = typeof childProps.children === 'string';
5356 // value > key > string children > index
5357 item2.value = 'value' in childProps ? childProps.value : 'key' in childProps ? childProps.key : isStrChild ? childProps.children : '' + index;
5358
5359 item2.label = childProps.label || childProps.children || '' + item2.value;
5360 if ('title' in childProps) {
5361 item2.title = childProps.title;
5362 }
5363 childProps.disabled === true && (item2.disabled = true);
5364 // You can put your extra data here, and use it in `itemRender` or `labelRender`
5365 (0, _extends3.default)(item2, childProps['data-extra'] || {});
5366 } else if (isOptionGroup && deep < 1) {
5367 // option group
5368 item2.label = childProps.label || 'Group';
5369 // parse children nodes
5370 item2.children = parseDataSourceFromChildren(childProps.children, deep + 1);
5371 }
5372
5373 source.push(item2);
5374 });
5375
5376 return source;
5377}
5378
5379/**
5380 * Normalize dataSource
5381 * @static
5382 * @param {Array} dataSource
5383 * @param {number} [deep=0] recursion deep level
5384 * ----
5385 * value priority: value > 'index'
5386 * label priority: label > 'value' > 'index'
5387 * disabled: disabled === true
5388 */
5389function normalizeDataSource(dataSource) {
5390 var deep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
5391 var showDataSourceChildren = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
5392
5393 var source = [];
5394
5395 dataSource.forEach(function (item, index) {
5396 // enable array of basic type
5397 if (/string|boolean|number/.test(typeof item === 'undefined' ? 'undefined' : (0, _typeof3.default)(item)) || item === null || item === undefined) {
5398 item = { label: '' + item, value: item };
5399 }
5400
5401 // filter off addon item
5402 if (item && item.__isAddon) {
5403 return;
5404 }
5405
5406 var item2 = { deep: deep };
5407 // deep < 1: only 2 level allowed
5408 if (Array.isArray(item.children) && deep < 1 && showDataSourceChildren) {
5409 // handle group
5410 item2.label = item.label || item.value || 'Group ' + index;
5411 // parse children
5412 item2.children = normalizeDataSource(item.children, deep + 1);
5413 } else {
5414 var _item = item,
5415 value = _item.value,
5416 label = _item.label,
5417 disabled = _item.disabled,
5418 title = _item.title,
5419 others = (0, _objectWithoutProperties3.default)(_item, ['value', 'label', 'disabled', 'title']);
5420 // undefined 认为是没传取 index 值替代
5421
5422 item2.value = typeof value !== 'undefined' ? value : '' + index;
5423 item2.label = label || '' + item2.value;
5424 if ('title' in item) {
5425 item2.title = title;
5426 }
5427 disabled === true && (item2.disabled = true);
5428
5429 (0, _extends3.default)(item2, others);
5430 }
5431
5432 source.push(item2);
5433 });
5434
5435 return source;
5436}
5437
5438/**
5439 * Get flatten dataSource
5440 * @static
5441 * @param {Array} dataSource structured dataSource
5442 * @return {Array}
5443 */
5444function flattingDataSource(dataSource) {
5445 var source = [];
5446
5447 dataSource.forEach(function (item) {
5448 if (Array.isArray(item.children)) {
5449 source.push.apply(source, flattingDataSource(item.children));
5450 } else {
5451 source.push(item);
5452 }
5453 });
5454
5455 return source;
5456}
5457
5458function filterDataSource(dataSource, key, filter, addonKey) {
5459 if (!Array.isArray(dataSource)) {
5460 return [];
5461 }
5462 if (typeof key === 'undefined' || key === null) {
5463 return [].concat(dataSource);
5464 }
5465
5466 var addKey = true;
5467 var menuDataSource = loopMap(dataSource, function (option) {
5468 if (key === '' + option.value) {
5469 addKey = false;
5470 }
5471 return filter(key, option) && !option.__isAddon && option;
5472 });
5473
5474 // if key not in menuDataSource, add key to dataSource
5475 if (addonKey && key && addKey) {
5476 menuDataSource.unshift({
5477 value: key,
5478 label: key,
5479 __isAddon: true
5480 });
5481 }
5482
5483 return menuDataSource;
5484}
5485
5486function getKeyItemByValue(value, valueMap) {
5487 var item = void 0;
5488
5489 if ((typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value)) === 'object') {
5490 if (value.hasOwnProperty('value')) {
5491 item = value;
5492 } else {
5493 item = (0, _extends3.default)({
5494 value: ''
5495 }, value);
5496 }
5497 } else {
5498 item = valueMap['' + value] || {
5499 value: value,
5500 label: value
5501 };
5502 }
5503
5504 return item;
5505}
5506
5507/**
5508 * compute valueDataSource by new value
5509 * @param {Array/String} value 数据
5510 * @param {Object} mapValueDS 上个value的缓存数据 value => {value,label} 的映射关系表
5511 * @param {*} mapMenuDS 通过 dataSource 建立 value => {value,label} 的映射关系表
5512 * @returns {Object} value: [value]; valueDS: [{value,label}]; mapValueDS: {value: {value,label}}
5513 */
5514function getValueDataSource(value, mapValueDS, mapMenuDS) {
5515 if (isNull(value)) {
5516 return {};
5517 }
5518
5519 var newValue = [];
5520 var newValueDS = [];
5521 var newMapValueDS = {};
5522 var _newMapDS = (0, _extends3.default)({}, mapValueDS, mapMenuDS);
5523
5524 if (Array.isArray(value)) {
5525 value.forEach(function (v) {
5526 var item = getKeyItemByValue(v, _newMapDS);
5527
5528 newValueDS.push(item);
5529 newMapValueDS['' + item.value] = item;
5530 newValue.push(item.value);
5531 });
5532
5533 return {
5534 value: newValue, // [value]
5535 valueDS: newValueDS, // [{value,label}]
5536 mapValueDS: newMapValueDS // {value: {value,label}}
5537 };
5538 } else {
5539 var _mapValueDS;
5540
5541 var item = getKeyItemByValue(value, _newMapDS);
5542
5543 return {
5544 value: item.value,
5545 valueDS: item,
5546 mapValueDS: (_mapValueDS = {}, _mapValueDS['' + item.value] = item, _mapValueDS)
5547 };
5548 }
5549}
5550
5551/**
5552 * Get flatten dataSource
5553 * @static
5554 * @param {any} value structured dataSource
5555 * @return {String}
5556 */
5557function valueToSelectKey(value) {
5558 var val = void 0;
5559 if ((typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value)) === 'object' && value.hasOwnProperty('value')) {
5560 val = value.value;
5561 } else {
5562 val = value;
5563 }
5564 return '' + val;
5565}
5566
5567/**
5568 * UP Down 改进双向链表方法
5569 */
5570// function DoubleLinkList(element){
5571// this.prev = null;
5572// this.next = null;
5573// this.element = element;
5574// }
5575//
5576// export function mapDoubleLinkList(dataSource){
5577//
5578// const mapDS = {};
5579// let doubleLink = null;
5580//
5581// let head = null;
5582// let tail = null;
5583//
5584// function append(element) {
5585// if (!doubleLink) {
5586// doubleLink = new DoubleLinkList(element);
5587// head = doubleLink;
5588// tail = doubleLink;
5589// return doubleLink;
5590// }
5591//
5592// const node = new DoubleLinkList(element);
5593// tail.next = node;
5594// node.prev = tail;
5595// tail = node;
5596//
5597// return tail;
5598// }
5599//
5600// dataSource.forEach((item => {
5601// if (item.disabled) {
5602// return;
5603// }
5604// mapDS[`${item.value}`] = append(item);
5605// }));
5606//
5607// return mapDS;
5608// }
5609//
5610
5611/***/ }),
5612/* 63 */
5613/***/ (function(module, exports, __webpack_require__) {
5614
5615"use strict";
5616
5617
5618exports.__esModule = true;
5619exports.default = undefined;
5620
5621var _extends2 = __webpack_require__(1);
5622
5623var _extends3 = _interopRequireDefault(_extends2);
5624
5625var _typeof2 = __webpack_require__(14);
5626
5627var _typeof3 = _interopRequireDefault(_typeof2);
5628
5629var _objectWithoutProperties2 = __webpack_require__(8);
5630
5631var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
5632
5633var _classCallCheck2 = __webpack_require__(2);
5634
5635var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
5636
5637var _possibleConstructorReturn2 = __webpack_require__(3);
5638
5639var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
5640
5641var _inherits2 = __webpack_require__(4);
5642
5643var _inherits3 = _interopRequireDefault(_inherits2);
5644
5645var _class, _temp2;
5646
5647var _react = __webpack_require__(0);
5648
5649var _react2 = _interopRequireDefault(_react);
5650
5651var _propTypes = __webpack_require__(5);
5652
5653var _propTypes2 = _interopRequireDefault(_propTypes);
5654
5655var _classnames2 = __webpack_require__(7);
5656
5657var _classnames3 = _interopRequireDefault(_classnames2);
5658
5659var _row = __webpack_require__(64);
5660
5661var _row2 = _interopRequireDefault(_row);
5662
5663var _cell = __webpack_require__(65);
5664
5665var _cell2 = _interopRequireDefault(_cell);
5666
5667var _util = __webpack_require__(6);
5668
5669function _interopRequireDefault(obj) {
5670 return obj && obj.__esModule ? obj : { default: obj };
5671}
5672
5673var noop = function noop() {};
5674
5675var Body = (_temp2 = _class = function (_React$Component) {
5676 (0, _inherits3.default)(Body, _React$Component);
5677
5678 function Body() {
5679 var _temp, _this, _ret;
5680
5681 (0, _classCallCheck3.default)(this, Body);
5682
5683 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
5684 args[_key] = arguments[_key];
5685 }
5686
5687 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.getRowRef = function (i, row) {
5688 _this.props.rowRef(i, row);
5689 }, _this.onRowClick = function (record, index, e) {
5690 _this.props.onRowClick(record, index, e);
5691 }, _this.onRowMouseEnter = function (record, index, e) {
5692 _this.props.onRowMouseEnter(record, index, e);
5693 }, _this.onRowMouseLeave = function (record, index, e) {
5694 _this.props.onRowMouseLeave(record, index, e);
5695 }, _this.onBodyMouseOver = function (e) {
5696 _this.props.onBodyMouseOver(e);
5697 }, _this.onBodyMouseOut = function (e) {
5698 _this.props.onBodyMouseOut(e);
5699 }, _this.getEmptyNode = function (ref) {
5700 _this.emptyNode = ref;
5701 }, _this.setEmptyDomStyle = function () {
5702 var tableEl = _this.props.tableEl;
5703 // getboundingclientRect 获取的是除 margin 之外的内容区,可能带小数点,不四舍五入
5704
5705 var borderLeftWidth = _util.dom.getStyle(tableEl, 'borderLeftWidth');
5706 var tableWidth = tableEl && tableEl.getBoundingClientRect().width;
5707 var totalWidth = tableWidth - borderLeftWidth - 1 || '100%';
5708
5709 _util.dom.setStyle(_this.emptyNode, { width: totalWidth });
5710 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
5711 }
5712
5713 Body.prototype.componentDidMount = function componentDidMount() {
5714 _util.events.on(window, 'resize', this.setEmptyDomStyle);
5715 };
5716
5717 Body.prototype.componentDidUpdate = function componentDidUpdate() {
5718 this.setEmptyDomStyle();
5719 };
5720
5721 Body.prototype.componentWillUnmount = function componentWillUnmount() {
5722 _util.events.off(window, 'resize', this.setEmptyDomStyle);
5723 };
5724
5725 Body.prototype.render = function render() {
5726 var _this2 = this;
5727
5728 /*eslint-disable no-unused-vars */
5729 var _props = this.props,
5730 prefix = _props.prefix,
5731 className = _props.className,
5732 children = _props.children,
5733 Tag = _props.component,
5734 colGroup = _props.colGroup,
5735 loading = _props.loading,
5736 emptyContent = _props.emptyContent,
5737 components = _props.components,
5738 getCellProps = _props.getCellProps,
5739 primaryKey = _props.primaryKey,
5740 getRowProps = _props.getRowProps,
5741 dataSource = _props.dataSource,
5742 cellRef = _props.cellRef,
5743 columns = _props.columns,
5744 rowRef = _props.rowRef,
5745 onRowClick = _props.onRowClick,
5746 onRowMouseEnter = _props.onRowMouseEnter,
5747 onRowMouseLeave = _props.onRowMouseLeave,
5748 onBodyMouseOver = _props.onBodyMouseOver,
5749 onBodyMouseOut = _props.onBodyMouseOut,
5750 locale = _props.locale,
5751 pure = _props.pure,
5752 expandedIndexSimulate = _props.expandedIndexSimulate,
5753 tableEl = _props.tableEl,
5754 rtl = _props.rtl,
5755 crossline = _props.crossline,
5756 tableWidth = _props.tableWidth,
5757 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']);
5758
5759 var totalWidth = +(tableEl && tableEl.clientWidth) - 1 || '100%';
5760
5761 var _components$Row = components.Row,
5762 Row = _components$Row === undefined ? _row2.default : _components$Row,
5763 _components$Cell = components.Cell,
5764 Cell = _components$Cell === undefined ? _cell2.default : _components$Cell;
5765
5766 var empty = loading ? _react2.default.createElement('span', null, '\xA0') : emptyContent || locale.empty;
5767 var rows = _react2.default.createElement('tr', null, _react2.default.createElement('td', { colSpan: columns.length }, _react2.default.createElement('div', {
5768 ref: this.getEmptyNode,
5769 className: prefix + 'table-empty',
5770 style: { position: 'sticky', left: 0, overflow: 'hidden', width: totalWidth }
5771 }, empty)));
5772 if (Tag === 'div') {
5773 rows = _react2.default.createElement('table', { role: 'table' }, _react2.default.createElement('tbody', null, rows));
5774 }
5775 if (dataSource.length) {
5776 rows = dataSource.map(function (record, index) {
5777 var _classnames;
5778
5779 var rowProps = {};
5780 // record may be a string
5781 var rowIndex = (typeof record === 'undefined' ? 'undefined' : (0, _typeof3.default)(record)) === 'object' && '__rowIndex' in record ? record.__rowIndex : index;
5782
5783 if (expandedIndexSimulate) {
5784 rowProps = record.__expanded ? {} : getRowProps(record, index / 2);
5785 } else {
5786 rowProps = getRowProps(record, rowIndex);
5787 }
5788
5789 rowProps = rowProps || {};
5790
5791 var rowClass = rowProps.className;
5792 var className = (0, _classnames3.default)((_classnames = {
5793 first: index === 0,
5794 last: index === dataSource.length - 1
5795 }, _classnames[rowClass] = rowClass, _classnames));
5796 var expanded = record.__expanded ? 'expanded' : '';
5797 return _react2.default.createElement(Row, (0, _extends3.default)({
5798 key: '' + (record[primaryKey] || (record[primaryKey] === 0 ? 0 : rowIndex)) + expanded
5799 }, rowProps, {
5800 ref: _this2.getRowRef.bind(_this2, expanded ? rowIndex + '_expanded' : rowIndex),
5801 colGroup: colGroup,
5802 rtl: rtl,
5803 columns: columns,
5804 primaryKey: primaryKey,
5805 record: record,
5806 rowIndex: rowIndex,
5807 __rowIndex: rowIndex,
5808 prefix: prefix,
5809 pure: pure,
5810 cellRef: cellRef,
5811 getCellProps: getCellProps,
5812 className: className,
5813 Cell: Cell,
5814 tableEl: tableEl,
5815 onClick: _this2.onRowClick,
5816 locale: locale,
5817 onMouseEnter: _this2.onRowMouseEnter,
5818 onMouseLeave: _this2.onRowMouseLeave
5819 }));
5820 });
5821 } else {
5822 // 异步设置空数据时的宽度
5823 this.setEmptyDomStyle();
5824 }
5825 var event = crossline ? {
5826 onMouseOver: this.onBodyMouseOver,
5827 onMouseOut: this.onBodyMouseOut
5828 } : {};
5829 return _react2.default.createElement(Tag, (0, _extends3.default)({ className: className }, others, event), rows, children);
5830 };
5831
5832 return Body;
5833}(_react2.default.Component), _class.propTypes = {
5834 loading: _propTypes2.default.bool,
5835 emptyContent: _propTypes2.default.any,
5836 tableEl: _propTypes2.default.any,
5837 prefix: _propTypes2.default.string,
5838 pure: _propTypes2.default.bool,
5839 components: _propTypes2.default.object,
5840 getCellProps: _propTypes2.default.func,
5841 cellRef: _propTypes2.default.func,
5842 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
5843 getRowProps: _propTypes2.default.func,
5844 rowRef: _propTypes2.default.func,
5845 dataSource: _propTypes2.default.array,
5846 children: _propTypes2.default.any,
5847 className: _propTypes2.default.string,
5848 component: _propTypes2.default.string,
5849 colGroup: _propTypes2.default.object,
5850 columns: _propTypes2.default.array,
5851 onRowClick: _propTypes2.default.func,
5852 onRowMouseEnter: _propTypes2.default.func,
5853 onRowMouseLeave: _propTypes2.default.func,
5854 onBodyMouseOver: _propTypes2.default.func,
5855 onBodyMouseOut: _propTypes2.default.func,
5856 locale: _propTypes2.default.object,
5857 crossline: _propTypes2.default.bool,
5858 tableWidth: _propTypes2.default.number
5859}, _class.defaultProps = {
5860 loading: false,
5861 prefix: 'next-',
5862 components: {},
5863 getCellProps: noop,
5864 cellRef: noop,
5865 primaryKey: 'id',
5866 getRowProps: noop,
5867 rowRef: noop,
5868 dataSource: [],
5869 component: 'tbody',
5870 columns: []
5871}, _temp2);
5872Body.displayName = 'Body';
5873exports.default = Body;
5874module.exports = exports['default'];
5875
5876/***/ }),
5877/* 64 */
5878/***/ (function(module, exports, __webpack_require__) {
5879
5880"use strict";
5881
5882
5883exports.__esModule = true;
5884exports.default = undefined;
5885
5886var _extends2 = __webpack_require__(1);
5887
5888var _extends3 = _interopRequireDefault(_extends2);
5889
5890var _objectWithoutProperties2 = __webpack_require__(8);
5891
5892var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
5893
5894var _classCallCheck2 = __webpack_require__(2);
5895
5896var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
5897
5898var _possibleConstructorReturn2 = __webpack_require__(3);
5899
5900var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
5901
5902var _inherits2 = __webpack_require__(4);
5903
5904var _inherits3 = _interopRequireDefault(_inherits2);
5905
5906var _class, _temp2;
5907
5908var _react = __webpack_require__(0);
5909
5910var _react2 = _interopRequireDefault(_react);
5911
5912var _reactDom = __webpack_require__(12);
5913
5914var _propTypes = __webpack_require__(5);
5915
5916var _propTypes2 = _interopRequireDefault(_propTypes);
5917
5918var _classnames3 = __webpack_require__(7);
5919
5920var _classnames4 = _interopRequireDefault(_classnames3);
5921
5922var _util = __webpack_require__(6);
5923
5924var _util2 = __webpack_require__(21);
5925
5926function _interopRequireDefault(obj) {
5927 return obj && obj.__esModule ? obj : { default: obj };
5928}
5929
5930var noop = function noop() {};
5931
5932var Row = (_temp2 = _class = function (_React$Component) {
5933 (0, _inherits3.default)(Row, _React$Component);
5934
5935 function Row() {
5936 var _temp, _this, _ret;
5937
5938 (0, _classCallCheck3.default)(this, Row);
5939
5940 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
5941 args[_key] = arguments[_key];
5942 }
5943
5944 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onClick = function (e) {
5945 var _this$props = _this.props,
5946 record = _this$props.record,
5947 rowIndex = _this$props.rowIndex;
5948
5949 _this.props.onClick(record, rowIndex, e);
5950 }, _this.onMouseEnter = function (e) {
5951 var _this$props2 = _this.props,
5952 record = _this$props2.record,
5953 rowIndex = _this$props2.rowIndex,
5954 __rowIndex = _this$props2.__rowIndex;
5955
5956 var row = __rowIndex || rowIndex;
5957 _this.onRowHover(record, row, true, e);
5958 }, _this.onMouseLeave = function (e) {
5959 var _this$props3 = _this.props,
5960 record = _this$props3.record,
5961 rowIndex = _this$props3.rowIndex,
5962 __rowIndex = _this$props3.__rowIndex;
5963
5964 var row = __rowIndex || rowIndex;
5965 _this.onRowHover(record, row, false, e);
5966 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
5967 }
5968
5969 Row.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {
5970 if (nextProps.pure) {
5971 var isEqual = _util.obj.shallowEqual(this.props, nextProps);
5972 return !isEqual;
5973 }
5974
5975 return true;
5976 };
5977
5978 Row.prototype.onRowHover = function onRowHover(record, index, isEnter, e) {
5979 var _props = this.props,
5980 onMouseEnter = _props.onMouseEnter,
5981 onMouseLeave = _props.onMouseLeave,
5982 currentRow = (0, _reactDom.findDOMNode)(this);
5983
5984 if (isEnter) {
5985 onMouseEnter(record, index, e);
5986 currentRow && _util.dom.addClass(currentRow, 'hovered');
5987 } else {
5988 onMouseLeave(record, index, e);
5989 currentRow && _util.dom.removeClass(currentRow, 'hovered');
5990 }
5991 };
5992
5993 Row.prototype.renderCells = function renderCells(record, rowIndex) {
5994 var _this2 = this;
5995
5996 var _props2 = this.props,
5997 Cell = _props2.Cell,
5998 columns = _props2.columns,
5999 getCellProps = _props2.getCellProps,
6000 cellRef = _props2.cellRef,
6001 prefix = _props2.prefix,
6002 primaryKey = _props2.primaryKey,
6003 __rowIndex = _props2.__rowIndex,
6004 pure = _props2.pure,
6005 locale = _props2.locale,
6006 rtl = _props2.rtl;
6007
6008 // use params first, it's for list
6009
6010 rowIndex = rowIndex !== undefined ? rowIndex : this.props.rowIndex;
6011
6012 var lockType = this.context.lockType;
6013
6014 return columns.map(function (child, index) {
6015 var _classnames;
6016
6017 /* eslint-disable no-unused-vars, prefer-const */
6018 var dataIndex = child.dataIndex,
6019 align = child.align,
6020 alignHeader = child.alignHeader,
6021 width = child.width,
6022 colSpan = child.colSpan,
6023 style = child.style,
6024 cellStyle = child.cellStyle,
6025 __colIndex = child.__colIndex,
6026 others = (0, _objectWithoutProperties3.default)(child, ['dataIndex', 'align', 'alignHeader', 'width', 'colSpan', 'style', 'cellStyle', '__colIndex']);
6027
6028 var colIndex = '__colIndex' in child ? __colIndex : index;
6029 // colSpan should show in body td by the way of <Table.Column colSpan={2} />
6030 // tbody's cell merge should only by the way of <Table cellProps={} />
6031
6032 var value = (0, _util2.fetchDataByPath)(record, dataIndex);
6033 var attrs = getCellProps(rowIndex, colIndex, dataIndex, record) || {};
6034
6035 if (_this2.context.notRenderCellIndex) {
6036 var matchCellIndex = _this2.context.notRenderCellIndex.map(function (cellIndex) {
6037 return cellIndex.toString();
6038 }).indexOf([rowIndex, colIndex].toString());
6039 if (matchCellIndex > -1) {
6040 _this2.context.notRenderCellIndex.splice(matchCellIndex, 1);
6041 return null;
6042 }
6043 }
6044 if (attrs.colSpan && attrs.colSpan > 1 || attrs.rowSpan && attrs.rowSpan > 1) {
6045 _this2._getNotRenderCellIndex(colIndex, rowIndex, attrs.colSpan || 1, attrs.rowSpan || 1);
6046 }
6047
6048 var cellClass = attrs.className;
6049 var className = (0, _classnames4.default)((_classnames = {
6050 first: lockType !== 'right' && colIndex === 0,
6051 last: lockType !== 'left' && (colIndex === columns.length - 1 || colIndex + attrs.colSpan === columns.length) }, _classnames[child.className] = child.className, _classnames[cellClass] = cellClass, _classnames));
6052
6053 var newStyle = (0, _extends3.default)({}, attrs.style, cellStyle);
6054
6055 return _react2.default.createElement(Cell, (0, _extends3.default)({
6056 key: __rowIndex + '-' + colIndex
6057 }, others, attrs, {
6058 style: newStyle,
6059 'data-next-table-col': colIndex,
6060 'data-next-table-row': rowIndex,
6061 ref: function ref(cell) {
6062 return cellRef(__rowIndex, colIndex, cell);
6063 },
6064 prefix: prefix,
6065 pure: pure,
6066 primaryKey: primaryKey,
6067 record: record,
6068 className: className,
6069 value: value,
6070 colIndex: colIndex,
6071 rowIndex: rowIndex,
6072 align: align,
6073 locale: locale,
6074 rtl: rtl,
6075 width: width
6076 }));
6077 });
6078 };
6079
6080 Row.prototype._getNotRenderCellIndex = function _getNotRenderCellIndex(colIndex, rowIndex, colSpan, rowSpan) {
6081 var maxColIndex = colSpan;
6082 var maxRowIndex = rowSpan;
6083 var notRenderCellIndex = [];
6084 for (var i = 0; i < maxColIndex; i++) {
6085 for (var j = 0; j < maxRowIndex; j++) {
6086 notRenderCellIndex.push([rowIndex + j, colIndex + i]);
6087 }
6088 }
6089 [].push.apply(this.context.notRenderCellIndex, notRenderCellIndex);
6090 };
6091
6092 Row.prototype.render = function render() {
6093 var _classnames2;
6094
6095 /* eslint-disable no-unused-vars*/
6096 var _props3 = this.props,
6097 prefix = _props3.prefix,
6098 className = _props3.className,
6099 onClick = _props3.onClick,
6100 onMouseEnter = _props3.onMouseEnter,
6101 onMouseLeave = _props3.onMouseLeave,
6102 columns = _props3.columns,
6103 Cell = _props3.Cell,
6104 getCellProps = _props3.getCellProps,
6105 rowIndex = _props3.rowIndex,
6106 record = _props3.record,
6107 __rowIndex = _props3.__rowIndex,
6108 children = _props3.children,
6109 primaryKey = _props3.primaryKey,
6110 cellRef = _props3.cellRef,
6111 colGroup = _props3.colGroup,
6112 pure = _props3.pure,
6113 locale = _props3.locale,
6114 expandedIndexSimulate = _props3.expandedIndexSimulate,
6115 tableEl = _props3.tableEl,
6116 rtl = _props3.rtl,
6117 wrapper = _props3.wrapper,
6118 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']);
6119
6120 var cls = (0, _classnames4.default)((_classnames2 = {}, _classnames2[prefix + 'table-row'] = true, _classnames2[className] = className, _classnames2));
6121
6122 var tr = _react2.default.createElement('tr', (0, _extends3.default)({
6123 className: cls,
6124 role: 'row'
6125 }, others, {
6126 onClick: this.onClick,
6127 onMouseEnter: this.onMouseEnter,
6128 onMouseLeave: this.onMouseLeave
6129 }), this.renderCells(record), children);
6130
6131 return wrapper(tr);
6132 };
6133
6134 return Row;
6135}(_react2.default.Component), _class.propTypes = {
6136 prefix: _propTypes2.default.string,
6137 pure: _propTypes2.default.bool,
6138 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
6139 className: _propTypes2.default.string,
6140 columns: _propTypes2.default.array,
6141 record: _propTypes2.default.any,
6142 Cell: _propTypes2.default.func,
6143 rowIndex: _propTypes2.default.number,
6144 getCellProps: _propTypes2.default.func,
6145 onClick: _propTypes2.default.func,
6146 onMouseEnter: _propTypes2.default.func,
6147 onMouseLeave: _propTypes2.default.func,
6148 children: _propTypes2.default.any,
6149 cellRef: _propTypes2.default.func,
6150 colGroup: _propTypes2.default.object,
6151 locale: _propTypes2.default.object,
6152 wrapper: _propTypes2.default.func
6153}, _class.defaultProps = {
6154 prefix: 'next-',
6155 primaryKey: 'id',
6156 columns: [],
6157 record: {},
6158 getCellProps: noop,
6159 onClick: noop,
6160 onMouseEnter: noop,
6161 onMouseLeave: noop,
6162 cellRef: noop,
6163 colGroup: {},
6164 wrapper: function wrapper(row) {
6165 return row;
6166 }
6167}, _class.contextTypes = {
6168 notRenderCellIndex: _propTypes2.default.array,
6169 lockType: _propTypes2.default.oneOf(['left', 'right'])
6170}, _temp2);
6171Row.displayName = 'Row';
6172exports.default = Row;
6173module.exports = exports['default'];
6174
6175/***/ }),
6176/* 65 */
6177/***/ (function(module, exports, __webpack_require__) {
6178
6179"use strict";
6180
6181
6182exports.__esModule = true;
6183exports.default = undefined;
6184
6185var _extends2 = __webpack_require__(1);
6186
6187var _extends3 = _interopRequireDefault(_extends2);
6188
6189var _objectWithoutProperties2 = __webpack_require__(8);
6190
6191var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
6192
6193var _classCallCheck2 = __webpack_require__(2);
6194
6195var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
6196
6197var _possibleConstructorReturn2 = __webpack_require__(3);
6198
6199var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
6200
6201var _inherits2 = __webpack_require__(4);
6202
6203var _inherits3 = _interopRequireDefault(_inherits2);
6204
6205var _class, _temp;
6206
6207var _react = __webpack_require__(0);
6208
6209var _react2 = _interopRequireDefault(_react);
6210
6211var _propTypes = __webpack_require__(5);
6212
6213var _propTypes2 = _interopRequireDefault(_propTypes);
6214
6215var _classnames2 = __webpack_require__(7);
6216
6217var _classnames3 = _interopRequireDefault(_classnames2);
6218
6219var _util = __webpack_require__(6);
6220
6221function _interopRequireDefault(obj) {
6222 return obj && obj.__esModule ? obj : { default: obj };
6223}
6224
6225var Cell = (_temp = _class = function (_React$Component) {
6226 (0, _inherits3.default)(Cell, _React$Component);
6227
6228 function Cell() {
6229 (0, _classCallCheck3.default)(this, Cell);
6230 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
6231 }
6232
6233 Cell.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {
6234 if (nextProps.pure) {
6235 var isEqual = _util.obj.shallowEqual(this.props, nextProps);
6236 return !isEqual;
6237 }
6238 return true;
6239 };
6240
6241 Cell.prototype.render = function render() {
6242 var _classnames;
6243
6244 /* eslint-disable no-unused-vars */
6245 var _props = this.props,
6246 prefix = _props.prefix,
6247 className = _props.className,
6248 cell = _props.cell,
6249 value = _props.value,
6250 resizable = _props.resizable,
6251 asyncResizable = _props.asyncResizable,
6252 colIndex = _props.colIndex,
6253 rowIndex = _props.rowIndex,
6254 __colIndex = _props.__colIndex,
6255 record = _props.record,
6256 context = _props.context,
6257 align = _props.align,
6258 _props$style = _props.style,
6259 style = _props$style === undefined ? {} : _props$style,
6260 Tag = _props.component,
6261 children = _props.children,
6262 title = _props.title,
6263 width = _props.width,
6264 innerStyle = _props.innerStyle,
6265 primaryKey = _props.primaryKey,
6266 __normalized = _props.__normalized,
6267 filterMode = _props.filterMode,
6268 filterMenuProps = _props.filterMenuProps,
6269 filterProps = _props.filterProps,
6270 filters = _props.filters,
6271 sortable = _props.sortable,
6272 sortDirections = _props.sortDirections,
6273 lock = _props.lock,
6274 pure = _props.pure,
6275 locale = _props.locale,
6276 expandedIndexSimulate = _props.expandedIndexSimulate,
6277 rtl = _props.rtl,
6278 isIconLeft = _props.isIconLeft,
6279 type = _props.type,
6280 htmlTitle = _props.htmlTitle,
6281 wordBreak = _props.wordBreak,
6282 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']);
6283
6284 var tagStyle = (0, _extends3.default)({}, style);
6285 var cellProps = { value: value, index: rowIndex, record: record, context: context };
6286 var content = cell;
6287 if (_react2.default.isValidElement(content)) {
6288 content = _react2.default.cloneElement(content, cellProps);
6289 } else if (typeof content === 'function') {
6290 content = content(value, rowIndex, record, context);
6291 }
6292 if (align) {
6293 tagStyle.textAlign = align;
6294 if (rtl) {
6295 tagStyle.textAlign = align === 'left' ? 'right' : align === 'right' ? 'left' : align;
6296 }
6297 }
6298 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-cell'] = true, _classnames[prefix + 'table-word-break-' + wordBreak] = !!wordBreak, _classnames[className] = className, _classnames));
6299
6300 return _react2.default.createElement(Tag, (0, _extends3.default)({}, (0, _util.pickAttrs)(others), { className: cls, style: tagStyle, role: 'gridcell' }), _react2.default.createElement('div', {
6301 className: prefix + 'table-cell-wrapper',
6302 ref: this.props.getCellDomRef,
6303 style: innerStyle,
6304 title: htmlTitle,
6305 'data-next-table-col': __colIndex,
6306 'data-next-table-row': rowIndex
6307 }, isIconLeft ? children : content, isIconLeft ? content : children));
6308 };
6309
6310 return Cell;
6311}(_react2.default.Component), _class.propTypes = {
6312 prefix: _propTypes2.default.string,
6313 pure: _propTypes2.default.bool,
6314 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
6315 className: _propTypes2.default.string,
6316 record: _propTypes2.default.any,
6317 value: _propTypes2.default.any,
6318 isIconLeft: _propTypes2.default.bool,
6319 colIndex: _propTypes2.default.number,
6320 rowIndex: _propTypes2.default.number,
6321 // 经过锁列调整后的列索引,lock right的列会从非0开始
6322 __colIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
6323 title: _propTypes2.default.any,
6324 width: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
6325 context: _propTypes2.default.any,
6326 cell: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func]),
6327 align: _propTypes2.default.oneOf(['left', 'center', 'right']),
6328 component: _propTypes2.default.oneOf(['td', 'th', 'div']),
6329 children: _propTypes2.default.any,
6330 style: _propTypes2.default.object,
6331 innerStyle: _propTypes2.default.object,
6332 filterMode: _propTypes2.default.oneOf(['single', 'multiple']),
6333 filterMenuProps: _propTypes2.default.object,
6334 filterProps: _propTypes2.default.object,
6335 filters: _propTypes2.default.array,
6336 sortable: _propTypes2.default.bool,
6337 sortDirections: _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['desc', 'asc', 'default'])),
6338 lock: _propTypes2.default.any,
6339 type: _propTypes2.default.oneOf(['header', 'body']),
6340 resizable: _propTypes2.default.bool,
6341 asyncResizable: _propTypes2.default.bool,
6342 __normalized: _propTypes2.default.bool
6343}, _class.defaultProps = {
6344 component: 'td',
6345 type: 'body',
6346 isIconLeft: false,
6347 cell: function cell(value) {
6348 return value;
6349 },
6350 prefix: 'next-'
6351}, _temp);
6352Cell.displayName = 'Cell';
6353exports.default = Cell;
6354module.exports = exports['default'];
6355
6356/***/ }),
6357/* 66 */
6358/***/ (function(module, exports, __webpack_require__) {
6359
6360"use strict";
6361
6362
6363exports.__esModule = true;
6364exports.default = undefined;
6365
6366var _extends2 = __webpack_require__(1);
6367
6368var _extends3 = _interopRequireDefault(_extends2);
6369
6370var _objectWithoutProperties2 = __webpack_require__(8);
6371
6372var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
6373
6374var _classCallCheck2 = __webpack_require__(2);
6375
6376var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
6377
6378var _possibleConstructorReturn2 = __webpack_require__(3);
6379
6380var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
6381
6382var _inherits2 = __webpack_require__(4);
6383
6384var _inherits3 = _interopRequireDefault(_inherits2);
6385
6386var _class, _temp;
6387
6388var _react = __webpack_require__(0);
6389
6390var _react2 = _interopRequireDefault(_react);
6391
6392var _reactDom = __webpack_require__(12);
6393
6394var _propTypes = __webpack_require__(5);
6395
6396var _propTypes2 = _interopRequireDefault(_propTypes);
6397
6398var _header = __webpack_require__(183);
6399
6400var _header2 = _interopRequireDefault(_header);
6401
6402function _interopRequireDefault(obj) {
6403 return obj && obj.__esModule ? obj : { default: obj };
6404}
6405
6406/* eslint-disable react/prefer-stateless-function */
6407var FixedHeader = (_temp = _class = function (_React$Component) {
6408 (0, _inherits3.default)(FixedHeader, _React$Component);
6409
6410 function FixedHeader() {
6411 (0, _classCallCheck3.default)(this, FixedHeader);
6412 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
6413 }
6414
6415 FixedHeader.prototype.componentDidMount = function componentDidMount() {
6416 this.context.getNode('header', (0, _reactDom.findDOMNode)(this));
6417 };
6418
6419 // 这里的 style={{overflow: 'unset'}} 可以删掉,只是为了解决用户js升级但是样式没升级的情况
6420 // 这里的 style={{position: 'absolute', right: 0}} 也可以删掉,是为了兼容用户js升级但是样式没升级的情况
6421
6422
6423 FixedHeader.prototype.render = function render() {
6424 var _props = this.props,
6425 prefix = _props.prefix,
6426 className = _props.className,
6427 colGroup = _props.colGroup,
6428 tableWidth = _props.tableWidth,
6429 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'colGroup', 'tableWidth']);
6430 var _context = this.context,
6431 onFixedScrollSync = _context.onFixedScrollSync,
6432 lockType = _context.lockType;
6433
6434 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 } }));
6435 };
6436
6437 return FixedHeader;
6438}(_react2.default.Component), _class.propTypes = {
6439 children: _propTypes2.default.any,
6440 prefix: _propTypes2.default.string,
6441 className: _propTypes2.default.string,
6442 colGroup: _propTypes2.default.any,
6443 tableWidth: _propTypes2.default.number
6444}, _class.contextTypes = {
6445 getNode: _propTypes2.default.func,
6446 onFixedScrollSync: _propTypes2.default.func,
6447 lockType: _propTypes2.default.oneOf(['left', 'right'])
6448}, _temp);
6449FixedHeader.displayName = 'FixedHeader';
6450exports.default = FixedHeader;
6451module.exports = exports['default'];
6452
6453/***/ }),
6454/* 67 */
6455/***/ (function(module, exports, __webpack_require__) {
6456
6457"use strict";
6458
6459
6460exports.__esModule = true;
6461exports.default = undefined;
6462
6463var _classCallCheck2 = __webpack_require__(2);
6464
6465var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
6466
6467var _possibleConstructorReturn2 = __webpack_require__(3);
6468
6469var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
6470
6471var _inherits2 = __webpack_require__(4);
6472
6473var _inherits3 = _interopRequireDefault(_inherits2);
6474
6475var _class, _temp;
6476
6477var _react = __webpack_require__(0);
6478
6479var _react2 = _interopRequireDefault(_react);
6480
6481var _propTypes = __webpack_require__(5);
6482
6483var _propTypes2 = _interopRequireDefault(_propTypes);
6484
6485function _interopRequireDefault(obj) {
6486 return obj && obj.__esModule ? obj : { default: obj };
6487}
6488
6489/* eslint-disable react/prefer-stateless-function */
6490var FixedWrapper = (_temp = _class = function (_React$Component) {
6491 (0, _inherits3.default)(FixedWrapper, _React$Component);
6492
6493 function FixedWrapper() {
6494 (0, _classCallCheck3.default)(this, FixedWrapper);
6495 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
6496 }
6497
6498 FixedWrapper.prototype.render = function render() {
6499 var _props = this.props,
6500 children = _props.children,
6501 wrapperContent = _props.wrapperContent,
6502 prefix = _props.prefix;
6503
6504 return _react2.default.createElement('div', { className: prefix + 'table-inner' }, children, wrapperContent);
6505 };
6506
6507 return FixedWrapper;
6508}(_react2.default.Component), _class.propTypes = {
6509 children: _propTypes2.default.any,
6510 prefix: _propTypes2.default.string,
6511 colGroup: _propTypes2.default.any,
6512 wrapperContent: _propTypes2.default.any
6513}, _temp);
6514FixedWrapper.displayName = 'FixedWrapper';
6515exports.default = FixedWrapper;
6516module.exports = exports['default'];
6517
6518/***/ }),
6519/* 68 */
6520/***/ (function(module, exports, __webpack_require__) {
6521
6522"use strict";
6523
6524
6525exports.__esModule = true;
6526
6527var _extends2 = __webpack_require__(1);
6528
6529var _extends3 = _interopRequireDefault(_extends2);
6530
6531var _objectWithoutProperties2 = __webpack_require__(8);
6532
6533var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
6534
6535var _classCallCheck2 = __webpack_require__(2);
6536
6537var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
6538
6539var _possibleConstructorReturn2 = __webpack_require__(3);
6540
6541var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
6542
6543var _inherits2 = __webpack_require__(4);
6544
6545var _inherits3 = _interopRequireDefault(_inherits2);
6546
6547var _class, _temp;
6548
6549var _react = __webpack_require__(0);
6550
6551var _react2 = _interopRequireDefault(_react);
6552
6553var _propTypes = __webpack_require__(5);
6554
6555var _propTypes2 = _interopRequireDefault(_propTypes);
6556
6557var _configProvider = __webpack_require__(9);
6558
6559var _configProvider2 = _interopRequireDefault(_configProvider);
6560
6561function _interopRequireDefault(obj) {
6562 return obj && obj.__esModule ? obj : { default: obj };
6563}
6564
6565/**
6566 * Typography.Text
6567 * @order 3
6568 */
6569var Text = (_temp = _class = function (_Component) {
6570 (0, _inherits3.default)(Text, _Component);
6571
6572 function Text() {
6573 (0, _classCallCheck3.default)(this, Text);
6574 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
6575 }
6576
6577 Text.prototype.render = function render() {
6578 var _props = this.props,
6579 prefix = _props.prefix,
6580 className = _props.className,
6581 component = _props.component,
6582 strong = _props.strong,
6583 underline = _props.underline,
6584 deleteProp = _props.delete,
6585 code = _props.code,
6586 mark = _props.mark,
6587 rtl = _props.rtl,
6588 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'component', 'strong', 'underline', 'delete', 'code', 'mark', 'rtl']);
6589
6590 var Tag = component;
6591 var children = this.props.children;
6592
6593 if (strong) {
6594 children = _react2.default.createElement('strong', null, children);
6595 }
6596
6597 if (underline) {
6598 children = _react2.default.createElement('u', null, children);
6599 }
6600
6601 if (deleteProp) {
6602 children = _react2.default.createElement('del', null, children);
6603 }
6604
6605 if (code) {
6606 children = _react2.default.createElement('code', null, children);
6607 }
6608
6609 if (mark) {
6610 children = _react2.default.createElement('mark', null, children);
6611 }
6612
6613 if (rtl) {
6614 others.dir = 'rtl';
6615 }
6616
6617 return _react2.default.createElement(Tag, (0, _extends3.default)({}, others, {
6618 className: (className || '') + ' ' + prefix + 'typography'
6619 }), children);
6620 };
6621
6622 return Text;
6623}(_react.Component), _class.propTypes = {
6624 prefix: _propTypes2.default.string,
6625 /**
6626 * 添加删除线样式
6627 */
6628 delete: _propTypes2.default.bool,
6629 /**
6630 * 添加标记样式
6631 */
6632 mark: _propTypes2.default.bool,
6633 /**
6634 * 添加下划线样式
6635 */
6636 underline: _propTypes2.default.bool,
6637 /**
6638 * 是否加粗
6639 */
6640 strong: _propTypes2.default.bool,
6641 /**
6642 * 添加代码样式
6643 */
6644 code: _propTypes2.default.bool,
6645 /**
6646 * 设置标签类型
6647 */
6648 component: _propTypes2.default.elementType,
6649 children: _propTypes2.default.node,
6650 rtl: _propTypes2.default.bool
6651}, _class.defaultProps = {
6652 prefix: 'next-',
6653 delete: false,
6654 mark: false,
6655 underline: false,
6656 strong: false,
6657 code: false,
6658 component: 'span',
6659 rtl: false
6660}, _temp);
6661Text.displayName = 'Text';
6662exports.default = _configProvider2.default.config(Text);
6663module.exports = exports['default'];
6664
6665/***/ }),
6666/* 69 */
6667/***/ (function(module, exports, __webpack_require__) {
6668
6669"use strict";
6670
6671
6672exports.__esModule = true;
6673
6674var _extends2 = __webpack_require__(1);
6675
6676var _extends3 = _interopRequireDefault(_extends2);
6677
6678var _classCallCheck2 = __webpack_require__(2);
6679
6680var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
6681
6682var _possibleConstructorReturn2 = __webpack_require__(3);
6683
6684var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
6685
6686var _inherits2 = __webpack_require__(4);
6687
6688var _inherits3 = _interopRequireDefault(_inherits2);
6689
6690var _class, _temp;
6691
6692var _react = __webpack_require__(0);
6693
6694var _react2 = _interopRequireDefault(_react);
6695
6696var _propTypes = __webpack_require__(5);
6697
6698var _propTypes2 = _interopRequireDefault(_propTypes);
6699
6700var _classnames2 = __webpack_require__(7);
6701
6702var _classnames3 = _interopRequireDefault(_classnames2);
6703
6704var _reactDom = __webpack_require__(12);
6705
6706var _reactLifecyclesCompat = __webpack_require__(10);
6707
6708var _resizeObserverPolyfill = __webpack_require__(58);
6709
6710var _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);
6711
6712var _util = __webpack_require__(6);
6713
6714var _configProvider = __webpack_require__(9);
6715
6716var _configProvider2 = _interopRequireDefault(_configProvider);
6717
6718var _util2 = __webpack_require__(264);
6719
6720function _interopRequireDefault(obj) {
6721 return obj && obj.__esModule ? obj : { default: obj };
6722}
6723
6724/** Affix */
6725var Affix = (_temp = _class = function (_React$Component) {
6726 (0, _inherits3.default)(Affix, _React$Component);
6727
6728 Affix._getAffixMode = function _getAffixMode(nextProps) {
6729 var affixMode = {
6730 top: false,
6731 bottom: false,
6732 offset: 0
6733 };
6734 if (!nextProps) {
6735 return affixMode;
6736 }
6737 var offsetTop = nextProps.offsetTop,
6738 offsetBottom = nextProps.offsetBottom;
6739
6740 if (typeof offsetTop !== 'number' && typeof offsetBottom !== 'number') {
6741 // set default
6742 affixMode.top = true;
6743 } else if (typeof offsetTop === 'number') {
6744 affixMode.top = true;
6745 affixMode.bottom = false;
6746 affixMode.offset = offsetTop;
6747 } else if (typeof offsetBottom === 'number') {
6748 affixMode.bottom = true;
6749 affixMode.top = false;
6750 affixMode.offset = offsetBottom;
6751 }
6752
6753 return affixMode;
6754 };
6755
6756 function Affix(props, context) {
6757 (0, _classCallCheck3.default)(this, Affix);
6758
6759 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
6760
6761 _this._clearContainerEvent = function () {
6762 if (_this.timeout) {
6763 clearTimeout(_this.timeout);
6764 _this.timeout = null;
6765 }
6766 var container = _this.props.container;
6767
6768 _this._removeEventHandlerForContainer(container);
6769 };
6770
6771 _this.updatePosition = function () {
6772 _this._updateNodePosition();
6773 };
6774
6775 _this._updateNodePosition = function () {
6776 var affixMode = _this.state.affixMode;
6777 var _this$props = _this.props,
6778 container = _this$props.container,
6779 useAbsolute = _this$props.useAbsolute;
6780
6781 var affixContainer = container();
6782
6783 if (!affixContainer || !_this.affixNode) {
6784 return false;
6785 }
6786 var containerScrollTop = (0, _util2.getScroll)(affixContainer, true); // 容器在垂直位置上的滚动 offset
6787 var affixOffset = _this._getOffset(_this.affixNode, affixContainer); // 目标节点当前相对于容器的 offset
6788 var containerHeight = (0, _util2.getNodeHeight)(affixContainer); // 容器的高度
6789 var affixHeight = _this.affixNode.offsetHeight;
6790 var containerRect = (0, _util2.getRect)(affixContainer);
6791
6792 var affixChildHeight = _this.affixChildNode.offsetHeight;
6793
6794 var affixStyle = {
6795 width: affixOffset.width
6796 };
6797 var containerStyle = {
6798 width: affixOffset.width,
6799 height: affixChildHeight
6800 };
6801 var positionStyle = null;
6802 if (affixMode.top && containerScrollTop > affixOffset.top - affixMode.offset) {
6803 // affix top
6804 if (useAbsolute) {
6805 affixStyle.position = 'absolute';
6806 affixStyle.top = containerScrollTop - (affixOffset.top - affixMode.offset);
6807 positionStyle = 'relative';
6808 } else {
6809 affixStyle.position = 'fixed';
6810 affixStyle.top = affixMode.offset + containerRect.top;
6811 }
6812 _this._setAffixStyle(affixStyle, true);
6813 _this._setContainerStyle(containerStyle);
6814 } else if (affixMode.bottom && containerScrollTop < affixOffset.top + affixHeight + affixMode.offset - containerHeight) {
6815 // affix bottom
6816 affixStyle.height = affixHeight;
6817 if (useAbsolute) {
6818 affixStyle.position = 'absolute';
6819 affixStyle.top = containerScrollTop - (affixOffset.top + affixHeight + affixMode.offset - containerHeight);
6820 positionStyle = 'relative';
6821 } else {
6822 affixStyle.position = 'fixed';
6823 affixStyle.bottom = affixMode.offset;
6824 }
6825 _this._setAffixStyle(affixStyle, true);
6826 _this._setContainerStyle(containerStyle);
6827 } else {
6828 _this._setAffixStyle(null);
6829 _this._setContainerStyle(null);
6830 }
6831
6832 if (_this.state.positionStyle !== positionStyle) {
6833 _this.setState({ positionStyle: positionStyle });
6834 }
6835 };
6836
6837 _this._affixNodeRefHandler = function (ref) {
6838 _this.affixNode = ref;
6839 };
6840
6841 _this._affixChildNodeRefHandler = function (ref) {
6842 _this.affixChildNode = ref;
6843 };
6844
6845 _this.state = {
6846 style: null,
6847 containerStyle: null,
6848 positionStyle: null,
6849 affixMode: Affix._getAffixMode(props)
6850 };
6851 _this.resizeObserver = new _resizeObserverPolyfill2.default(_this._updateNodePosition);
6852 return _this;
6853 }
6854
6855 Affix.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
6856 if ('offsetTop' in nextProps || 'offsetBottom' in nextProps) {
6857 return {
6858 affixMode: Affix._getAffixMode(nextProps)
6859 };
6860 }
6861 return null;
6862 };
6863
6864 Affix.prototype.componentDidMount = function componentDidMount() {
6865 var _this2 = this;
6866
6867 var container = this.props.container;
6868 // wait for parent rendered
6869
6870 this.timeout = setTimeout(function () {
6871 _this2._updateNodePosition();
6872 _this2._setEventHandlerForContainer(container);
6873 });
6874 };
6875
6876 Affix.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState, snapshot) {
6877 var _this3 = this;
6878
6879 if (prevProps.container() !== this.props.container()) {
6880 this._clearContainerEvent();
6881
6882 this.timeout = setTimeout(function () {
6883 _this3._setEventHandlerForContainer(_this3.props.container);
6884 });
6885 }
6886
6887 setTimeout(this._updateNodePosition);
6888 };
6889
6890 Affix.prototype.componentWillUnmount = function componentWillUnmount() {
6891 this._clearContainerEvent();
6892 };
6893
6894 Affix.prototype._setEventHandlerForContainer = function _setEventHandlerForContainer(getContainer) {
6895 var container = getContainer();
6896 if (!container) {
6897 return;
6898 }
6899 _util.events.on(container, 'scroll', this._updateNodePosition, false);
6900 this.resizeObserver.observe(this.affixNode);
6901 };
6902
6903 Affix.prototype._removeEventHandlerForContainer = function _removeEventHandlerForContainer(getContainer) {
6904 var container = getContainer();
6905 if (container) {
6906 _util.events.off(container, 'scroll', this._updateNodePosition);
6907 this.resizeObserver.disconnect();
6908 }
6909 };
6910
6911 Affix.prototype._setAffixStyle = function _setAffixStyle(affixStyle) {
6912 var affixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
6913
6914 if (_util.obj.shallowEqual(affixStyle, this.state.style)) {
6915 return;
6916 }
6917
6918 this.setState({
6919 style: affixStyle
6920 });
6921
6922 var onAffix = this.props.onAffix;
6923
6924 if (affixed) {
6925 setTimeout(function () {
6926 return onAffix(true);
6927 });
6928 } else if (!affixStyle) {
6929 setTimeout(function () {
6930 return onAffix(false);
6931 });
6932 }
6933 };
6934
6935 Affix.prototype._setContainerStyle = function _setContainerStyle(containerStyle) {
6936 if (_util.obj.shallowEqual(containerStyle, this.state.containerStyle)) {
6937 return;
6938 }
6939 this.setState({ containerStyle: containerStyle });
6940 };
6941
6942 Affix.prototype._getOffset = function _getOffset(affixNode, affixContainer) {
6943 var affixRect = affixNode.getBoundingClientRect(); // affix 元素 相对浏览器窗口的位置
6944 var containerRect = (0, _util2.getRect)(affixContainer); // affix 容器 相对浏览器窗口的位置
6945 var containerScrollTop = (0, _util2.getScroll)(affixContainer, true);
6946 var containerScrollLeft = (0, _util2.getScroll)(affixContainer, false);
6947
6948 return {
6949 top: affixRect.top - containerRect.top + containerScrollTop,
6950 left: affixRect.left - containerRect.left + containerScrollLeft,
6951 width: affixRect.width,
6952 height: affixRect.height
6953 };
6954 };
6955
6956 Affix.prototype.render = function render() {
6957 var _classnames;
6958
6959 var _state = this.state,
6960 affixMode = _state.affixMode,
6961 positionStyle = _state.positionStyle;
6962 var _props = this.props,
6963 prefix = _props.prefix,
6964 className = _props.className,
6965 style = _props.style,
6966 children = _props.children;
6967
6968 var state = this.state;
6969 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));
6970 var wrapperStyle = (0, _extends3.default)({}, style, { position: positionStyle });
6971
6972 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));
6973 };
6974
6975 return Affix;
6976}(_react2.default.Component), _class.propTypes = {
6977 prefix: _propTypes2.default.string,
6978 /**
6979 * 设置 Affix 需要监听滚动事件的容器元素
6980 * @return {ReactElement} 目标容器元素的实例
6981 */
6982 container: _propTypes2.default.func,
6983 /**
6984 * 距离窗口顶部达到指定偏移量后触发
6985 */
6986 offsetTop: _propTypes2.default.number,
6987 /**
6988 * 距离窗口底部达到制定偏移量后触发
6989 */
6990 offsetBottom: _propTypes2.default.number,
6991 /**
6992 * 当元素的样式发生固钉样式变化时触发的回调函数
6993 * @param {Boolean} affixed 元素是否被固钉
6994 */
6995 onAffix: _propTypes2.default.func,
6996 /**
6997 * 是否启用绝对布局实现 affix
6998 * @param {Boolean} 是否启用绝对布局
6999 */
7000 useAbsolute: _propTypes2.default.bool,
7001 className: _propTypes2.default.string,
7002 style: _propTypes2.default.object,
7003 children: _propTypes2.default.any
7004}, _class.defaultProps = {
7005 prefix: 'next-',
7006 container: function container() {
7007 return window;
7008 },
7009 onAffix: _util.func.noop
7010}, _temp);
7011Affix.displayName = 'Affix';
7012exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Affix));
7013module.exports = exports['default'];
7014
7015/***/ }),
7016/* 70 */
7017/***/ (function(module, exports, __webpack_require__) {
7018
7019// 7.1.1 ToPrimitive(input [, PreferredType])
7020var isObject = __webpack_require__(34);
7021// instead of the ES6 spec version, we didn't implement @@toPrimitive case
7022// and the second argument - flag - preferred type is a string
7023module.exports = function (it, S) {
7024 if (!isObject(it)) return it;
7025 var fn, val;
7026 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
7027 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
7028 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
7029 throw TypeError("Can't convert object to primitive value");
7030};
7031
7032
7033/***/ }),
7034/* 71 */
7035/***/ (function(module, exports) {
7036
7037// 7.2.1 RequireObjectCoercible(argument)
7038module.exports = function (it) {
7039 if (it == undefined) throw TypeError("Can't call method on " + it);
7040 return it;
7041};
7042
7043
7044/***/ }),
7045/* 72 */
7046/***/ (function(module, exports) {
7047
7048// 7.1.4 ToInteger
7049var ceil = Math.ceil;
7050var floor = Math.floor;
7051module.exports = function (it) {
7052 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
7053};
7054
7055
7056/***/ }),
7057/* 73 */
7058/***/ (function(module, exports, __webpack_require__) {
7059
7060var shared = __webpack_require__(74)('keys');
7061var uid = __webpack_require__(56);
7062module.exports = function (key) {
7063 return shared[key] || (shared[key] = uid(key));
7064};
7065
7066
7067/***/ }),
7068/* 74 */
7069/***/ (function(module, exports, __webpack_require__) {
7070
7071var core = __webpack_require__(24);
7072var global = __webpack_require__(23);
7073var SHARED = '__core-js_shared__';
7074var store = global[SHARED] || (global[SHARED] = {});
7075
7076(module.exports = function (key, value) {
7077 return store[key] || (store[key] = value !== undefined ? value : {});
7078})('versions', []).push({
7079 version: core.version,
7080 mode: __webpack_require__(55) ? 'pure' : 'global',
7081 copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
7082});
7083
7084
7085/***/ }),
7086/* 75 */
7087/***/ (function(module, exports) {
7088
7089// IE 8- don't enum bug keys
7090module.exports = (
7091 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
7092).split(',');
7093
7094
7095/***/ }),
7096/* 76 */
7097/***/ (function(module, exports) {
7098
7099exports.f = Object.getOwnPropertySymbols;
7100
7101
7102/***/ }),
7103/* 77 */
7104/***/ (function(module, exports, __webpack_require__) {
7105
7106// 7.1.13 ToObject(argument)
7107var defined = __webpack_require__(71);
7108module.exports = function (it) {
7109 return Object(defined(it));
7110};
7111
7112
7113/***/ }),
7114/* 78 */
7115/***/ (function(module, exports) {
7116
7117module.exports = {};
7118
7119
7120/***/ }),
7121/* 79 */
7122/***/ (function(module, exports, __webpack_require__) {
7123
7124// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
7125var anObject = __webpack_require__(46);
7126var dPs = __webpack_require__(219);
7127var enumBugKeys = __webpack_require__(75);
7128var IE_PROTO = __webpack_require__(73)('IE_PROTO');
7129var Empty = function () { /* empty */ };
7130var PROTOTYPE = 'prototype';
7131
7132// Create object with fake `null` prototype: use iframe Object with cleared prototype
7133var createDict = function () {
7134 // Thrash, waste and sodomy: IE GC bug
7135 var iframe = __webpack_require__(114)('iframe');
7136 var i = enumBugKeys.length;
7137 var lt = '<';
7138 var gt = '>';
7139 var iframeDocument;
7140 iframe.style.display = 'none';
7141 __webpack_require__(220).appendChild(iframe);
7142 iframe.src = 'javascript:'; // eslint-disable-line no-script-url
7143 // createDict = iframe.contentWindow.Object;
7144 // html.removeChild(iframe);
7145 iframeDocument = iframe.contentWindow.document;
7146 iframeDocument.open();
7147 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
7148 iframeDocument.close();
7149 createDict = iframeDocument.F;
7150 while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
7151 return createDict();
7152};
7153
7154module.exports = Object.create || function create(O, Properties) {
7155 var result;
7156 if (O !== null) {
7157 Empty[PROTOTYPE] = anObject(O);
7158 result = new Empty();
7159 Empty[PROTOTYPE] = null;
7160 // add "__proto__" for Object.getPrototypeOf polyfill
7161 result[IE_PROTO] = O;
7162 } else result = createDict();
7163 return Properties === undefined ? result : dPs(result, Properties);
7164};
7165
7166
7167/***/ }),
7168/* 80 */
7169/***/ (function(module, exports, __webpack_require__) {
7170
7171var def = __webpack_require__(26).f;
7172var has = __webpack_require__(27);
7173var TAG = __webpack_require__(36)('toStringTag');
7174
7175module.exports = function (it, tag, stat) {
7176 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
7177};
7178
7179
7180/***/ }),
7181/* 81 */
7182/***/ (function(module, exports, __webpack_require__) {
7183
7184exports.f = __webpack_require__(36);
7185
7186
7187/***/ }),
7188/* 82 */
7189/***/ (function(module, exports, __webpack_require__) {
7190
7191var global = __webpack_require__(23);
7192var core = __webpack_require__(24);
7193var LIBRARY = __webpack_require__(55);
7194var wksExt = __webpack_require__(81);
7195var defineProperty = __webpack_require__(26).f;
7196module.exports = function (name) {
7197 var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
7198 if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
7199};
7200
7201
7202/***/ }),
7203/* 83 */
7204/***/ (function(module, exports, __webpack_require__) {
7205
7206"use strict";
7207
7208
7209exports.__esModule = true;
7210
7211var _dayjs = __webpack_require__(127);
7212
7213var _dayjs2 = _interopRequireDefault(_dayjs);
7214
7215var _customParseFormat = __webpack_require__(247);
7216
7217var _customParseFormat2 = _interopRequireDefault(_customParseFormat);
7218
7219var _updateLocale = __webpack_require__(248);
7220
7221var _updateLocale2 = _interopRequireDefault(_updateLocale);
7222
7223var _localeData = __webpack_require__(249);
7224
7225var _localeData2 = _interopRequireDefault(_localeData);
7226
7227var _quarterOfYear = __webpack_require__(250);
7228
7229var _quarterOfYear2 = _interopRequireDefault(_quarterOfYear);
7230
7231var _advancedFormat = __webpack_require__(251);
7232
7233var _advancedFormat2 = _interopRequireDefault(_advancedFormat);
7234
7235var _weekOfYear = __webpack_require__(252);
7236
7237var _weekOfYear2 = _interopRequireDefault(_weekOfYear);
7238
7239__webpack_require__(253);
7240
7241function _interopRequireDefault(obj) {
7242 return obj && obj.__esModule ? obj : { default: obj };
7243}
7244
7245_dayjs2.default.extend(_advancedFormat2.default);
7246_dayjs2.default.extend(_quarterOfYear2.default);
7247_dayjs2.default.extend(_customParseFormat2.default);
7248_dayjs2.default.extend(_updateLocale2.default);
7249_dayjs2.default.extend(_localeData2.default);
7250_dayjs2.default.extend(_weekOfYear2.default);
7251_dayjs2.default.locale('zh-cn');
7252
7253var datejs = _dayjs2.default;
7254datejs.isSelf = _dayjs2.default.isDayjs;
7255
7256_dayjs2.default.localeData();
7257
7258exports.default = datejs;
7259module.exports = exports['default'];
7260
7261/***/ }),
7262/* 84 */
7263/***/ (function(module, exports, __webpack_require__) {
7264
7265"use strict";
7266
7267
7268var _CSSTransition = _interopRequireDefault(__webpack_require__(265));
7269
7270var _ReplaceTransition = _interopRequireDefault(__webpack_require__(269));
7271
7272var _TransitionGroup = _interopRequireDefault(__webpack_require__(135));
7273
7274var _Transition = _interopRequireDefault(__webpack_require__(133));
7275
7276function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7277
7278module.exports = {
7279 Transition: _Transition.default,
7280 TransitionGroup: _TransitionGroup.default,
7281 ReplaceTransition: _ReplaceTransition.default,
7282 CSSTransition: _CSSTransition.default
7283};
7284
7285/***/ }),
7286/* 85 */
7287/***/ (function(module, __webpack_exports__, __webpack_require__) {
7288
7289"use strict";
7290Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
7291
7292// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.18.3@@babel/runtime/helpers/extends.js
7293var helpers_extends = __webpack_require__(61);
7294var extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);
7295
7296// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.18.3@@babel/runtime/helpers/objectWithoutPropertiesLoose.js
7297var objectWithoutPropertiesLoose = __webpack_require__(139);
7298var objectWithoutPropertiesLoose_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesLoose);
7299
7300// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.18.3@@babel/runtime/helpers/inheritsLoose.js
7301var inheritsLoose = __webpack_require__(280);
7302var inheritsLoose_default = /*#__PURE__*/__webpack_require__.n(inheritsLoose);
7303
7304// EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"}
7305var external___root___React___commonjs2___react___commonjs___react___amd___react__ = __webpack_require__(0);
7306var external___root___React___commonjs2___react___commonjs___react___amd___react___default = /*#__PURE__*/__webpack_require__.n(external___root___React___commonjs2___react___commonjs___react___amd___react__);
7307
7308// EXTERNAL MODULE: external {"root":"ReactDOM","commonjs2":"react-dom","commonjs":"react-dom","amd":"react-dom"}
7309var external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__ = __webpack_require__(12);
7310var 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__);
7311
7312// EXTERNAL MODULE: ./node_modules/_resize-observer-polyfill@1.5.1@resize-observer-polyfill/dist/ResizeObserver.es.js
7313var ResizeObserver_es = __webpack_require__(58);
7314
7315// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.11@@alifd/overlay/es/utils.js
7316
7317
7318function useListener(nodeList, eventName, callback, useCapture, condition) {
7319 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
7320 if (condition) {
7321 if (!Array.isArray(nodeList)) {
7322 nodeList = [nodeList];
7323 }
7324
7325 nodeList.forEach(function (n) {
7326 n && n.addEventListener && n.addEventListener(eventName, callback, useCapture || false);
7327 });
7328 return function () {
7329 Array.isArray(nodeList) && nodeList.forEach(function (n) {
7330 n && n.removeEventListener && n.removeEventListener(eventName, callback, useCapture || false);
7331 });
7332 };
7333 }
7334
7335 return undefined;
7336 }, [condition]);
7337 return;
7338}
7339/**
7340 * 将N个方法合并为一个链式调用的方法
7341 * @return {Function} 合并后的方法
7342 *
7343 * @example
7344 * func.makeChain(this.handleChange, this.props.onChange);
7345 */
7346
7347function makeChain() {
7348 var _this = this;
7349
7350 for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
7351 fns[_key] = arguments[_key];
7352 }
7353
7354 if (fns.length === 1) {
7355 return fns[0];
7356 }
7357
7358 return function () {
7359 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
7360 args[_key2] = arguments[_key2];
7361 }
7362
7363 for (var i = 0, j = fns.length; i < j; i++) {
7364 if (fns[i] && fns[i].apply) {
7365 //@ts-ignore
7366 fns[i].apply(_this, args);
7367 }
7368 }
7369 };
7370}
7371function callRef(ref, element) {
7372 if (!ref) {
7373 return;
7374 }
7375
7376 if (typeof ref === 'string') {
7377 throw new Error("can not set ref string for " + ref);
7378 } else if (typeof ref === 'function') {
7379 ref(element);
7380 } else if (Object.prototype.hasOwnProperty.call(ref, 'current')) {
7381 ref.current = element;
7382 }
7383}
7384function saveRef(ref) {
7385 if (!ref) {
7386 return null;
7387 }
7388
7389 return function (element) {
7390 if (typeof ref === 'string') {
7391 throw new Error("can not set ref string for " + ref);
7392 } else if (typeof ref === 'function') {
7393 ref(element);
7394 } else if (Object.prototype.hasOwnProperty.call(ref, 'current')) {
7395 ref.current = element;
7396 }
7397 };
7398}
7399/**
7400 * 获取 position != static ,用来计算相对位置的容器
7401 * @param container
7402 * @returns
7403 */
7404
7405var getRelativeContainer = function getRelativeContainer(container) {
7406 if (typeof document === undefined) {
7407 return container;
7408 }
7409
7410 var calcContainer = container;
7411
7412 while (getStyle(calcContainer, 'position') === 'static') {
7413 if (!calcContainer || calcContainer === document.documentElement) {
7414 return document.documentElement;
7415 }
7416
7417 calcContainer = calcContainer.parentNode;
7418 }
7419
7420 return calcContainer;
7421};
7422/**
7423 * 获取 target 和 container 之间会滚动的元素 (不包含 target、container)
7424 * 用来监听滚动元素,自动更新弹窗位置
7425 * @param targetNode
7426 * @param container
7427 * @returns
7428 */
7429
7430var getOverflowNodes = function getOverflowNodes(targetNode, container) {
7431 if (typeof document === undefined) {
7432 return [];
7433 }
7434
7435 var overflowNodes = [];
7436 var calcContainer = targetNode;
7437
7438 while (true) {
7439 // 忽略 body/documentElement, 不算额外滚动元素
7440 if (!calcContainer || calcContainer === container || calcContainer === document.body || calcContainer === document.documentElement) {
7441 break;
7442 }
7443
7444 var overflow = getStyle(calcContainer, 'overflow');
7445
7446 if (overflow && overflow.match(/auto|scroll/)) {
7447 var _calcContainer = calcContainer,
7448 clientWidth = _calcContainer.clientWidth,
7449 clientHeight = _calcContainer.clientHeight,
7450 scrollWidth = _calcContainer.scrollWidth,
7451 scrollHeight = _calcContainer.scrollHeight;
7452
7453 if (clientHeight !== scrollHeight || clientWidth !== scrollWidth) {
7454 overflowNodes.push(calcContainer);
7455 }
7456 }
7457
7458 calcContainer = calcContainer.parentNode;
7459 }
7460
7461 return overflowNodes;
7462};
7463/**
7464 * 获取可视区域,用来计算弹窗应该相对哪个节点做上下左右的位置变化。
7465 * @param container
7466 * @returns
7467 */
7468
7469function getViewPort(container) {
7470 var calcContainer = container;
7471
7472 while (calcContainer) {
7473 var overflow = getStyle(calcContainer, 'overflow');
7474
7475 if (overflow !== null && overflow !== void 0 && overflow.match(/auto|scroll|hidden/)) {
7476 return calcContainer;
7477 }
7478
7479 calcContainer = calcContainer.parentNode;
7480 }
7481
7482 return document.documentElement;
7483}
7484function getStyle(elt, name) {
7485 if (!elt || elt.nodeType !== 1) {
7486 return null;
7487 }
7488
7489 var style = window.getComputedStyle(elt, null);
7490 return style.getPropertyValue(name);
7491}
7492var PIXEL_PATTERN = /margin|padding|width|height|max|min|offset|size|top|left/i;
7493function setStyle(node, name, value) {
7494 if (!node) {
7495 return;
7496 }
7497
7498 if (typeof name === 'string') {
7499 if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {
7500 value = value + "px";
7501 } //@ts-ignore
7502
7503
7504 node.style[name] = value;
7505 } else if (typeof name === 'object' && arguments.length === 2) {
7506 //@ts-ignore
7507 Object.keys(name).forEach(function (key) {
7508 return setStyle(node, key, name[key]);
7509 });
7510 }
7511} // 默认首次调用是立刻执行
7512
7513function throttle(func, wait) {
7514 var previous = -wait;
7515 return function () {
7516 var now = Date.now();
7517 var args = arguments;
7518
7519 if (now - previous > wait) {
7520 //@ts-ignore
7521 func.apply(this, args);
7522 previous = now;
7523 }
7524 };
7525}
7526function debounce(func, wait) {
7527 var _arguments = arguments,
7528 _this2 = this;
7529
7530 var timeoutID;
7531 return function () {
7532 var args = _arguments;
7533 clearTimeout(timeoutID);
7534 timeoutID = setTimeout(function () {
7535 //@ts-ignore
7536 func.apply(_this2, args);
7537 }, wait);
7538 };
7539}
7540/**
7541 * 元素相对于可视区的 left/top
7542 * @param node
7543 * @returns
7544 */
7545
7546function getViewTopLeft(node) {
7547 /**
7548 * document.body 向下滚动后 scrollTop 一直为0,同时 top=-xx 为负数,相当于本身是没有滚动条的,这个逻辑是正确的。
7549 * document.documentElement 向下滚动后 scrollTop/top 都在变化,会影响计算逻辑,所以这里写死 0
7550 */
7551 if (node === document.documentElement) {
7552 return {
7553 top: 0,
7554 left: 0
7555 };
7556 }
7557
7558 var _node$getBoundingClie = node.getBoundingClientRect(),
7559 left = _node$getBoundingClie.left,
7560 top = _node$getBoundingClie.top;
7561
7562 return {
7563 top: top,
7564 left: left
7565 };
7566}
7567/**
7568 * get element size
7569 * offsetWidth/offsetHeight 更容易获取真实大小,不会受到动画影响优先使用。
7570 * @param {Element} element
7571 * @return {Object}
7572 */
7573
7574function getWidthHeight(element) {
7575 // element like `svg` do not have offsetWidth and offsetHeight prop
7576 // then getBoundingClientRect
7577 if ('offsetWidth' in element && 'offsetHeight' in element) {
7578 return {
7579 width: element.offsetWidth,
7580 height: element.offsetHeight
7581 };
7582 } else {
7583 var _element$getBoundingC = element.getBoundingClientRect(),
7584 width = _element$getBoundingC.width,
7585 height = _element$getBoundingC.height;
7586
7587 return {
7588 width: width,
7589 height: height
7590 };
7591 }
7592}
7593/**
7594 * 获取默认的滚动条大小
7595 * @return {Number} width
7596 */
7597
7598function getScrollbarWidth() {
7599 var scrollDiv = document.createElement('div');
7600 scrollDiv.className += 'just-to-get-scrollbar-size';
7601 setStyle(scrollDiv, {
7602 position: 'absolute',
7603 width: '100px',
7604 height: '100px',
7605 overflow: 'scroll',
7606 top: '-9999px'
7607 });
7608 document.body && document.body.appendChild(scrollDiv);
7609 var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
7610 document.body.removeChild(scrollDiv);
7611 return scrollbarWidth;
7612}
7613/**
7614 * 元素是否可见
7615 * @private
7616 * @param {Element} node
7617 * @return {Boolean}
7618 */
7619
7620function _isVisible(node) {
7621 while (node) {
7622 if (node === document.body || node === document.documentElement) {
7623 break;
7624 }
7625
7626 if (node.style.display === 'none' || node.style.visibility === 'hidden') {
7627 return false;
7628 }
7629
7630 node = node.parentNode;
7631 }
7632
7633 return true;
7634}
7635/**
7636 * 元素是否可以获取焦点
7637 * @private
7638 * @param {Element} node
7639 * @return {Boolean}
7640 */
7641
7642
7643function _isFocusable(node) {
7644 var nodeName = node.nodeName.toLowerCase();
7645 var tabIndex = parseInt(node.getAttribute('tabindex'), 10);
7646 var hasTabIndex = !isNaN(tabIndex) && tabIndex > -1;
7647
7648 if (_isVisible(node)) {
7649 if (nodeName === 'input') {
7650 //@ts-ignore
7651 return !node.disabled && node.type !== 'hidden';
7652 } else if (['select', 'textarea', 'button'].indexOf(nodeName) > -1) {
7653 //@ts-ignore
7654 return !node.disabled;
7655 } else if (nodeName === 'a') {
7656 return node.getAttribute('href') || hasTabIndex;
7657 } else {
7658 return hasTabIndex;
7659 }
7660 }
7661
7662 return false;
7663}
7664/**
7665 * 列出能获取焦点的子节点
7666 * @param {Element} node 容器节点
7667 * @return {Array<Element>}
7668 */
7669
7670
7671function getFocusNodeList(node) {
7672 var res = [];
7673 var nodeList = node.querySelectorAll('*');
7674 nodeList.forEach(function (item) {
7675 if (_isFocusable(item)) {
7676 var method = item.getAttribute('data-auto-focus') ? 'unshift' : 'push';
7677 res[method](item);
7678 }
7679 });
7680
7681 if (_isFocusable(node)) {
7682 res.unshift(node);
7683 }
7684
7685 return res;
7686}
7687function getHTMLElement(node) {
7688 if (node) {
7689 if (node.nodeType) {
7690 if (node.nodeType === 1) {
7691 return node;
7692 } else {
7693 return document.body;
7694 }
7695 } else if (node === window) {
7696 return document.body;
7697 } else {
7698 return Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["findDOMNode"])(node);
7699 }
7700 }
7701
7702 return node;
7703}
7704function getTargetNode(target) {
7705 if (typeof target === 'function') {
7706 return target();
7707 } else if (typeof target === 'string') {
7708 return document.getElementById(target);
7709 } // 兼容 target = HTMLElement
7710
7711
7712 return target;
7713}
7714function isSameObject(object1, object2) {
7715 if (!object1 || !object2) {
7716 return false;
7717 }
7718
7719 var o1keys = Object.keys(object1);
7720 var o2keys = Object.keys(object2);
7721 if (o2keys.length !== o1keys.length) return false;
7722
7723 for (var i = 0; i <= o1keys.length - 1; i++) {
7724 var _key3 = o1keys[i];
7725 if (!o2keys.includes(_key3)) return false; //@ts-ignore
7726
7727 if (object2[_key3] !== object1[_key3]) return false;
7728 }
7729
7730 return true;
7731}
7732// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.11@@alifd/overlay/es/placement.js
7733
7734;
7735var placementMap = {
7736 tl: ['bl', 'tl'],
7737 t: ['bc', 'tc'],
7738 tr: ['br', 'tr'],
7739 lt: ['tr', 'tl'],
7740 l: ['cr', 'cl'],
7741 lb: ['br', 'bl'],
7742 bl: ['tl', 'bl'],
7743 b: ['tc', 'bc'],
7744 br: ['tr', 'br'],
7745 rt: ['tl', 'tr'],
7746 r: ['cl', 'cr'],
7747 rb: ['bl', 'br']
7748};
7749
7750function getXY(p, staticInfo) {
7751 var targetInfo = staticInfo.targetInfo,
7752 containerInfo = staticInfo.containerInfo,
7753 overlayInfo = staticInfo.overlayInfo,
7754 opoints = staticInfo.points,
7755 placementOffset = staticInfo.placementOffset,
7756 offset = staticInfo.offset,
7757 rtl = staticInfo.rtl;
7758 var basex = targetInfo.left - containerInfo.left + containerInfo.scrollLeft;
7759 var basey = targetInfo.top - containerInfo.top + containerInfo.scrollTop;
7760
7761 function setPointX(point, positive, width) {
7762 if (positive === void 0) {
7763 positive = true;
7764 }
7765
7766 var plus = positive ? 1 : -1;
7767
7768 switch (point) {
7769 case 'l':
7770 basex += 0;
7771 break;
7772
7773 case 'c':
7774 basex += plus * width / 2;
7775 break;
7776
7777 case 'r':
7778 basex += plus * width;
7779 break;
7780 }
7781 }
7782
7783 function setPointY(point, positive, height) {
7784 if (positive === void 0) {
7785 positive = true;
7786 }
7787
7788 var plus = positive ? 1 : -1;
7789
7790 switch (point) {
7791 case 't':
7792 basey += 0;
7793 break;
7794
7795 case 'c':
7796 basey += plus * height / 2;
7797 break;
7798
7799 case 'b':
7800 basey += plus * height;
7801 break;
7802 }
7803 }
7804
7805 var points = [].concat(opoints);
7806
7807 if (p && p in placementMap) {
7808 points = placementMap[p];
7809 } // rtl 左右对调
7810
7811
7812 if (rtl) {
7813 if (points[0].match(/l/)) {
7814 points[0] = points[0].replace('l', 'r');
7815 } else if (points[0].match(/r/)) {
7816 points[0] = points[0].replace('r', 'l');
7817 }
7818
7819 if (points[1].match(/l/)) {
7820 points[1] = points[1].replace('l', 'r');
7821 } else if (points[1].match(/r/)) {
7822 points[1] = points[1].replace('r', 'l');
7823 }
7824 } // 目标元素
7825
7826
7827 setPointY(points[1][0], true, targetInfo.height);
7828 setPointX(points[1][1], true, targetInfo.width);
7829 setPointY(points[0][0], false, overlayInfo.height);
7830 setPointX(points[0][1], false, overlayInfo.width);
7831
7832 if (placementOffset && p.length >= 1) {
7833 switch (p[0]) {
7834 case 't':
7835 basey -= placementOffset;
7836 break;
7837
7838 case 'b':
7839 basey += placementOffset;
7840 break;
7841
7842 case 'l':
7843 basex -= placementOffset;
7844 break;
7845
7846 case 'r':
7847 basex += placementOffset;
7848 break;
7849 }
7850 }
7851
7852 return {
7853 points: points,
7854 left: basex + offset[0],
7855 top: basey + offset[1]
7856 };
7857}
7858
7859function shouldResizePlacement(l, t, viewport, staticInfo) {
7860 var container = staticInfo.container,
7861 containerInfo = staticInfo.containerInfo,
7862 overlayInfo = staticInfo.overlayInfo;
7863
7864 if (viewport !== container) {
7865 // 说明 container 不具备滚动属性
7866 var _getViewTopLeft = getViewTopLeft(viewport),
7867 vleft = _getViewTopLeft.left,
7868 vtop = _getViewTopLeft.top;
7869
7870 var vwidth = viewport.scrollWidth,
7871 vheight = viewport.scrollHeight,
7872 vscrollTop = viewport.scrollTop,
7873 vscrollLeft = viewport.scrollLeft;
7874 var nt = t + containerInfo.top - vtop + vscrollTop;
7875 var nl = l + containerInfo.left - vleft + vscrollLeft;
7876 return nt < 0 || nl < 0 || nt + overlayInfo.height > vheight || nl + overlayInfo.width > vwidth;
7877 }
7878
7879 return t < 0 || l < 0 || t + overlayInfo.height > containerInfo.height || l + overlayInfo.width > containerInfo.width;
7880}
7881
7882function getNewPlacement(l, t, p, staticInfo) {
7883 var overlayInfo = staticInfo.overlayInfo,
7884 containerInfo = staticInfo.containerInfo;
7885 var np = p.split('');
7886
7887 if (np.length === 1) {
7888 np.push('');
7889 } // 区域不够
7890
7891
7892 if (t < 0) {
7893 // [上边 => 下边, 底部对齐 => 顶部对齐]
7894 np = [np[0].replace('t', 'b'), np[1].replace('b', 't')];
7895 } // 区域不够
7896
7897
7898 if (l < 0) {
7899 // [左边 => 右边, 右对齐 => 左对齐]
7900 np = [np[0].replace('l', 'r'), np[1].replace('r', 'l')];
7901 } // 超出区域
7902
7903
7904 if (t + overlayInfo.height > containerInfo.height) {
7905 // [下边 => 上边, 顶部对齐 => 底部对齐]
7906 np = [np[0].replace('b', 't'), np[1].replace('t', 'b')];
7907 } // 超出区域
7908
7909
7910 if (l + overlayInfo.width > containerInfo.width) {
7911 // [右边 => 左边, 左对齐 => 右对齐]
7912 np = [np[0].replace('r', 'l'), np[1].replace('l', 'r')];
7913 }
7914
7915 return np.join('');
7916}
7917
7918function ajustLeftAndTop(l, t, staticInfo) {
7919 var overlayInfo = staticInfo.overlayInfo,
7920 containerInfo = staticInfo.containerInfo;
7921
7922 if (t < 0) {
7923 t = 0;
7924 }
7925
7926 if (l < 0) {
7927 l = 0;
7928 }
7929
7930 if (t + overlayInfo.height > containerInfo.height) {
7931 t = containerInfo.height - overlayInfo.height;
7932 }
7933
7934 if (l + overlayInfo.width > containerInfo.width) {
7935 l = containerInfo.width - overlayInfo.width;
7936 }
7937
7938 return {
7939 left: l,
7940 top: t
7941 };
7942}
7943/**
7944 * 计算相对于 container 的偏移位置
7945 * @param config
7946 * @returns
7947 */
7948
7949
7950function getPlacements(config) {
7951 var target = config.target,
7952 overlay = config.overlay,
7953 container = config.container,
7954 scrollNode = config.scrollNode,
7955 oplacement = config.placement,
7956 _config$placementOffs = config.placementOffset,
7957 placementOffset = _config$placementOffs === void 0 ? 0 : _config$placementOffs,
7958 _config$points = config.points,
7959 opoints = _config$points === void 0 ? ['tl', 'bl'] : _config$points,
7960 _config$offset = config.offset,
7961 offset = _config$offset === void 0 ? [0, 0] : _config$offset,
7962 _config$position = config.position,
7963 position = _config$position === void 0 ? 'absolute' : _config$position,
7964 beforePosition = config.beforePosition,
7965 _config$autoAdjust = config.autoAdjust,
7966 autoAdjust = _config$autoAdjust === void 0 ? true : _config$autoAdjust,
7967 _config$autoHideScrol = config.autoHideScrollOverflow,
7968 autoHideScrollOverflow = _config$autoHideScrol === void 0 ? true : _config$autoHideScrol,
7969 rtl = config.rtl;
7970 var placement = oplacement;
7971 /**
7972 * 可视窗口是浏览器给用户展示的窗口
7973 * getBoundingClientRect(): top/left 是相对 viewport
7974 * node: offsetTop/offsetarget.Left 是相对 parent 元素的
7975 *
7976 * top: 元素上边 距离可视窗口 上边框的距离
7977 * left: 元素左边 距离可视窗口 左边框的距离
7978 *
7979 * scrollTop: 容器上下滚动距离
7980 * scrollLeft: 容器左右滚动距离
7981 */
7982
7983 var _getWidthHeight = getWidthHeight(overlay),
7984 owidth = _getWidthHeight.width,
7985 oheight = _getWidthHeight.height;
7986
7987 if (position === 'fixed') {
7988 var _result = {
7989 config: {
7990 placement: undefined,
7991 points: undefined
7992 },
7993 style: {
7994 position: position,
7995 left: offset[0],
7996 top: offset[1]
7997 }
7998 };
7999
8000 if (beforePosition && typeof beforePosition) {
8001 return beforePosition(_result, {
8002 overlay: {
8003 node: overlay,
8004 width: owidth,
8005 height: oheight
8006 }
8007 });
8008 }
8009
8010 return _result;
8011 }
8012
8013 var _target$getBoundingCl = target.getBoundingClientRect(),
8014 twidth = _target$getBoundingCl.width,
8015 theight = _target$getBoundingCl.height,
8016 tleft = _target$getBoundingCl.left,
8017 ttop = _target$getBoundingCl.top;
8018
8019 var _getViewTopLeft2 = getViewTopLeft(container),
8020 cleft = _getViewTopLeft2.left,
8021 ctop = _getViewTopLeft2.top;
8022
8023 var cwidth = container.scrollWidth,
8024 cheight = container.scrollHeight,
8025 cscrollTop = container.scrollTop,
8026 cscrollLeft = container.scrollLeft;
8027 var staticInfo = {
8028 targetInfo: {
8029 width: twidth,
8030 height: theight,
8031 left: tleft,
8032 top: ttop
8033 },
8034 containerInfo: {
8035 left: cleft,
8036 top: ctop,
8037 width: cwidth,
8038 height: cheight,
8039 scrollTop: cscrollTop,
8040 scrollLeft: cscrollLeft
8041 },
8042 overlayInfo: {
8043 width: owidth,
8044 height: oheight
8045 },
8046 points: opoints,
8047 placementOffset: placementOffset,
8048 offset: offset,
8049 container: container,
8050 rtl: rtl
8051 }; // step1: 根据 placement 计算位置
8052
8053 var _getXY = getXY(placement, staticInfo),
8054 left = _getXY.left,
8055 top = _getXY.top,
8056 points = _getXY.points; // 获取可视区域,来计算容器相对位置
8057
8058
8059 var viewport = getViewPort(container); // step2: 根据 viewport(挂载容器不一定是可视区, eg: 挂载在父节点,但是弹窗超出父节点)重新计算位置. 根据可视区域优化位置
8060 // 位置动态优化思路见 https://github.com/alibaba-fusion/overlay/issues/2
8061
8062 if (autoAdjust && placement && shouldResizePlacement(left, top, viewport, staticInfo)) {
8063 var nplacement = getNewPlacement(left, top, placement, staticInfo); // step2: 空间不够,替换位置重新计算位置
8064
8065 if (placement !== nplacement) {
8066 var _getXY2 = getXY(nplacement, staticInfo),
8067 _nleft = _getXY2.left,
8068 _ntop = _getXY2.top;
8069
8070 if (shouldResizePlacement(_nleft, _ntop, viewport, staticInfo)) {
8071 var nnplacement = getNewPlacement(_nleft, _ntop, nplacement, staticInfo); // step3: 空间依然不够,说明xy轴至少有一个方向是怎么更换位置都不够的。停止计算开始补偿逻辑
8072
8073 if (nplacement !== nnplacement) {
8074 var _getXY3 = getXY(nnplacement, staticInfo),
8075 nnleft = _getXY3.left,
8076 nntop = _getXY3.top;
8077
8078 var _ajustLeftAndTop = ajustLeftAndTop(nnleft, nntop, staticInfo),
8079 nnnleft = _ajustLeftAndTop.left,
8080 nnntop = _ajustLeftAndTop.top;
8081
8082 placement = nnplacement;
8083 left = nnnleft;
8084 top = nnntop;
8085 } else {
8086 placement = nplacement;
8087 left = _nleft;
8088 top = _ntop;
8089 }
8090 } else {
8091 placement = nplacement;
8092 left = _nleft;
8093 top = _ntop;
8094 }
8095 }
8096
8097 var _ajustLeftAndTop2 = ajustLeftAndTop(left, top, staticInfo),
8098 nleft = _ajustLeftAndTop2.left,
8099 ntop = _ajustLeftAndTop2.top;
8100
8101 left = nleft;
8102 top = ntop;
8103 }
8104
8105 var result = {
8106 config: {
8107 placement: placement,
8108 points: points
8109 },
8110 style: {
8111 position: position,
8112 left: Math.round(left),
8113 top: Math.round(top)
8114 }
8115 };
8116 /**
8117 * step3: 滚动隐藏弹窗逻辑。避免出现 target 已经滚动消失,弹层飘在页面最上方的情况。详细见 https://github.com/alibaba-fusion/overlay/issues/3
8118 * 触发条件: target 和 document.body 之间存在 overflow 滚动元素, target 进入不可见区域
8119 */
8120
8121 if (autoHideScrollOverflow && placement && scrollNode !== null && scrollNode !== void 0 && scrollNode.length) {
8122 // 滚动改成 transform 提高性能, 但是有动效问题
8123 // result.style.transform = `translate3d(${result.style.left}px, ${result.style.top}px, 0px)`;
8124 // result.style.left = 0;
8125 // result.style.top = 0;
8126 scrollNode.forEach(function (node) {
8127 var _node$getBoundingClie = node.getBoundingClientRect(),
8128 top = _node$getBoundingClie.top,
8129 left = _node$getBoundingClie.left,
8130 width = _node$getBoundingClie.width,
8131 height = _node$getBoundingClie.height;
8132
8133 if (ttop + theight < top || ttop > top + height || tleft + twidth < left || tleft > left + width) {
8134 result.style.display = 'none';
8135 } else {
8136 result.style.display = '';
8137 }
8138 });
8139 }
8140
8141 if (beforePosition && typeof beforePosition) {
8142 return beforePosition(result, {
8143 target: {
8144 node: target,
8145 width: twidth,
8146 height: theight,
8147 left: tleft,
8148 top: ttop
8149 },
8150 overlay: {
8151 node: overlay,
8152 width: owidth,
8153 height: oheight
8154 }
8155 });
8156 }
8157
8158 return result;
8159}
8160// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.11@@alifd/overlay/es/overlay-context.js
8161
8162var OverlayContext = /*#__PURE__*/Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["createContext"])({
8163 setVisibleOverlayToParent: function setVisibleOverlayToParent() {}
8164});
8165/* harmony default export */ var overlay_context = (OverlayContext);
8166// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.11@@alifd/overlay/es/overlay.js
8167
8168
8169
8170var _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"],
8171 _excluded2 = ["setVisibleOverlayToParent"];
8172
8173var _this = this;
8174
8175function _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."); }
8176
8177function _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); }
8178
8179function _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; }
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189var isScrollDisplay = function isScrollDisplay(element) {
8190 try {
8191 var scrollbarStyle = window.getComputedStyle(element, '::-webkit-scrollbar');
8192 return !scrollbarStyle || scrollbarStyle.getPropertyValue('display') !== 'none';
8193 } catch (e) {// ignore error for firefox
8194 }
8195
8196 return true;
8197};
8198
8199var overlay_hasScroll = function hasScroll(containerNode) {
8200 var overflow = getStyle(containerNode, 'overflow');
8201
8202 if (overflow === 'hidden') {
8203 return false;
8204 }
8205
8206 var parentNode = containerNode.parentNode;
8207 return parentNode && parentNode.scrollHeight > parentNode.clientHeight && getScrollbarWidth() > 0 && isScrollDisplay(parentNode) && isScrollDisplay(containerNode);
8208};
8209/**
8210 * 传入的组件可能是没有 forwardRef 包裹的 Functional Component, 会导致取不到 ref
8211 */
8212
8213
8214var overlay_RefWrapper = /*#__PURE__*/function (_React$Component) {
8215 inheritsLoose_default()(RefWrapper, _React$Component);
8216
8217 function RefWrapper() {
8218 return _React$Component.apply(this, arguments) || this;
8219 }
8220
8221 var _proto = RefWrapper.prototype;
8222
8223 _proto.render = function render() {
8224 return this.props.children;
8225 };
8226
8227 return RefWrapper;
8228}(external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.Component);
8229var Overlay = /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.forwardRef(function (props, ref) {
8230 var _overflowRef$current;
8231
8232 var body = function body() {
8233 return document.body;
8234 };
8235
8236 var target = props.target,
8237 children = props.children,
8238 wrapperClassName = props.wrapperClassName,
8239 maskClassName = props.maskClassName,
8240 maskStyle = props.maskStyle,
8241 hasMask = props.hasMask,
8242 _props$canCloseByMask = props.canCloseByMask,
8243 canCloseByMask = _props$canCloseByMask === void 0 ? true : _props$canCloseByMask,
8244 maskRender = props.maskRender,
8245 points = props.points,
8246 offset = props.offset,
8247 fixed = props.fixed,
8248 visible = props.visible,
8249 _props$onRequestClose = props.onRequestClose,
8250 onRequestClose = _props$onRequestClose === void 0 ? function () {} : _props$onRequestClose,
8251 onOpen = props.onOpen,
8252 onClose = props.onClose,
8253 _props$container = props.container,
8254 popupContainer = _props$container === void 0 ? body : _props$container,
8255 placement = props.placement,
8256 placementOffset = props.placementOffset,
8257 _props$disableScroll = props.disableScroll,
8258 disableScroll = _props$disableScroll === void 0 ? false : _props$disableScroll,
8259 _props$canCloseByOutS = props.canCloseByOutSideClick,
8260 canCloseByOutSideClick = _props$canCloseByOutS === void 0 ? true : _props$canCloseByOutS,
8261 _props$canCloseByEsc = props.canCloseByEsc,
8262 canCloseByEsc = _props$canCloseByEsc === void 0 ? true : _props$canCloseByEsc,
8263 safeNode = props.safeNode,
8264 beforePosition = props.beforePosition,
8265 onPosition = props.onPosition,
8266 _props$cache = props.cache,
8267 cache = _props$cache === void 0 ? false : _props$cache,
8268 autoAdjust = props.autoAdjust,
8269 _props$autoFocus = props.autoFocus,
8270 autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,
8271 _props$isAnimationEnd = props.isAnimationEnd,
8272 isAnimationEnd = _props$isAnimationEnd === void 0 ? true : _props$isAnimationEnd,
8273 rtl = props.rtl,
8274 owrapperStyle = props.wrapperStyle,
8275 others = objectWithoutPropertiesLoose_default()(props, _excluded);
8276
8277 var position = fixed ? 'fixed' : 'absolute';
8278
8279 var _useState = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useState"])(visible),
8280 firstVisible = _useState[0],
8281 setFirst = _useState[1];
8282
8283 var _useState2 = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useState"])(null),
8284 forceUpdate = _useState2[1];
8285
8286 var positionStyleRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])({
8287 position: position
8288 });
8289 var getContainer = typeof popupContainer === 'string' ? function () {
8290 return document.getElementById(popupContainer);
8291 } : typeof popupContainer !== 'function' ? function () {
8292 return popupContainer;
8293 } : popupContainer;
8294
8295 var _useState3 = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useState"])(null),
8296 container = _useState3[0],
8297 setContainer = _useState3[1];
8298
8299 var targetRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8300 var preTarget = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(target);
8301 var overlayRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8302 var containerRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8303 var maskRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8304 var overflowRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])([]);
8305 var lastFocus = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8306 var ro = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8307
8308 var _useState4 = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useState"])(Date.now().toString(36)),
8309 uuid = _useState4[0];
8310
8311 var _useContext = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useContext"])(overlay_context),
8312 setVisibleOverlayToParent = _useContext.setVisibleOverlayToParent,
8313 otherContext = objectWithoutPropertiesLoose_default()(_useContext, _excluded2);
8314
8315 var childIDMap = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(new Map());
8316
8317 var handleOpen = function handleOpen(node) {
8318 setVisibleOverlayToParent(uuid, node);
8319 onOpen === null || onOpen === void 0 ? void 0 : onOpen(node);
8320 };
8321
8322 var handleClose = function handleClose() {
8323 positionStyleRef.current = null;
8324 setVisibleOverlayToParent(uuid, null);
8325 onClose === null || onClose === void 0 ? void 0 : onClose();
8326 };
8327
8328 var getVisibleOverlayFromChild = function getVisibleOverlayFromChild(id, node) {
8329 if (node) {
8330 childIDMap.current.set(id, node);
8331 } else {
8332 childIDMap.current["delete"](id);
8333 } // 让父级也感知
8334
8335
8336 setVisibleOverlayToParent(id, node);
8337 };
8338
8339 var child = external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.Children.only(children);
8340
8341 if (typeof child.ref === 'string') {
8342 throw new Error('Can not set ref by string in Overlay, use function instead.');
8343 }
8344
8345 var updatePosition = function updatePosition() {
8346 var overlayNode = overlayRef.current;
8347 var containerNode = containerRef.current;
8348 var targetNode = targetRef.current;
8349
8350 if (!overlayNode || !containerNode || !targetNode) {
8351 return;
8352 }
8353
8354 var placements = getPlacements({
8355 target: targetNode,
8356 overlay: overlayNode,
8357 container: containerNode,
8358 scrollNode: overflowRef.current,
8359 points: points,
8360 offset: offset,
8361 position: position,
8362 placement: placement,
8363 placementOffset: placementOffset,
8364 beforePosition: beforePosition,
8365 autoAdjust: autoAdjust,
8366 rtl: rtl
8367 });
8368
8369 if (!isSameObject(positionStyleRef.current, placements.style)) {
8370 positionStyleRef.current = placements.style;
8371 setStyle(overlayNode, placements.style);
8372 typeof onPosition === 'function' && onPosition(placements);
8373 }
8374 }; // 弹窗挂载
8375
8376
8377 var overlayRefCallback = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useCallback"])(function (nodeRef) {
8378 var node = Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["findDOMNode"])(nodeRef);
8379 overlayRef.current = node;
8380 callRef(ref, node);
8381
8382 if (node !== null && container) {
8383 var containerNode = getRelativeContainer(getHTMLElement(container));
8384 containerRef.current = containerNode;
8385 var targetElement = target === 'viewport' ? hasMask ? maskRef.current : body() : getTargetNode(target) || body();
8386 var targetNode = getHTMLElement(targetElement);
8387 targetRef.current = targetNode;
8388 overflowRef.current = getOverflowNodes(targetNode, containerNode); // 1. 这里提前先设置好 position 属性,因为有的节点可能会因为设置了 position 属性导致宽度变小
8389 // 2. 提前设置 top/left -1000 先把弹窗藏起来,以免影响了 container 的高度计算
8390
8391 setStyle(node, {
8392 position: fixed ? 'fixed' : 'absolute',
8393 top: -1000,
8394 left: -1000
8395 });
8396 var waitTime = 100;
8397 ro.current = new ResizeObserver_es["default"](throttle(updatePosition.bind(_this), waitTime));
8398 ro.current.observe(containerNode);
8399 ro.current.observe(node);
8400 forceUpdate({});
8401
8402 if (autoFocus) {
8403 // 这里setTimeout是等弹窗位置计算完成再进行 focus,否则弹窗还在页面最低端,会出现突然滚动到页面最下方的情况
8404 setTimeout(function () {
8405 var focusableNodes = getFocusNodeList(node);
8406
8407 if (focusableNodes.length > 0 && focusableNodes[0]) {
8408 lastFocus.current = document.activeElement;
8409 focusableNodes[0].focus();
8410 }
8411 }, waitTime);
8412 }
8413
8414 !cache && handleOpen(node);
8415 } else {
8416 !cache && handleClose();
8417
8418 if (ro.current) {
8419 ro.current.disconnect();
8420 ro.current = null;
8421 }
8422 }
8423 }, [container]);
8424
8425 var clickEvent = function clickEvent(e) {
8426 // 点击在子元素上面,则忽略。为了兼容 react16,这里用 contains 判断而不利用 e.stopPropagation() 阻止冒泡的特性来处理
8427 for (var _iterator = _createForOfIteratorHelperLoose(childIDMap.current.entries()), _step; !(_step = _iterator()).done;) {
8428 var _step$value = _step.value,
8429 oNode = _step$value[1];
8430
8431 var _node2 = getHTMLElement(oNode);
8432
8433 if (_node2 && (_node2 === e.target || _node2.contains(e.target))) {
8434 return;
8435 }
8436 }
8437
8438 if (!visible) {
8439 return;
8440 } // 点击遮罩关闭
8441
8442
8443 if (hasMask && maskRef.current === e.target) {
8444 if (canCloseByMask) {
8445 onRequestClose('maskClick', e); // TODO: will rename to `mask` in 1.0
8446 }
8447
8448 return;
8449 }
8450
8451 var safeNodeList = Array.isArray(safeNode) ? safeNode : [safeNode]; // 弹层默认是安全节点
8452
8453 if (overlayRef.current) {
8454 safeNodeList.push(function () {
8455 return overlayRef.current;
8456 });
8457 } // 安全节点不关闭
8458
8459
8460 for (var i = 0; i < safeNodeList.length; i++) {
8461 var _safeNode = getTargetNode(safeNodeList[i]);
8462
8463 var _node = getHTMLElement(_safeNode);
8464
8465 if (_node && (_node === e.target || _node.contains(e.target))) {
8466 return;
8467 }
8468 }
8469
8470 if (canCloseByOutSideClick) {
8471 onRequestClose('docClick', e); // TODO: will rename to `doc` in 1.0
8472 }
8473 }; // 这里用 mousedown 而不是用 click。因为 click 是 mouseup 才触发。
8474 // 如果用 click 带来的问题: mousedown 在弹窗内部,然后按住鼠标不放拖动到弹窗外触发 mouseup 结果弹窗关了,这是不期望的展示。 https://github.com/alibaba-fusion/next/issues/742
8475 // react 17 冒泡问题:
8476 // - react17 中,如果弹窗 mousedown 阻止了 e.stopPropagation(), 那么 document 就不会监听到事件,因为事件冒泡到挂载节点 rootElement 就中断了。
8477 // - https://reactjs.org/blog/2020/08/10/react-v17-rc.html#changes-to-event-delegation
8478
8479
8480 useListener(document, 'mousedown', clickEvent, false, !!(visible && overlayRef.current && (canCloseByOutSideClick || hasMask && canCloseByMask)));
8481
8482 var keydownEvent = function keydownEvent(e) {
8483 if (!visible) {
8484 return;
8485 } // 无子元素才能 esc 取消关闭
8486
8487
8488 if (e.keyCode === 27 && canCloseByEsc && !childIDMap.current.size) {
8489 onRequestClose('esc', e);
8490 }
8491 };
8492
8493 useListener(document, 'keydown', keydownEvent, false, !!(visible && overlayRef.current && canCloseByEsc));
8494
8495 var scrollEvent = function scrollEvent(e) {
8496 if (!visible) {
8497 return;
8498 }
8499
8500 updatePosition();
8501 };
8502
8503 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
8504
8505 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8506 if (visible && disableScroll) {
8507 var originStyle = document.body.getAttribute('style');
8508 setStyle(document.body, 'overflow', 'hidden');
8509
8510 if (overlay_hasScroll(document.body)) {
8511 var scrollWidth = getScrollbarWidth();
8512
8513 if (scrollWidth) {
8514 setStyle(document.body, 'padding-right', "calc(" + getStyle(document.body, 'padding-right') + " + " + scrollWidth + "px)");
8515 }
8516 }
8517
8518 return function () {
8519 document.body.setAttribute('style', originStyle || '');
8520 };
8521 }
8522
8523 return undefined;
8524 }, [visible && disableScroll]); // 第一次加载并且 visible=false 的情况不挂载弹窗
8525
8526 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8527 if (!firstVisible && visible) {
8528 setFirst(true);
8529 }
8530 }, [visible]); // cache 情况下的模拟 onOpen/onClose
8531
8532 var overlayNode = overlayRef.current; // overlayRef.current 可能会异步变化,所以要先接下
8533
8534 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8535 if (cache && overlayNode) {
8536 if (visible) {
8537 updatePosition();
8538 handleOpen(overlayNode);
8539 } else {
8540 handleClose();
8541 }
8542 }
8543 }, [visible, cache && overlayNode]); // target 动态更新则重新刷新定位
8544
8545 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8546 if (visible && overlayNode) {
8547 if (target && targetRef.current && preTarget.current !== target) {
8548 var targetElement = target === 'viewport' ? hasMask ? maskRef.current : body() : getTargetNode(target) || body();
8549 var targetNode = getHTMLElement(targetElement);
8550
8551 if (targetNode && targetRef.current !== targetNode) {
8552 targetRef.current = targetNode;
8553 updatePosition();
8554 }
8555
8556 preTarget.current = target;
8557 }
8558 }
8559 }, [target]);
8560 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8561 if (visible && overlayNode) {
8562 updatePosition();
8563 }
8564 }, [offset, placement, placementOffset, points, autoAdjust, rtl]); // autoFocus 弹窗关闭后回到触发点
8565
8566 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8567 if (!visible && autoFocus && lastFocus.current) {
8568 lastFocus.current.focus();
8569 lastFocus.current = null;
8570 }
8571 }, [!visible && autoFocus && lastFocus.current]); // container 异步加载, 因为 container 很可能还没渲染完成,所以 visible 后这里异步设置下
8572
8573 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8574 if (visible) {
8575 // 首次更新
8576 if (!container) {
8577 setContainer(getContainer());
8578 } else if (getContainer() !== container) {
8579 setContainer(getContainer());
8580 }
8581 }
8582 }, [visible, popupContainer]);
8583
8584 if (firstVisible === false || !container) {
8585 return null;
8586 }
8587
8588 if (!visible && !cache && isAnimationEnd) {
8589 return null;
8590 }
8591
8592 var newChildren = child ? /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.createElement(overlay_RefWrapper, {
8593 ref: overlayRefCallback
8594 }, /*#__PURE__*/Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["cloneElement"])(child, extends_default()({}, others, {
8595 style: extends_default()({
8596 top: 0,
8597 left: 0
8598 }, child.props.style, positionStyleRef.current)
8599 }))) : null;
8600
8601 var wrapperStyle = extends_default()({}, owrapperStyle);
8602
8603 if (cache && !visible && isAnimationEnd) {
8604 wrapperStyle.display = 'none';
8605 }
8606
8607 var maskNode = /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.createElement("div", {
8608 className: maskClassName,
8609 style: maskStyle,
8610 ref: maskRef
8611 });
8612 var content = /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.createElement("div", {
8613 className: wrapperClassName,
8614 style: wrapperStyle
8615 }, hasMask ? maskRender ? maskRender(maskNode) : maskNode : null, newChildren);
8616 return /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.createElement(overlay_context.Provider, {
8617 value: extends_default()({}, otherContext, {
8618 setVisibleOverlayToParent: getVisibleOverlayFromChild
8619 })
8620 }, /*#__PURE__*/Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["createPortal"])(content, container));
8621});
8622/* harmony default export */ var es_overlay = (Overlay);
8623// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.11@@alifd/overlay/es/popup.js
8624
8625
8626var popup__excluded = ["overlay", "triggerType", "triggerClickKeyCode", "children", "defaultVisible", "className", "onVisibleChange", "container", "style", "placement", "canCloseByTrigger", "delay", "overlayProps", "safeNode", "followTrigger", "target", "disabled"];
8627
8628
8629
8630
8631var Popup = /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.forwardRef(function (props, ref) {
8632 var body = function body() {
8633 return document.body;
8634 };
8635
8636 var overlay = props.overlay,
8637 _props$triggerType = props.triggerType,
8638 triggerType = _props$triggerType === void 0 ? 'click' : _props$triggerType,
8639 triggerClickKeyCode = props.triggerClickKeyCode,
8640 children = props.children,
8641 defaultVisible = props.defaultVisible,
8642 className = props.className,
8643 _props$onVisibleChang = props.onVisibleChange,
8644 onVisibleChange = _props$onVisibleChang === void 0 ? function () {} : _props$onVisibleChang,
8645 _props$container = props.container,
8646 container = _props$container === void 0 ? body : _props$container,
8647 _props$style = props.style,
8648 style = _props$style === void 0 ? {} : _props$style,
8649 _props$placement = props.placement,
8650 placement = _props$placement === void 0 ? "bl" : _props$placement,
8651 _props$canCloseByTrig = props.canCloseByTrigger,
8652 canCloseByTrigger = _props$canCloseByTrig === void 0 ? true : _props$canCloseByTrig,
8653 _props$delay = props.delay,
8654 delay = _props$delay === void 0 ? 200 : _props$delay,
8655 _props$overlayProps = props.overlayProps,
8656 overlayProps = _props$overlayProps === void 0 ? {} : _props$overlayProps,
8657 safeNode = props.safeNode,
8658 _props$followTrigger = props.followTrigger,
8659 followTrigger = _props$followTrigger === void 0 ? false : _props$followTrigger,
8660 otarget = props.target,
8661 _props$disabled = props.disabled,
8662 disabled = _props$disabled === void 0 ? false : _props$disabled,
8663 others = objectWithoutPropertiesLoose_default()(props, popup__excluded);
8664
8665 var _useState = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useState"])(defaultVisible || props.visible),
8666 visible = _useState[0],
8667 setVisible = _useState[1];
8668
8669 var triggerRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8670 var overlayRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8671 var mouseLeaveTimer = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8672 var mouseEnterTimer = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8673 var overlayClick = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(false);
8674 var child = children && external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.Children.only(children);
8675 var overlayChild = external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.Children.only(overlay);
8676 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8677 if ('visible' in props) {
8678 setVisible(props.visible);
8679 }
8680 }, [props.visible]);
8681
8682 var handleVisibleChange = function handleVisibleChange(visible, e, triggerType) {
8683 if (triggerType === void 0) {
8684 triggerType = 'fromTrigger';
8685 }
8686
8687 if (disabled) {
8688 return;
8689 }
8690
8691 if (!('visible' in props)) {
8692 if (visible || overlayRef.current) {
8693 setVisible(visible);
8694 }
8695 }
8696
8697 onVisibleChange(visible, triggerType, e);
8698 };
8699
8700 var handleClick = function handleClick(e) {
8701 if (visible && !canCloseByTrigger) {
8702 return;
8703 }
8704
8705 handleVisibleChange(!visible, e); // todo: rename to trigger in 1.x
8706 };
8707
8708 var handleKeyDown = function handleKeyDown(e) {
8709 var keycodes = Array.isArray(triggerClickKeyCode) ? triggerClickKeyCode : [triggerClickKeyCode];
8710
8711 if (keycodes.includes(e.keyCode)) {
8712 handleVisibleChange(!visible, e); // todo: rename to trigger in 1.x
8713 }
8714 };
8715
8716 var handleMouseEnter = function handleMouseEnter(targetType) {
8717 return function (e) {
8718 if (mouseLeaveTimer.current && visible) {
8719 clearTimeout(mouseLeaveTimer.current);
8720 mouseLeaveTimer.current = null;
8721 return;
8722 }
8723
8724 if (!mouseEnterTimer.current && !visible) {
8725 mouseEnterTimer.current = setTimeout(function () {
8726 handleVisibleChange(true, e, targetType);
8727 mouseEnterTimer.current = null;
8728 }, delay);
8729 }
8730 };
8731 };
8732
8733 var handleMouseLeave = function handleMouseLeave(targetType) {
8734 return function (e) {
8735 if (!mouseLeaveTimer.current && visible) {
8736 mouseLeaveTimer.current = setTimeout(function () {
8737 handleVisibleChange(false, e, targetType);
8738 mouseLeaveTimer.current = null;
8739 }, delay);
8740 }
8741
8742 if (mouseEnterTimer.current && !visible) {
8743 clearTimeout(mouseEnterTimer.current);
8744 mouseEnterTimer.current = null;
8745 }
8746 };
8747 };
8748
8749 var handleFocus = function handleFocus(e) {
8750 handleVisibleChange(true, e);
8751 };
8752
8753 var handleBlur = function handleBlur(e) {
8754 if (overlayClick.current) {
8755 overlayClick.current = false;
8756 return;
8757 }
8758
8759 handleVisibleChange(false, e);
8760 }; // 点击弹窗的时候不能被 onBlur 关闭
8761
8762
8763 var handleOverlayClick = function handleOverlayClick(e) {
8764 overlayClick.current = true;
8765 };
8766
8767 var handleRequestClose = function handleRequestClose(targetType, e) {
8768 handleVisibleChange(false, e, targetType);
8769 };
8770
8771 var triggerProps = {};
8772 var overlayOtherProps = {};
8773 var safeNodes = Array.isArray(safeNode) ? safeNode : [safeNode];
8774
8775 if (child && !disabled) {
8776 var triggerTypeList = typeof triggerType === 'string' ? [triggerType] : triggerType;
8777 triggerTypeList.forEach(function (t) {
8778 var _child$props, _child$props2, _child$props3, _child$props4, _child$props5, _child$props6;
8779
8780 switch (t) {
8781 case 'click':
8782 triggerProps.onClick = makeChain(handleClick, (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.onClick);
8783 triggerProps.onKeyDown = makeChain(handleKeyDown, (_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.onKeyDown);
8784 break;
8785
8786 case 'hover':
8787 triggerProps.onMouseEnter = makeChain(handleMouseEnter('fromTrigger'), (_child$props3 = child.props) === null || _child$props3 === void 0 ? void 0 : _child$props3.onMouseEnter);
8788 triggerProps.onMouseLeave = makeChain(handleMouseLeave('fromTrigger'), (_child$props4 = child.props) === null || _child$props4 === void 0 ? void 0 : _child$props4.onMouseLeave);
8789 overlayOtherProps.onMouseEnter = makeChain(handleMouseEnter('overlay'), overlayProps.onMouseEnter);
8790 overlayOtherProps.onMouseLeave = makeChain(handleMouseLeave('overlay'), overlayProps.onMouseLeave);
8791 break;
8792
8793 case 'focus':
8794 triggerProps.onFocus = makeChain(handleFocus, (_child$props5 = child.props) === null || _child$props5 === void 0 ? void 0 : _child$props5.onFocus);
8795 triggerProps.onBlur = makeChain(handleBlur, (_child$props6 = child.props) === null || _child$props6 === void 0 ? void 0 : _child$props6.onBlur);
8796 overlayOtherProps.onMouseDown = makeChain(handleOverlayClick, overlayProps.onMouseDown);
8797 break;
8798 }
8799 }); // trigger 是安全节点
8800
8801 safeNodes.push(function () {
8802 return Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["findDOMNode"])(triggerRef.current);
8803 });
8804 }
8805
8806 var target = otarget ? otarget : child ? function () {
8807 return Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["findDOMNode"])(triggerRef.current);
8808 } : body;
8809 var getContainer = typeof container === 'string' ? function () {
8810 return document.getElementById(container);
8811 } : typeof container !== 'function' ? function () {
8812 return container;
8813 } : function () {
8814 return container(Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["findDOMNode"])(triggerRef.current));
8815 };
8816 var overlayContainer = followTrigger ? function () {
8817 var _findDOMNode;
8818
8819 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;
8820 } : getContainer; // triggerRef 可能会更新,等计算的时候再通过 findDOMNode 取真实值
8821
8822 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, {
8823 ref: Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useCallback"])(function (ref) {
8824 return triggerRef.current = ref;
8825 }, [])
8826 }, /*#__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, {
8827 placement: placement,
8828 container: overlayContainer,
8829 safeNode: safeNodes,
8830 visible: visible,
8831 target: target,
8832 onRequestClose: handleRequestClose,
8833 ref: Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useCallback"])(makeChain(saveRef(overlayRef), saveRef(ref)), [])
8834 }), overlayChild));
8835});
8836/* harmony default export */ var popup = (Popup);
8837// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.11@@alifd/overlay/es/index.js
8838
8839
8840
8841var es_Overlay = es_overlay;
8842es_Overlay.Popup = popup;
8843es_Overlay.OverlayContext = overlay_context;
8844/* harmony default export */ var es = __webpack_exports__["default"] = (es_Overlay);
8845
8846/***/ }),
8847/* 86 */
8848/***/ (function(module, exports, __webpack_require__) {
8849
8850"use strict";
8851
8852
8853exports.__esModule = true;
8854
8855var _extends2 = __webpack_require__(1);
8856
8857var _extends3 = _interopRequireDefault(_extends2);
8858
8859var _objectWithoutProperties2 = __webpack_require__(8);
8860
8861var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
8862
8863var _classCallCheck2 = __webpack_require__(2);
8864
8865var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
8866
8867var _possibleConstructorReturn2 = __webpack_require__(3);
8868
8869var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
8870
8871var _inherits2 = __webpack_require__(4);
8872
8873var _inherits3 = _interopRequireDefault(_inherits2);
8874
8875var _class, _temp;
8876
8877var _react = __webpack_require__(0);
8878
8879var _react2 = _interopRequireDefault(_react);
8880
8881var _propTypes = __webpack_require__(5);
8882
8883var _propTypes2 = _interopRequireDefault(_propTypes);
8884
8885var _classnames = __webpack_require__(7);
8886
8887var _classnames2 = _interopRequireDefault(_classnames);
8888
8889var _util = __webpack_require__(6);
8890
8891var _icon = __webpack_require__(11);
8892
8893var _icon2 = _interopRequireDefault(_icon);
8894
8895var _zhCn = __webpack_require__(13);
8896
8897var _zhCn2 = _interopRequireDefault(_zhCn);
8898
8899var _alignMap = __webpack_require__(87);
8900
8901function _interopRequireDefault(obj) {
8902 return obj && obj.__esModule ? obj : { default: obj };
8903}
8904
8905/**
8906 * Created by xiachi on 17/2/10.
8907 */
8908
8909var noop = _util.func.noop;
8910var BalloonInner = (_temp = _class = function (_React$Component) {
8911 (0, _inherits3.default)(BalloonInner, _React$Component);
8912
8913 function BalloonInner() {
8914 (0, _classCallCheck3.default)(this, BalloonInner);
8915 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
8916 }
8917
8918 BalloonInner.prototype.render = function render() {
8919 var _classNames, _classNames2;
8920
8921 var _props = this.props,
8922 prefix = _props.prefix,
8923 closable = _props.closable,
8924 className = _props.className,
8925 style = _props.style,
8926 isTooltip = _props.isTooltip,
8927 align = _props.align,
8928 title = _props.title,
8929 type = _props.type,
8930 onClose = _props.onClose,
8931 alignEdge = _props.alignEdge,
8932 v2 = _props.v2,
8933 children = _props.children,
8934 rtl = _props.rtl,
8935 locale = _props.locale,
8936 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'closable', 'className', 'style', 'isTooltip', 'align', 'title', 'type', 'onClose', 'alignEdge', 'v2', 'children', 'rtl', 'locale']);
8937
8938 var alignMap = alignEdge || v2 ? _alignMap.edgeMap : _alignMap.normalMap;
8939 var _prefix = prefix;
8940
8941 if (isTooltip) {
8942 _prefix = _prefix + 'balloon-tooltip';
8943 } else {
8944 _prefix = _prefix + 'balloon';
8945 }
8946
8947 var closableInTitle = closable && title !== undefined;
8948 var closableInContent = closable && title === undefined;
8949
8950 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));
8951
8952 var titleCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'balloon-title'] = true, _classNames2[_prefix + '-closable'] = closableInTitle, _classNames2));
8953
8954 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' }));
8955
8956 return _react2.default.createElement('div', (0, _extends3.default)({
8957 role: 'tooltip',
8958 'aria-live': 'polite',
8959 dir: rtl ? 'rtl' : undefined,
8960 className: classes,
8961 style: style
8962 }, _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);
8963 };
8964
8965 return BalloonInner;
8966}(_react2.default.Component), _class.contextTypes = {
8967 prefix: _propTypes2.default.string
8968}, _class.propTypes = {
8969 prefix: _propTypes2.default.string,
8970 rtl: _propTypes2.default.bool,
8971 closable: _propTypes2.default.bool,
8972 children: _propTypes2.default.any,
8973 title: _propTypes2.default.node,
8974 className: _propTypes2.default.string,
8975 alignEdge: _propTypes2.default.bool,
8976 onClose: _propTypes2.default.func,
8977 style: _propTypes2.default.any,
8978 align: _propTypes2.default.string,
8979 type: _propTypes2.default.string,
8980 isTooltip: _propTypes2.default.bool,
8981 locale: _propTypes2.default.object,
8982 pure: _propTypes2.default.bool,
8983 v2: _propTypes2.default.bool
8984}, _class.defaultProps = {
8985 prefix: 'next-',
8986 closable: true,
8987 onClose: noop,
8988 locale: _zhCn2.default.Balloon,
8989 align: 'b',
8990 type: 'normal',
8991 alignEdge: false,
8992 pure: false
8993}, _temp);
8994BalloonInner.displayName = 'BalloonInner';
8995exports.default = BalloonInner;
8996module.exports = exports['default'];
8997
8998/***/ }),
8999/* 87 */
9000/***/ (function(module, exports, __webpack_require__) {
9001
9002"use strict";
9003
9004
9005exports.__esModule = true;
9006/**
9007 * Created by xiachi on 17/1/17.
9008 */
9009
9010var normalMap = {
9011 t: {
9012 align: 'bc tc',
9013 rtlAlign: 'bc tc',
9014 arrow: 'bottom',
9015 trOrigin: 'bottom',
9016 rtlTrOrigin: 'bottom',
9017 offset: [0, -12]
9018 },
9019 r: {
9020 align: 'cl cr',
9021 rtlAlign: 'cr cl',
9022 arrow: 'left',
9023 trOrigin: 'left',
9024 rtlTrOrigin: 'right',
9025 offset: [12, 0]
9026 },
9027 b: {
9028 align: 'tc bc',
9029 rtlAlign: 'tc bc',
9030 arrow: 'top',
9031 trOrigin: 'top',
9032 rtlTrOrigin: 'top',
9033 offset: [0, 12]
9034 },
9035 l: {
9036 align: 'cr cl',
9037 rtlAlign: 'cl cr',
9038 arrow: 'right',
9039 trOrigin: 'right',
9040 rtlTrOrigin: 'left',
9041 offset: [-12, 0]
9042 },
9043 tl: {
9044 align: 'br tc',
9045 rtlAlign: 'bl tc',
9046 arrow: 'bottom-right',
9047 trOrigin: 'bottom right',
9048 rtlTrOrigin: 'bottom left',
9049 offset: [20, -12]
9050 },
9051 tr: {
9052 align: 'bl tc',
9053 rtlAlign: 'br tc',
9054 arrow: 'bottom-left',
9055 trOrigin: 'bottom left',
9056 rtlTrOrigin: 'bottom right',
9057 offset: [-20, -12]
9058 },
9059 rt: {
9060 align: 'bl cr',
9061 rtlAlign: 'br cl',
9062 arrow: 'left-bottom',
9063 trOrigin: 'bottom left',
9064 rtlTrOrigin: 'bottom right',
9065 offset: [12, 20]
9066 },
9067 rb: {
9068 align: 'tl cr',
9069 rtlAlign: 'tr cl',
9070 arrow: 'left-top',
9071 trOrigin: 'top left',
9072 rtlTrOrigin: 'top right',
9073 offset: [12, -20]
9074 },
9075 bl: {
9076 align: 'tr bc',
9077 rtlAlign: 'tl bc',
9078 arrow: 'top-right',
9079 trOrigin: 'top right',
9080 rtlTrOrigin: 'top left',
9081 offset: [20, 12]
9082 },
9083 br: {
9084 align: 'tl bc',
9085 rtlAlign: 'tr bc',
9086 arrow: 'top-left',
9087 trOrigin: 'top left',
9088 rtlTrOrigin: 'top right',
9089 offset: [-20, 12]
9090 },
9091 lt: {
9092 align: 'br cl',
9093 rtlAlign: 'bl cr',
9094 arrow: 'right-bottom',
9095 trOrigin: 'bottom right',
9096 rtlTrOrigin: 'bottom left',
9097 offset: [-12, 20]
9098 },
9099 lb: {
9100 align: 'tr cl',
9101 rtlAlign: 'tl cr',
9102 arrow: 'right-top',
9103 trOrigin: 'top right',
9104 rtlTrOrigin: 'top left',
9105 offset: [-12, -20]
9106 }
9107};
9108var edgeMap = {
9109 t: {
9110 align: 'bc tc',
9111 rtlAlign: 'bc tc',
9112 arrow: 'bottom',
9113 trOrigin: 'bottom',
9114 rtlTrOrigin: 'bottom',
9115 offset: [0, -12]
9116 },
9117 r: {
9118 align: 'cl cr',
9119 rtlAlign: 'cr cl',
9120 arrow: 'left',
9121 trOrigin: 'left',
9122 rtlTrOrigin: 'right',
9123 offset: [12, 0]
9124 },
9125 b: {
9126 align: 'tc bc',
9127 rtlAlign: 'tc bc',
9128 arrow: 'top',
9129 trOrigin: 'top',
9130 rtlTrOrigin: 'top',
9131 offset: [0, 12]
9132 },
9133 l: {
9134 align: 'cr cl',
9135 rtlAlign: 'cl cr',
9136 arrow: 'right',
9137 trOrigin: 'right',
9138 rtlTrOrigin: 'left',
9139 offset: [-12, 0]
9140 },
9141 tl: {
9142 align: 'bl tl',
9143 rtlAlign: 'br tr',
9144 arrow: 'bottom-left',
9145 trOrigin: 'bottom left',
9146 rtlTrOrigin: 'bottom right',
9147 offset: [0, -12]
9148 },
9149 tr: {
9150 align: 'br tr',
9151 rtlAlign: 'bl tl',
9152 arrow: 'bottom-right',
9153 trOrigin: 'bottom right',
9154 rtlTrOrigin: 'bottom left',
9155 offset: [0, -12]
9156 },
9157 rt: {
9158 align: 'tl tr',
9159 rtlAlign: 'tr tl',
9160 arrow: 'left-top',
9161 trOrigin: 'top left',
9162 rtlTrOrigin: 'top right',
9163 offset: [12, 0]
9164 },
9165 rb: {
9166 align: 'bl br',
9167 rtlAlign: 'br bl',
9168 arrow: 'left-bottom',
9169 trOrigin: 'bottom left',
9170 rtlTrOrigin: 'bottom right',
9171 offset: [12, 0]
9172 },
9173 bl: {
9174 align: 'tl bl',
9175 rtlAlign: 'tr br',
9176 arrow: 'top-left',
9177 trOrigin: 'top left',
9178 rtlTrOrigin: 'top right',
9179 offset: [0, 12]
9180 },
9181 br: {
9182 align: 'tr br',
9183 rtlAlign: 'tl bl',
9184 arrow: 'top-right',
9185 trOrigin: 'top right',
9186 rtlTrOrigin: 'top left',
9187 offset: [0, 12]
9188 },
9189 lt: {
9190 align: 'tr tl',
9191 rtlAlign: 'tl tr',
9192 arrow: 'right-top',
9193 trOrigin: 'top right',
9194 rtlTrOrigin: 'top left',
9195 offset: [-12, 0]
9196 },
9197 lb: {
9198 align: 'br bl',
9199 rtlAlign: 'bl br',
9200 arrow: 'right-bottom',
9201 trOrigin: 'bottom right',
9202 rtlTrOrigin: 'bottom left',
9203 offset: [-12, 0]
9204 }
9205};
9206
9207exports.normalMap = normalMap;
9208exports.edgeMap = edgeMap;
9209
9210/***/ }),
9211/* 88 */
9212/***/ (function(module, exports, __webpack_require__) {
9213
9214"use strict";
9215
9216
9217exports.__esModule = true;
9218exports.default = undefined;
9219
9220var _extends2 = __webpack_require__(1);
9221
9222var _extends3 = _interopRequireDefault(_extends2);
9223
9224var _classCallCheck2 = __webpack_require__(2);
9225
9226var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
9227
9228var _possibleConstructorReturn2 = __webpack_require__(3);
9229
9230var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
9231
9232var _inherits2 = __webpack_require__(4);
9233
9234var _inherits3 = _interopRequireDefault(_inherits2);
9235
9236var _class, _temp;
9237
9238var _react = __webpack_require__(0);
9239
9240var _react2 = _interopRequireDefault(_react);
9241
9242var _propTypes = __webpack_require__(5);
9243
9244var _propTypes2 = _interopRequireDefault(_propTypes);
9245
9246var _classnames = __webpack_require__(7);
9247
9248var _classnames2 = _interopRequireDefault(_classnames);
9249
9250var _icon = __webpack_require__(11);
9251
9252var _icon2 = _interopRequireDefault(_icon);
9253
9254var _util = __webpack_require__(6);
9255
9256var _item = __webpack_require__(38);
9257
9258var _item2 = _interopRequireDefault(_item);
9259
9260function _interopRequireDefault(obj) {
9261 return obj && obj.__esModule ? obj : { default: obj };
9262}
9263
9264var bindCtx = _util.func.bindCtx;
9265var pickOthers = _util.obj.pickOthers;
9266
9267/**
9268 * Menu.Item
9269 * @order 0
9270 */
9271
9272var SelectableItem = (_temp = _class = function (_Component) {
9273 (0, _inherits3.default)(SelectableItem, _Component);
9274
9275 function SelectableItem(props) {
9276 (0, _classCallCheck3.default)(this, SelectableItem);
9277
9278 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
9279
9280 bindCtx(_this, ['handleKeyDown', 'handleClick']);
9281 return _this;
9282 }
9283
9284 SelectableItem.prototype.getSelected = function getSelected() {
9285 var _props = this.props,
9286 _key = _props._key,
9287 root = _props.root,
9288 selected = _props.selected;
9289 var selectMode = root.props.selectMode;
9290 var selectedKeys = root.state.selectedKeys;
9291
9292 return selected || !!selectMode && selectedKeys.indexOf(_key) > -1;
9293 };
9294
9295 SelectableItem.prototype.handleSelect = function handleSelect(e) {
9296 var _props2 = this.props,
9297 _key = _props2._key,
9298 root = _props2.root,
9299 onSelect = _props2.onSelect;
9300
9301 if (onSelect) {
9302 onSelect(!this.getSelected(), this, e);
9303 } else {
9304 root.handleSelect(_key, !this.getSelected(), this);
9305 }
9306 };
9307
9308 SelectableItem.prototype.handleKeyDown = function handleKeyDown(e) {
9309 if (e.keyCode === _util.KEYCODE.SPACE && !this.props.disabled) {
9310 this.handleSelect(e);
9311 }
9312
9313 this.props.onKeyDown && this.props.onKeyDown(e);
9314 };
9315
9316 SelectableItem.prototype.handleClick = function handleClick(e) {
9317 this.handleSelect(e);
9318
9319 this.props.onClick && this.props.onClick(e);
9320 };
9321
9322 SelectableItem.prototype.renderSelectedIcon = function renderSelectedIcon(selected) {
9323 var _cx;
9324
9325 var _props3 = this.props,
9326 root = _props3.root,
9327 inlineIndent = _props3.inlineIndent,
9328 needIndent = _props3.needIndent,
9329 hasSelectedIcon = _props3.hasSelectedIcon,
9330 isSelectIconRight = _props3.isSelectIconRight,
9331 type = _props3.type;
9332 var _root$props = root.props,
9333 prefix = _root$props.prefix,
9334 rootSelectedIcon = _root$props.hasSelectedIcon,
9335 rootSelectIconRight = _root$props.isSelectIconRight,
9336 icons = _root$props.icons;
9337
9338 var iconsSelect = icons.select;
9339
9340 if (!(0, _react.isValidElement)(icons.select) && icons.select) {
9341 iconsSelect = _react2.default.createElement('span', null, icons.select);
9342 }
9343
9344 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));
9345
9346 return ('hasSelectedIcon' in this.props ? hasSelectedIcon : rootSelectedIcon) && selected ? _react2.default.cloneElement(iconsSelect || _react2.default.createElement(_icon2.default, { type: 'select' }), {
9347 style: needIndent && inlineIndent > 0 ? { left: inlineIndent + 'px' } : null,
9348 className: cls
9349 }) : null;
9350 };
9351
9352 SelectableItem.prototype.render = function render() {
9353 var _cx2;
9354
9355 var _props4 = this.props,
9356 _key = _props4._key,
9357 root = _props4.root,
9358 className = _props4.className,
9359 disabled = _props4.disabled,
9360 helper = _props4.helper,
9361 children = _props4.children,
9362 needIndent = _props4.needIndent;
9363 var prefix = root.props.prefix;
9364
9365 var others = pickOthers(Object.keys(SelectableItem.propTypes), this.props);
9366 var selected = this.getSelected();
9367
9368 var newProps = (0, _extends3.default)({
9369 _key: _key,
9370 root: root,
9371 disabled: disabled,
9372 type: 'item',
9373 className: (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'selected'] = selected, _cx2[className] = !!className, _cx2)),
9374 onKeyDown: this.handleKeyDown,
9375 onClick: !disabled ? this.handleClick : this.props.onClick,
9376 needIndent: needIndent
9377 }, others);
9378
9379 if (!('title' in newProps) && typeof children === 'string') {
9380 newProps.title = children;
9381 }
9382
9383 var textProps = {};
9384
9385 if ('selectMode' in root.props) {
9386 textProps['aria-selected'] = selected;
9387 }
9388
9389 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);
9390 };
9391
9392 return SelectableItem;
9393}(_react.Component), _class.menuChildType = 'item', _class.propTypes = {
9394 _key: _propTypes2.default.string,
9395 root: _propTypes2.default.object,
9396 selected: _propTypes2.default.bool,
9397 onSelect: _propTypes2.default.func,
9398 inlineIndent: _propTypes2.default.number,
9399 /**
9400 * 是否禁用
9401 */
9402 disabled: _propTypes2.default.bool,
9403 /**
9404 * 帮助文本
9405 */
9406 helper: _propTypes2.default.node,
9407 /**
9408 * 菜单项标签内容
9409 */
9410 children: _propTypes2.default.node,
9411 className: _propTypes2.default.string,
9412 onKeyDown: _propTypes2.default.func,
9413 onClick: _propTypes2.default.func,
9414 needIndent: _propTypes2.default.bool,
9415 hasSelectedIcon: _propTypes2.default.bool,
9416 isSelectIconRight: _propTypes2.default.bool,
9417 icons: _propTypes2.default.object
9418}, _class.defaultProps = {
9419 disabled: false,
9420 needIndent: true,
9421 icons: {}
9422}, _temp);
9423SelectableItem.displayName = 'SelectableItem';
9424exports.default = SelectableItem;
9425module.exports = exports['default'];
9426
9427/***/ }),
9428/* 89 */
9429/***/ (function(module, exports, __webpack_require__) {
9430
9431"use strict";
9432
9433
9434exports.__esModule = true;
9435var getWidth = exports.getWidth = function getWidth(elem) {
9436 var width = elem && typeof elem.getBoundingClientRect === 'function' && elem.getBoundingClientRect().width;
9437 if (width) {
9438 width = +width.toFixed(6);
9439 }
9440 return width || 0;
9441};
9442
9443var normalizeToArray = exports.normalizeToArray = function normalizeToArray(items) {
9444 if (items) {
9445 if (Array.isArray(items)) {
9446 return items;
9447 }
9448 return [items];
9449 }
9450
9451 return [];
9452};
9453
9454var isSibling = exports.isSibling = function isSibling(currentPos, targetPos) {
9455 var currentNums = currentPos.split('-').slice(0, -1);
9456 var targetNums = targetPos.split('-').slice(0, -1);
9457
9458 return currentNums.length === targetNums.length && currentNums.every(function (num, index) {
9459 return num === targetNums[index];
9460 });
9461};
9462
9463var isAncestor = exports.isAncestor = function isAncestor(currentPos, targetPos) {
9464 var currentNums = currentPos.split('-');
9465 var targetNums = targetPos.split('-');
9466
9467 return currentNums.length > targetNums.length && targetNums.every(function (num, index) {
9468 return num === currentNums[index];
9469 });
9470};
9471
9472var isAvailablePos = exports.isAvailablePos = function isAvailablePos(refPos, targetPos, _p2n) {
9473 var _p2n$targetPos = _p2n[targetPos],
9474 type = _p2n$targetPos.type,
9475 disabled = _p2n$targetPos.disabled;
9476
9477 return isSibling(refPos, targetPos) && (type === 'item' && !disabled || type === 'submenu');
9478};
9479
9480var getFirstAvaliablelChildKey = exports.getFirstAvaliablelChildKey = function getFirstAvaliablelChildKey(parentPos, _p2n) {
9481 var pos = Object.keys(_p2n).find(function (p) {
9482 return isAvailablePos(parentPos + '-0', p, _p2n);
9483 });
9484 return pos ? _p2n[pos].key : null;
9485};
9486
9487/**
9488 * 如果 key 在 SelectedKeys 的选中链上(例如 SelectedKeys 是['0-1-2'], key是 0-1 ),那么返回true
9489 *
9490 * selectMode?: string; 当前的选择模式,一般为 multiple single
9491 * selectedKeys?: string[]; 选中的key值
9492 * k2n?: object[] mapping;
9493 * _key?: string; 待测试的key值
9494 *
9495 * @return bool 当前元素是否有孩子被选中
9496 */
9497var getChildSelected = exports.getChildSelected = function getChildSelected(_ref) {
9498 var selectMode = _ref.selectMode,
9499 selectedKeys = _ref.selectedKeys,
9500 _k2n = _ref._k2n,
9501 _key = _ref._key;
9502
9503 if (!_k2n) {
9504 return false;
9505 }
9506
9507 var _keyPos = (_k2n[_key] && _k2n[_key].pos) + '-';
9508
9509 return !!selectMode && selectedKeys.some(function (key) {
9510 return _k2n[key] && _k2n[key].pos.indexOf(_keyPos) === 0;
9511 });
9512};
9513
9514/***/ }),
9515/* 90 */
9516/***/ (function(module, exports, __webpack_require__) {
9517
9518"use strict";
9519
9520
9521exports.__esModule = true;
9522
9523var _objectWithoutProperties2 = __webpack_require__(8);
9524
9525var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
9526
9527var _extends2 = __webpack_require__(1);
9528
9529var _extends3 = _interopRequireDefault(_extends2);
9530
9531var _classCallCheck2 = __webpack_require__(2);
9532
9533var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
9534
9535var _possibleConstructorReturn2 = __webpack_require__(3);
9536
9537var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
9538
9539var _inherits2 = __webpack_require__(4);
9540
9541var _inherits3 = _interopRequireDefault(_inherits2);
9542
9543var _class, _temp;
9544
9545var _react = __webpack_require__(0);
9546
9547var _react2 = _interopRequireDefault(_react);
9548
9549var _propTypes = __webpack_require__(5);
9550
9551var _propTypes2 = _interopRequireDefault(_propTypes);
9552
9553var _classnames = __webpack_require__(7);
9554
9555var _classnames2 = _interopRequireDefault(_classnames);
9556
9557var _animate = __webpack_require__(20);
9558
9559var _animate2 = _interopRequireDefault(_animate);
9560
9561var _icon = __webpack_require__(11);
9562
9563var _icon2 = _interopRequireDefault(_icon);
9564
9565var _util = __webpack_require__(6);
9566
9567var _zhCn = __webpack_require__(13);
9568
9569var _zhCn2 = _interopRequireDefault(_zhCn);
9570
9571var _configProvider = __webpack_require__(9);
9572
9573var _configProvider2 = _interopRequireDefault(_configProvider);
9574
9575function _interopRequireDefault(obj) {
9576 return obj && obj.__esModule ? obj : { default: obj };
9577}
9578
9579var noop = _util.func.noop,
9580 bindCtx = _util.func.bindCtx;
9581
9582var PRESET_COLOR_REG = /blue|green|orange|red|turquoise|yellow/;
9583
9584/**
9585 * Tag
9586 */
9587var Tag = (_temp = _class = function (_Component) {
9588 (0, _inherits3.default)(Tag, _Component);
9589
9590 function Tag(props) {
9591 (0, _classCallCheck3.default)(this, Tag);
9592
9593 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
9594
9595 _this.onKeyDown = function (e) {
9596 // 针对无障碍化要求 添加键盘SPACE事件
9597 var _this$props = _this.props,
9598 closable = _this$props.closable,
9599 closeArea = _this$props.closeArea,
9600 onClick = _this$props.onClick,
9601 disabled = _this$props.disabled;
9602
9603 if (e.keyCode !== _util.KEYCODE.SPACE || disabled) {
9604 return;
9605 }
9606
9607 e.preventDefault();
9608 e.stopPropagation();
9609
9610 if (closable) {
9611 _this.handleClose(closeArea);
9612 } else {
9613 typeof onClick === 'function' && onClick(e);
9614 }
9615 };
9616
9617 _this.state = {
9618 visible: true
9619 };
9620
9621 bindCtx(_this, ['handleBodyClick', 'handleTailClick', 'handleAnimationInit', 'handleAnimationEnd', 'renderTailNode']);
9622 return _this;
9623 }
9624
9625 Tag.prototype.componentWillUnmount = function componentWillUnmount() {
9626 this.__destroyed = true;
9627 };
9628
9629 Tag.prototype.handleClose = function handleClose(from) {
9630 var _this2 = this;
9631
9632 var _props = this.props,
9633 animation = _props.animation,
9634 onClose = _props.onClose;
9635
9636 var hasAnimation = _util.support.animation && animation;
9637
9638 // 先执行回调
9639 var result = onClose(from, this.tagNode);
9640
9641 // 如果回调函数返回 false,则阻止关闭行为
9642 if (result !== false && !this.__destroyed) {
9643 this.setState({
9644 visible: false
9645 }, function () {
9646 // 如果没有动画,则直接执行 afterClose
9647 !hasAnimation && _this2.props.afterClose(_this2.tagNode);
9648 });
9649 }
9650 };
9651
9652 // 标签体点击
9653
9654
9655 Tag.prototype.handleBodyClick = function handleBodyClick(e) {
9656 var _props2 = this.props,
9657 closable = _props2.closable,
9658 closeArea = _props2.closeArea,
9659 onClick = _props2.onClick;
9660
9661 var node = e.currentTarget;
9662
9663 if (node && (node === e.target || node.contains(e.target))) {
9664 if (closable && closeArea === 'tag') {
9665 this.handleClose('tag');
9666 }
9667
9668 if (typeof onClick === 'function') {
9669 return onClick(e);
9670 }
9671 }
9672 };
9673
9674 Tag.prototype.handleTailClick = function handleTailClick(e) {
9675 e && e.preventDefault();
9676 e && e.stopPropagation();
9677
9678 this.handleClose('tail');
9679 };
9680
9681 Tag.prototype.handleAnimationInit = function handleAnimationInit(node) {
9682 this.props.afterAppear(node);
9683 };
9684
9685 Tag.prototype.handleAnimationEnd = function handleAnimationEnd(node) {
9686 this.props.afterClose(node);
9687 };
9688
9689 Tag.prototype.renderAnimatedTag = function renderAnimatedTag(children, animationName) {
9690 return _react2.default.createElement(_animate2.default, {
9691 animation: animationName,
9692 afterAppear: this.handleAnimationInit,
9693 afterLeave: this.handleAnimationEnd
9694 }, children);
9695 };
9696
9697 Tag.prototype.renderTailNode = function renderTailNode() {
9698 var _props3 = this.props,
9699 prefix = _props3.prefix,
9700 closable = _props3.closable,
9701 locale = _props3.locale;
9702
9703 if (!closable) {
9704 return null;
9705 }
9706
9707 return _react2.default.createElement('span', {
9708 className: prefix + 'tag-close-btn',
9709 onClick: this.handleTailClick,
9710 role: 'button',
9711 'aria-label': locale.delete
9712 }, _react2.default.createElement(_icon2.default, { type: 'close' }));
9713 };
9714
9715 Tag.prototype.isPresetColor = function isPresetColor() {
9716 var color = this.props.color;
9717
9718 if (!color) {
9719 return false;
9720 }
9721
9722 return PRESET_COLOR_REG.test(color);
9723 };
9724
9725 Tag.prototype.getTagStyle = function getTagStyle() {
9726 var _props4 = this.props,
9727 _props4$color = _props4.color,
9728 color = _props4$color === undefined ? '' : _props4$color,
9729 style = _props4.style;
9730
9731 var isPresetColor = this.isPresetColor();
9732 var customColorStyle = {
9733 backgroundColor: color,
9734 borderColor: color,
9735 color: '#fff'
9736 };
9737
9738 return (0, _extends3.default)({}, color && !isPresetColor ? customColorStyle : null, style);
9739 };
9740
9741 Tag.prototype.render = function render() {
9742 var _classNames,
9743 _this3 = this;
9744
9745 var _props5 = this.props,
9746 prefix = _props5.prefix,
9747 type = _props5.type,
9748 size = _props5.size,
9749 color = _props5.color,
9750 _shape = _props5._shape,
9751 closable = _props5.closable,
9752 closeArea = _props5.closeArea,
9753 className = _props5.className,
9754 children = _props5.children,
9755 animation = _props5.animation,
9756 disabled = _props5.disabled,
9757 rtl = _props5.rtl;
9758 var visible = this.state.visible;
9759
9760 var isPresetColor = this.isPresetColor();
9761 var others = _util.obj.pickOthers(Tag.propTypes, this.props);
9762 // eslint-disable-next-line no-unused-vars
9763 var style = others.style,
9764 otherTagProps = (0, _objectWithoutProperties3.default)(others, ['style']);
9765
9766 var shape = closable ? 'closable' : _shape;
9767 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);
9768
9769 // close btn
9770 var tailNode = this.renderTailNode();
9771 // tag node
9772 var tagNode = !visible ? null : _react2.default.createElement('div', (0, _extends3.default)({
9773 className: bodyClazz,
9774 onClick: this.handleBodyClick,
9775 onKeyDown: this.onKeyDown,
9776 tabIndex: disabled ? '' : '0',
9777 role: 'button',
9778 'aria-disabled': disabled,
9779 disabled: disabled,
9780 dir: rtl ? 'rtl' : undefined,
9781 ref: function ref(n) {
9782 return _this3.tagNode = n;
9783 },
9784 style: this.getTagStyle()
9785 }, otherTagProps), _react2.default.createElement('span', { className: prefix + 'tag-body' }, children), tailNode);
9786
9787 if (animation && _util.support.animation) {
9788 return this.renderAnimatedTag(tagNode, prefix + 'tag-zoom');
9789 }
9790
9791 // 未开启或不支持动画
9792 return tagNode;
9793 };
9794
9795 return Tag;
9796}(_react.Component), _class.propTypes = {
9797 /**
9798 * 标签类名前缀,提供给二次开发者用
9799 * @default next-
9800 */
9801 prefix: _propTypes2.default.string,
9802 /**
9803 * 标签的类型
9804 * @enumdesc 普通, 主要
9805 */
9806 type: _propTypes2.default.oneOf(['normal', 'primary']),
9807 /**
9808 * 标签的尺寸(large 尺寸为兼容表单场景 large = medium)
9809 * @enumdesc 小, 中, 大
9810 */
9811 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
9812
9813 /**
9814 * 标签颜色, 目前支持:blue、 green、 orange、red、 turquoise、 yellow 和 hex 颜色值 (`color keywords`作为 Tag 组件的保留字,请勿直接使用 ), `1.19.0` 以上版本生效
9815 */
9816 color: _propTypes2.default.string,
9817 /**
9818 * 是否开启动效
9819 */
9820 animation: _propTypes2.default.bool,
9821 closeArea: _propTypes2.default.oneOf(['tag', 'tail']),
9822 closable: _propTypes2.default.bool,
9823 onClose: _propTypes2.default.func,
9824 afterClose: _propTypes2.default.func,
9825 /**
9826 * 标签出现动画结束后执行的回调
9827 */
9828 afterAppear: _propTypes2.default.func,
9829 className: _propTypes2.default.any,
9830 children: _propTypes2.default.node,
9831 /**
9832 * 点击回调
9833 */
9834 onClick: _propTypes2.default.func,
9835 _shape: _propTypes2.default.oneOf(['default', 'closable', 'checkable']),
9836 disabled: _propTypes2.default.bool,
9837 rtl: _propTypes2.default.bool,
9838 locale: _propTypes2.default.object
9839}, _class.defaultProps = {
9840 prefix: 'next-',
9841 type: 'normal',
9842 size: 'medium',
9843 closeArea: 'tail',
9844 animation: false,
9845 onClose: noop,
9846 afterClose: noop,
9847 afterAppear: noop,
9848 onClick: noop,
9849 _shape: 'default',
9850 disabled: false,
9851 rtl: false,
9852 locale: _zhCn2.default.Tag
9853}, _temp);
9854Tag.displayName = 'Tag';
9855exports.default = _configProvider2.default.config(Tag);
9856module.exports = exports['default'];
9857
9858/***/ }),
9859/* 91 */
9860/***/ (function(module, exports, __webpack_require__) {
9861
9862"use strict";
9863
9864
9865exports.__esModule = true;
9866
9867var _extends2 = __webpack_require__(1);
9868
9869var _extends3 = _interopRequireDefault(_extends2);
9870
9871var _objectWithoutProperties2 = __webpack_require__(8);
9872
9873var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
9874
9875var _classCallCheck2 = __webpack_require__(2);
9876
9877var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
9878
9879var _possibleConstructorReturn2 = __webpack_require__(3);
9880
9881var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
9882
9883var _inherits2 = __webpack_require__(4);
9884
9885var _inherits3 = _interopRequireDefault(_inherits2);
9886
9887var _class, _temp2;
9888
9889var _react = __webpack_require__(0);
9890
9891var _react2 = _interopRequireDefault(_react);
9892
9893var _propTypes = __webpack_require__(5);
9894
9895var _propTypes2 = _interopRequireDefault(_propTypes);
9896
9897var _classnames = __webpack_require__(7);
9898
9899var _classnames2 = _interopRequireDefault(_classnames);
9900
9901var _moment = __webpack_require__(19);
9902
9903var _moment2 = _interopRequireDefault(_moment);
9904
9905var _zhCn = __webpack_require__(13);
9906
9907var _zhCn2 = _interopRequireDefault(_zhCn);
9908
9909var _util = __webpack_require__(6);
9910
9911var _timeMenu = __webpack_require__(335);
9912
9913var _timeMenu2 = _interopRequireDefault(_timeMenu);
9914
9915var _utils = __webpack_require__(92);
9916
9917function _interopRequireDefault(obj) {
9918 return obj && obj.__esModule ? obj : { default: obj };
9919}
9920
9921var noop = _util.func.noop;
9922var TimePickerPanel = (_temp2 = _class = function (_Component) {
9923 (0, _inherits3.default)(TimePickerPanel, _Component);
9924
9925 function TimePickerPanel() {
9926 var _temp, _this, _ret;
9927
9928 (0, _classCallCheck3.default)(this, TimePickerPanel);
9929
9930 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
9931 args[_key] = arguments[_key];
9932 }
9933
9934 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.onSelectMenuItem = function (index, type) {
9935 var value = _this.props.value;
9936
9937 var clonedValue = value ? value.clone() : (0, _moment2.default)('00:00:00', 'HH:mm:ss', true);
9938 switch (type) {
9939 case 'hour':
9940 clonedValue.hour(index);
9941 break;
9942 case 'minute':
9943 clonedValue.minute(index);
9944 break;
9945 case 'second':
9946 clonedValue.second(index);
9947 break;
9948 }
9949 _this.props.onSelect(clonedValue);
9950 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
9951 }
9952
9953 TimePickerPanel.prototype.render = function render() {
9954 var _props = this.props,
9955 prefix = _props.prefix,
9956 value = _props.value,
9957 locale = _props.locale,
9958 className = _props.className,
9959 disabled = _props.disabled,
9960 showHour = _props.showHour,
9961 showMinute = _props.showMinute,
9962 showSecond = _props.showSecond,
9963 hourStep = _props.hourStep,
9964 minuteStep = _props.minuteStep,
9965 secondStep = _props.secondStep,
9966 disabledHours = _props.disabledHours,
9967 disabledMinutes = _props.disabledMinutes,
9968 disabledSeconds = _props.disabledSeconds,
9969 renderTimeMenuItems = _props.renderTimeMenuItems,
9970 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'value', 'locale', 'className', 'disabled', 'showHour', 'showMinute', 'showSecond', 'hourStep', 'minuteStep', 'secondStep', 'disabledHours', 'disabledMinutes', 'disabledSeconds', 'renderTimeMenuItems']);
9971
9972 var colLen = [showHour, showMinute, showSecond].filter(function (v) {
9973 return v;
9974 }).length;
9975 var classNames = (0, _classnames2.default)(prefix + 'time-picker-panel', prefix + 'time-picker-panel-col-' + colLen, className);
9976
9977 var commonProps = {
9978 prefix: prefix,
9979 disabled: disabled,
9980 onSelect: this.onSelectMenuItem,
9981 renderTimeMenuItems: renderTimeMenuItems,
9982 value: value
9983 };
9984
9985 var activeHour = void 0;
9986 var activeMinute = void 0;
9987 var activeSecond = void 0;
9988
9989 if (value && _moment2.default.isMoment(value)) {
9990 activeHour = value.hour();
9991 activeMinute = value.minute();
9992 activeSecond = value.second();
9993 }
9994
9995 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: classNames }), showHour ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
9996 activeIndex: activeHour,
9997 title: locale.hour,
9998 mode: 'hour',
9999 step: hourStep,
10000 disabledItems: disabledHours
10001 })) : null, showMinute ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
10002 activeIndex: activeMinute,
10003 title: locale.minute,
10004 mode: 'minute',
10005 step: minuteStep,
10006 disabledItems: disabledMinutes
10007 })) : null, showSecond ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
10008 activeIndex: activeSecond,
10009 title: locale.second,
10010 step: secondStep,
10011 mode: 'second',
10012 disabledItems: disabledSeconds
10013 })) : null);
10014 };
10015
10016 return TimePickerPanel;
10017}(_react.Component), _class.propTypes = {
10018 prefix: _propTypes2.default.string,
10019 /**
10020 * 时间值(moment 对象)
10021 */
10022 value: _utils.checkMomentObj,
10023 /**
10024 * 是否显示小时
10025 */
10026 showHour: _propTypes2.default.bool,
10027 /**
10028 * 是否显示分钟
10029 */
10030 showMinute: _propTypes2.default.bool,
10031 /**
10032 * 是否显示秒
10033 */
10034 showSecond: _propTypes2.default.bool,
10035 /**
10036 * 小时选项步长
10037 */
10038 hourStep: _propTypes2.default.number,
10039 /**
10040 * 分钟选项步长
10041 */
10042 minuteStep: _propTypes2.default.number,
10043 /**
10044 * 秒钟选项步长
10045 */
10046 secondStep: _propTypes2.default.number,
10047 /**
10048 * 禁用小时函数
10049 * @param {Number} index 时 0 - 23
10050 * @return {Boolean} 是否禁用
10051 */
10052 disabledHours: _propTypes2.default.func,
10053 /**
10054 * 禁用分钟函数
10055 * @param {Number} index 分 0 - 59
10056 * @return {Boolean} 是否禁用
10057 */
10058 disabledMinutes: _propTypes2.default.func,
10059 /**
10060 * 禁用秒函数
10061 * @param {Number} index 秒 0 - 59
10062 * @return {Boolean} 是否禁用
10063 */
10064 disabledSeconds: _propTypes2.default.func,
10065 /**
10066 * 渲染的可选择时间列表
10067 * [{
10068 * label: '01',
10069 * value: 1
10070 * }]
10071 * @param {Array} list 默认渲染的列表
10072 * @param {String} mode 渲染的菜单 hour, minute, second
10073 * @param {moment} value 当前时间,可能为 null
10074 * @return {Array} 返回需要渲染的数据
10075 */
10076 renderTimeMenuItems: _propTypes2.default.func,
10077 /**
10078 * 选择某个日期值时的回调
10079 * @param {Object} 选中后的日期值
10080 */
10081 onSelect: _propTypes2.default.func,
10082 locale: _propTypes2.default.object,
10083 disabled: _propTypes2.default.bool,
10084 className: _propTypes2.default.string
10085}, _class.defaultProps = {
10086 prefix: 'next-',
10087 showHour: true,
10088 showSecond: true,
10089 showMinute: true,
10090 disabledHours: noop,
10091 disabledMinutes: noop,
10092 disabledSeconds: noop,
10093 onSelect: noop,
10094 disabled: false,
10095 locale: _zhCn2.default.TimePicker
10096}, _temp2);
10097TimePickerPanel.displayName = 'TimePickerPanel';
10098exports.default = TimePickerPanel;
10099module.exports = exports['default'];
10100
10101/***/ }),
10102/* 92 */
10103/***/ (function(module, exports, __webpack_require__) {
10104
10105"use strict";
10106
10107
10108exports.__esModule = true;
10109exports.checkMomentObj = checkMomentObj;
10110exports.checkDateValue = checkDateValue;
10111exports.formatDateValue = formatDateValue;
10112
10113var _moment = __webpack_require__(19);
10114
10115var _moment2 = _interopRequireDefault(_moment);
10116
10117function _interopRequireDefault(obj) {
10118 return obj && obj.__esModule ? obj : { default: obj };
10119}
10120
10121// 检查传入值是否为 moment 对象
10122function checkMomentObj(props, propName, componentName) {
10123 if (props[propName] && !_moment2.default.isMoment(props[propName])) {
10124 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a moment object');
10125 }
10126}
10127
10128// 检查传入值是否为 moment 对象或时间字符串,字符串不检测是否为日期字符串
10129function checkDateValue(props, propName, componentName) {
10130 if (props[propName] && !_moment2.default.isMoment(props[propName]) && typeof props[propName] !== 'string') {
10131 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a moment object or format date string!');
10132 }
10133}
10134
10135function formatDateValue(value, format) {
10136 var val = typeof value === 'string' ? (0, _moment2.default)(value, format, true) : value;
10137 if (val && _moment2.default.isMoment(val) && val.isValid()) {
10138 return val;
10139 }
10140 return null;
10141}
10142
10143/***/ }),
10144/* 93 */
10145/***/ (function(module, exports, __webpack_require__) {
10146
10147"use strict";
10148
10149
10150exports.__esModule = true;
10151exports.default = undefined;
10152
10153var _extends2 = __webpack_require__(1);
10154
10155var _extends3 = _interopRequireDefault(_extends2);
10156
10157var _classCallCheck2 = __webpack_require__(2);
10158
10159var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
10160
10161var _possibleConstructorReturn2 = __webpack_require__(3);
10162
10163var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
10164
10165var _inherits2 = __webpack_require__(4);
10166
10167var _inherits3 = _interopRequireDefault(_inherits2);
10168
10169var _class, _temp;
10170
10171var _react = __webpack_require__(0);
10172
10173var _react2 = _interopRequireDefault(_react);
10174
10175var _propTypes = __webpack_require__(5);
10176
10177var _propTypes2 = _interopRequireDefault(_propTypes);
10178
10179var _classnames = __webpack_require__(7);
10180
10181var _classnames2 = _interopRequireDefault(_classnames);
10182
10183var _button = __webpack_require__(17);
10184
10185var _button2 = _interopRequireDefault(_button);
10186
10187var _icon = __webpack_require__(11);
10188
10189var _icon2 = _interopRequireDefault(_icon);
10190
10191var _zhCn = __webpack_require__(13);
10192
10193var _zhCn2 = _interopRequireDefault(_zhCn);
10194
10195var _util = __webpack_require__(6);
10196
10197function _interopRequireDefault(obj) {
10198 return obj && obj.__esModule ? obj : { default: obj };
10199}
10200
10201var makeChain = _util.func.makeChain;
10202var pickOthers = _util.obj.pickOthers;
10203
10204var noop = function noop() {};
10205
10206var Inner = (_temp = _class = function (_Component) {
10207 (0, _inherits3.default)(Inner, _Component);
10208
10209 function Inner() {
10210 (0, _classCallCheck3.default)(this, Inner);
10211 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
10212 }
10213
10214 Inner.prototype.componentDidUpdate = function componentDidUpdate() {
10215 var _props = this.props,
10216 maxHeight = _props.maxHeight,
10217 _props$height = _props.height,
10218 pheight = _props$height === undefined ? maxHeight : _props$height,
10219 v2 = _props.v2;
10220
10221 if (this.bodyNode && v2 && pheight && pheight !== 'auto') {
10222 var style = {};
10223 var headerHeight = 0,
10224 footerHeight = 0;
10225 if (this.headerNode) {
10226 headerHeight = this.headerNode.getBoundingClientRect().height;
10227 }
10228 if (this.footerNode) {
10229 footerHeight = this.footerNode.getBoundingClientRect().height;
10230 }
10231 var minHeight = headerHeight + footerHeight;
10232 style.minHeight = minHeight;
10233
10234 var height = pheight;
10235 if (pheight && typeof pheight === 'string') {
10236 if (height.match(/calc|vh/)) {
10237 style.maxHeight = 'calc(' + pheight + ' - ' + minHeight + 'px)';
10238 style.overflowY = 'auto';
10239 } else {
10240 height = parseInt(pheight);
10241 }
10242 }
10243
10244 if (typeof height === 'number' && height > minHeight) {
10245 style.maxHeight = height - minHeight;
10246 style.overflowY = 'auto';
10247 }
10248
10249 _util.dom.setStyle(this.bodyNode, style);
10250 }
10251 };
10252
10253 Inner.prototype.getNode = function getNode(name, ref) {
10254 this[name] = ref;
10255 };
10256
10257 Inner.prototype.renderHeader = function renderHeader() {
10258 var _props2 = this.props,
10259 prefix = _props2.prefix,
10260 title = _props2.title;
10261
10262 if (title) {
10263 this.titleId = (0, _util.guid)('dialog-title-');
10264 return _react2.default.createElement('div', {
10265 className: prefix + 'dialog-header',
10266 id: this.titleId,
10267 ref: this.getNode.bind(this, 'headerNode'),
10268 role: 'heading',
10269 'aria-level': '1'
10270 }, title);
10271 }
10272 return null;
10273 };
10274
10275 Inner.prototype.renderBody = function renderBody() {
10276 var _props3 = this.props,
10277 prefix = _props3.prefix,
10278 children = _props3.children,
10279 footer = _props3.footer;
10280
10281 if (children) {
10282 var _cx;
10283
10284 return _react2.default.createElement('div', {
10285 className: (0, _classnames2.default)(prefix + 'dialog-body', (_cx = {}, _cx[prefix + 'dialog-body-no-footer'] = footer === false, _cx)),
10286 ref: this.getNode.bind(this, 'bodyNode')
10287 }, children);
10288 }
10289 return null;
10290 };
10291
10292 Inner.prototype.renderFooter = function renderFooter() {
10293 var _cx2,
10294 _this2 = this;
10295
10296 var _props4 = this.props,
10297 prefix = _props4.prefix,
10298 footer = _props4.footer,
10299 footerAlign = _props4.footerAlign,
10300 footerActions = _props4.footerActions,
10301 locale = _props4.locale,
10302 height = _props4.height;
10303
10304 if (footer === false) {
10305 return null;
10306 }
10307
10308 var newClassName = (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'dialog-footer'] = true, _cx2[prefix + 'align-' + footerAlign] = true, _cx2[prefix + 'dialog-footer-fixed-height'] = !!height, _cx2));
10309 var footerContent = footer === true || !footer ? footerActions.map(function (action) {
10310 var btnProps = _this2.props[action + 'Props'];
10311 var newBtnProps = (0, _extends3.default)({}, btnProps, {
10312 prefix: prefix,
10313 className: (0, _classnames2.default)(prefix + 'dialog-btn', btnProps.className),
10314 onClick: makeChain(_this2.props['on' + (action[0].toUpperCase() + action.slice(1))], btnProps.onClick),
10315 children: btnProps.children || locale[action]
10316 });
10317 if (action === 'ok') {
10318 newBtnProps.type = 'primary';
10319 }
10320
10321 return _react2.default.createElement(_button2.default, (0, _extends3.default)({ key: action }, newBtnProps));
10322 }) : footer;
10323
10324 return _react2.default.createElement('div', { className: newClassName, ref: this.getNode.bind(this, 'footerNode') }, footerContent);
10325 };
10326
10327 Inner.prototype.renderCloseLink = function renderCloseLink() {
10328 var _props5 = this.props,
10329 prefix = _props5.prefix,
10330 closeable = _props5.closeable,
10331 onClose = _props5.onClose,
10332 locale = _props5.locale,
10333 closeIcon = _props5.closeIcon;
10334
10335 if (closeable) {
10336 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' }));
10337 }
10338
10339 return null;
10340 };
10341
10342 Inner.prototype.render = function render() {
10343 var _cx3;
10344
10345 var _props6 = this.props,
10346 prefix = _props6.prefix,
10347 className = _props6.className,
10348 closeable = _props6.closeable,
10349 title = _props6.title,
10350 role = _props6.role,
10351 rtl = _props6.rtl;
10352
10353 var others = pickOthers(Object.keys(Inner.propTypes), this.props);
10354 var newClassName = (0, _classnames2.default)((_cx3 = {}, _cx3[prefix + 'dialog'] = true, _cx3[prefix + 'closeable'] = closeable, _cx3[className] = !!className, _cx3));
10355
10356 var header = this.renderHeader();
10357 var body = this.renderBody();
10358 var footer = this.renderFooter();
10359 var closeLink = this.renderCloseLink();
10360
10361 var ariaProps = {
10362 role: role,
10363 'aria-modal': 'true'
10364 };
10365 if (title) {
10366 ariaProps['aria-labelledby'] = this.titleId;
10367 }
10368
10369 var width = others.style && others.style.width;
10370 others.style = (0, _extends3.default)({}, others.style, _util.obj.pickProps(['height', 'maxHeight', 'width'], this.props));
10371 // 兼容 v1 style={width} 用法, 这里增加了 width api, 导致 style.width 优先级低了
10372 if (width) {
10373 others.style.width = width;
10374 }
10375
10376 return _react2.default.createElement('div', (0, _extends3.default)({}, ariaProps, { className: newClassName }, others, { dir: rtl ? 'rtl' : undefined }), header, body, footer, closeLink);
10377 };
10378
10379 return Inner;
10380}(_react.Component), _class.propTypes = {
10381 prefix: _propTypes2.default.string,
10382 className: _propTypes2.default.string,
10383 title: _propTypes2.default.node,
10384 children: _propTypes2.default.node,
10385 footer: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.node]),
10386 footerAlign: _propTypes2.default.oneOf(['left', 'center', 'right']),
10387 footerActions: _propTypes2.default.array,
10388 onOk: _propTypes2.default.func,
10389 onCancel: _propTypes2.default.func,
10390 okProps: _propTypes2.default.object,
10391 cancelProps: _propTypes2.default.object,
10392 closeable: _propTypes2.default.bool,
10393 onClose: _propTypes2.default.func,
10394 locale: _propTypes2.default.object,
10395 role: _propTypes2.default.string,
10396 rtl: _propTypes2.default.bool,
10397 width: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
10398 // set value for a fixed height dialog. Passing a value will absolutely position the footer to the bottom.
10399 height: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
10400 maxHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
10401 v2: _propTypes2.default.bool,
10402 closeIcon: _propTypes2.default.node,
10403 pure: _propTypes2.default.bool
10404}, _class.defaultProps = {
10405 prefix: 'next-',
10406 footerAlign: 'right',
10407 footerActions: ['ok', 'cancel'],
10408 onOk: noop,
10409 onCancel: noop,
10410 okProps: {},
10411 cancelProps: {},
10412 closeable: true,
10413 onClose: noop,
10414 locale: _zhCn2.default.Dialog,
10415 role: 'dialog'
10416}, _temp);
10417Inner.displayName = 'Inner';
10418exports.default = Inner;
10419module.exports = exports['default'];
10420
10421/***/ }),
10422/* 94 */
10423/***/ (function(module, exports, __webpack_require__) {
10424
10425"use strict";
10426
10427
10428exports.__esModule = true;
10429
10430var _configProvider = __webpack_require__(9);
10431
10432var _configProvider2 = _interopRequireDefault(_configProvider);
10433
10434var _message = __webpack_require__(95);
10435
10436var _message2 = _interopRequireDefault(_message);
10437
10438var _toast = __webpack_require__(343);
10439
10440var _toast2 = _interopRequireDefault(_toast);
10441
10442var _toast3 = __webpack_require__(344);
10443
10444var _toast4 = _interopRequireDefault(_toast3);
10445
10446function _interopRequireDefault(obj) {
10447 return obj && obj.__esModule ? obj : { default: obj };
10448}
10449
10450_message2.default.show = _toast2.default.show;
10451_message2.default.success = _toast2.default.success;
10452_message2.default.warning = _toast2.default.warning;
10453_message2.default.error = _toast2.default.error;
10454_message2.default.notice = _toast2.default.notice;
10455_message2.default.help = _toast2.default.help;
10456_message2.default.loading = _toast2.default.loading;
10457_message2.default.hide = _toast2.default.hide;
10458_message2.default.withContext = _toast.withContext;
10459
10460var MessageProvider = _configProvider2.default.config(_message2.default, {
10461 componentName: 'Message'
10462});
10463
10464exports.default = MessageProvider;
10465
10466var openV2 = false;
10467// 调用 config 开启 v2 版本的 message
10468MessageProvider.config = function (config) {
10469 _toast4.default.config(config);
10470
10471 if (!openV2) {
10472 MessageProvider.show = _toast4.default.open; // 兼容 show 用法, 后续计划都改成 open( Notification 已经用了 open)
10473 MessageProvider.open = _toast4.default.open;
10474 MessageProvider.hide = _toast4.default.close; // 兼容 hide 用法, 后续计划都改成 open( Notification 已经用了 close)
10475 MessageProvider.close = _toast4.default.close;
10476 MessageProvider.destory = _toast4.default.destory;
10477 MessageProvider.success = _toast4.default.success;
10478 MessageProvider.warning = _toast4.default.warning;
10479 MessageProvider.error = _toast4.default.error;
10480 MessageProvider.notice = _toast4.default.notice;
10481 MessageProvider.help = _toast4.default.help;
10482 MessageProvider.loading = _toast4.default.loading;
10483
10484 openV2 = true;
10485 }
10486};
10487module.exports = exports['default'];
10488
10489/***/ }),
10490/* 95 */
10491/***/ (function(module, exports, __webpack_require__) {
10492
10493"use strict";
10494
10495
10496exports.__esModule = true;
10497
10498var _extends2 = __webpack_require__(1);
10499
10500var _extends3 = _interopRequireDefault(_extends2);
10501
10502var _classCallCheck2 = __webpack_require__(2);
10503
10504var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
10505
10506var _possibleConstructorReturn2 = __webpack_require__(3);
10507
10508var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
10509
10510var _inherits2 = __webpack_require__(4);
10511
10512var _inherits3 = _interopRequireDefault(_inherits2);
10513
10514var _class, _temp2;
10515
10516var _react = __webpack_require__(0);
10517
10518var _react2 = _interopRequireDefault(_react);
10519
10520var _propTypes = __webpack_require__(5);
10521
10522var _propTypes2 = _interopRequireDefault(_propTypes);
10523
10524var _reactLifecyclesCompat = __webpack_require__(10);
10525
10526var _classnames = __webpack_require__(7);
10527
10528var _classnames2 = _interopRequireDefault(_classnames);
10529
10530var _zhCn = __webpack_require__(13);
10531
10532var _zhCn2 = _interopRequireDefault(_zhCn);
10533
10534var _icon = __webpack_require__(11);
10535
10536var _icon2 = _interopRequireDefault(_icon);
10537
10538var _animate = __webpack_require__(20);
10539
10540var _animate2 = _interopRequireDefault(_animate);
10541
10542var _configProvider = __webpack_require__(9);
10543
10544var _configProvider2 = _interopRequireDefault(_configProvider);
10545
10546var _util = __webpack_require__(6);
10547
10548function _interopRequireDefault(obj) {
10549 return obj && obj.__esModule ? obj : { default: obj };
10550}
10551
10552var noop = function noop() {};
10553
10554/**
10555 * Message
10556 */
10557var Message = (_temp2 = _class = function (_Component) {
10558 (0, _inherits3.default)(Message, _Component);
10559
10560 function Message() {
10561 var _temp, _this, _ret;
10562
10563 (0, _classCallCheck3.default)(this, Message);
10564
10565 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
10566 args[_key] = arguments[_key];
10567 }
10568
10569 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.state = {
10570 visible: typeof _this.props.visible === 'undefined' ? _this.props.defaultVisible : _this.props.visible
10571 }, _this.onClose = function () {
10572 if (!('visible' in _this.props)) {
10573 _this.setState({
10574 visible: false
10575 });
10576 }
10577 _this.props.onClose(false);
10578 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
10579 }
10580
10581 Message.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
10582 if ('visible' in props) {
10583 return {
10584 visible: props.visible
10585 };
10586 }
10587
10588 return {};
10589 };
10590
10591 Message.prototype.render = function render() {
10592 var _classNames;
10593
10594 /* eslint-disable no-unused-vars */
10595 var _props = this.props,
10596 prefix = _props.prefix,
10597 pure = _props.pure,
10598 className = _props.className,
10599 style = _props.style,
10600 type = _props.type,
10601 shape = _props.shape,
10602 size = _props.size,
10603 title = _props.title,
10604 children = _props.children,
10605 defaultVisible = _props.defaultVisible,
10606 propsVisible = _props.visible,
10607 icon = _props.iconType,
10608 closeable = _props.closeable,
10609 onClose = _props.onClose,
10610 afterClose = _props.afterClose,
10611 animation = _props.animation,
10612 rtl = _props.rtl,
10613 locale = _props.locale;
10614
10615 var others = (0, _extends3.default)({}, _util.obj.pickOthers(Object.keys(Message.propTypes), this.props));
10616 /* eslint-enable */
10617 var visible = this.state.visible;
10618
10619 var messagePrefix = prefix + 'message';
10620
10621 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));
10622
10623 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', {
10624 role: 'button',
10625 'aria-label': locale.closeAriaLabel,
10626 className: messagePrefix + '-close',
10627 onClick: this.onClose
10628 }, _react2.default.createElement(_icon2.default, { type: 'close' })) : null, icon !== false ? _react2.default.createElement(_icon2.default, {
10629 className: messagePrefix + '-symbol ' + (!icon && messagePrefix + '-symbol-icon'),
10630 type: icon
10631 }) : null, title ? _react2.default.createElement('div', { className: messagePrefix + '-title' }, title) : null, children ? _react2.default.createElement('div', { className: messagePrefix + '-content' }, children) : null) : null;
10632
10633 if (animation) {
10634 return _react2.default.createElement(_animate2.default.Expand, { animationAppear: false, afterLeave: afterClose }, newChildren);
10635 }
10636
10637 return newChildren;
10638 };
10639
10640 return Message;
10641}(_react.Component), _class.propTypes = {
10642 prefix: _propTypes2.default.string,
10643 pure: _propTypes2.default.bool,
10644 className: _propTypes2.default.string,
10645 style: _propTypes2.default.object,
10646 /**
10647 * 反馈类型
10648 */
10649 type: _propTypes2.default.oneOf(['success', 'warning', 'error', 'notice', 'help', 'loading']),
10650 /**
10651 * 反馈外观
10652 */
10653 shape: _propTypes2.default.oneOf(['inline', 'addon', 'toast']),
10654 /**
10655 * 反馈大小
10656 */
10657 size: _propTypes2.default.oneOf(['medium', 'large']),
10658 /**
10659 * 标题
10660 */
10661 title: _propTypes2.default.node,
10662 /**
10663 * 内容
10664 */
10665 children: _propTypes2.default.node,
10666 /**
10667 * 默认是否显示
10668 */
10669 defaultVisible: _propTypes2.default.bool,
10670 /**
10671 * 当前是否显示
10672 */
10673 visible: _propTypes2.default.bool,
10674 /**
10675 * 显示的图标类型,会覆盖内部设置的IconType,传false不显示图标
10676 */
10677 iconType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
10678 /**
10679 * 显示关闭按钮
10680 */
10681 closeable: _propTypes2.default.bool,
10682 /**
10683 * 关闭按钮的回调
10684 */
10685 onClose: _propTypes2.default.func,
10686 /**
10687 * 关闭之后调用的函数
10688 */
10689 afterClose: _propTypes2.default.func,
10690 /**
10691 * 是否开启展开收起动画
10692 */
10693 animation: _propTypes2.default.bool,
10694 locale: _propTypes2.default.object,
10695 rtl: _propTypes2.default.bool
10696}, _class.defaultProps = {
10697 prefix: 'next-',
10698 pure: false,
10699 type: 'success',
10700 shape: 'inline',
10701 size: 'medium',
10702 defaultVisible: true,
10703 closeable: false,
10704 onClose: noop,
10705 afterClose: noop,
10706 animation: true,
10707 locale: _zhCn2.default.Message
10708}, _temp2);
10709Message.displayName = 'Message';
10710exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Message));
10711module.exports = exports['default'];
10712
10713/***/ }),
10714/* 96 */
10715/***/ (function(module, exports, __webpack_require__) {
10716
10717// TODO(Babel 8): Remove this file.
10718
10719var runtime = __webpack_require__(348)();
10720module.exports = runtime;
10721
10722// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
10723try {
10724 regeneratorRuntime = runtime;
10725} catch (accidentalStrictMode) {
10726 if (typeof globalThis === "object") {
10727 globalThis.regeneratorRuntime = runtime;
10728 } else {
10729 Function("r", "regeneratorRuntime = r")(runtime);
10730 }
10731}
10732
10733
10734/***/ }),
10735/* 97 */
10736/***/ (function(module, exports) {
10737
10738function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10739 try {
10740 var info = gen[key](arg);
10741 var value = info.value;
10742 } catch (error) {
10743 reject(error);
10744 return;
10745 }
10746
10747 if (info.done) {
10748 resolve(value);
10749 } else {
10750 Promise.resolve(value).then(_next, _throw);
10751 }
10752}
10753
10754function _asyncToGenerator(fn) {
10755 return function () {
10756 var self = this,
10757 args = arguments;
10758 return new Promise(function (resolve, reject) {
10759 var gen = fn.apply(self, args);
10760
10761 function _next(value) {
10762 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
10763 }
10764
10765 function _throw(err) {
10766 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
10767 }
10768
10769 _next(undefined);
10770 });
10771 };
10772}
10773
10774module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
10775
10776/***/ }),
10777/* 98 */
10778/***/ (function(module, exports) {
10779
10780function _defineProperty(obj, key, value) {
10781 if (key in obj) {
10782 Object.defineProperty(obj, key, {
10783 value: value,
10784 enumerable: true,
10785 configurable: true,
10786 writable: true
10787 });
10788 } else {
10789 obj[key] = value;
10790 }
10791
10792 return obj;
10793}
10794
10795module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
10796
10797/***/ }),
10798/* 99 */
10799/***/ (function(module, exports, __webpack_require__) {
10800
10801"use strict";
10802
10803
10804exports.__esModule = true;
10805
10806var _classCallCheck2 = __webpack_require__(2);
10807
10808var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
10809
10810var _possibleConstructorReturn2 = __webpack_require__(3);
10811
10812var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
10813
10814var _inherits2 = __webpack_require__(4);
10815
10816var _inherits3 = _interopRequireDefault(_inherits2);
10817
10818var _extends2 = __webpack_require__(1);
10819
10820var _extends3 = _interopRequireDefault(_extends2);
10821
10822var _typeof2 = __webpack_require__(14);
10823
10824var _typeof3 = _interopRequireDefault(_typeof2);
10825
10826var _class, _temp;
10827
10828var _react = __webpack_require__(0);
10829
10830var _react2 = _interopRequireDefault(_react);
10831
10832var _propTypes = __webpack_require__(5);
10833
10834var _propTypes2 = _interopRequireDefault(_propTypes);
10835
10836var _classnames = __webpack_require__(7);
10837
10838var _classnames2 = _interopRequireDefault(_classnames);
10839
10840var _configProvider = __webpack_require__(9);
10841
10842var _configProvider2 = _interopRequireDefault(_configProvider);
10843
10844var _box = __webpack_require__(176);
10845
10846var _box2 = _interopRequireDefault(_box);
10847
10848var _util = __webpack_require__(6);
10849
10850var _createStyle = __webpack_require__(177);
10851
10852var _createStyle2 = _interopRequireDefault(_createStyle);
10853
10854var _cell = __webpack_require__(370);
10855
10856var _cell2 = _interopRequireDefault(_cell);
10857
10858function _interopRequireDefault(obj) {
10859 return obj && obj.__esModule ? obj : { default: obj };
10860}
10861
10862var ieVersion = _util.env.ieVersion;
10863var pickOthers = _util.obj.pickOthers,
10864 isReactFragment = _util.obj.isReactFragment;
10865
10866var createChildren = function createChildren(children, device, gap) {
10867 var array = _react2.default.Children.toArray(children);
10868 if (!children) {
10869 return null;
10870 }
10871
10872 return array.map(function (child) {
10873 if (isReactFragment(child)) {
10874 return createChildren(child.props.children, device, gap);
10875 }
10876
10877 if (_react2.default.isValidElement(child) && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && ['form_item', 'responsive_grid_cell'].indexOf(child.type._typeMark) > -1) {
10878 return _react2.default.cloneElement(child, {
10879 style: (0, _extends3.default)({}, (0, _createStyle.getGridChildProps)(child.props, device, gap), child.props.style || {})
10880 });
10881 }
10882
10883 return child;
10884 });
10885};
10886
10887var getStyle = function getStyle() {
10888 var style = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10889 var props = arguments[1];
10890
10891 return (0, _extends3.default)({}, (0, _createStyle2.default)((0, _extends3.default)({ display: 'grid' }, props)), style);
10892};
10893
10894/**
10895 * ResponsiveGrid
10896 */
10897var ResponsiveGrid = (_temp = _class = function (_Component) {
10898 (0, _inherits3.default)(ResponsiveGrid, _Component);
10899
10900 function ResponsiveGrid() {
10901 (0, _classCallCheck3.default)(this, ResponsiveGrid);
10902 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
10903 }
10904
10905 ResponsiveGrid.prototype.render = function render() {
10906 var _classNames;
10907
10908 var _props = this.props,
10909 prefix = _props.prefix,
10910 View = _props.component,
10911 style = _props.style,
10912 className = _props.className,
10913 children = _props.children,
10914 device = _props.device,
10915 rows = _props.rows,
10916 columns = _props.columns,
10917 gap = _props.gap,
10918 rowSpan = _props.rowSpan,
10919 colSpan = _props.colSpan,
10920 component = _props.component,
10921 dense = _props.dense;
10922
10923 var styleProps = {
10924 rows: rows,
10925 columns: columns,
10926 gap: gap,
10927 device: device,
10928 rowSpan: rowSpan,
10929 colSpan: colSpan,
10930 component: component,
10931 dense: dense
10932 };
10933
10934 var others = pickOthers(Object.keys(ResponsiveGrid.propTypes), this.props);
10935
10936 var styleSheet = getStyle(style, styleProps);
10937
10938 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'responsive-grid'] = true, _classNames[prefix + 'responsive-grid-ie'] = ieVersion, _classNames), className);
10939
10940 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));
10941 };
10942
10943 return ResponsiveGrid;
10944}(_react.Component), _class._typeMark = 'responsive_grid', _class.propTypes = {
10945 prefix: _propTypes2.default.string,
10946 className: _propTypes2.default.any,
10947 /**
10948 * 设备,用来做自适应,默认为 PC
10949 * @enumdesc 手机, 平板, PC
10950 */
10951 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
10952 rows: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
10953 /**
10954 * 分为几列, 默认是 12 列
10955 */
10956 columns: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
10957 /**
10958 * 每个 cell 之间的间距, [bottom&top, right&left]
10959 */
10960 gap: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.number]),
10961 /**
10962 * 设置标签类型
10963 */
10964 component: _propTypes2.default.elementType,
10965 /**
10966 * 是否开启紧密模式,开启后尽可能能紧密填满,尽量不出现空格
10967 */
10968 dense: _propTypes2.default.bool,
10969 style: _propTypes2.default.object
10970}, _class.defaultProps = {
10971 prefix: 'next-',
10972 component: 'div',
10973 device: 'desktop',
10974 dense: false
10975}, _temp);
10976ResponsiveGrid.displayName = 'ResponsiveGrid';
10977
10978ResponsiveGrid.Cell = _cell2.default;
10979
10980exports.default = _configProvider2.default.config(ResponsiveGrid);
10981module.exports = exports['default'];
10982
10983/***/ }),
10984/* 100 */
10985/***/ (function(module, exports, __webpack_require__) {
10986
10987"use strict";
10988
10989
10990exports.__esModule = true;
10991
10992var _extends2 = __webpack_require__(1);
10993
10994var _extends3 = _interopRequireDefault(_extends2);
10995
10996var _classCallCheck2 = __webpack_require__(2);
10997
10998var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
10999
11000var _possibleConstructorReturn2 = __webpack_require__(3);
11001
11002var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
11003
11004var _inherits2 = __webpack_require__(4);
11005
11006var _inherits3 = _interopRequireDefault(_inherits2);
11007
11008var _class, _temp;
11009
11010var _react = __webpack_require__(0);
11011
11012var _react2 = _interopRequireDefault(_react);
11013
11014var _propTypes = __webpack_require__(5);
11015
11016var _propTypes2 = _interopRequireDefault(_propTypes);
11017
11018var _classnames = __webpack_require__(7);
11019
11020var _classnames2 = _interopRequireDefault(_classnames);
11021
11022var _overlay = __webpack_require__(15);
11023
11024var _overlay2 = _interopRequireDefault(_overlay);
11025
11026var _configProvider = __webpack_require__(9);
11027
11028var _configProvider2 = _interopRequireDefault(_configProvider);
11029
11030var _util = __webpack_require__(6);
11031
11032function _interopRequireDefault(obj) {
11033 return obj && obj.__esModule ? obj : { default: obj };
11034}
11035
11036/* eslint-disable react/prefer-stateless-function */
11037
11038/** Loading */
11039var Loading = (_temp = _class = function (_React$Component) {
11040 (0, _inherits3.default)(Loading, _React$Component);
11041
11042 function Loading() {
11043 (0, _classCallCheck3.default)(this, Loading);
11044 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
11045 }
11046
11047 Loading.prototype.render = function render() {
11048 var _classNames2, _classNames3, _classNames4;
11049
11050 var _props = this.props,
11051 tip = _props.tip,
11052 visible = _props.visible,
11053 children = _props.children,
11054 className = _props.className,
11055 style = _props.style,
11056 indicator = _props.indicator,
11057 color = _props.color,
11058 prefix = _props.prefix,
11059 fullScreen = _props.fullScreen,
11060 disableScroll = _props.disableScroll,
11061 onVisibleChange = _props.onVisibleChange,
11062 tipAlign = _props.tipAlign,
11063 size = _props.size,
11064 inline = _props.inline,
11065 rtl = _props.rtl,
11066 safeNode = _props.safeNode;
11067
11068 var indicatorDom = null;
11069 var dotCls = prefix + 'loading-dot';
11070
11071 if (indicator) {
11072 indicatorDom = indicator;
11073 } else {
11074 var _classNames;
11075
11076 var backgroundColor = color;
11077 var fusionReactorCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'loading-fusion-reactor'] = true, _classNames[prefix + 'loading-medium-fusion-reactor'] = size === 'medium', _classNames));
11078 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 } }));
11079 }
11080
11081 var loadingCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'loading'] = true, _classNames2[prefix + 'open'] = visible, _classNames2[prefix + 'loading-inline'] = inline, _classNames2[className] = className, _classNames2));
11082
11083 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));
11084
11085 var others = _util.obj.pickOthers(Loading.propTypes, this.props);
11086
11087 var contentCls = (0, _classnames2.default)((_classNames4 = {}, _classNames4[prefix + 'loading-component'] = visible, _classNames4[prefix + 'loading-wrap'] = true, _classNames4));
11088
11089 return fullScreen ? [children, _react2.default.createElement(_overlay2.default, (0, _extends3.default)({
11090 key: 'overlay',
11091 hasMask: true,
11092 align: 'cc cc',
11093 safeNode: safeNode,
11094 disableScroll: disableScroll
11095 }, others, {
11096 className: className,
11097 style: style,
11098 visible: visible,
11099 onRequestClose: onVisibleChange
11100 }), _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));
11101 };
11102
11103 return Loading;
11104}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
11105 /**
11106 * 样式前缀
11107 */
11108 prefix: _propTypes2.default.string,
11109 /**
11110 * 自定义内容,可以传入string或reactElement
11111 */
11112 tip: _propTypes2.default.any,
11113 /**
11114 * 自定义内容位置
11115 * @enumdesc 出现在动画右边, 出现在动画下面
11116 */
11117 tipAlign: _propTypes2.default.oneOf(['right', 'bottom']),
11118 /**
11119 * loading 状态, 默认 true
11120 */
11121 visible: _propTypes2.default.bool,
11122 /**
11123 * 全屏模式下,loading弹层请求关闭时触发的回调函数
11124 * @param {String} type 弹层关闭的来源
11125 * @param {Object} e DOM 事件
11126 */
11127 onVisibleChange: _propTypes2.default.func,
11128 /**
11129 * 自定义class
11130 */
11131 className: _propTypes2.default.string,
11132 /**
11133 * 自定义内联样式
11134 */
11135 style: _propTypes2.default.object,
11136 /**
11137 * 设置动画尺寸
11138 * @description 仅仅对默认动画效果起作用
11139 * @enumdesc 大号, 中号
11140 */
11141 size: _propTypes2.default.oneOf(['large', 'medium']),
11142 /**
11143 * 自定义动画
11144 */
11145 indicator: _propTypes2.default.any,
11146 /**
11147 * 动画颜色
11148 */
11149 color: _propTypes2.default.string,
11150 /**
11151 * 全屏展示
11152 */
11153 fullScreen: _propTypes2.default.bool,
11154 /**
11155 * 当点击 document 的时候,如果包含该节点则不会关闭弹层,
11156 * 如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点,或者以上值组成的数组
11157 * 是否禁用滚动,仅在 fullScreen 模式下生效
11158 */
11159 disableScroll: _propTypes2.default.bool,
11160 /**
11161 * 安全节点,fullScreen时有效,
11162 */
11163 safeNode: _propTypes2.default.any,
11164 /**
11165 * 子元素
11166 */
11167 children: _propTypes2.default.any,
11168 inline: _propTypes2.default.bool,
11169 rtl: _propTypes2.default.bool
11170}), _class.defaultProps = {
11171 prefix: 'next-',
11172 visible: true,
11173 onVisibleChange: _util.func.noop,
11174 animate: null,
11175 tipAlign: 'bottom',
11176 size: 'large',
11177 inline: true,
11178 disableScroll: false
11179}, _temp);
11180Loading.displayName = 'Loading';
11181exports.default = _configProvider2.default.config(Loading);
11182module.exports = exports['default'];
11183
11184/***/ }),
11185/* 101 */
11186/***/ (function(module, exports, __webpack_require__) {
11187
11188"use strict";
11189
11190
11191exports.__esModule = true;
11192
11193var _extends2 = __webpack_require__(1);
11194
11195var _extends3 = _interopRequireDefault(_extends2);
11196
11197var _objectWithoutProperties2 = __webpack_require__(8);
11198
11199var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
11200
11201var _configProvider = __webpack_require__(9);
11202
11203var _configProvider2 = _interopRequireDefault(_configProvider);
11204
11205var _progress = __webpack_require__(390);
11206
11207var _progress2 = _interopRequireDefault(_progress);
11208
11209function _interopRequireDefault(obj) {
11210 return obj && obj.__esModule ? obj : { default: obj };
11211}
11212
11213exports.default = _configProvider2.default.config(_progress2.default, {
11214 transform: /* istanbul ignore next */function transform(props, deprecated) {
11215 if ('type' in props) {
11216 deprecated('type', 'progressive', 'Progress');
11217
11218 var _props = props,
11219 type = _props.type,
11220 others = (0, _objectWithoutProperties3.default)(_props, ['type']);
11221
11222 props = (0, _extends3.default)({ progressive: type === 'progressive' }, others);
11223 }
11224
11225 if ('showInfo' in props) {
11226 deprecated('showInfo', 'textRender', 'Progress');
11227
11228 var _props2 = props,
11229 showInfo = _props2.showInfo,
11230 _others = (0, _objectWithoutProperties3.default)(_props2, ['showInfo']);
11231
11232 if (showInfo) {
11233 props = _others;
11234 } else {
11235 props = (0, _extends3.default)({ textRender: function textRender() {
11236 return false;
11237 } }, _others);
11238 }
11239 }
11240
11241 if ('suffix' in props) {
11242 deprecated('suffix', 'textRender', 'Progress');
11243
11244 var _props3 = props,
11245 suffix = _props3.suffix,
11246 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['suffix']);
11247
11248 props = (0, _extends3.default)({ textRender: function textRender() {
11249 return suffix;
11250 } }, _others2);
11251 }
11252
11253 return props;
11254 }
11255});
11256module.exports = exports['default'];
11257
11258/***/ }),
11259/* 102 */
11260/***/ (function(module, exports, __webpack_require__) {
11261
11262var styleEqual = __webpack_require__(428);
11263var hasOwnProperty = Object.prototype.hasOwnProperty;
11264
11265function type(a) {
11266 return Array.isArray(a) ? 'array' : typeof a;
11267}
11268
11269function elementEquals(a, b) {
11270 var typeOfA = type(a);
11271 var typeOfB = type(b);
11272
11273 if (typeOfA !== typeOfB) return false;
11274
11275 switch (typeOfA) {
11276 case 'array':
11277 if (a.length !== b.length) return false;
11278 for (var i = 0; i < a.length; i++) {
11279 if (!elementEquals(a[i], b[i])) return false;
11280 }
11281 return true;
11282 case 'object':
11283 if (!a || !b) return a === b;
11284 if (a.type !== b.type) return false;
11285 if (a.key !== b.key) return false;
11286 if (a.ref !== b.ref) return false;
11287 return shallowElementEquals(a.props, b.props);
11288 break;
11289 default:
11290 return a === b;
11291 }
11292}
11293
11294function shallowElementEquals(a, b) {
11295 var aCount = 0;
11296 var bCount = 0;
11297
11298 for (var key in a) {
11299 if (hasOwnProperty.call(a, key)) {
11300 if (key === 'style') {
11301 // NOTE(lmr): kind of risky, but i'm assuming that a `style` prop is a React Native style,
11302 // and using the `styleEqual` algorithm here.
11303 if (!styleEqual(a[key], b[key])) return false;
11304 } else if (key === 'children') {
11305 // will compare children later
11306 } else {
11307 if (a[key] !== b[key]) return false;
11308 }
11309 aCount++;
11310 }
11311 }
11312
11313 for (var key in b) {
11314 if (hasOwnProperty.call(b, key)) {
11315 bCount++;
11316 }
11317 }
11318
11319 if (aCount !== bCount) return false;
11320
11321 // compare children last...
11322 return elementEquals(a.children, b.children);
11323}
11324
11325module.exports = shallowElementEquals;
11326
11327
11328/***/ }),
11329/* 103 */
11330/***/ (function(module, exports, __webpack_require__) {
11331
11332"use strict";
11333
11334
11335exports.__esModule = true;
11336exports.default = undefined;
11337
11338var _classCallCheck2 = __webpack_require__(2);
11339
11340var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
11341
11342var _possibleConstructorReturn2 = __webpack_require__(3);
11343
11344var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
11345
11346var _inherits2 = __webpack_require__(4);
11347
11348var _inherits3 = _interopRequireDefault(_inherits2);
11349
11350var _class, _temp;
11351
11352var _react = __webpack_require__(0);
11353
11354var _react2 = _interopRequireDefault(_react);
11355
11356var _propTypes = __webpack_require__(5);
11357
11358var _propTypes2 = _interopRequireDefault(_propTypes);
11359
11360function _interopRequireDefault(obj) {
11361 return obj && obj.__esModule ? obj : { default: obj };
11362}
11363
11364/**
11365 * Table.Column
11366 * @order 0
11367 **/
11368var Column = (_temp = _class = function (_React$Component) {
11369 (0, _inherits3.default)(Column, _React$Component);
11370
11371 function Column() {
11372 (0, _classCallCheck3.default)(this, Column);
11373 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
11374 }
11375
11376 Column.prototype.render = function render() {
11377 return null;
11378 };
11379
11380 return Column;
11381}(_react2.default.Component), _class.propTypes = {
11382 /**
11383 * 指定列对应的字段,支持`a.b`形式的快速取值
11384 */
11385 dataIndex: _propTypes2.default.string,
11386 /**
11387 * 行渲染的逻辑
11388 * value, rowIndex, record, context四个属性只可读不可被更改
11389 * Function(value, index, record) => Element
11390 */
11391 cell: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func]),
11392 /**
11393 * 表头显示的内容
11394 */
11395 title: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func]),
11396 /**
11397 * 写到 header 单元格上的title属性
11398 */
11399 htmlTitle: _propTypes2.default.string,
11400 /**
11401 * 是否支持排序
11402 */
11403 sortable: _propTypes2.default.bool,
11404 /**
11405 * 排序的方向。
11406 * 设置 ['desc', 'asc'],表示降序、升序
11407 * 设置 ['desc', 'asc', 'default'],表示表示降序、升序、不排序
11408 * @version 1.23
11409 */
11410 sortDirections: _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['desc', 'asc', 'default'])),
11411 /**
11412 * 列宽,注意在锁列的情况下一定需要配置宽度
11413 */
11414 width: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
11415 /**
11416 * 单元格的对齐方式
11417 */
11418 align: _propTypes2.default.oneOf(['left', 'center', 'right']),
11419 /**
11420 * 单元格标题的对齐方式, 不配置默认读取align值
11421 */
11422 alignHeader: _propTypes2.default.oneOf(['left', 'center', 'right']),
11423 /**
11424 * 生成标题过滤的菜单, 格式为`[{label:'xxx', value:'xxx'}]`
11425 */
11426 filters: _propTypes2.default.arrayOf(_propTypes2.default.shape({
11427 label: _propTypes2.default.string,
11428 value: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string])
11429 })),
11430 /**
11431 * 过滤的模式是单选还是多选
11432 */
11433 filterMode: _propTypes2.default.oneOf(['single', 'multiple']),
11434 /**
11435 * filter 模式下传递给 Menu 菜单的属性, 默认继承 `Menu` 组件的API
11436 * @property {Boolean} subMenuSelectable 默认为`false` subMenu是否可选择
11437 * @property {Boolean} isSelectIconRight 默认为`false` 是否将选中图标居右。注意:SubMenu 上的选中图标一直居左,不受此API控制
11438 */
11439 filterMenuProps: _propTypes2.default.object,
11440 filterProps: _propTypes2.default.object,
11441 /**
11442 * 是否支持锁列,可选值为`left`,`right`, `true`
11443 */
11444 lock: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),
11445 /**
11446 * 是否支持列宽调整, 当该值设为true,table的布局方式会修改为fixed.
11447 */
11448 resizable: _propTypes2.default.bool,
11449 /**
11450 * (推荐使用)是否支持异步列宽调整, 当该值设为true,table的布局方式会修改为fixed.
11451 * @version 1.24
11452 */
11453 asyncResizable: _propTypes2.default.bool,
11454 /**
11455 * header cell 横跨的格数,设置为0表示不出现此 th
11456 */
11457 colSpan: _propTypes2.default.number,
11458 /**
11459 * 设置该列单元格的word-break样式,对于id类、中文类适合用all,对于英文句子适合用word
11460 * @enumdesc all, word
11461 * @default all
11462 * @version 1.23
11463 */
11464 wordBreak: _propTypes2.default.oneOf(['all', 'word'])
11465}, _class.contextTypes = {
11466 parent: _propTypes2.default.any
11467}, _class.defaultProps = {
11468 cell: function cell(value) {
11469 return value;
11470 },
11471 filterMode: 'multiple',
11472 filterMenuProps: {
11473 subMenuSelectable: false
11474 },
11475 filterProps: {},
11476 resizable: false,
11477 asyncResizable: false
11478}, _class._typeMark = 'column', _temp);
11479Column.displayName = 'Column';
11480exports.default = Column;
11481module.exports = exports['default'];
11482
11483/***/ }),
11484/* 104 */
11485/***/ (function(module, exports, __webpack_require__) {
11486
11487"use strict";
11488
11489
11490exports.__esModule = true;
11491exports.default = undefined;
11492
11493var _extends2 = __webpack_require__(1);
11494
11495var _extends3 = _interopRequireDefault(_extends2);
11496
11497var _classCallCheck2 = __webpack_require__(2);
11498
11499var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
11500
11501var _possibleConstructorReturn2 = __webpack_require__(3);
11502
11503var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
11504
11505var _inherits2 = __webpack_require__(4);
11506
11507var _inherits3 = _interopRequireDefault(_inherits2);
11508
11509var _class, _temp2;
11510
11511var _react = __webpack_require__(0);
11512
11513var _react2 = _interopRequireDefault(_react);
11514
11515var _propTypes = __webpack_require__(5);
11516
11517var _propTypes2 = _interopRequireDefault(_propTypes);
11518
11519var _row = __webpack_require__(64);
11520
11521var _row2 = _interopRequireDefault(_row);
11522
11523function _interopRequireDefault(obj) {
11524 return obj && obj.__esModule ? obj : { default: obj };
11525}
11526
11527var LockRow = (_temp2 = _class = function (_React$Component) {
11528 (0, _inherits3.default)(LockRow, _React$Component);
11529
11530 function LockRow() {
11531 var _temp, _this, _ret;
11532
11533 (0, _classCallCheck3.default)(this, LockRow);
11534
11535 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
11536 args[_key] = arguments[_key];
11537 }
11538
11539 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onMouseEnter = function (record, index, e) {
11540 var onRowMouseEnter = _this.context.onRowMouseEnter;
11541 var onMouseEnter = _this.props.onMouseEnter;
11542
11543 onRowMouseEnter && onRowMouseEnter(record, index, e);
11544 onMouseEnter(record, index, e);
11545 }, _this.onMouseLeave = function (record, index, e) {
11546 var onRowMouseLeave = _this.context.onRowMouseLeave;
11547 var onMouseLeave = _this.props.onMouseLeave;
11548
11549 onRowMouseLeave && onRowMouseLeave(record, index, e);
11550 onMouseLeave(record, index, e);
11551 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
11552 }
11553
11554 LockRow.prototype.render = function render() {
11555 /* eslint-disable no-unused-vars*/
11556 return _react2.default.createElement(_row2.default, (0, _extends3.default)({}, this.props, {
11557 onMouseEnter: this.onMouseEnter,
11558 onMouseLeave: this.onMouseLeave
11559 }));
11560 };
11561
11562 return LockRow;
11563}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _row2.default.propTypes), _class.contextTypes = {
11564 onRowMouseEnter: _propTypes2.default.func,
11565 onRowMouseLeave: _propTypes2.default.func
11566}, _class.defaultProps = (0, _extends3.default)({}, _row2.default.defaultProps), _temp2);
11567LockRow.displayName = 'LockRow';
11568exports.default = LockRow;
11569module.exports = exports['default'];
11570
11571/***/ }),
11572/* 105 */
11573/***/ (function(module, exports, __webpack_require__) {
11574
11575"use strict";
11576
11577
11578exports.__esModule = true;
11579
11580var _extends2 = __webpack_require__(1);
11581
11582var _extends3 = _interopRequireDefault(_extends2);
11583
11584var _typeof2 = __webpack_require__(14);
11585
11586var _typeof3 = _interopRequireDefault(_typeof2);
11587
11588var _classCallCheck2 = __webpack_require__(2);
11589
11590var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
11591
11592var _possibleConstructorReturn2 = __webpack_require__(3);
11593
11594var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
11595
11596var _inherits2 = __webpack_require__(4);
11597
11598var _inherits3 = _interopRequireDefault(_inherits2);
11599
11600var _class, _temp;
11601
11602var _react = __webpack_require__(0);
11603
11604var _react2 = _interopRequireDefault(_react);
11605
11606var _reactDom = __webpack_require__(12);
11607
11608var _propTypes = __webpack_require__(5);
11609
11610var _propTypes2 = _interopRequireDefault(_propTypes);
11611
11612var _reactLifecyclesCompat = __webpack_require__(10);
11613
11614var _classnames = __webpack_require__(7);
11615
11616var _classnames2 = _interopRequireDefault(_classnames);
11617
11618var _icon = __webpack_require__(11);
11619
11620var _icon2 = _interopRequireDefault(_icon);
11621
11622var _checkbox = __webpack_require__(49);
11623
11624var _checkbox2 = _interopRequireDefault(_checkbox);
11625
11626var _animate = __webpack_require__(20);
11627
11628var _animate2 = _interopRequireDefault(_animate);
11629
11630var _util = __webpack_require__(6);
11631
11632var _treeNodeInput = __webpack_require__(457);
11633
11634var _treeNodeInput2 = _interopRequireDefault(_treeNodeInput);
11635
11636var _treeNodeIndent = __webpack_require__(458);
11637
11638var _treeNodeIndent2 = _interopRequireDefault(_treeNodeIndent);
11639
11640function _interopRequireDefault(obj) {
11641 return obj && obj.__esModule ? obj : { default: obj };
11642}
11643
11644var Expand = _animate2.default.Expand;
11645var bindCtx = _util.func.bindCtx;
11646var isPromise = _util.obj.isPromise,
11647 pickOthers = _util.obj.pickOthers,
11648 pickAttrsWith = _util.obj.pickAttrsWith;
11649
11650var isRoot = function isRoot(pos) {
11651 return (/^0-(\d)+$/.test(pos)
11652 );
11653};
11654
11655/**
11656 * Tree.Node
11657 */
11658var TreeNode = (_temp = _class = function (_Component) {
11659 (0, _inherits3.default)(TreeNode, _Component);
11660
11661 function TreeNode(props) {
11662 (0, _classCallCheck3.default)(this, TreeNode);
11663
11664 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
11665
11666 _this.saveRef = function (ref) {
11667 _this.nodeEl = ref;
11668 };
11669
11670 _this.saveLabelWrapperRef = function (ref) {
11671 _this.labelWrapperEl = ref;
11672 };
11673
11674 _this.state = {
11675 editing: false,
11676 loading: false,
11677 label: props.label
11678 };
11679
11680 bindCtx(_this, ['handleExpand', 'handleSelect', 'handleCheck', 'handleEditStart', 'handleEditFinish', 'handleRightClick', 'handleDragStart', 'handleDragEnter', 'handleDragOver', 'handleDragLeave', 'handleDragEnd', 'handleDrop', 'handleInputKeyDown', 'handleKeyDown']);
11681 return _this;
11682 }
11683
11684 TreeNode.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
11685 if ('label' in props) {
11686 return {
11687 label: props.label
11688 };
11689 }
11690
11691 return null;
11692 };
11693
11694 TreeNode.prototype.componentDidMount = function componentDidMount() {
11695 this.itemNode = (0, _reactDom.findDOMNode)(this.nodeEl);
11696 this.setFocus();
11697 };
11698
11699 TreeNode.prototype.componentDidUpdate = function componentDidUpdate() {
11700 this.setFocus();
11701 };
11702
11703 TreeNode.prototype.getParentNode = function getParentNode() {
11704 return this.props.root.getParentNode(this.props.pos);
11705 };
11706
11707 TreeNode.prototype.focusable = function focusable() {
11708 var _props = this.props,
11709 root = _props.root,
11710 disabled = _props.disabled;
11711 var focusable = root.props.focusable;
11712
11713 return focusable && !disabled;
11714 };
11715
11716 TreeNode.prototype.getFocused = function getFocused() {
11717 var _props2 = this.props,
11718 _key = _props2._key,
11719 root = _props2.root;
11720 var focusedKey = root.state.focusedKey;
11721
11722 return focusedKey === _key;
11723 };
11724
11725 TreeNode.prototype.setFocus = function setFocus() {
11726 var focused = this.getFocused();
11727 if (focused && this.focusable()) {
11728 this.itemNode.focus({ preventScroll: true });
11729 }
11730 };
11731
11732 TreeNode.prototype.handleExpand = function handleExpand(e) {
11733 var _this2 = this;
11734
11735 var _props3 = this.props,
11736 root = _props3.root,
11737 expanded = _props3.expanded,
11738 eventKey = _props3.eventKey;
11739
11740 if (root.props.isNodeBlock) {
11741 e.stopPropagation();
11742 }
11743
11744 var loading = this.state.loading;
11745
11746 if (loading) {
11747 return;
11748 }
11749
11750 var returnValue = root.handleExpand(!expanded, eventKey, this);
11751 if (isPromise(returnValue)) {
11752 this.setLoading(true);
11753 return returnValue.then(function () {
11754 _this2.setLoading(false);
11755 }, function () {
11756 _this2.setLoading(false);
11757 });
11758 }
11759 };
11760
11761 TreeNode.prototype.setLoading = function setLoading(loading) {
11762 this.setState({ loading: loading });
11763 };
11764
11765 TreeNode.prototype.handleSelect = function handleSelect(e) {
11766 e.preventDefault();
11767
11768 var _props4 = this.props,
11769 root = _props4.root,
11770 selected = _props4.selected,
11771 eventKey = _props4.eventKey;
11772
11773 root.handleSelect(!selected, eventKey, this, e);
11774 };
11775
11776 TreeNode.prototype.handleCheck = function handleCheck() {
11777 var _props5 = this.props,
11778 root = _props5.root,
11779 checked = _props5.checked,
11780 eventKey = _props5.eventKey;
11781
11782 root.handleCheck(!checked, eventKey, this);
11783 };
11784
11785 TreeNode.prototype.handleEditStart = function handleEditStart(e) {
11786 e.preventDefault();
11787
11788 this.setState({
11789 editing: true
11790 });
11791 };
11792
11793 TreeNode.prototype.handleEditFinish = function handleEditFinish(e) {
11794 var label = e.target.value;
11795
11796 this.setState({
11797 editing: false
11798 });
11799
11800 var _props6 = this.props,
11801 root = _props6.root,
11802 eventKey = _props6.eventKey;
11803
11804 root.props.onEditFinish(eventKey, label, this);
11805 };
11806
11807 TreeNode.prototype.handleRightClick = function handleRightClick(e) {
11808 this.props.root.props.onRightClick({
11809 event: e,
11810 node: this
11811 });
11812 };
11813
11814 TreeNode.prototype.handleDragStart = function handleDragStart(e) {
11815 e.stopPropagation();
11816
11817 this.props.root.handleDragStart(e, this);
11818 };
11819
11820 TreeNode.prototype.handleDragEnter = function handleDragEnter(e) {
11821 e.preventDefault();
11822 e.stopPropagation();
11823
11824 this.props.root.handleDragEnter(e, this);
11825 };
11826
11827 TreeNode.prototype.handleDragOver = function handleDragOver(e) {
11828 if (this.props.root.canDrop(this)) {
11829 e.preventDefault();
11830
11831 this.props.root.handleDragOver(e, this);
11832 }
11833 e.stopPropagation();
11834 };
11835
11836 TreeNode.prototype.handleDragLeave = function handleDragLeave(e) {
11837 e.stopPropagation();
11838
11839 this.props.root.handleDragLeave(e, this);
11840 };
11841
11842 TreeNode.prototype.handleDragEnd = function handleDragEnd(e) {
11843 e.stopPropagation();
11844
11845 this.props.root.handleDragEnd(e, this);
11846 };
11847
11848 TreeNode.prototype.handleDrop = function handleDrop(e) {
11849 e.preventDefault();
11850 e.stopPropagation();
11851
11852 this.props.root.handleDrop(e, this);
11853 };
11854
11855 TreeNode.prototype.handleInputKeyDown = function handleInputKeyDown(e) {
11856 if (e.keyCode === _util.KEYCODE.ENTER) {
11857 this.handleEditFinish(e);
11858 }
11859 e.stopPropagation();
11860 };
11861
11862 TreeNode.prototype.handleKeyDown = function handleKeyDown(e) {
11863 var _props7 = this.props,
11864 _key = _props7._key,
11865 root = _props7.root,
11866 disabled = _props7.disabled;
11867
11868 if (disabled) {
11869 return;
11870 }
11871
11872 if (this.focusable()) {
11873 root.handleItemKeyDown(_key, this, e);
11874 }
11875
11876 this.props.onKeyDown && this.props.onKeyDown(e);
11877 };
11878
11879 TreeNode.prototype.addCallbacks = function addCallbacks(props) {
11880 var _props8 = this.props,
11881 disabled = _props8.disabled,
11882 root = _props8.root;
11883
11884 if (!disabled) {
11885 var selectable = typeof this.props.selectable !== 'undefined' ? this.props.selectable : root.props.selectable;
11886 if (selectable) {
11887 props.onClick = this.handleSelect;
11888 }
11889 var editable = typeof this.props.editable !== 'undefined' ? this.props.editable : root.props.editable;
11890 if (editable) {
11891 props.onDoubleClick = this.handleEditStart;
11892 }
11893 var draggable = typeof this.props.draggable !== 'undefined' ? this.props.draggable : root.props.draggable;
11894 if (draggable) {
11895 props.draggable = true;
11896 props.onDragStart = this.handleDragStart;
11897 props.onDragEnd = this.handleDragEnd;
11898 }
11899 props.onContextMenu = this.handleRightClick;
11900 }
11901 };
11902
11903 TreeNode.prototype.renderSwitcher = function renderSwitcher(showLine) {
11904 var _cx, _cx2;
11905
11906 var _props9 = this.props,
11907 prefix = _props9.prefix,
11908 disabled = _props9.disabled,
11909 expanded = _props9.expanded,
11910 root = _props9.root;
11911 var loadData = root.props.loadData;
11912 var loading = this.state.loading;
11913
11914 var lineState = showLine ? 'line' : 'noline';
11915 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));
11916 var iconType = loadData && loading ? 'loading' : showLine ? expanded ? 'minus' : 'add' : 'arrow-down';
11917 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));
11918
11919 return (
11920 // eslint-disable-next-line jsx-a11y/click-events-have-key-events
11921 _react2.default.createElement('span', { className: className, onClick: disabled ? null : this.handleExpand }, this.renderRightAngle(showLine), _react2.default.createElement(_icon2.default, { className: iconCls, type: iconType }))
11922 );
11923 };
11924
11925 TreeNode.prototype.renderNoopSwitcher = function renderNoopSwitcher(showLine) {
11926 var _cx3;
11927
11928 var _props10 = this.props,
11929 prefix = _props10.prefix,
11930 pos = _props10.pos;
11931
11932 var lineState = showLine ? 'line' : 'noline';
11933 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));
11934
11935 return _react2.default.createElement('span', { className: className }, this.renderRightAngle(showLine));
11936 };
11937
11938 TreeNode.prototype.renderRightAngle = function renderRightAngle(showLine) {
11939 var _props11 = this.props,
11940 prefix = _props11.prefix,
11941 pos = _props11.pos;
11942
11943 return showLine && !isRoot(pos) ? _react2.default.createElement('span', { className: prefix + 'tree-right-angle' }) : null;
11944 };
11945
11946 TreeNode.prototype.renderCheckbox = function renderCheckbox() {
11947 var _props12 = this.props,
11948 checked = _props12.checked,
11949 indeterminate = _props12.indeterminate,
11950 disabled = _props12.disabled,
11951 checkboxDisabled = _props12.checkboxDisabled;
11952 var label = this.state.label;
11953
11954 return _react2.default.createElement(_checkbox2.default, {
11955 'aria-label': typeof label === 'string' ? label : null,
11956 checked: checked,
11957 tabIndex: -1,
11958 indeterminate: indeterminate,
11959 disabled: disabled || checkboxDisabled
11960 // don't use onChange, fix https://github.com/alibaba-fusion/next/issues/3850
11961 , onClick: this.handleCheck
11962 });
11963 };
11964
11965 TreeNode.prototype.renderLabel = function renderLabel() {
11966 var _cx4;
11967
11968 var _props13 = this.props,
11969 prefix = _props13.prefix,
11970 root = _props13.root,
11971 disabled = _props13.disabled,
11972 icon = _props13.icon;
11973 var isNodeBlock = root.props.isNodeBlock;
11974 var label = this.state.label;
11975
11976 var selectable = typeof this.props.selectable !== 'undefined' ? this.props.selectable : root.props.selectable;
11977 var labelProps = {
11978 className: (0, _classnames2.default)((_cx4 = {}, _cx4[prefix + 'tree-node-label'] = true, _cx4[prefix + 'tree-node-label-selectable'] = selectable && !disabled, _cx4))
11979 };
11980
11981 if (!isNodeBlock) {
11982 this.addCallbacks(labelProps);
11983 }
11984
11985 var iconEl = typeof icon === 'string' ? _react2.default.createElement(_icon2.default, { type: icon }) : icon;
11986
11987 return _react2.default.createElement('div', { className: prefix + 'tree-node-label-wrapper', ref: this.saveLabelWrapperRef }, _react2.default.createElement('div', labelProps, iconEl, label));
11988 };
11989
11990 TreeNode.prototype.renderInput = function renderInput() {
11991 var prefix = this.props.prefix;
11992 var label = this.state.label;
11993
11994 return _react2.default.createElement('div', { className: prefix + 'tree-node-label-wrapper', ref: this.saveLabelWrapperRef }, _react2.default.createElement(_treeNodeInput2.default, {
11995 prefix: prefix,
11996 defaultValue: label,
11997 onBlur: this.handleEditFinish,
11998 onKeyDown: this.handleInputKeyDown
11999 }));
12000 };
12001
12002 TreeNode.prototype.renderChildTree = function renderChildTree() {
12003 var _props14 = this.props,
12004 prefix = _props14.prefix,
12005 children = _props14.children;
12006
12007 return children && this.addAnimationIfNeeded(_react2.default.createElement('ul', { role: 'group', className: prefix + 'tree-child-tree' }, children));
12008 };
12009
12010 TreeNode.prototype.addAnimationIfNeeded = function addAnimationIfNeeded(node) {
12011 var root = this.props.root;
12012
12013 return root && root.props.animation ? _react2.default.createElement(Expand, { animationAppear: false }, node) : node;
12014 };
12015
12016 TreeNode.prototype.render = function render() {
12017 var _cx5, _cx6, _ref;
12018
12019 var _props15 = this.props,
12020 prefix = _props15.prefix,
12021 rtl = _props15.rtl,
12022 className = _props15.className,
12023 isLeaf = _props15.isLeaf,
12024 level = _props15.level,
12025 root = _props15.root,
12026 selected = _props15.selected,
12027 checked = _props15.checked,
12028 disabled = _props15.disabled,
12029 dragOver = _props15.dragOver,
12030 dragOverGapTop = _props15.dragOverGapTop,
12031 dragOverGapBottom = _props15.dragOverGapBottom,
12032 _key = _props15._key,
12033 size = _props15.size,
12034 posinset = _props15.posinset,
12035 children = _props15.children,
12036 expanded = _props15.expanded,
12037 isLastChild = _props15.isLastChild;
12038 var _root$props = root.props,
12039 isNodeBlock = _root$props.isNodeBlock,
12040 showLine = _root$props.showLine,
12041 rootDraggable = _root$props.draggable,
12042 filterTreeNode = _root$props.filterTreeNode;
12043 var label = this.state.label;
12044
12045 var ARIA_PREFIX = 'aria-';
12046 var ariaProps = pickAttrsWith(this.props, ARIA_PREFIX);
12047 var others = pickOthers(Object.keys(TreeNode.propTypes), this.props);
12048
12049 var hasRenderChildNodes = root && root.props.renderChildNodes;
12050 var shouldShouldLine = !isNodeBlock && showLine && !hasRenderChildNodes;
12051 var useVirtual = root && root.props.useVirtual;
12052
12053 // remove aria keys
12054 Object.keys(others).forEach(function (key) {
12055 if (key.match(ARIA_PREFIX)) {
12056 delete others[key];
12057 }
12058 });
12059
12060 if (rootDraggable) {
12061 others.onDragEnter = this.handleDragEnter;
12062 others.onDragOver = this.handleDragOver;
12063 others.onDragLeave = this.handleDragLeave;
12064 others.onDrop = this.handleDrop;
12065 }
12066 var newClassName = (0, _classnames2.default)((_cx5 = {}, _cx5[prefix + 'tree-node'] = true, _cx5[prefix + 'filtered'] = !!filterTreeNode && !!root.filterTreeNode(this), _cx5[className] = !!className, _cx5));
12067
12068 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));
12069
12070 var defaultPaddingLeft = (typeof isNodeBlock === 'undefined' ? 'undefined' : (0, _typeof3.default)(isNodeBlock)) === 'object' ? parseInt(isNodeBlock.defaultPaddingLeft || 0) : 0;
12071 var paddingLeftProp = rtl ? 'paddingRight' : 'paddingLeft';
12072
12073 var indent = (typeof isNodeBlock === 'undefined' ? 'undefined' : (0, _typeof3.default)(isNodeBlock)) === 'object' ? parseInt(isNodeBlock.indent || 24) : 24;
12074 var innerStyle = isNodeBlock ? (_ref = {}, _ref[paddingLeftProp] = (useVirtual ? 0 : indent * (level - 1)) + defaultPaddingLeft + 'px', _ref) : null;
12075
12076 var innerProps = (0, _extends3.default)({
12077 className: innerClassName,
12078 style: innerStyle,
12079 onKeyDown: this.handleKeyDown
12080 }, ariaProps);
12081
12082 if (isNodeBlock) {
12083 this.addCallbacks(innerProps);
12084 }
12085
12086 var checkable = typeof this.props.checkable !== 'undefined' ? this.props.checkable : root.props.checkable;
12087
12088 var editing = this.state.editing;
12089
12090 innerProps.tabIndex = root.tabbableKey === _key ? '0' : '-1';
12091
12092 if (rtl) {
12093 others.dir = 'rtl';
12094 }
12095
12096 return this.addAnimationIfNeeded(_react2.default.createElement('li', (0, _extends3.default)({ role: 'presentation', className: newClassName }, others), _react2.default.createElement('div', (0, _extends3.default)({
12097 ref: this.saveRef,
12098 role: 'treeitem',
12099 'aria-selected': selected,
12100 'aria-disabled': disabled,
12101 'aria-checked': checked,
12102 'aria-expanded': !isLeaf,
12103 'aria-label': typeof label === 'string' ? label : null,
12104 'aria-level': level,
12105 'aria-posinset': posinset,
12106 'aria-setsize': size
12107 }, innerProps), useVirtual && !hasRenderChildNodes && _react2.default.createElement(_treeNodeIndent2.default, {
12108 prefix: prefix,
12109 level: level,
12110 isLastChild: isLastChild,
12111 showLine: shouldShouldLine
12112 }), isLeaf ? this.renderNoopSwitcher(shouldShouldLine) : this.renderSwitcher(shouldShouldLine), checkable ? this.renderCheckbox() : null, editing ? this.renderInput() : this.renderLabel()), expanded && (hasRenderChildNodes ? children : this.renderChildTree(children))));
12113 };
12114
12115 return TreeNode;
12116}(_react.Component), _class.propTypes = {
12117 prefix: _propTypes2.default.string,
12118 rtl: _propTypes2.default.bool,
12119 _key: _propTypes2.default.string,
12120 className: _propTypes2.default.string,
12121 /**
12122 * 树节点
12123 */
12124 children: _propTypes2.default.node,
12125 /**
12126 * 节点文本内容
12127 */
12128 label: _propTypes2.default.node,
12129 /**
12130 * 单独设置是否支持选中,覆盖 Tree 的 selectable
12131 */
12132 selectable: _propTypes2.default.bool,
12133 /**
12134 * 单独设置是否出现复选框,覆盖 Tree 的 checkable
12135 */
12136 checkable: _propTypes2.default.bool,
12137 /**
12138 * 单独设置是否支持编辑,覆盖 Tree 的 editable
12139 */
12140 editable: _propTypes2.default.bool,
12141 /**
12142 * 单独设置是否支持拖拽,覆盖 Tree 的 draggable
12143 */
12144 draggable: _propTypes2.default.bool,
12145 /**
12146 * 是否禁止节点响应
12147 */
12148 disabled: _propTypes2.default.bool,
12149 /**
12150 * 是否禁止勾选节点复选框
12151 */
12152 checkboxDisabled: _propTypes2.default.bool,
12153 /**
12154 * 是否是叶子节点,设置loadData时生效
12155 */
12156 isLeaf: _propTypes2.default.bool,
12157 root: _propTypes2.default.object,
12158 eventKey: _propTypes2.default.string,
12159 pos: _propTypes2.default.string,
12160 expanded: _propTypes2.default.bool,
12161 selected: _propTypes2.default.bool,
12162 checked: _propTypes2.default.bool,
12163 indeterminate: _propTypes2.default.bool,
12164 dragOver: _propTypes2.default.bool,
12165 dragOverGapTop: _propTypes2.default.bool,
12166 dragOverGapBottom: _propTypes2.default.bool,
12167 parentNode: _propTypes2.default.object,
12168 onKeyDown: _propTypes2.default.func,
12169 // 无障碍化属性:aria-setsize
12170 size: _propTypes2.default.number,
12171 // 无障碍化属性:aria-posinset
12172 posinset: _propTypes2.default.number,
12173 // 是否是最后一个子节点,数组类型,包含对祖先节点的判断
12174 isLastChild: _propTypes2.default.arrayOf(_propTypes2.default.bool),
12175 /**
12176 * 自定义图标,可以使用 Icon 的 type,也可以使用组件 `<Icon type="icon type" />`
12177 * @version 1.21
12178 */
12179 icon: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node])
12180}, _class.defaultProps = {
12181 label: '---',
12182 rtl: false,
12183 disabled: false,
12184 checkboxDisabled: false,
12185 size: 1,
12186 posinset: 1
12187}, _temp);
12188TreeNode.displayName = 'TreeNode';
12189exports.default = (0, _reactLifecyclesCompat.polyfill)(TreeNode);
12190module.exports = exports['default'];
12191
12192/***/ }),
12193/* 106 */
12194/***/ (function(module, exports, __webpack_require__) {
12195
12196"use strict";
12197
12198
12199exports.__esModule = true;
12200
12201var _extends2 = __webpack_require__(1);
12202
12203var _extends3 = _interopRequireDefault(_extends2);
12204
12205var _objectWithoutProperties2 = __webpack_require__(8);
12206
12207var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12208
12209var _classCallCheck2 = __webpack_require__(2);
12210
12211var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
12212
12213var _possibleConstructorReturn2 = __webpack_require__(3);
12214
12215var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
12216
12217var _inherits2 = __webpack_require__(4);
12218
12219var _inherits3 = _interopRequireDefault(_inherits2);
12220
12221var _class, _temp, _initialiseProps;
12222
12223var _react = __webpack_require__(0);
12224
12225var _react2 = _interopRequireDefault(_react);
12226
12227var _propTypes = __webpack_require__(5);
12228
12229var _propTypes2 = _interopRequireDefault(_propTypes);
12230
12231var _classnames = __webpack_require__(7);
12232
12233var _classnames2 = _interopRequireDefault(_classnames);
12234
12235var _reactLifecyclesCompat = __webpack_require__(10);
12236
12237var _util = __webpack_require__(6);
12238
12239var _icon = __webpack_require__(11);
12240
12241var _icon2 = _interopRequireDefault(_icon);
12242
12243var _base = __webpack_require__(196);
12244
12245var _base2 = _interopRequireDefault(_base);
12246
12247var _index = __webpack_require__(466);
12248
12249var _index2 = _interopRequireDefault(_index);
12250
12251var _html5Uploader = __webpack_require__(197);
12252
12253var _html5Uploader2 = _interopRequireDefault(_html5Uploader);
12254
12255var _list = __webpack_require__(108);
12256
12257var _list2 = _interopRequireDefault(_list);
12258
12259var _util2 = __webpack_require__(42);
12260
12261function _interopRequireDefault(obj) {
12262 return obj && obj.__esModule ? obj : { default: obj };
12263}
12264
12265var noop = _util.func.noop;
12266
12267/**
12268 * Upload
12269 */
12270var Upload = (_temp = _class = function (_Base) {
12271 (0, _inherits3.default)(Upload, _Base);
12272
12273 function Upload(props) {
12274 (0, _classCallCheck3.default)(this, Upload);
12275
12276 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
12277
12278 _initialiseProps.call(_this);
12279
12280 var value = void 0;
12281 if ('value' in props) {
12282 value = props.value;
12283 } else {
12284 value = props.defaultValue;
12285 }
12286
12287 _this.state = {
12288 value: !Array.isArray(value) ? [] : value,
12289 uploading: false
12290 };
12291 return _this;
12292 }
12293
12294 Upload.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
12295 // 上传中不允许做受控修改
12296 if ('value' in nextProps && nextProps.value !== prevState.value && !prevState.uploading) {
12297 return {
12298 value: !Array.isArray(nextProps.value) ? [] : nextProps.value
12299 };
12300 }
12301
12302 return null;
12303 };
12304
12305 /**
12306 * 对外暴露API, 添加文件
12307 * @param files
12308 */
12309 Upload.prototype.selectFiles = function selectFiles(files) {
12310 var filesArr = files.length ? Array.prototype.slice.call(files) : [files];
12311
12312 this.onSelect(filesArr);
12313 };
12314
12315 Upload.prototype.uploadFiles = function uploadFiles(files) {
12316 // NOTE: drag上传,当鼠标松开的时候回执行 onDrop,但此时onChange还没出发所以 value=[], 必须提前标识上传中
12317 this.state.uploading = true;
12318 var fileList = files.filter(function (file) {
12319 if (file.state === 'selected') {
12320 file.state = 'uploading';
12321 return true;
12322 }
12323 return false;
12324 }).map(function (file) {
12325 return file.originFileObj;
12326 });
12327
12328 fileList.length && this.uploaderRef.startUpload(fileList);
12329 };
12330
12331 /**
12332 * 对外暴露api,控制文件上传
12333 */
12334
12335 Upload.prototype.startUpload = function startUpload() {
12336 this.uploadFiles(this.state.value);
12337 };
12338
12339 Upload.prototype.replaceFiles = function replaceFiles(old, current) {
12340 var targetItem = (0, _util2.getFileItem)(old, this.state.value);
12341 if (!targetItem) {
12342 return;
12343 }
12344
12345 current.uid = old.uid;
12346 targetItem.originFileObj = current;
12347 };
12348
12349 // 替换掉队列里面的文件
12350
12351
12352 Upload.prototype.isUploading = function isUploading() {
12353 return this.state.uploading;
12354 };
12355
12356 /**
12357 * 删除文件
12358 * @param {File} file
12359 * @return {void}
12360 */
12361
12362 /**
12363 * 取消上传
12364 * @param {File} file
12365 * @return {void}
12366 */
12367
12368 Upload.prototype.render = function render() {
12369 var _classNames, _classNames2;
12370
12371 var _props = this.props,
12372 listType = _props.listType,
12373 prefix = _props.prefix,
12374 dragable = _props.dragable,
12375 shape = _props.shape,
12376 className = _props.className,
12377 style = _props.style,
12378 useDataURL = _props.useDataURL,
12379 disabled = _props.disabled,
12380 limit = _props.limit,
12381 closable = _props.closable,
12382 beforeUpload = _props.beforeUpload,
12383 readonly = _props.readonly,
12384 onRemove = _props.onRemove,
12385 onCancel = _props.onCancel,
12386 onPreview = _props.onPreview,
12387 list = _props.list,
12388 extraRender = _props.extraRender,
12389 progressProps = _props.progressProps,
12390 rtl = _props.rtl,
12391 isPreview = _props.isPreview,
12392 renderPreview = _props.renderPreview,
12393 name = _props.name,
12394 _props$fileKeyName = _props.fileKeyName,
12395 fileKeyName = _props$fileKeyName === undefined ? name : _props$fileKeyName,
12396 fileNameRender = _props.fileNameRender,
12397 actionRender = _props.actionRender,
12398 previewOnFileName = _props.previewOnFileName,
12399 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']);
12400
12401 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));
12402
12403 var isExceedLimit = this.state.value.length >= limit;
12404 var innerCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'upload-inner'] = true, _classNames2[prefix + 'hidden'] = isExceedLimit, _classNames2));
12405
12406 var children = this.props.children;
12407 if (shape === 'card') {
12408 var _classNames3;
12409
12410 var cardCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'upload-card'] = true, _classNames3[prefix + 'disabled'] = disabled, _classNames3));
12411 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));
12412 }
12413
12414 if (isPreview) {
12415 if (typeof renderPreview === 'function') {
12416 var _classNames4;
12417
12418 var previewCls = (0, _classnames2.default)((_classNames4 = {}, _classNames4[prefix + 'form-preview'] = true, _classNames4[className] = !!className, _classNames4));
12419 return _react2.default.createElement('div', { style: style, className: previewCls }, renderPreview(this.state.value, this.props));
12420 }
12421
12422 if (listType) {
12423 return _react2.default.createElement(_list2.default, { isPreview: true, listType: listType, style: style, className: className, value: this.state.value });
12424 }
12425
12426 return null;
12427 }
12428
12429 // disabled 状态下把 remove函数替换成禁止 remove的函数
12430 var onRemoveFunc = disabled ? _util.func.prevent : onRemove;
12431 var otherAttributes = _util.obj.pickAttrsWith(this.props, 'data-');
12432 return _react2.default.createElement('div', (0, _extends3.default)({ className: cls, style: style }, otherAttributes), _react2.default.createElement(_index2.default, (0, _extends3.default)({}, others, {
12433 name: fileKeyName,
12434 beforeUpload: beforeUpload,
12435 dragable: dragable,
12436 disabled: disabled || isExceedLimit,
12437 className: innerCls,
12438 onSelect: this.onSelect,
12439 onDrop: this.onDrop,
12440 onProgress: this.onProgress,
12441 onSuccess: this.onSuccess,
12442 onError: this.onError,
12443 ref: this.saveUploaderRef
12444 }), children), listType || list ? _react2.default.createElement(_list2.default, {
12445 useDataURL: useDataURL,
12446 fileNameRender: fileNameRender,
12447 actionRender: actionRender,
12448 uploader: this,
12449 listType: listType,
12450 value: this.state.value,
12451 closable: closable,
12452 onRemove: onRemoveFunc,
12453 progressProps: progressProps,
12454 onCancel: onCancel,
12455 onPreview: onPreview,
12456 extraRender: extraRender,
12457 rtl: rtl,
12458 previewOnFileName: previewOnFileName
12459 }) : null);
12460 };
12461
12462 return Upload;
12463}(_base2.default), _class.displayName = 'Upload', _class.propTypes = (0, _extends3.default)({}, _html5Uploader2.default.propTypes, _list2.default.propTypes, {
12464 /**
12465 * 样式前缀
12466 */
12467 prefix: _propTypes2.default.string.isRequired,
12468 /**
12469 * 上传的地址
12470 */
12471 action: _propTypes2.default.string,
12472 /**
12473 * 文件列表
12474 */
12475 value: _propTypes2.default.array,
12476 /**
12477 * 默认文件列表
12478 */
12479 defaultValue: _propTypes2.default.array,
12480 /**
12481 * 上传按钮形状
12482 */
12483 shape: _propTypes2.default.oneOf(['card']),
12484 /**
12485 * 上传列表的样式
12486 * @enumdesc 文字, 图文, 卡片
12487 */
12488 listType: _propTypes2.default.oneOf(['text', 'image', 'card']),
12489 list: _propTypes2.default.any,
12490 /**
12491 * 文件名字段
12492 */
12493 name: _propTypes2.default.string,
12494 /**
12495 * 上传额外传参
12496 */
12497 data: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]),
12498 /**
12499 * 数据格式化函数,配合自定义 action 使用,参数为服务器的响应数据,详见 [formatter](#formater)
12500 * @param {Object} response 返回
12501 * @param {File} file 文件对象
12502 */
12503 formatter: _propTypes2.default.func,
12504 /**
12505 * 最大文件上传个数
12506 */
12507 limit: _propTypes2.default.number,
12508 /**
12509 * 设置上传超时,单位ms
12510 */
12511 timeout: _propTypes2.default.number,
12512 /**
12513 * 可选参数,是否支持拖拽上传,`ie10+` 支持。
12514 */
12515 dragable: _propTypes2.default.bool,
12516 closable: _propTypes2.default.bool,
12517 /**
12518 * 可选参数,是否本地预览
12519 */
12520 useDataURL: _propTypes2.default.bool,
12521 /**
12522 * 可选参数,是否禁用上传功能
12523 */
12524 disabled: _propTypes2.default.bool,
12525 /**
12526 * 选择文件回调
12527 */
12528 onSelect: _propTypes2.default.func,
12529 /**
12530 * 上传中
12531 */
12532 onProgress: _propTypes2.default.func,
12533 /**
12534 * 上传文件改变时的状态
12535 * @param {Object} info 文件事件对象
12536 */
12537 onChange: _propTypes2.default.func,
12538 /**
12539 * 可选参数,上传成功回调函数,参数为请求下响应信息以及文件
12540 * @param {Object} file 文件
12541 * @param {Array<Object>} value 值
12542 */
12543 onSuccess: _propTypes2.default.func,
12544 /**
12545 * 可选参数, 用于校验文件,afterSelect仅在 autoUpload=false 的时候生效,autoUpload=true时,可以使用beforeUpload完全可以替代该功能.
12546 * @param {Object} file
12547 * @returns {Boolean} 返回false会阻止上传,其他则表示正常
12548 */
12549 afterSelect: _propTypes2.default.func,
12550 /**
12551 * 移除文件回调函数
12552 * @param {Object} file 文件
12553 * @returns {Boolean|Promise} 返回 false、Promise.resolve(false)、 Promise.reject() 将阻止文件删除
12554 */
12555 onRemove: _propTypes2.default.func,
12556 /**
12557 * 可选参数,上传失败回调函数,参数为上传失败的信息、响应信息以及文件
12558 * @param {Object} file 出错的文件
12559 * @param {Array} value 当前值
12560 */
12561 onError: _propTypes2.default.func,
12562 /**
12563 * 可选参数, 详见 [beforeUpload](#beforeUpload)
12564 * @param {Object} file 所有文件
12565 * @param {Object} options 参数
12566 * @returns {Boolean|Object|Promise} 返回值作用见demo
12567 */
12568 beforeUpload: _propTypes2.default.func,
12569 /**
12570 * 放文件
12571 */
12572 onDrop: _propTypes2.default.func,
12573 /**
12574 * 自定义class
12575 */
12576 className: _propTypes2.default.string,
12577 /**
12578 * 自定义内联样式
12579 */
12580 style: _propTypes2.default.object,
12581 /**
12582 * 子元素
12583 */
12584 children: _propTypes2.default.node,
12585 /**
12586 * 自动上传
12587 */
12588 autoUpload: _propTypes2.default.bool,
12589 /**
12590 * 自定义上传方法
12591 * @param {Object} option
12592 * @return {Object} object with abort method
12593 */
12594 request: _propTypes2.default.func,
12595 /**
12596 * 透传给Progress props
12597 */
12598 progressProps: _propTypes2.default.object,
12599 rtl: _propTypes2.default.bool,
12600 /**
12601 * 是否为预览态
12602 */
12603 isPreview: _propTypes2.default.bool,
12604 /**
12605 * 预览态模式下渲染的内容
12606 * @param {number} value 评分值
12607 */
12608 renderPreview: _propTypes2.default.func,
12609 /**
12610 * 文件对象的 key name
12611 * @version 1.21
12612 */
12613 fileKeyName: _propTypes2.default.string,
12614 /**
12615 * list 的自定义文件名渲染
12616 * @param {Object} file 文件
12617 * @return {Node} react node
12618 */
12619 fileNameRender: _propTypes2.default.func,
12620 /**
12621 * 操作区域额外渲染
12622 * @param {Object} file 文件
12623 * @return {Node} react node
12624 */
12625 actionRender: _propTypes2.default.func,
12626 /**
12627 * 点击文件名时触发 onPreview
12628 * @version 1.24
12629 */
12630 previewOnFileName: _propTypes2.default.bool
12631}), _class.defaultProps = (0, _extends3.default)({}, _html5Uploader2.default.defaultProps, {
12632 prefix: 'next-',
12633 limit: Infinity,
12634 autoUpload: true,
12635 closable: true,
12636 onSelect: noop,
12637 onProgress: noop,
12638 onChange: noop,
12639 onSuccess: noop,
12640 onRemove: noop,
12641 onError: noop,
12642 onDrop: noop,
12643 beforeUpload: noop,
12644 afterSelect: noop,
12645 previewOnFileName: false
12646}), _initialiseProps = function _initialiseProps() {
12647 var _this2 = this;
12648
12649 this.onSelect = function (files) {
12650 var _props2 = _this2.props,
12651 autoUpload = _props2.autoUpload,
12652 afterSelect = _props2.afterSelect,
12653 onSelect = _props2.onSelect,
12654 limit = _props2.limit;
12655 // 总数
12656
12657 var total = _this2.state.value.length + files.length;
12658 // 差额
12659 var less = limit - _this2.state.value.length;
12660 if (less <= 0) {
12661 // 差额不足 则不上传
12662 return;
12663 }
12664
12665 var fileList = files.map(function (file) {
12666 var objFile = (0, _util2.fileToObject)(file);
12667 objFile.state = 'selected';
12668 return objFile;
12669 });
12670
12671 // 默认全量上传
12672 var uploadFiles = fileList;
12673 var discardFiles = [];
12674 if (total > limit) {
12675 // 全量上传总数会超过limit 但是 还有差额
12676 uploadFiles = fileList.slice(0, less);
12677 discardFiles = fileList.slice(less);
12678 }
12679
12680 var value = _this2.state.value.concat(fileList);
12681
12682 /* eslint-disable-next */
12683 _this2.state.value = value;
12684
12685 if (autoUpload) {
12686 _this2.uploadFiles(uploadFiles);
12687 }
12688
12689 onSelect(uploadFiles, value);
12690 discardFiles.forEach(function (file) {
12691 // 丢弃的文件
12692 var err = new Error(_util2.errorCode.EXCEED_LIMIT);
12693 err.code = _util2.errorCode.EXCEED_LIMIT;
12694 _this2.onError(err, null, file);
12695 });
12696
12697 if (!autoUpload) {
12698 uploadFiles.forEach(function (file) {
12699 var isPassed = afterSelect(file);
12700 _util.func.promiseCall(isPassed, _util.func.noop, function (error) {
12701 _this2.onError(error, null, file); // TODO: handle error message
12702 });
12703 });
12704 _this2.onChange(value, uploadFiles);
12705 }
12706 };
12707
12708 this.onDrop = function (files) {
12709 _this2.onSelect(files);
12710 _this2.props.onDrop(files);
12711 };
12712
12713 this.replaceWithNewFile = function (old, current) {
12714 var newFile = (0, _util2.fileToObject)(current);
12715 newFile.state = 'selected';
12716
12717 var matchKey = old.uid !== undefined ? 'uid' : 'name';
12718
12719 var fileList = _this2.state.value;
12720 for (var i = 0; i < fileList.length; i++) {
12721 var item = fileList[i];
12722 if (item[matchKey] === old[matchKey]) {
12723 fileList.splice(i, 1, newFile);
12724 break;
12725 }
12726 }
12727
12728 _this2.uploadFiles([newFile]);
12729 return newFile;
12730 };
12731
12732 this.onProgress = function (e, file) {
12733 _this2.state.uploading = true;
12734
12735 var value = _this2.state.value;
12736 var targetItem = (0, _util2.getFileItem)(file, value);
12737
12738 if (!targetItem) {
12739 return;
12740 }
12741
12742 (0, _extends3.default)(targetItem, {
12743 state: 'uploading',
12744 percent: e.percent
12745 });
12746
12747 _this2.setState({
12748 value: value
12749 });
12750
12751 _this2.props.onProgress(value, targetItem);
12752 };
12753
12754 this.onSuccess = function (response, file) {
12755 var formatter = _this2.props.formatter;
12756
12757 if (formatter) {
12758 response = formatter(response, file);
12759 }
12760
12761 try {
12762 if (typeof response === 'string') {
12763 response = JSON.parse(response);
12764 }
12765 } catch (e) {
12766 e.code = _util2.errorCode.RESPONSE_FAIL;
12767 return _this2.onError(e, response, file);
12768 }
12769
12770 if (response.success === false) {
12771 var err = new Error(response.message || _util2.errorCode.RESPONSE_FAIL);
12772 err.code = _util2.errorCode.RESPONSE_FAIL;
12773 return _this2.onError(err, response, file);
12774 }
12775
12776 var value = _this2.state.value;
12777 var targetItem = (0, _util2.getFileItem)(file, value);
12778
12779 if (!targetItem) {
12780 return;
12781 }
12782
12783 (0, _extends3.default)(targetItem, {
12784 state: 'done',
12785 response: response,
12786 url: response.url,
12787 downloadURL: response.downloadURL || response.url // 下载地址(可选)
12788 });
12789
12790 if (!_this2.props.useDataURL) {
12791 targetItem.imgURL = response.imgURL || response.url; // 缩略图地址(可选)
12792 }
12793
12794 _this2.updateUploadingState();
12795
12796 _this2.onChange(value, targetItem);
12797 _this2.props.onSuccess(targetItem, value);
12798 };
12799
12800 this.onError = function (err, response, file) {
12801 var value = _this2.state.value;
12802 var targetItem = (0, _util2.getFileItem)(file, value);
12803
12804 if (!targetItem) {
12805 return;
12806 }
12807
12808 (0, _extends3.default)(targetItem, {
12809 state: 'error',
12810 error: err,
12811 response: response
12812 });
12813
12814 _this2.updateUploadingState();
12815
12816 _this2.onChange(value, targetItem);
12817 _this2.props.onError(targetItem, value);
12818 };
12819
12820 this.removeFile = function (file) {
12821 file.state = 'removed';
12822 _this2.uploaderRef.abort(file); // 删除组件时调用组件的 `abort` 方法中断上传
12823
12824 var fileList = _this2.state.value;
12825 var targetItem = (0, _util2.getFileItem)(file, fileList);
12826 var index = fileList.indexOf(targetItem);
12827 if (index !== -1) {
12828 fileList.splice(index, 1);
12829 _this2.onChange(fileList, targetItem);
12830 }
12831 };
12832
12833 this.updateUploadingState = function () {
12834 var inProgress = _this2.state.value.some(function (i) {
12835 return i.state === 'uploading';
12836 });
12837 if (!inProgress) {
12838 _this2.state.uploading = false;
12839 }
12840 };
12841
12842 this.abort = function (file) {
12843 var fileList = _this2.state.value;
12844 var targetItem = (0, _util2.getFileItem)(file, fileList);
12845 var index = fileList.indexOf(targetItem);
12846 if (index !== -1) {
12847 fileList.splice(index, 1);
12848 _this2.onChange(fileList, targetItem);
12849 }
12850 _this2.uploaderRef.abort(file); // 取消上传时调用组件的 `abort` 方法中断上传
12851 };
12852
12853 this.onChange = function (value, file) {
12854 _this2.setState({
12855 value: value
12856 });
12857 _this2.props.onChange(value, file);
12858 };
12859}, _temp);
12860exports.default = (0, _reactLifecyclesCompat.polyfill)(Upload);
12861module.exports = exports['default'];
12862
12863/***/ }),
12864/* 107 */
12865/***/ (function(module, exports, __webpack_require__) {
12866
12867"use strict";
12868
12869
12870exports.__esModule = true;
12871exports.default = undefined;
12872
12873var _extends2 = __webpack_require__(1);
12874
12875var _extends3 = _interopRequireDefault(_extends2);
12876
12877var _classCallCheck2 = __webpack_require__(2);
12878
12879var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
12880
12881var _possibleConstructorReturn2 = __webpack_require__(3);
12882
12883var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
12884
12885var _inherits2 = __webpack_require__(4);
12886
12887var _inherits3 = _interopRequireDefault(_inherits2);
12888
12889var _class, _temp2;
12890
12891var _react = __webpack_require__(0);
12892
12893var _react2 = _interopRequireDefault(_react);
12894
12895var _propTypes = __webpack_require__(5);
12896
12897var _propTypes2 = _interopRequireDefault(_propTypes);
12898
12899var _util = __webpack_require__(6);
12900
12901var _util2 = __webpack_require__(42);
12902
12903function _interopRequireDefault(obj) {
12904 return obj && obj.__esModule ? obj : { default: obj };
12905}
12906
12907var noop = _util.func.noop;
12908
12909/**
12910 * Upload.Selecter
12911 * @description [底层能力] 可自定义样式的文件选择器
12912 */
12913
12914var Selecter = (_temp2 = _class = function (_React$Component) {
12915 (0, _inherits3.default)(Selecter, _React$Component);
12916
12917 function Selecter() {
12918 var _temp, _this, _ret;
12919
12920 (0, _classCallCheck3.default)(this, Selecter);
12921
12922 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
12923 args[_key] = arguments[_key];
12924 }
12925
12926 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onSelect = function (e) {
12927 var files = e.target.files;
12928 var filesArr = files.length ? Array.prototype.slice.call(files) : [files];
12929
12930 filesArr.forEach(function (file) {
12931 file.uid = (0, _util2.uid)();
12932 });
12933
12934 _this.props.onSelect(filesArr);
12935 }, _this.onClick = function () {
12936 var el = _this.fileRef;
12937 if (!el) {
12938 return;
12939 }
12940 // NOTE: 在 IE 下,el.value = '' 在 el.click() 之后,会触发 input[type=file] 两次 onChange
12941 el.value = '';
12942 el.click();
12943 }, _this.onKeyDown = function (e) {
12944 if (e.key === 'Enter') {
12945 _this.onClick();
12946 }
12947 }, _this.onDrop = function (e) {
12948 e.preventDefault();
12949
12950 var files = e.dataTransfer.files;
12951 var filesArr = Array.prototype.slice.call(files);
12952
12953 _this.props.onDrop(filesArr);
12954 }, _this.onDragOver = function (e) {
12955 e.preventDefault();
12956 _this.props.onDragOver(e);
12957 }, _this.saveFileRef = function (ref) {
12958 _this.fileRef = ref;
12959 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
12960 }
12961
12962 /**
12963 * 点击上传按钮
12964 * @return {void}
12965 */
12966
12967 /**
12968 * 键盘事件
12969 * @param {SyntheticEvent} e
12970 * @return {void}
12971 */
12972
12973 /**
12974 * 拖拽
12975 * @param {SyntheticEvent} e
12976 * @return {void}
12977 */
12978
12979 Selecter.prototype.render = function render() {
12980 var _props = this.props,
12981 accept = _props.accept,
12982 multiple = _props.multiple,
12983 capture = _props.capture,
12984 webkitdirectory = _props.webkitdirectory,
12985 children = _props.children,
12986 id = _props.id,
12987 disabled = _props.disabled,
12988 dragable = _props.dragable,
12989 style = _props.style,
12990 className = _props.className,
12991 name = _props.name;
12992
12993 var events = {};
12994 if (!disabled) {
12995 events = (0, _extends3.default)({
12996 onClick: this.onClick,
12997 onKeyDown: this.onKeyDown,
12998 tabIndex: '0'
12999 }, dragable ? {
13000 onDrop: this.onDrop,
13001 onDragOver: this.onDragOver,
13002 onDragLeave: this.props.onDragLeave
13003 } : {});
13004 }
13005
13006 var otherProps = {};
13007 if (webkitdirectory) {
13008 otherProps.webkitdirectory = '';
13009 }
13010 if (capture) {
13011 otherProps.capture = capture;
13012 }
13013
13014 return _react2.default.createElement('div', (0, _extends3.default)({ role: 'application', style: style, className: className }, events), _react2.default.createElement('input', (0, _extends3.default)({}, otherProps, {
13015 type: 'file',
13016 name: name,
13017 id: id,
13018 ref: this.saveFileRef,
13019 style: { display: 'none' },
13020 accept: accept,
13021 'aria-hidden': true,
13022 multiple: multiple,
13023 onChange: this.onSelect,
13024 disabled: disabled
13025 })), children);
13026 };
13027
13028 return Selecter;
13029}(_react2.default.Component), _class.propTypes = {
13030 id: _propTypes2.default.string,
13031 style: _propTypes2.default.object,
13032 className: _propTypes2.default.string,
13033 /**
13034 * 是否禁用上传功能
13035 */
13036 disabled: _propTypes2.default.bool,
13037 /**
13038 * 是否支持多选文件,`ie10+` 支持。开启后按住 ctrl 可选择多个文件
13039 */
13040 multiple: _propTypes2.default.bool,
13041 /**
13042 * 是否支持上传文件夹,仅在 chorme 下生效
13043 */
13044 webkitdirectory: _propTypes2.default.bool,
13045 /**
13046 * 调用系统设备媒体
13047 */
13048 capture: _propTypes2.default.string,
13049 /**
13050 * 是否支持拖拽上传,`ie10+` 支持。
13051 */
13052 dragable: _propTypes2.default.bool,
13053 /**
13054 * 接受上传的文件类型 (image/png, image/jpg, .doc, .ppt) 详见 [input accept attribute](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input#attr-accept)
13055 */
13056 accept: _propTypes2.default.string,
13057 /**
13058 * 文件选择回调
13059 */
13060 onSelect: _propTypes2.default.func,
13061 /**
13062 * 拖拽经过回调
13063 */
13064 onDragOver: _propTypes2.default.func,
13065 /**
13066 * 拖拽离开回调
13067 */
13068 onDragLeave: _propTypes2.default.func,
13069 /**
13070 * 拖拽完成回调
13071 */
13072 onDrop: _propTypes2.default.func,
13073 children: _propTypes2.default.node,
13074 name: _propTypes2.default.string
13075}, _class.defaultProps = {
13076 name: 'file',
13077 multiple: false,
13078 onSelect: noop,
13079 onDragOver: noop,
13080 onDragLeave: noop,
13081 onDrop: noop
13082}, _temp2);
13083Selecter.displayName = 'Selecter';
13084exports.default = Selecter;
13085module.exports = exports['default'];
13086
13087/***/ }),
13088/* 108 */
13089/***/ (function(module, exports, __webpack_require__) {
13090
13091"use strict";
13092
13093
13094exports.__esModule = true;
13095
13096var _extends2 = __webpack_require__(1);
13097
13098var _extends3 = _interopRequireDefault(_extends2);
13099
13100var _classCallCheck2 = __webpack_require__(2);
13101
13102var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
13103
13104var _possibleConstructorReturn2 = __webpack_require__(3);
13105
13106var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
13107
13108var _inherits2 = __webpack_require__(4);
13109
13110var _inherits3 = _interopRequireDefault(_inherits2);
13111
13112var _class, _temp2;
13113
13114var _react = __webpack_require__(0);
13115
13116var _react2 = _interopRequireDefault(_react);
13117
13118var _propTypes = __webpack_require__(5);
13119
13120var _propTypes2 = _interopRequireDefault(_propTypes);
13121
13122var _classnames = __webpack_require__(7);
13123
13124var _classnames2 = _interopRequireDefault(_classnames);
13125
13126var _configProvider = __webpack_require__(9);
13127
13128var _configProvider2 = _interopRequireDefault(_configProvider);
13129
13130var _progress = __webpack_require__(101);
13131
13132var _progress2 = _interopRequireDefault(_progress);
13133
13134var _icon = __webpack_require__(11);
13135
13136var _icon2 = _interopRequireDefault(_icon);
13137
13138var _button = __webpack_require__(17);
13139
13140var _button2 = _interopRequireDefault(_button);
13141
13142var _util = __webpack_require__(6);
13143
13144var _zhCn = __webpack_require__(13);
13145
13146var _zhCn2 = _interopRequireDefault(_zhCn);
13147
13148var _util2 = __webpack_require__(42);
13149
13150var _transform = __webpack_require__(195);
13151
13152var _transform2 = _interopRequireDefault(_transform);
13153
13154var _item = __webpack_require__(38);
13155
13156var _item2 = _interopRequireDefault(_item);
13157
13158var _selecter = __webpack_require__(107);
13159
13160var _selecter2 = _interopRequireDefault(_selecter);
13161
13162function _interopRequireDefault(obj) {
13163 return obj && obj.__esModule ? obj : { default: obj };
13164}
13165
13166var isIE9 = _util.env.ieVersion === 9;
13167
13168var List = (_temp2 = _class = function (_Component) {
13169 (0, _inherits3.default)(List, _Component);
13170
13171 function List() {
13172 var _temp, _this, _ret;
13173
13174 (0, _classCallCheck3.default)(this, List);
13175
13176 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
13177 args[_key] = arguments[_key];
13178 }
13179
13180 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.handleClose = function (file) {
13181 var _this$props = _this.props,
13182 onRemove = _this$props.onRemove,
13183 uploader = _this$props.uploader;
13184
13185 var remove = onRemove(file);
13186
13187 _util.func.promiseCall(remove, function () {
13188 uploader && uploader.removeFile(file);
13189 });
13190 }, _this.handleCancel = function (file) {
13191 var _this$props2 = _this.props,
13192 onCancel = _this$props2.onCancel,
13193 uploader = _this$props2.uploader;
13194
13195 var cancel = onCancel(file);
13196
13197 _util.func.promiseCall(cancel, function () {
13198 uploader && uploader.abort(file);
13199 });
13200 }, _this.onImageError = function (file, obj) {
13201 obj.onerror = null;
13202 _this.props.onImageError(obj, file);
13203 }, _this.onSelect = function (oldfile, files) {
13204 var uploader = _this.props.uploader;
13205 uploader && files.length && uploader.replaceWithNewFile(oldfile, files[0]);
13206 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
13207 }
13208
13209 List.prototype.componentDidUpdate = function componentDidUpdate() {
13210 var _this2 = this;
13211
13212 var _props = this.props,
13213 listType = _props.listType,
13214 useDataURL = _props.useDataURL,
13215 value = _props.value;
13216
13217 if (listType !== 'image' && listType !== 'card') {
13218 return;
13219 }
13220
13221 useDataURL && value.forEach(function (file) {
13222 if (typeof document === 'undefined' || typeof window === 'undefined' || !window.FileReader || !window.File || !(file.originFileObj instanceof File) || file.imgURL !== undefined) {
13223 return;
13224 }
13225 file.imgURL = '';
13226 (0, _util2.previewFile)(file.originFileObj, function (previewDataUrl) {
13227 file.imgURL = previewDataUrl;
13228 _this2.forceUpdate();
13229 });
13230 });
13231 };
13232
13233 List.prototype.onPreview = function onPreview(file, e) {
13234 var onPreview = this.props.onPreview;
13235
13236 if (!onPreview) {
13237 return;
13238 }
13239 // e.preventDefault();
13240 return onPreview(file, e);
13241 };
13242
13243 List.prototype.getInfo = function getInfo(file) {
13244 var _classNames;
13245
13246 var prefixCls = this.props.prefix + 'upload';
13247 var downloadURL = file.downloadURL || file.url;
13248 var imgURL = file.imgURL || file.url;
13249 var size = this.sizeCaculator(file.size);
13250 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));
13251 var alt = file.name || file.alt;
13252 return { prefixCls: prefixCls, downloadURL: downloadURL, imgURL: imgURL, size: size, itemCls: itemCls, alt: alt };
13253 };
13254 // transfer size from number to xx K/ XxxM / xxG
13255
13256
13257 List.prototype.sizeCaculator = function sizeCaculator(size) {
13258 var fileSize = parseFloat(size, 10);
13259 // fileSize为浮点数 用 < 0.000001 替代 === 0
13260 if (isNaN(fileSize) || fileSize < 0.0000001) {
13261 return 0;
13262 }
13263 var SIZE_SUFFIX = ['B', 'K', 'M', 'G', 'T', 'P'];
13264 var suffixIndex = 0;
13265
13266 // 在Mac上实验发现 取1024造成显示的大小和实际大小不一致
13267 // 因为单位制不同 见 https://superuser.com/questions/938234/size-of-files-in-windows-os-its-kb-or-kb
13268 var BIT_NUMBER_SYSTEM = 1024;
13269 while (fileSize >= BIT_NUMBER_SYSTEM && suffixIndex < SIZE_SUFFIX.length) {
13270 suffixIndex++;
13271 fileSize /= BIT_NUMBER_SYSTEM;
13272 }
13273
13274 var suffix = SIZE_SUFFIX[suffixIndex];
13275 fileSize = fileSize.toFixed(2);
13276
13277 return '' + fileSize + suffix;
13278 };
13279
13280 List.prototype.getTextList = function getTextList(file) {
13281 var _this3 = this;
13282
13283 var _props2 = this.props,
13284 locale = _props2.locale,
13285 extraRender = _props2.extraRender,
13286 actionRender = _props2.actionRender,
13287 progressProps = _props2.progressProps,
13288 rtl = _props2.rtl,
13289 fileNameRender = _props2.fileNameRender,
13290 previewOnFileName = _props2.previewOnFileName;
13291
13292 var _getInfo = this.getInfo(file),
13293 prefixCls = _getInfo.prefixCls,
13294 downloadURL = _getInfo.downloadURL,
13295 size = _getInfo.size,
13296 itemCls = _getInfo.itemCls;
13297
13298 var onClick = function onClick() {
13299 return file.state === 'uploading' ? _this3.handleCancel(file) : _this3.handleClose(file);
13300 };
13301 var onKeyDown = function onKeyDown(e) {
13302 if (e.keyCode === _util.KEYCODE.ENTER) {
13303 onClick();
13304 }
13305 };
13306 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', {
13307 onClick: previewOnFileName ? this.onPreview.bind(this, file) : _util.func.noop,
13308 href: downloadURL,
13309 target: '_blank',
13310 style: { pointerEvents: downloadURL ? '' : 'none' },
13311 className: prefixCls + '-list-item-name'
13312 }, _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)({
13313 size: 'medium',
13314 percent: file.percent,
13315 textRender: _util.func.noop,
13316 rtl: rtl
13317 }, 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, {
13318 type: 'close',
13319 size: 'large',
13320 role: 'button',
13321 'aria-label': locale.upload.delete,
13322 tabIndex: '0',
13323 onClick: onClick,
13324 onKeyDown: onKeyDown
13325 }) : null));
13326 };
13327
13328 List.prototype.getImageList = function getImageList(file) {
13329 var _this4 = this;
13330
13331 var _props3 = this.props,
13332 extraRender = _props3.extraRender,
13333 actionRender = _props3.actionRender,
13334 progressProps = _props3.progressProps,
13335 rtl = _props3.rtl,
13336 fileNameRender = _props3.fileNameRender,
13337 previewOnFileName = _props3.previewOnFileName;
13338
13339 var _getInfo2 = this.getInfo(file),
13340 prefixCls = _getInfo2.prefixCls,
13341 downloadURL = _getInfo2.downloadURL,
13342 imgURL = _getInfo2.imgURL,
13343 size = _getInfo2.size,
13344 itemCls = _getInfo2.itemCls,
13345 alt = _getInfo2.alt;
13346
13347 var img = null;
13348
13349 var onClick = function onClick() {
13350 return file.state === 'uploading' ? _this4.handleCancel(file) : _this4.handleClose(file);
13351 };
13352 var onKeyDown = function onKeyDown(e) {
13353 if (e.keyCode === _util.KEYCODE.ENTER) {
13354 onClick();
13355 }
13356 };
13357
13358 if (file.state === 'uploading' || file.state === 'selected' && !imgURL) {
13359 img = _react2.default.createElement(_icon2.default, { type: 'picture' });
13360 } else if (file.state === 'error') {
13361 img = _react2.default.createElement(_icon2.default, { type: 'cry' });
13362 } else {
13363 img = _react2.default.createElement('img', {
13364 src: imgURL,
13365 onError: this.onImageError.bind(this, file),
13366 tabIndex: '0',
13367 alt: alt,
13368 onClick: this.onPreview.bind(this, file)
13369 });
13370 }
13371
13372 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, {
13373 type: 'close',
13374 size: 'large',
13375 tabIndex: '0',
13376 role: 'button',
13377 onClick: onClick,
13378 onKeyDown: onKeyDown
13379 }) : null), _react2.default.createElement('a', {
13380 onClick: previewOnFileName ? this.onPreview.bind(this, file) : _util.func.noop,
13381 href: downloadURL,
13382 target: '_blank',
13383 style: { pointerEvents: downloadURL ? '' : 'none' },
13384 className: prefixCls + '-list-item-name'
13385 }, _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);
13386 };
13387
13388 List.prototype.getPictureCardList = function getPictureCardList(file, isPreview) {
13389 var _this5 = this;
13390
13391 var _props4 = this.props,
13392 locale = _props4.locale,
13393 progressProps = _props4.progressProps,
13394 fileNameRender = _props4.fileNameRender,
13395 itemRender = _props4.itemRender,
13396 showDownload = _props4.showDownload;
13397
13398 var _getInfo3 = this.getInfo(file),
13399 prefixCls = _getInfo3.prefixCls,
13400 downloadURL = _getInfo3.downloadURL,
13401 imgURL = _getInfo3.imgURL,
13402 itemCls = _getInfo3.itemCls,
13403 alt = _getInfo3.alt;
13404
13405 var state = isPreview ? '' : file.state;
13406
13407 var img = null;
13408
13409 if (state === 'uploading' || state === 'selected' && !imgURL) {
13410 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() {
13411 return _this5.handleCancel(file);
13412 } }, locale.card.cancel));
13413 } else if (state === 'error') {
13414 img = _react2.default.createElement('div', { className: prefixCls + '-list-item-handler' }, _react2.default.createElement(_icon2.default, { type: 'cry' }));
13415 } else {
13416 img = _react2.default.createElement('img', {
13417 src: imgURL,
13418 tabIndex: '0',
13419 alt: alt,
13420 onError: this.onImageError.bind(this, file),
13421 onClick: this.onPreview.bind(this, file)
13422 });
13423 }
13424
13425 var onClose = function onClose() {
13426 return _this5.handleClose(file);
13427 };
13428 var onKeyDownClose = function onKeyDownClose(e) {
13429 if (e.keyCode === _util.KEYCODE.ENTER) {
13430 onClose();
13431 }
13432 };
13433
13434 var item = null;
13435 if (state === 'uploading') {
13436 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)))];
13437 } else {
13438 /* eslint-disable no-lonely-if */
13439 if (typeof itemRender === 'function') {
13440 // 不处理上传态和选择态,太过复杂
13441 item = itemRender(file, { remove: onClose });
13442 } else {
13443 var Uploader = this.props.uploader || { props: {} };
13444 var UploaderProps = Uploader.props;
13445
13446 // TODO: 2.x 中逻辑会修改为,只要有showDownload,那就有下载按钮(不管有没有downloadURL)
13447 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', {
13448 href: downloadURL,
13449 target: '_blank',
13450 className: prefixCls + '-tool-item ' + prefixCls + '-tool-download-link'
13451 }, _react2.default.createElement(_icon2.default, {
13452 type: 'download',
13453 'aria-label': locale.card.download,
13454 className: prefixCls + '-tool-download-icon'
13455 })) : null, this.props.reUpload && !isPreview && !isIE9 ? _react2.default.createElement(_selecter2.default, {
13456 className: prefixCls + '-tool-item ' + prefixCls + '-tool-reupload',
13457 accept: UploaderProps.accept,
13458 name: UploaderProps.fileKeyName,
13459 onSelect: this.onSelect.bind(this, file)
13460 }, _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, {
13461 type: 'ashbin',
13462 'aria-label': locale.card.delete,
13463 tabIndex: '0',
13464 role: 'button',
13465 onClick: onClose,
13466 onKeyDown: onKeyDownClose
13467 })) : null)];
13468 }
13469 }
13470
13471 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)));
13472 };
13473
13474 List.prototype.render = function render() {
13475 var _this6 = this,
13476 _classNames3;
13477
13478 var _props5 = this.props,
13479 listType = _props5.listType,
13480 children = _props5.children,
13481 prefix = _props5.prefix,
13482 rtl = _props5.rtl,
13483 className = _props5.className,
13484 isPreview = _props5.isPreview;
13485
13486 var prefixCls = prefix + 'upload';
13487
13488 var list = [];
13489 if (isPreview) {
13490 var _classNames2;
13491
13492 var previewCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'form-preview'] = true, _classNames2[className] = !!className, _classNames2));
13493 list = this.props.value.map(function (file) {
13494 if (!file) {
13495 return null;
13496 }
13497
13498 var downloadURL = file.downloadURL,
13499 imgURL = file.imgURL,
13500 name = file.name;
13501
13502 if (listType === 'text') {
13503 return _react2.default.createElement('div', { className: previewCls }, _react2.default.createElement('a', { href: downloadURL, target: '_blank' }, name));
13504 } else if (listType === 'image' || listType === 'card') {
13505 return _this6.getPictureCardList(file, true);
13506 }
13507 return null;
13508 });
13509 } else {
13510 list = this.props.value.map(function (file) {
13511 if (!file) {
13512 return null;
13513 }
13514
13515 if (listType === 'text') {
13516 return _this6.getTextList(file);
13517 } else if (listType === 'image') {
13518 return _this6.getImageList(file);
13519 } else if (listType === 'card') {
13520 return _this6.getPictureCardList(file);
13521 }
13522 return null;
13523 });
13524 }
13525
13526 if (rtl && listType === 'card' && Array.isArray(list)) {
13527 list = list.reverse();
13528 }
13529 var _listType = isPreview && listType === 'image' ? 'card' : this.props.listType;
13530 var listclassNames = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefixCls + '-list'] = true, _classNames3[prefixCls + '-list-' + _listType] = true, _classNames3[prefixCls + '-ie9'] = isIE9, _classNames3), className);
13531
13532 var others = _util.obj.pickAttrsWith(this.props, 'data-');
13533 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: listclassNames, dir: rtl ? 'rtl' : undefined }), rtl ? children : list, rtl ? list : children);
13534 };
13535
13536 return List;
13537}(_react.Component), _class.propTypes = {
13538 prefix: _propTypes2.default.string,
13539 /**
13540 * 多语言
13541 */
13542 locale: _propTypes2.default.object,
13543 /**
13544 * 文件列表,数据格式请参考 文件对象
13545 */
13546 listType: _propTypes2.default.oneOf(['text', 'image', 'card']),
13547 /**
13548 * 文件列表
13549 */
13550 value: _propTypes2.default.array,
13551 closable: _propTypes2.default.bool,
13552 /**
13553 * 删除文件回调(支持Promise)
13554 */
13555 onRemove: _propTypes2.default.func,
13556 /**
13557 * 取消上传回调(支持Promise)
13558 */
13559 onCancel: _propTypes2.default.func,
13560 /**
13561 * 头像加载出错回调
13562 */
13563 onImageError: _propTypes2.default.func,
13564 /**
13565 * 点击图片回调
13566 */
13567 onPreview: _propTypes2.default.func,
13568 /**
13569 * 点击文件名时触发 onPreview
13570 */
13571 previewOnFileName: _propTypes2.default.bool,
13572 /**
13573 * 自定义额外渲染
13574 */
13575 extraRender: _propTypes2.default.func,
13576 /**
13577 * 自定义操作渲染
13578 */
13579 actionRender: _propTypes2.default.func,
13580 /**
13581 * 卡片自定义渲染(目前只支持 Card)
13582 * @param {Object} file 文件对象
13583 * @param {Object} {remove} remove:删除回调
13584 * @retuns {ReactNode} React元素
13585 */
13586 itemRender: _propTypes2.default.func,
13587 /**
13588 * 透传给Progress props
13589 */
13590 progressProps: _propTypes2.default.object,
13591 children: _propTypes2.default.node,
13592 uploader: _propTypes2.default.any,
13593 showDownload: _propTypes2.default.bool,
13594 /**
13595 * 可选参数,是否本地预览
13596 */
13597 useDataURL: _propTypes2.default.bool,
13598 rtl: _propTypes2.default.bool,
13599 isPreview: _propTypes2.default.bool,
13600 fileNameRender: _propTypes2.default.func
13601}, _class.defaultProps = {
13602 prefix: 'next-',
13603 listType: 'text',
13604 value: [],
13605 locale: _zhCn2.default.Upload,
13606 closable: false,
13607 showDownload: true,
13608 onRemove: _util.func.noop,
13609 onCancel: _util.func.noop,
13610 extraRender: _util.func.noop,
13611 actionRender: _util.func.noop,
13612 onImageError: _util.func.noop,
13613 progressProps: {},
13614 fileNameRender: function fileNameRender(file) {
13615 return file.name;
13616 },
13617 previewOnFileName: false
13618}, _temp2);
13619
13620// Wrap <List> with <ConfigProvider> to avoid context missing if it is
13621// referenced by other internal modules.
13622// https://github.com/alibaba-fusion/next/blob/build/1.13.9/src/upload/upload.jsx#L521
13623
13624List.displayName = 'List';
13625exports.default = _configProvider2.default.config(List, {
13626 componentName: 'Upload',
13627 transform: _transform2.default
13628});
13629module.exports = exports['default'];
13630
13631/***/ }),
13632/* 109 */
13633/***/ (function(module, exports, __webpack_require__) {
13634
13635"use strict";
13636
13637
13638exports.__esModule = true;
13639exports.error = undefined;
13640
13641var _typeof2 = __webpack_require__(14);
13642
13643var _typeof3 = _interopRequireDefault(_typeof2);
13644
13645var _propTypes = __webpack_require__(5);
13646
13647var PT = _interopRequireWildcard(_propTypes);
13648
13649var _constant = __webpack_require__(110);
13650
13651var _util = __webpack_require__(6);
13652
13653function _interopRequireWildcard(obj) {
13654 if (obj && obj.__esModule) {
13655 return obj;
13656 } else {
13657 var newObj = {};if (obj != null) {
13658 for (var key in obj) {
13659 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
13660 }
13661 }newObj.default = obj;return newObj;
13662 }
13663}
13664
13665function _interopRequireDefault(obj) {
13666 return obj && obj.__esModule ? obj : { default: obj };
13667}
13668
13669var error = exports.error = function error(propName, ComponentName) {
13670 return new Error('Invalid prop ' + propName + ' supplied to ' + ComponentName + '. Validation failed.');
13671};
13672
13673function checkType(type) {
13674 return function (props, propName, componentName) {
13675 var value = props[propName];
13676 if (value) {
13677 if (!Array.isArray(value)) {
13678 value = [value];
13679 }
13680
13681 if (!Array.isArray(type)) {
13682 type = [type];
13683 }
13684
13685 if (!value.every(function (v) {
13686 return type.includes(typeof v === 'undefined' ? 'undefined' : (0, _typeof3.default)(v));
13687 })) {
13688 throw error(propName, componentName);
13689 }
13690 }
13691 };
13692}
13693
13694var SharedPT = {
13695 date: function date(props, propName, componentName) {
13696 if (propName in props && !(0, _util.datejs)(props.propName).isValid()) {
13697 throw error(propName, componentName);
13698 }
13699 },
13700 value: function value(props, propName, componentName) {
13701 if (props[propName]) {
13702 var value = props[propName];
13703
13704 if (props.type === _constant.TIME_PICKER_TYPE.RANGE && !Array.isArray(value)) {
13705 throw error(propName, componentName);
13706 } else if (!Array.isArray(value)) {
13707 value = [value];
13708 }
13709
13710 if (!value.every(function (v) {
13711 return !v || (0, _util.datejs)(v).isValid() || typeof v === 'string';
13712 })) {
13713 throw error(propName, componentName);
13714 }
13715 }
13716 },
13717
13718 format: checkType(['string', 'function']),
13719 inputValue: checkType('string'),
13720 placeholder: checkType('string'),
13721 readOnly: checkType('boolean'),
13722 disabled: checkType('boolean'),
13723
13724 render: PT.oneOfType([PT.node, PT.func]),
13725 type: PT.oneOf(Object.values(_constant.TIME_PICKER_TYPE)),
13726 inputType: PT.oneOf(Object.values(_constant.TIME_INPUT_TYPE)),
13727 size: PT.oneOf(['small', 'medium', 'large'])
13728};
13729
13730exports.default = SharedPT;
13731
13732/***/ }),
13733/* 110 */
13734/***/ (function(module, exports, __webpack_require__) {
13735
13736"use strict";
13737
13738
13739exports.__esModule = true;
13740var TIME_PICKER_TYPE = exports.TIME_PICKER_TYPE = {
13741 TIME: 'time',
13742 RANGE: 'range'
13743};
13744
13745var TIME_INPUT_TYPE = exports.TIME_INPUT_TYPE = {
13746 BEGIN: 0,
13747 END: 1
13748};
13749
13750/***/ }),
13751/* 111 */
13752/***/ (function(module, exports, __webpack_require__) {
13753
13754"use strict";
13755
13756
13757exports.__esModule = true;
13758
13759var _configProvider = __webpack_require__(9);
13760
13761var _configProvider2 = _interopRequireDefault(_configProvider);
13762
13763var _calendar = __webpack_require__(486);
13764
13765var _calendar2 = _interopRequireDefault(_calendar);
13766
13767function _interopRequireDefault(obj) {
13768 return obj && obj.__esModule ? obj : { default: obj };
13769}
13770
13771exports.default = _configProvider2.default.config(_calendar2.default);
13772module.exports = exports['default'];
13773
13774/***/ }),
13775/* 112 */
13776/***/ (function(module, exports, __webpack_require__) {
13777
13778// optional / simple context binding
13779var aFunction = __webpack_require__(209);
13780module.exports = function (fn, that, length) {
13781 aFunction(fn);
13782 if (that === undefined) return fn;
13783 switch (length) {
13784 case 1: return function (a) {
13785 return fn.call(that, a);
13786 };
13787 case 2: return function (a, b) {
13788 return fn.call(that, a, b);
13789 };
13790 case 3: return function (a, b, c) {
13791 return fn.call(that, a, b, c);
13792 };
13793 }
13794 return function (/* ...args */) {
13795 return fn.apply(that, arguments);
13796 };
13797};
13798
13799
13800/***/ }),
13801/* 113 */
13802/***/ (function(module, exports, __webpack_require__) {
13803
13804module.exports = !__webpack_require__(25) && !__webpack_require__(47)(function () {
13805 return Object.defineProperty(__webpack_require__(114)('div'), 'a', { get: function () { return 7; } }).a != 7;
13806});
13807
13808
13809/***/ }),
13810/* 114 */
13811/***/ (function(module, exports, __webpack_require__) {
13812
13813var isObject = __webpack_require__(34);
13814var document = __webpack_require__(23).document;
13815// typeof document.createElement is 'object' in old IE
13816var is = isObject(document) && isObject(document.createElement);
13817module.exports = function (it) {
13818 return is ? document.createElement(it) : {};
13819};
13820
13821
13822/***/ }),
13823/* 115 */
13824/***/ (function(module, exports, __webpack_require__) {
13825
13826var has = __webpack_require__(27);
13827var toIObject = __webpack_require__(35);
13828var arrayIndexOf = __webpack_require__(211)(false);
13829var IE_PROTO = __webpack_require__(73)('IE_PROTO');
13830
13831module.exports = function (object, names) {
13832 var O = toIObject(object);
13833 var i = 0;
13834 var result = [];
13835 var key;
13836 for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
13837 // Don't enum bug & hidden keys
13838 while (names.length > i) if (has(O, key = names[i++])) {
13839 ~arrayIndexOf(result, key) || result.push(key);
13840 }
13841 return result;
13842};
13843
13844
13845/***/ }),
13846/* 116 */
13847/***/ (function(module, exports, __webpack_require__) {
13848
13849// fallback for non-array-like ES3 and non-enumerable old V8 strings
13850var cof = __webpack_require__(117);
13851// eslint-disable-next-line no-prototype-builtins
13852module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
13853 return cof(it) == 'String' ? it.split('') : Object(it);
13854};
13855
13856
13857/***/ }),
13858/* 117 */
13859/***/ (function(module, exports) {
13860
13861var toString = {}.toString;
13862
13863module.exports = function (it) {
13864 return toString.call(it).slice(8, -1);
13865};
13866
13867
13868/***/ }),
13869/* 118 */
13870/***/ (function(module, exports, __webpack_require__) {
13871
13872"use strict";
13873
13874var LIBRARY = __webpack_require__(55);
13875var $export = __webpack_require__(32);
13876var redefine = __webpack_require__(119);
13877var hide = __webpack_require__(33);
13878var Iterators = __webpack_require__(78);
13879var $iterCreate = __webpack_require__(218);
13880var setToStringTag = __webpack_require__(80);
13881var getPrototypeOf = __webpack_require__(221);
13882var ITERATOR = __webpack_require__(36)('iterator');
13883var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
13884var FF_ITERATOR = '@@iterator';
13885var KEYS = 'keys';
13886var VALUES = 'values';
13887
13888var returnThis = function () { return this; };
13889
13890module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
13891 $iterCreate(Constructor, NAME, next);
13892 var getMethod = function (kind) {
13893 if (!BUGGY && kind in proto) return proto[kind];
13894 switch (kind) {
13895 case KEYS: return function keys() { return new Constructor(this, kind); };
13896 case VALUES: return function values() { return new Constructor(this, kind); };
13897 } return function entries() { return new Constructor(this, kind); };
13898 };
13899 var TAG = NAME + ' Iterator';
13900 var DEF_VALUES = DEFAULT == VALUES;
13901 var VALUES_BUG = false;
13902 var proto = Base.prototype;
13903 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
13904 var $default = $native || getMethod(DEFAULT);
13905 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
13906 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
13907 var methods, key, IteratorPrototype;
13908 // Fix native
13909 if ($anyNative) {
13910 IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
13911 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
13912 // Set @@toStringTag to native iterators
13913 setToStringTag(IteratorPrototype, TAG, true);
13914 // fix for some old engines
13915 if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
13916 }
13917 }
13918 // fix Array#{values, @@iterator}.name in V8 / FF
13919 if (DEF_VALUES && $native && $native.name !== VALUES) {
13920 VALUES_BUG = true;
13921 $default = function values() { return $native.call(this); };
13922 }
13923 // Define iterator
13924 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
13925 hide(proto, ITERATOR, $default);
13926 }
13927 // Plug for library
13928 Iterators[NAME] = $default;
13929 Iterators[TAG] = returnThis;
13930 if (DEFAULT) {
13931 methods = {
13932 values: DEF_VALUES ? $default : getMethod(VALUES),
13933 keys: IS_SET ? $default : getMethod(KEYS),
13934 entries: $entries
13935 };
13936 if (FORCED) for (key in methods) {
13937 if (!(key in proto)) redefine(proto, key, methods[key]);
13938 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
13939 }
13940 return methods;
13941};
13942
13943
13944/***/ }),
13945/* 119 */
13946/***/ (function(module, exports, __webpack_require__) {
13947
13948module.exports = __webpack_require__(33);
13949
13950
13951/***/ }),
13952/* 120 */
13953/***/ (function(module, exports, __webpack_require__) {
13954
13955// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
13956var $keys = __webpack_require__(115);
13957var hiddenKeys = __webpack_require__(75).concat('length', 'prototype');
13958
13959exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
13960 return $keys(O, hiddenKeys);
13961};
13962
13963
13964/***/ }),
13965/* 121 */
13966/***/ (function(module, exports, __webpack_require__) {
13967
13968var pIE = __webpack_require__(57);
13969var createDesc = __webpack_require__(53);
13970var toIObject = __webpack_require__(35);
13971var toPrimitive = __webpack_require__(70);
13972var has = __webpack_require__(27);
13973var IE8_DOM_DEFINE = __webpack_require__(113);
13974var gOPD = Object.getOwnPropertyDescriptor;
13975
13976exports.f = __webpack_require__(25) ? gOPD : function getOwnPropertyDescriptor(O, P) {
13977 O = toIObject(O);
13978 P = toPrimitive(P, true);
13979 if (IE8_DOM_DEFINE) try {
13980 return gOPD(O, P);
13981 } catch (e) { /* empty */ }
13982 if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
13983};
13984
13985
13986/***/ }),
13987/* 122 */
13988/***/ (function(module, exports) {
13989
13990var g;
13991
13992// This works in non-strict mode
13993g = (function() {
13994 return this;
13995})();
13996
13997try {
13998 // This works if eval is allowed (see CSP)
13999 g = g || Function("return this")() || (1,eval)("this");
14000} catch(e) {
14001 // This works if the window reference is available
14002 if(typeof window === "object")
14003 g = window;
14004}
14005
14006// g can still be undefined, but nothing to do about it...
14007// We return undefined, instead of nothing here, so it's
14008// easier to handle this case. if(!global) { ...}
14009
14010module.exports = g;
14011
14012
14013/***/ }),
14014/* 123 */
14015/***/ (function(module, exports, __webpack_require__) {
14016
14017"use strict";
14018
14019
14020exports.__esModule = true;
14021exports.matches = exports.hasDOM = undefined;
14022
14023var _typeof2 = __webpack_require__(14);
14024
14025var _typeof3 = _interopRequireDefault(_typeof2);
14026
14027exports.hasClass = hasClass;
14028exports.addClass = addClass;
14029exports.removeClass = removeClass;
14030exports.toggleClass = toggleClass;
14031exports.getNodeHozWhitespace = getNodeHozWhitespace;
14032exports.getStyle = getStyle;
14033exports.setStyle = setStyle;
14034exports.scrollbar = scrollbar;
14035exports.hasScroll = hasScroll;
14036exports.getOffset = getOffset;
14037exports.getPixels = getPixels;
14038exports.getClosest = getClosest;
14039exports.getMatches = getMatches;
14040exports.saveRef = saveRef;
14041
14042var _string = __webpack_require__(124);
14043
14044var _object = __webpack_require__(37);
14045
14046function _interopRequireDefault(obj) {
14047 return obj && obj.__esModule ? obj : { default: obj };
14048}
14049
14050/**
14051 * 是否能使用 DOM 方法
14052 * @type {Boolean}
14053 */
14054var hasDOM = exports.hasDOM = typeof window !== 'undefined' && !!window.document && !!document.createElement;
14055
14056/**
14057 * 节点是否包含指定 className
14058 * @param {Element} node
14059 * @param {String} className
14060 * @return {Boolean}
14061 *
14062 * @example
14063 * dom.hasClass(document.body, 'foo');
14064 */
14065function hasClass(node, className) {
14066 /* istanbul ignore if */
14067 if (!hasDOM || !node) {
14068 return false;
14069 }
14070
14071 if (node.classList) {
14072 return node.classList.contains(className);
14073 } else {
14074 return node.className.indexOf(className) > -1;
14075 }
14076}
14077
14078/**
14079 * 添加 className
14080 * @param {Element} node
14081 * @param {String} className
14082 *
14083 * @example
14084 * dom.addClass(document.body, 'foo');
14085 */
14086function addClass(node, className, _force) {
14087 /* istanbul ignore if */
14088 if (!hasDOM || !node) {
14089 return;
14090 }
14091
14092 if (node.classList) {
14093 node.classList.add(className);
14094 } else if (_force === true || !hasClass(node, className)) {
14095 node.className += ' ' + className;
14096 }
14097}
14098
14099/**
14100 * 移除 className
14101 * @param {Element} node
14102 * @param {String} className
14103 *
14104 * @example
14105 * dom.removeClass(document.body, 'foo');
14106 */
14107function removeClass(node, className, _force) {
14108 /* istanbul ignore if */
14109 if (!hasDOM || !node) {
14110 return;
14111 }
14112
14113 if (node.classList) {
14114 node.classList.remove(className);
14115 } else if (_force === true || hasClass(node, className)) {
14116 node.className = node.className.replace(className, '').replace(/\s+/g, ' ').trim();
14117 }
14118}
14119
14120/**
14121 * 切换 className
14122 * @param {Element} node
14123 * @param {String} className
14124 * @return {Boolean} 执行后节点上是否还有此 className
14125 *
14126 * @example
14127 * dom.toggleClass(document.body, 'foo');
14128 */
14129function toggleClass(node, className) {
14130 /* istanbul ignore if */
14131 if (!hasDOM || !node) {
14132 return false;
14133 }
14134
14135 if (node.classList) {
14136 return node.classList.toggle(className);
14137 } else {
14138 var flag = hasClass(node, className);
14139 flag ? removeClass(node, className, true) : addClass(node, className, true);
14140
14141 return !flag;
14142 }
14143}
14144
14145/**
14146 * 元素是否匹配 CSS 选择器
14147 * @param {Element} node DOM 节点
14148 * @param {String} selector CSS 选择器
14149 * @return {Boolean}
14150 *
14151 * @example
14152 * dom.matches(mountNode, '.container'); // boolean
14153 */
14154var matches = exports.matches = function () {
14155 var matchesFn = null;
14156 /* istanbul ignore else */
14157 if (hasDOM) {
14158 var _body = document.body || document.head;
14159 matchesFn = _body.matches ? 'matches' : _body.webkitMatchesSelector ? 'webkitMatchesSelector' : _body.msMatchesSelector ? 'msMatchesSelector' : _body.mozMatchesSelector ? 'mozMatchesSelector' : null;
14160 }
14161
14162 return function (node, selector) {
14163 if (!hasDOM || !node) {
14164 return false;
14165 }
14166
14167 return matchesFn ? node[matchesFn](selector) : false;
14168 };
14169}();
14170
14171/**
14172 * 获取元素计算后的样式
14173 * @private
14174 * @param {Element} node
14175 * @return {Object}
14176 */
14177function _getComputedStyle(node) {
14178 return node && node.nodeType === 1 ? window.getComputedStyle(node, null) : {};
14179}
14180
14181var PIXEL_PATTERN = /margin|padding|width|height|max|min|offset|size|top/i;
14182var removePixel = { left: 1, top: 1, right: 1, bottom: 1 };
14183
14184/**
14185 * 校验并修正元素的样式属性值
14186 * @private
14187 * @param {Element} node
14188 * @param {String} type
14189 * @param {Number} value
14190 */
14191function _getStyleValue(node, type, value) {
14192 type = type.toLowerCase();
14193
14194 if (value === 'auto') {
14195 if (type === 'height') {
14196 return node.offsetHeight || 0;
14197 }
14198 if (type === 'width') {
14199 return node.offsetWidth || 0;
14200 }
14201 }
14202
14203 if (!(type in removePixel)) {
14204 // 属性值是否需要去掉 px 单位,这里假定此类的属性值都是 px 为单位的
14205 removePixel[type] = PIXEL_PATTERN.test(type);
14206 }
14207
14208 return removePixel[type] ? parseFloat(value) || 0 : value;
14209}
14210
14211var floatMap = { cssFloat: 1, styleFloat: 1, float: 1 };
14212
14213function getNodeHozWhitespace(node) {
14214 var paddingLeft = getStyle(node, 'paddingLeft');
14215 var paddingRight = getStyle(node, 'paddingRight');
14216 var marginLeft = getStyle(node, 'marginLeft');
14217 var marginRight = getStyle(node, 'marginRight');
14218 return paddingLeft + paddingRight + marginLeft + marginRight;
14219}
14220
14221/**
14222 * 获取元素计算后的样式
14223 * @param {Element} node DOM 节点
14224 * @param {String} name 属性名
14225 * @return {Number|Object}
14226 */
14227function getStyle(node, name) {
14228 /* istanbul ignore if */
14229 if (!hasDOM || !node) {
14230 return null;
14231 }
14232
14233 var style = _getComputedStyle(node);
14234
14235 // 如果不指定属性名,则返回全部值
14236 if (arguments.length === 1) {
14237 return style;
14238 }
14239
14240 // if style is {}(e.g. node isn't a element node), return null
14241 if ((0, _object.isPlainObject)(style)) {
14242 return null;
14243 }
14244
14245 name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;
14246
14247 return _getStyleValue(node, name, style.getPropertyValue((0, _string.hyphenate)(name)) || node.style[(0, _string.camelcase)(name)]);
14248}
14249
14250/**
14251 * 设置元素的样式
14252 * @param {Element} node DOM 节点
14253 * @param {Object|String} name 属性名,或者是一个对象,包含多个属性
14254 * @param {Number|String} value 属性值
14255 *
14256 * @example
14257 * // 设置单个属性值
14258 * dom.setStyle(mountNode, 'width', 100);
14259 * // 设置多条属性值
14260 * dom.setStyle(mountNode, {
14261 * width: 100,
14262 * height: 200
14263 * });
14264 */
14265function setStyle(node, name, value) {
14266 /* istanbul ignore if */
14267 if (!hasDOM || !node) {
14268 return false;
14269 }
14270
14271 // 批量设置多个值
14272 if ((typeof name === 'undefined' ? 'undefined' : (0, _typeof3.default)(name)) === 'object' && arguments.length === 2) {
14273 (0, _object.each)(name, function (val, key) {
14274 return setStyle(node, key, val);
14275 });
14276 } else {
14277 name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;
14278 if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {
14279 value = value + 'px';
14280 }
14281 node.style[(0, _string.camelcase)(name)] = value; // IE8 support
14282 }
14283}
14284
14285var isScrollDisplay = function isScrollDisplay(element) {
14286 try {
14287 var scrollbarStyle = window.getComputedStyle(element, '::-webkit-scrollbar');
14288 return !scrollbarStyle || scrollbarStyle.getPropertyValue('display') !== 'none';
14289 } catch (e) {
14290 // ignore error for firefox
14291 }
14292
14293 return true;
14294};
14295
14296/**
14297 * 获取默认的滚动条大小(通过创造一个滚动元素,读取滚动元素的滚动条信息)
14298 * @return {Object} width, height
14299 */
14300function scrollbar() {
14301 var scrollDiv = document.createElement('div');
14302 scrollDiv.className += 'just-to-get-scrollbar-size';
14303
14304 setStyle(scrollDiv, {
14305 position: 'absolute',
14306 width: '100px',
14307 height: '100px',
14308 overflow: 'scroll',
14309 top: '-9999px'
14310 });
14311 document.body && document.body.appendChild(scrollDiv);
14312 var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
14313 var scrollbarHeight = scrollDiv.offsetHeight - scrollDiv.clientHeight;
14314 document.body.removeChild(scrollDiv);
14315
14316 return {
14317 width: scrollbarWidth,
14318 height: scrollbarHeight
14319 };
14320}
14321
14322function hasScroll(containerNode) {
14323 // 当元素带有 overflow: hidden 一定没有滚动条
14324 var overflow = getStyle(containerNode, 'overflow');
14325 if (overflow === 'hidden') {
14326 return false;
14327 }
14328
14329 var parentNode = containerNode.parentNode;
14330
14331 return parentNode && parentNode.scrollHeight > parentNode.clientHeight && scrollbar().width > 0 && isScrollDisplay(parentNode) && isScrollDisplay(containerNode);
14332}
14333
14334/**
14335 * 获取元素距离视口顶部和左边的偏移距离
14336 * @return {Object} top, left
14337 */
14338function getOffset(node) {
14339 var rect = node.getBoundingClientRect();
14340 var win = node.ownerDocument.defaultView;
14341 return {
14342 top: rect.top + win.pageYOffset,
14343 left: rect.left + win.pageXOffset
14344 };
14345}
14346
14347/**
14348 * 获取不同单位转为 number 的长度
14349 * @param {string|number} len 传入的长度
14350 * @return {number} pixels
14351 */
14352function getPixels(len) {
14353 var win = document.defaultView;
14354 if (typeof +len === 'number' && !isNaN(+len)) {
14355 return +len;
14356 }
14357
14358 if (typeof len === 'string') {
14359 var PX_REG = /(\d+)px/;
14360 var VH_REG = /(\d+)vh/;
14361 if (Array.isArray(len.match(PX_REG))) {
14362 return +len.match(PX_REG)[1] || 0;
14363 }
14364
14365 if (Array.isArray(len.match(VH_REG))) {
14366 var _1vh = win.innerHeight / 100;
14367 return +(len.match(VH_REG)[1] * _1vh) || 0;
14368 }
14369 }
14370
14371 return 0;
14372}
14373
14374/**
14375 * 匹配特定选择器且离当前元素最近的祖先元素(也可以是当前元素本身),如果匹配不到,则返回 null
14376 * @param {element} dom 待匹配的元素
14377 * @param {string} selecotr 选择器
14378 * @return {element} parent
14379 */
14380function getClosest(dom, selector) {
14381 /* istanbul ignore if */
14382 if (!hasDOM || !dom) {
14383 return null;
14384 }
14385
14386 // ie9
14387 /* istanbul ignore if */
14388 if (!Element.prototype.closest) {
14389 if (!document.documentElement.contains(dom)) return null;
14390 do {
14391 if (getMatches(dom, selector)) return dom;
14392 dom = dom.parentElement;
14393 } while (dom !== null);
14394 } else {
14395 return dom.closest(selector);
14396 }
14397 return null;
14398}
14399
14400/**
14401 * 如果元素被指定的选择器字符串选择,getMatches() 方法返回true; 否则返回false
14402 * @param {element} dom 待匹配的元素
14403 * @param {string} selecotr 选择器
14404 * @return {element} parent
14405 */
14406function getMatches(dom, selector) {
14407 /* istanbul ignore if */
14408 if (!hasDOM || !dom) {
14409 return null;
14410 }
14411
14412 /* istanbul ignore if */
14413 if (Element.prototype.matches) {
14414 return dom.matches(selector);
14415 } else if (Element.prototype.msMatchesSelector) {
14416 return dom.msMatchesSelector(selector);
14417 } else if (Element.prototype.webkitMatchesSelector) {
14418 return dom.webkitMatchesSelector(selector);
14419 }
14420
14421 return null;
14422}
14423
14424function saveRef(ref) {
14425 if (!ref) {
14426 return null;
14427 }
14428 return function (element) {
14429 if (typeof ref === 'string') {
14430 throw new Error('can not set ref string for ' + ref);
14431 } else if (typeof ref === 'function') {
14432 ref(element);
14433 } else if (Object.prototype.hasOwnProperty.call(ref, 'current')) {
14434 ref.current = element;
14435 }
14436 };
14437}
14438
14439/***/ }),
14440/* 124 */
14441/***/ (function(module, exports, __webpack_require__) {
14442
14443"use strict";
14444
14445
14446exports.__esModule = true;
14447exports.camelcase = camelcase;
14448exports.hyphenate = hyphenate;
14449exports.template = template;
14450
14451var _log = __webpack_require__(125);
14452
14453var _object = __webpack_require__(37);
14454
14455/**
14456 * 将字符串转化为驼峰式写法
14457 * @param {String} str 例:-webkit-transition
14458 * @return {String} 例:WebkitTransition
14459 */
14460function camelcase(str) {
14461 if (!/-/.test(str)) {
14462 return str || '';
14463 }
14464 return str.toLowerCase().replace(/-([a-z])/g, function ($0, $1) {
14465 return $1.toUpperCase();
14466 });
14467}
14468
14469/**
14470 * 将驼峰式字符串转化为连字符写法
14471 * @param {String} str 例:WebkitTransition
14472 * @return {String} 例:-webkit-transition
14473 */
14474function hyphenate(str) {
14475 var strType = (0, _object.typeOf)(str);
14476 if (strType !== 'String') {
14477 (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.');
14478 return '';
14479 }
14480 return str.replace(/([A-Z])/g, function ($0) {
14481 return '-' + $0.toLowerCase();
14482 });
14483}
14484
14485/**
14486 * 替换模板字符串
14487 * @param {String} tpl 例:当前{current}, 共{total}页
14488 * @param {Object} object 例:{current: 1, total: 9}
14489 * @return {String} 例:
14490 */
14491function template(tpl) {
14492 var object = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
14493
14494 var tplType = (0, _object.typeOf)(tpl);
14495 if (tplType !== 'String') {
14496 (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.');
14497 return '';
14498 }
14499
14500 return tpl.replace(/\{[a-z]*\}/g, function (str) {
14501 var key = str.substring(1, str.length - 1);
14502 return object[key] || '';
14503 });
14504}
14505
14506/***/ }),
14507/* 125 */
14508/***/ (function(module, exports, __webpack_require__) {
14509
14510"use strict";
14511
14512
14513exports.__esModule = true;
14514exports.deprecated = deprecated;
14515exports.warning = warning;
14516
14517var _env = __webpack_require__(126);
14518
14519/* eslint no-console: 0 */
14520
14521/**
14522 * 反对使用某一方法或属性的警告
14523 * @param {String} props 过时的属性或方法名
14524 * @param {String} instead 替代的属性或方法名
14525 * @param {String} component 组件名
14526 *
14527 * @example
14528 * log.deprecated('onBeforeClose', 'beforeClose', 'Dialog');
14529 * // Warning: onBeforeClose is deprecated at [ Dialog ], use [ beforeClose ] instead of it.
14530 */
14531function deprecated(props, instead, component) {
14532 /* istanbul ignore else */
14533 if (!(0, _env.isProduction)() && typeof console !== 'undefined' && console.error) {
14534 return console.error('Warning: [ ' + props + ' ] is deprecated at [ ' + component + ' ], ' + ('use [ ' + instead + ' ] instead of it.'));
14535 }
14536}
14537
14538/**
14539 * 控制台警告日志
14540 * @param {String} msg
14541 * @return {Console<Error> | void}
14542 */
14543function warning(msg) {
14544 /* istanbul ignore else */
14545 if (!(0, _env.isProduction)() && typeof console !== 'undefined' && console.error) {
14546 return console.error('Warning: ' + msg);
14547 }
14548}
14549
14550/***/ }),
14551/* 126 */
14552/***/ (function(module, exports, __webpack_require__) {
14553
14554"use strict";
14555
14556
14557exports.__esModule = true;
14558/**
14559 * IE浏览器的渲染引擎版本号
14560 * 注意:此属性与浏览器版本号不同,IE的渲染引擎版本号是可以通过HTML header或手动设置去更改的
14561 * @type {Number} 6 ~ 11
14562 */
14563var ieVersion = exports.ieVersion = typeof document !== 'undefined' ? document.documentMode : undefined;
14564
14565/**
14566 * 判断是否是生产环境
14567 * @type {Boolean}
14568 */
14569var isProduction = exports.isProduction = function isProduction() {
14570 var PRODUCTION_ENV = 'production';
14571 var result = false;
14572 try {
14573 if ("production" === PRODUCTION_ENV) {
14574 result = true;
14575 }
14576 } catch (err) {
14577 //
14578 }
14579
14580 return result;
14581};
14582
14583exports.default = {
14584 ieVersion: ieVersion,
14585 isProduction: isProduction
14586};
14587
14588/***/ }),
14589/* 127 */
14590/***/ (function(module, exports, __webpack_require__) {
14591
14592!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].slice(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}(),T=_.prototype;return w.prototype=T,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",f],["$y",c],["$D",d]].forEach((function(t){T[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}));
14593
14594/***/ }),
14595/* 128 */
14596/***/ (function(module, exports, __webpack_require__) {
14597
14598"use strict";
14599
14600
14601exports.__esModule = true;
14602exports.default = {
14603 BACKSPACE: 8,
14604 TAB: 9,
14605 ENTER: 13,
14606 SHIFT: 16,
14607 CTRL: 17,
14608 ALT: 18,
14609 ESC: 27,
14610 SPACE: 32,
14611 END: 35,
14612 HOME: 36,
14613 LEFT: 37,
14614 UP: 38,
14615 RIGHT: 39,
14616 DOWN: 40,
14617 PAGE_UP: 33,
14618 PAGE_DOWN: 34,
14619
14620 // version 0.x
14621 ESCAPE: 27,
14622 LEFT_ARROW: 37,
14623 UP_ARROW: 38,
14624 RIGHT_ARROW: 39,
14625 DOWN_ARROW: 40,
14626
14627 // MacOS
14628 CONTROL: 17,
14629 OPTION: 18,
14630 CMD: 91,
14631 COMMAND: 91,
14632 DELETE: 8
14633};
14634module.exports = exports["default"];
14635
14636/***/ }),
14637/* 129 */
14638/***/ (function(module, exports, __webpack_require__) {
14639
14640"use strict";
14641
14642
14643exports.__esModule = true;
14644
14645exports.default = function (prefix) {
14646 prefix = prefix || '';
14647
14648 return prefix + (timestamp++).toString(36);
14649};
14650
14651var timestamp = Date.now();
14652
14653/**
14654 * 生成全局唯一的id
14655 * @param {String} [prefix=''] 前缀字符串
14656 * @return {String}
14657 *
14658 * @example
14659 * guid(); // j7jv509c
14660 * guid('prefix-'); // prefix-j7jv509d
14661 */
14662module.exports = exports['default'];
14663
14664/***/ }),
14665/* 130 */
14666/***/ (function(module, exports, __webpack_require__) {
14667
14668"use strict";
14669
14670
14671exports.__esModule = true;
14672
14673var _extends2 = __webpack_require__(1);
14674
14675var _extends3 = _interopRequireDefault(_extends2);
14676
14677exports.default = getContextProps;
14678
14679var _zhCn = __webpack_require__(13);
14680
14681var _zhCn2 = _interopRequireDefault(_zhCn);
14682
14683var _util = __webpack_require__(6);
14684
14685function _interopRequireDefault(obj) {
14686 return obj && obj.__esModule ? obj : { default: obj };
14687}
14688
14689/**
14690 *
14691 * @param {Object|Boolean} input
14692 * @returns {Object} typeof obj.open === 'boolean'
14693 */
14694var parseBoundary = function parseBoundary(input) {
14695 var obj = void 0;
14696 if (input === undefined || input === null) {
14697 return {};
14698 } else if (typeof input === 'boolean') {
14699 obj = { open: input };
14700 } else {
14701 obj = (0, _extends3.default)({ open: true }, input);
14702 }
14703
14704 return obj;
14705};
14706
14707function getContextProps(props, context, displayName) {
14708 var prefix = props.prefix,
14709 locale = props.locale,
14710 defaultPropsConfig = props.defaultPropsConfig,
14711 pure = props.pure,
14712 rtl = props.rtl,
14713 device = props.device,
14714 popupContainer = props.popupContainer,
14715 errorBoundary = props.errorBoundary;
14716 var nextPrefix = context.nextPrefix,
14717 nextLocale = context.nextLocale,
14718 nextDefaultPropsConfig = context.nextDefaultPropsConfig,
14719 nextPure = context.nextPure,
14720 nextWarning = context.nextWarning,
14721 nextRtl = context.nextRtl,
14722 nextDevice = context.nextDevice,
14723 nextPopupContainer = context.nextPopupContainer,
14724 nextErrorBoundary = context.nextErrorBoundary;
14725
14726 var newPrefix = prefix || nextPrefix;
14727
14728 var localeFromContext = void 0;
14729 var newDisplayName = displayName;
14730
14731 switch (displayName) {
14732 case 'DatePicker2':
14733 newDisplayName = 'DatePicker';
14734 break;
14735 case 'Calendar2':
14736 newDisplayName = 'Calendar';
14737 break;
14738 case 'TimePicker2':
14739 newDisplayName = 'TimePicker';
14740 break;
14741 default:
14742 break;
14743 }
14744
14745 if (nextLocale) {
14746 localeFromContext = nextLocale[newDisplayName];
14747 if (localeFromContext) {
14748 localeFromContext.momentLocale = nextLocale.momentLocale;
14749 }
14750 }
14751
14752 var newLocale = void 0;
14753 if (locale) {
14754 newLocale = _util.obj.deepMerge({}, _zhCn2.default[newDisplayName], localeFromContext, locale);
14755 } else if (localeFromContext) {
14756 newLocale = _util.obj.deepMerge({}, _zhCn2.default[newDisplayName], localeFromContext);
14757 }
14758
14759 var newPure = typeof pure === 'boolean' ? pure : nextPure;
14760 var newRtl = typeof rtl === 'boolean' ? rtl : nextRtl;
14761
14762 // ProtoType of [nextE|e]rrorBoundary can be one of [boolean, object]
14763 // but typeof newErrorBoundary === 'object'
14764 // newErrorBoundary should always have the key 'open', which indicates ErrorBoundary on or off
14765 var newErrorBoundary = (0, _extends3.default)({}, parseBoundary(nextErrorBoundary), parseBoundary(errorBoundary));
14766
14767 if (!('open' in newErrorBoundary)) {
14768 newErrorBoundary.open = false;
14769 }
14770
14771 return {
14772 prefix: newPrefix,
14773 locale: newLocale,
14774 pure: newPure,
14775 rtl: newRtl,
14776 warning: nextWarning,
14777 defaultPropsConfig: nextDefaultPropsConfig || {},
14778 device: device || nextDevice || undefined,
14779 popupContainer: popupContainer || nextPopupContainer,
14780 errorBoundary: newErrorBoundary
14781 };
14782}
14783module.exports = exports['default'];
14784
14785/***/ }),
14786/* 131 */
14787/***/ (function(module, exports, __webpack_require__) {
14788
14789"use strict";
14790
14791
14792exports.__esModule = true;
14793exports.default = undefined;
14794
14795var _classCallCheck2 = __webpack_require__(2);
14796
14797var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
14798
14799var _possibleConstructorReturn2 = __webpack_require__(3);
14800
14801var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
14802
14803var _inherits2 = __webpack_require__(4);
14804
14805var _inherits3 = _interopRequireDefault(_inherits2);
14806
14807var _class, _temp;
14808
14809var _react = __webpack_require__(0);
14810
14811var _react2 = _interopRequireDefault(_react);
14812
14813var _propTypes = __webpack_require__(5);
14814
14815var _propTypes2 = _interopRequireDefault(_propTypes);
14816
14817function _interopRequireDefault(obj) {
14818 return obj && obj.__esModule ? obj : { default: obj };
14819}
14820
14821DefaultUI.propTypes = {
14822 error: _propTypes2.default.object,
14823 errorInfo: _propTypes2.default.object
14824};
14825
14826function DefaultUI() {
14827 return '';
14828}
14829
14830var ErrorBoundary = (_temp = _class = function (_React$Component) {
14831 (0, _inherits3.default)(ErrorBoundary, _React$Component);
14832
14833 function ErrorBoundary(props) {
14834 (0, _classCallCheck3.default)(this, ErrorBoundary);
14835
14836 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
14837
14838 _this.state = { error: null, errorInfo: null };
14839 return _this;
14840 }
14841
14842 ErrorBoundary.prototype.componentDidCatch = function componentDidCatch(error, errorInfo) {
14843 this.setState({
14844 error: error,
14845 errorInfo: errorInfo
14846 });
14847
14848 var afterCatch = this.props.afterCatch;
14849
14850 if ('afterCatch' in this.props && typeof afterCatch === 'function') {
14851 this.props.afterCatch(error, errorInfo);
14852 }
14853 };
14854
14855 ErrorBoundary.prototype.render = function render() {
14856 var _props$fallbackUI = this.props.fallbackUI,
14857 FallbackUI = _props$fallbackUI === undefined ? DefaultUI : _props$fallbackUI;
14858
14859 if (this.state.errorInfo) {
14860 return _react2.default.createElement(FallbackUI, {
14861 error: this.state.error,
14862 errorInfo: this.state.errorInfo
14863 });
14864 }
14865 // Normally, just render children
14866 return this.props.children;
14867 };
14868
14869 return ErrorBoundary;
14870}(_react2.default.Component), _class.propTypes = {
14871 children: _propTypes2.default.element,
14872 /**
14873 * 捕获错误后的自定义处理, 比如埋点上传
14874 * @param {Object} error 错误
14875 * @param {Object} errorInfo 错误详细信息
14876 */
14877 afterCatch: _propTypes2.default.func,
14878 /**
14879 * 捕获错误后的展现 自定义组件
14880 * @param {Object} error 错误
14881 * @param {Object} errorInfo 错误详细信息
14882 * @returns {Element} 捕获错误后的处理
14883 */
14884 fallbackUI: _propTypes2.default.func
14885}, _temp);
14886ErrorBoundary.displayName = 'ErrorBoundary';
14887exports.default = ErrorBoundary;
14888module.exports = exports['default'];
14889
14890/***/ }),
14891/* 132 */
14892/***/ (function(module, exports, __webpack_require__) {
14893
14894"use strict";
14895
14896
14897exports.__esModule = true;
14898
14899var _extends2 = __webpack_require__(1);
14900
14901var _extends3 = _interopRequireDefault(_extends2);
14902
14903var _objectWithoutProperties2 = __webpack_require__(8);
14904
14905var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
14906
14907var _typeof2 = __webpack_require__(14);
14908
14909var _typeof3 = _interopRequireDefault(_typeof2);
14910
14911var _classCallCheck2 = __webpack_require__(2);
14912
14913var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
14914
14915var _possibleConstructorReturn2 = __webpack_require__(3);
14916
14917var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
14918
14919var _inherits2 = __webpack_require__(4);
14920
14921var _inherits3 = _interopRequireDefault(_inherits2);
14922
14923var _class, _temp;
14924
14925var _react = __webpack_require__(0);
14926
14927var _react2 = _interopRequireDefault(_react);
14928
14929var _propTypes = __webpack_require__(5);
14930
14931var _propTypes2 = _interopRequireDefault(_propTypes);
14932
14933var _reactTransitionGroup = __webpack_require__(84);
14934
14935var _child = __webpack_require__(271);
14936
14937var _child2 = _interopRequireDefault(_child);
14938
14939function _interopRequireDefault(obj) {
14940 return obj && obj.__esModule ? obj : { default: obj };
14941}
14942
14943var noop = function noop() {};
14944var FirstChild = function FirstChild(props) {
14945 var childrenArray = _react2.default.Children.toArray(props.children);
14946 return childrenArray[0] || null;
14947};
14948
14949/**
14950 * Animate
14951 */
14952var Animate = (_temp = _class = function (_Component) {
14953 (0, _inherits3.default)(Animate, _Component);
14954
14955 function Animate() {
14956 (0, _classCallCheck3.default)(this, Animate);
14957 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
14958 }
14959
14960 Animate.prototype.normalizeNames = function normalizeNames(names) {
14961 if (typeof names === 'string') {
14962 return {
14963 appear: names + '-appear',
14964 appearActive: names + '-appear-active',
14965 enter: names + '-enter',
14966 enterActive: names + '-enter-active',
14967 leave: names + '-leave',
14968 leaveActive: names + '-leave-active'
14969 };
14970 }
14971 if ((typeof names === 'undefined' ? 'undefined' : (0, _typeof3.default)(names)) === 'object') {
14972 return {
14973 appear: names.appear,
14974 appearActive: names.appear + '-active',
14975 enter: '' + names.enter,
14976 enterActive: names.enter + '-active',
14977 leave: '' + names.leave,
14978 leaveActive: names.leave + '-active'
14979 };
14980 }
14981 };
14982
14983 Animate.prototype.render = function render() {
14984 var _this2 = this;
14985
14986 /* eslint-disable no-unused-vars */
14987 var _props = this.props,
14988 animation = _props.animation,
14989 children = _props.children,
14990 animationAppear = _props.animationAppear,
14991 singleMode = _props.singleMode,
14992 component = _props.component,
14993 beforeAppear = _props.beforeAppear,
14994 onAppear = _props.onAppear,
14995 afterAppear = _props.afterAppear,
14996 beforeEnter = _props.beforeEnter,
14997 onEnter = _props.onEnter,
14998 afterEnter = _props.afterEnter,
14999 beforeLeave = _props.beforeLeave,
15000 onLeave = _props.onLeave,
15001 afterLeave = _props.afterLeave,
15002 others = (0, _objectWithoutProperties3.default)(_props, ['animation', 'children', 'animationAppear', 'singleMode', 'component', 'beforeAppear', 'onAppear', 'afterAppear', 'beforeEnter', 'onEnter', 'afterEnter', 'beforeLeave', 'onLeave', 'afterLeave']);
15003 /* eslint-enable no-unused-vars */
15004
15005 var animateChildren = _react.Children.map(children, function (child) {
15006 return _react2.default.createElement(_child2.default, {
15007 key: child.key,
15008 names: _this2.normalizeNames(animation),
15009 onAppear: beforeAppear,
15010 onAppearing: onAppear,
15011 onAppeared: afterAppear,
15012 onEnter: beforeEnter,
15013 onEntering: onEnter,
15014 onEntered: afterEnter,
15015 onExit: beforeLeave,
15016 onExiting: onLeave,
15017 onExited: afterLeave
15018 }, child);
15019 });
15020
15021 return _react2.default.createElement(_reactTransitionGroup.TransitionGroup, (0, _extends3.default)({
15022 appear: animationAppear,
15023 component: singleMode ? FirstChild : component
15024 }, others), animateChildren);
15025 };
15026
15027 return Animate;
15028}(_react.Component), _class.propTypes = {
15029 /**
15030 * 动画 className
15031 */
15032 animation: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),
15033 /**
15034 * 子元素第一次挂载时是否执行动画
15035 */
15036 animationAppear: _propTypes2.default.bool,
15037 /**
15038 * 包裹子元素的标签
15039 */
15040 component: _propTypes2.default.any,
15041 /**
15042 * 是否只有单个子元素,如果有多个子元素,请设置为 false
15043 */
15044 singleMode: _propTypes2.default.bool,
15045 /**
15046 * 子元素
15047 */
15048 children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.arrayOf(_propTypes2.default.element)]),
15049 /**
15050 * 执行第一次挂载动画前触发的回调函数
15051 * @param {HTMLElement} node 执行动画的 dom 元素
15052 */
15053 beforeAppear: _propTypes2.default.func,
15054 /**
15055 * 执行第一次挂载动画,添加 xxx-appear-active 类名后触发的回调函数
15056 * @param {HTMLElement} node 执行动画的 dom 元素
15057 */
15058 onAppear: _propTypes2.default.func,
15059 /**
15060 * 执行完第一次挂载动画后触发的函数
15061 * @param {HTMLElement} node 执行动画的 dom 元素
15062 */
15063 afterAppear: _propTypes2.default.func,
15064 /**
15065 * 执行进场动画前触发的回调函数
15066 * @param {HTMLElement} node 执行动画的 dom 元素
15067 */
15068 beforeEnter: _propTypes2.default.func,
15069 /**
15070 * 执行进场动画,添加 xxx-enter-active 类名后触发的回调函数
15071 * @param {HTMLElement} node 执行动画的 dom 元素
15072 */
15073 onEnter: _propTypes2.default.func,
15074 /**
15075 * 执行完进场动画后触发的回调函数
15076 * @param {HTMLElement} node 执行动画的 dom 元素
15077 */
15078 afterEnter: _propTypes2.default.func,
15079 /**
15080 * 执行离场动画前触发的回调函数
15081 * @param {HTMLElement} node 执行动画的 dom 元素
15082 */
15083 beforeLeave: _propTypes2.default.func,
15084 /**
15085 * 执行离场动画,添加 xxx-leave-active 类名后触发的回调函数
15086 * @param {HTMLElement} node 执行动画的 dom 元素
15087 */
15088 onLeave: _propTypes2.default.func,
15089 /**
15090 * 执行完离场动画后触发的回调函数
15091 * @param {HTMLElement} node 执行动画的 dom 元素
15092 */
15093 afterLeave: _propTypes2.default.func
15094}, _class.defaultProps = {
15095 animationAppear: true,
15096 component: 'div',
15097 singleMode: true,
15098 beforeAppear: noop,
15099 onAppear: noop,
15100 afterAppear: noop,
15101 beforeEnter: noop,
15102 onEnter: noop,
15103 afterEnter: noop,
15104 beforeLeave: noop,
15105 onLeave: noop,
15106 afterLeave: noop
15107}, _temp);
15108Animate.displayName = 'Animate';
15109exports.default = Animate;
15110module.exports = exports['default'];
15111
15112/***/ }),
15113/* 133 */
15114/***/ (function(module, exports, __webpack_require__) {
15115
15116"use strict";
15117
15118
15119exports.__esModule = true;
15120exports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;
15121
15122var PropTypes = _interopRequireWildcard(__webpack_require__(5));
15123
15124var _react = _interopRequireDefault(__webpack_require__(0));
15125
15126var _reactDom = _interopRequireDefault(__webpack_require__(12));
15127
15128var _reactLifecyclesCompat = __webpack_require__(10);
15129
15130var _PropTypes = __webpack_require__(134);
15131
15132function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15133
15134function _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; } }
15135
15136function _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; }
15137
15138function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
15139
15140var UNMOUNTED = 'unmounted';
15141exports.UNMOUNTED = UNMOUNTED;
15142var EXITED = 'exited';
15143exports.EXITED = EXITED;
15144var ENTERING = 'entering';
15145exports.ENTERING = ENTERING;
15146var ENTERED = 'entered';
15147exports.ENTERED = ENTERED;
15148var EXITING = 'exiting';
15149/**
15150 * The Transition component lets you describe a transition from one component
15151 * state to another _over time_ with a simple declarative API. Most commonly
15152 * it's used to animate the mounting and unmounting of a component, but can also
15153 * be used to describe in-place transition states as well.
15154 *
15155 * ---
15156 *
15157 * **Note**: `Transition` is a platform-agnostic base component. If you're using
15158 * transitions in CSS, you'll probably want to use
15159 * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
15160 * instead. It inherits all the features of `Transition`, but contains
15161 * additional features necessary to play nice with CSS transitions (hence the
15162 * name of the component).
15163 *
15164 * ---
15165 *
15166 * By default the `Transition` component does not alter the behavior of the
15167 * component it renders, it only tracks "enter" and "exit" states for the
15168 * components. It's up to you to give meaning and effect to those states. For
15169 * example we can add styles to a component when it enters or exits:
15170 *
15171 * ```jsx
15172 * import { Transition } from 'react-transition-group';
15173 *
15174 * const duration = 300;
15175 *
15176 * const defaultStyle = {
15177 * transition: `opacity ${duration}ms ease-in-out`,
15178 * opacity: 0,
15179 * }
15180 *
15181 * const transitionStyles = {
15182 * entering: { opacity: 0 },
15183 * entered: { opacity: 1 },
15184 * };
15185 *
15186 * const Fade = ({ in: inProp }) => (
15187 * <Transition in={inProp} timeout={duration}>
15188 * {state => (
15189 * <div style={{
15190 * ...defaultStyle,
15191 * ...transitionStyles[state]
15192 * }}>
15193 * I'm a fade Transition!
15194 * </div>
15195 * )}
15196 * </Transition>
15197 * );
15198 * ```
15199 *
15200 * There are 4 main states a Transition can be in:
15201 * - `'entering'`
15202 * - `'entered'`
15203 * - `'exiting'`
15204 * - `'exited'`
15205 *
15206 * Transition state is toggled via the `in` prop. When `true` the component
15207 * begins the "Enter" stage. During this stage, the component will shift from
15208 * its current transition state, to `'entering'` for the duration of the
15209 * transition and then to the `'entered'` stage once it's complete. Let's take
15210 * the following example (we'll use the
15211 * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
15212 *
15213 * ```jsx
15214 * function App() {
15215 * const [inProp, setInProp] = useState(false);
15216 * return (
15217 * <div>
15218 * <Transition in={inProp} timeout={500}>
15219 * {state => (
15220 * // ...
15221 * )}
15222 * </Transition>
15223 * <button onClick={() => setInProp(true)}>
15224 * Click to Enter
15225 * </button>
15226 * </div>
15227 * );
15228 * }
15229 * ```
15230 *
15231 * When the button is clicked the component will shift to the `'entering'` state
15232 * and stay there for 500ms (the value of `timeout`) before it finally switches
15233 * to `'entered'`.
15234 *
15235 * When `in` is `false` the same thing happens except the state moves from
15236 * `'exiting'` to `'exited'`.
15237 */
15238
15239exports.EXITING = EXITING;
15240
15241var Transition =
15242/*#__PURE__*/
15243function (_React$Component) {
15244 _inheritsLoose(Transition, _React$Component);
15245
15246 function Transition(props, context) {
15247 var _this;
15248
15249 _this = _React$Component.call(this, props, context) || this;
15250 var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears
15251
15252 var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
15253 var initialStatus;
15254 _this.appearStatus = null;
15255
15256 if (props.in) {
15257 if (appear) {
15258 initialStatus = EXITED;
15259 _this.appearStatus = ENTERING;
15260 } else {
15261 initialStatus = ENTERED;
15262 }
15263 } else {
15264 if (props.unmountOnExit || props.mountOnEnter) {
15265 initialStatus = UNMOUNTED;
15266 } else {
15267 initialStatus = EXITED;
15268 }
15269 }
15270
15271 _this.state = {
15272 status: initialStatus
15273 };
15274 _this.nextCallback = null;
15275 return _this;
15276 }
15277
15278 var _proto = Transition.prototype;
15279
15280 _proto.getChildContext = function getChildContext() {
15281 return {
15282 transitionGroup: null // allows for nested Transitions
15283
15284 };
15285 };
15286
15287 Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
15288 var nextIn = _ref.in;
15289
15290 if (nextIn && prevState.status === UNMOUNTED) {
15291 return {
15292 status: EXITED
15293 };
15294 }
15295
15296 return null;
15297 }; // getSnapshotBeforeUpdate(prevProps) {
15298 // let nextStatus = null
15299 // if (prevProps !== this.props) {
15300 // const { status } = this.state
15301 // if (this.props.in) {
15302 // if (status !== ENTERING && status !== ENTERED) {
15303 // nextStatus = ENTERING
15304 // }
15305 // } else {
15306 // if (status === ENTERING || status === ENTERED) {
15307 // nextStatus = EXITING
15308 // }
15309 // }
15310 // }
15311 // return { nextStatus }
15312 // }
15313
15314
15315 _proto.componentDidMount = function componentDidMount() {
15316 this.updateStatus(true, this.appearStatus);
15317 };
15318
15319 _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
15320 var nextStatus = null;
15321
15322 if (prevProps !== this.props) {
15323 var status = this.state.status;
15324
15325 if (this.props.in) {
15326 if (status !== ENTERING && status !== ENTERED) {
15327 nextStatus = ENTERING;
15328 }
15329 } else {
15330 if (status === ENTERING || status === ENTERED) {
15331 nextStatus = EXITING;
15332 }
15333 }
15334 }
15335
15336 this.updateStatus(false, nextStatus);
15337 };
15338
15339 _proto.componentWillUnmount = function componentWillUnmount() {
15340 this.cancelNextCallback();
15341 };
15342
15343 _proto.getTimeouts = function getTimeouts() {
15344 var timeout = this.props.timeout;
15345 var exit, enter, appear;
15346 exit = enter = appear = timeout;
15347
15348 if (timeout != null && typeof timeout !== 'number') {
15349 exit = timeout.exit;
15350 enter = timeout.enter; // TODO: remove fallback for next major
15351
15352 appear = timeout.appear !== undefined ? timeout.appear : enter;
15353 }
15354
15355 return {
15356 exit: exit,
15357 enter: enter,
15358 appear: appear
15359 };
15360 };
15361
15362 _proto.updateStatus = function updateStatus(mounting, nextStatus) {
15363 if (mounting === void 0) {
15364 mounting = false;
15365 }
15366
15367 if (nextStatus !== null) {
15368 // nextStatus will always be ENTERING or EXITING.
15369 this.cancelNextCallback();
15370
15371 var node = _reactDom.default.findDOMNode(this);
15372
15373 if (nextStatus === ENTERING) {
15374 this.performEnter(node, mounting);
15375 } else {
15376 this.performExit(node);
15377 }
15378 } else if (this.props.unmountOnExit && this.state.status === EXITED) {
15379 this.setState({
15380 status: UNMOUNTED
15381 });
15382 }
15383 };
15384
15385 _proto.performEnter = function performEnter(node, mounting) {
15386 var _this2 = this;
15387
15388 var enter = this.props.enter;
15389 var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;
15390 var timeouts = this.getTimeouts();
15391 var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
15392 // if we are mounting and running this it means appear _must_ be set
15393
15394 if (!mounting && !enter) {
15395 this.safeSetState({
15396 status: ENTERED
15397 }, function () {
15398 _this2.props.onEntered(node);
15399 });
15400 return;
15401 }
15402
15403 this.props.onEnter(node, appearing);
15404 this.safeSetState({
15405 status: ENTERING
15406 }, function () {
15407 _this2.props.onEntering(node, appearing);
15408
15409 _this2.onTransitionEnd(node, enterTimeout, function () {
15410 _this2.safeSetState({
15411 status: ENTERED
15412 }, function () {
15413 _this2.props.onEntered(node, appearing);
15414 });
15415 });
15416 });
15417 };
15418
15419 _proto.performExit = function performExit(node) {
15420 var _this3 = this;
15421
15422 var exit = this.props.exit;
15423 var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED
15424
15425 if (!exit) {
15426 this.safeSetState({
15427 status: EXITED
15428 }, function () {
15429 _this3.props.onExited(node);
15430 });
15431 return;
15432 }
15433
15434 this.props.onExit(node);
15435 this.safeSetState({
15436 status: EXITING
15437 }, function () {
15438 _this3.props.onExiting(node);
15439
15440 _this3.onTransitionEnd(node, timeouts.exit, function () {
15441 _this3.safeSetState({
15442 status: EXITED
15443 }, function () {
15444 _this3.props.onExited(node);
15445 });
15446 });
15447 });
15448 };
15449
15450 _proto.cancelNextCallback = function cancelNextCallback() {
15451 if (this.nextCallback !== null) {
15452 this.nextCallback.cancel();
15453 this.nextCallback = null;
15454 }
15455 };
15456
15457 _proto.safeSetState = function safeSetState(nextState, callback) {
15458 // This shouldn't be necessary, but there are weird race conditions with
15459 // setState callbacks and unmounting in testing, so always make sure that
15460 // we can cancel any pending setState callbacks after we unmount.
15461 callback = this.setNextCallback(callback);
15462 this.setState(nextState, callback);
15463 };
15464
15465 _proto.setNextCallback = function setNextCallback(callback) {
15466 var _this4 = this;
15467
15468 var active = true;
15469
15470 this.nextCallback = function (event) {
15471 if (active) {
15472 active = false;
15473 _this4.nextCallback = null;
15474 callback(event);
15475 }
15476 };
15477
15478 this.nextCallback.cancel = function () {
15479 active = false;
15480 };
15481
15482 return this.nextCallback;
15483 };
15484
15485 _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {
15486 this.setNextCallback(handler);
15487 var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;
15488
15489 if (!node || doesNotHaveTimeoutOrListener) {
15490 setTimeout(this.nextCallback, 0);
15491 return;
15492 }
15493
15494 if (this.props.addEndListener) {
15495 this.props.addEndListener(node, this.nextCallback);
15496 }
15497
15498 if (timeout != null) {
15499 setTimeout(this.nextCallback, timeout);
15500 }
15501 };
15502
15503 _proto.render = function render() {
15504 var status = this.state.status;
15505
15506 if (status === UNMOUNTED) {
15507 return null;
15508 }
15509
15510 var _this$props = this.props,
15511 children = _this$props.children,
15512 childProps = _objectWithoutPropertiesLoose(_this$props, ["children"]); // filter props for Transtition
15513
15514
15515 delete childProps.in;
15516 delete childProps.mountOnEnter;
15517 delete childProps.unmountOnExit;
15518 delete childProps.appear;
15519 delete childProps.enter;
15520 delete childProps.exit;
15521 delete childProps.timeout;
15522 delete childProps.addEndListener;
15523 delete childProps.onEnter;
15524 delete childProps.onEntering;
15525 delete childProps.onEntered;
15526 delete childProps.onExit;
15527 delete childProps.onExiting;
15528 delete childProps.onExited;
15529
15530 if (typeof children === 'function') {
15531 return children(status, childProps);
15532 }
15533
15534 var child = _react.default.Children.only(children);
15535
15536 return _react.default.cloneElement(child, childProps);
15537 };
15538
15539 return Transition;
15540}(_react.default.Component);
15541
15542Transition.contextTypes = {
15543 transitionGroup: PropTypes.object
15544};
15545Transition.childContextTypes = {
15546 transitionGroup: function transitionGroup() {}
15547};
15548Transition.propTypes = false ? {
15549 /**
15550 * A `function` child can be used instead of a React element. This function is
15551 * called with the current transition status (`'entering'`, `'entered'`,
15552 * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context
15553 * specific props to a component.
15554 *
15555 * ```jsx
15556 * <Transition in={this.state.in} timeout={150}>
15557 * {state => (
15558 * <MyComponent className={`fade fade-${state}`} />
15559 * )}
15560 * </Transition>
15561 * ```
15562 */
15563 children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,
15564
15565 /**
15566 * Show the component; triggers the enter or exit states
15567 */
15568 in: PropTypes.bool,
15569
15570 /**
15571 * By default the child component is mounted immediately along with
15572 * the parent `Transition` component. If you want to "lazy mount" the component on the
15573 * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay
15574 * mounted, even on "exited", unless you also specify `unmountOnExit`.
15575 */
15576 mountOnEnter: PropTypes.bool,
15577
15578 /**
15579 * By default the child component stays mounted after it reaches the `'exited'` state.
15580 * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.
15581 */
15582 unmountOnExit: PropTypes.bool,
15583
15584 /**
15585 * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.
15586 * If you want to transition on the first mount set `appear` to `true`, and the
15587 * component will transition in as soon as the `<Transition>` mounts.
15588 *
15589 * > Note: there are no specific "appear" states. `appear` only adds an additional `enter` transition.
15590 */
15591 appear: PropTypes.bool,
15592
15593 /**
15594 * Enable or disable enter transitions.
15595 */
15596 enter: PropTypes.bool,
15597
15598 /**
15599 * Enable or disable exit transitions.
15600 */
15601 exit: PropTypes.bool,
15602
15603 /**
15604 * The duration of the transition, in milliseconds.
15605 * Required unless `addEndListener` is provided.
15606 *
15607 * You may specify a single timeout for all transitions:
15608 *
15609 * ```jsx
15610 * timeout={500}
15611 * ```
15612 *
15613 * or individually:
15614 *
15615 * ```jsx
15616 * timeout={{
15617 * appear: 500,
15618 * enter: 300,
15619 * exit: 500,
15620 * }}
15621 * ```
15622 *
15623 * - `appear` defaults to the value of `enter`
15624 * - `enter` defaults to `0`
15625 * - `exit` defaults to `0`
15626 *
15627 * @type {number | { enter?: number, exit?: number, appear?: number }}
15628 */
15629 timeout: function timeout(props) {
15630 var pt = _PropTypes.timeoutsShape;
15631 if (!props.addEndListener) pt = pt.isRequired;
15632
15633 for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
15634 args[_key - 1] = arguments[_key];
15635 }
15636
15637 return pt.apply(void 0, [props].concat(args));
15638 },
15639
15640 /**
15641 * Add a custom transition end trigger. Called with the transitioning
15642 * DOM node and a `done` callback. Allows for more fine grained transition end
15643 * logic. **Note:** Timeouts are still used as a fallback if provided.
15644 *
15645 * ```jsx
15646 * addEndListener={(node, done) => {
15647 * // use the css transitionend event to mark the finish of a transition
15648 * node.addEventListener('transitionend', done, false);
15649 * }}
15650 * ```
15651 */
15652 addEndListener: PropTypes.func,
15653
15654 /**
15655 * Callback fired before the "entering" status is applied. An extra parameter
15656 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
15657 *
15658 * @type Function(node: HtmlElement, isAppearing: bool) -> void
15659 */
15660 onEnter: PropTypes.func,
15661
15662 /**
15663 * Callback fired after the "entering" status is applied. An extra parameter
15664 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
15665 *
15666 * @type Function(node: HtmlElement, isAppearing: bool)
15667 */
15668 onEntering: PropTypes.func,
15669
15670 /**
15671 * Callback fired after the "entered" status is applied. An extra parameter
15672 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
15673 *
15674 * @type Function(node: HtmlElement, isAppearing: bool) -> void
15675 */
15676 onEntered: PropTypes.func,
15677
15678 /**
15679 * Callback fired before the "exiting" status is applied.
15680 *
15681 * @type Function(node: HtmlElement) -> void
15682 */
15683 onExit: PropTypes.func,
15684
15685 /**
15686 * Callback fired after the "exiting" status is applied.
15687 *
15688 * @type Function(node: HtmlElement) -> void
15689 */
15690 onExiting: PropTypes.func,
15691
15692 /**
15693 * Callback fired after the "exited" status is applied.
15694 *
15695 * @type Function(node: HtmlElement) -> void
15696 */
15697 onExited: PropTypes.func // Name the function so it is clearer in the documentation
15698
15699} : {};
15700
15701function noop() {}
15702
15703Transition.defaultProps = {
15704 in: false,
15705 mountOnEnter: false,
15706 unmountOnExit: false,
15707 appear: false,
15708 enter: true,
15709 exit: true,
15710 onEnter: noop,
15711 onEntering: noop,
15712 onEntered: noop,
15713 onExit: noop,
15714 onExiting: noop,
15715 onExited: noop
15716};
15717Transition.UNMOUNTED = 0;
15718Transition.EXITED = 1;
15719Transition.ENTERING = 2;
15720Transition.ENTERED = 3;
15721Transition.EXITING = 4;
15722
15723var _default = (0, _reactLifecyclesCompat.polyfill)(Transition);
15724
15725exports.default = _default;
15726
15727/***/ }),
15728/* 134 */
15729/***/ (function(module, exports, __webpack_require__) {
15730
15731"use strict";
15732
15733
15734exports.__esModule = true;
15735exports.classNamesShape = exports.timeoutsShape = void 0;
15736
15737var _propTypes = _interopRequireDefault(__webpack_require__(5));
15738
15739function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15740
15741var timeoutsShape = false ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
15742 enter: _propTypes.default.number,
15743 exit: _propTypes.default.number,
15744 appear: _propTypes.default.number
15745}).isRequired]) : null;
15746exports.timeoutsShape = timeoutsShape;
15747var classNamesShape = false ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({
15748 enter: _propTypes.default.string,
15749 exit: _propTypes.default.string,
15750 active: _propTypes.default.string
15751}), _propTypes.default.shape({
15752 enter: _propTypes.default.string,
15753 enterDone: _propTypes.default.string,
15754 enterActive: _propTypes.default.string,
15755 exit: _propTypes.default.string,
15756 exitDone: _propTypes.default.string,
15757 exitActive: _propTypes.default.string
15758})]) : null;
15759exports.classNamesShape = classNamesShape;
15760
15761/***/ }),
15762/* 135 */
15763/***/ (function(module, exports, __webpack_require__) {
15764
15765"use strict";
15766
15767
15768exports.__esModule = true;
15769exports.default = void 0;
15770
15771var _propTypes = _interopRequireDefault(__webpack_require__(5));
15772
15773var _react = _interopRequireDefault(__webpack_require__(0));
15774
15775var _reactLifecyclesCompat = __webpack_require__(10);
15776
15777var _ChildMapping = __webpack_require__(270);
15778
15779function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15780
15781function _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; }
15782
15783function _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); }
15784
15785function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
15786
15787function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
15788
15789var values = Object.values || function (obj) {
15790 return Object.keys(obj).map(function (k) {
15791 return obj[k];
15792 });
15793};
15794
15795var defaultProps = {
15796 component: 'div',
15797 childFactory: function childFactory(child) {
15798 return child;
15799 }
15800 /**
15801 * The `<TransitionGroup>` component manages a set of transition components
15802 * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition
15803 * components, `<TransitionGroup>` is a state machine for managing the mounting
15804 * and unmounting of components over time.
15805 *
15806 * Consider the example below. As items are removed or added to the TodoList the
15807 * `in` prop is toggled automatically by the `<TransitionGroup>`.
15808 *
15809 * Note that `<TransitionGroup>` does not define any animation behavior!
15810 * Exactly _how_ a list item animates is up to the individual transition
15811 * component. This means you can mix and match animations across different list
15812 * items.
15813 */
15814
15815};
15816
15817var TransitionGroup =
15818/*#__PURE__*/
15819function (_React$Component) {
15820 _inheritsLoose(TransitionGroup, _React$Component);
15821
15822 function TransitionGroup(props, context) {
15823 var _this;
15824
15825 _this = _React$Component.call(this, props, context) || this;
15826
15827 var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear
15828
15829
15830 _this.state = {
15831 handleExited: handleExited,
15832 firstRender: true
15833 };
15834 return _this;
15835 }
15836
15837 var _proto = TransitionGroup.prototype;
15838
15839 _proto.getChildContext = function getChildContext() {
15840 return {
15841 transitionGroup: {
15842 isMounting: !this.appeared
15843 }
15844 };
15845 };
15846
15847 _proto.componentDidMount = function componentDidMount() {
15848 this.appeared = true;
15849 this.mounted = true;
15850 };
15851
15852 _proto.componentWillUnmount = function componentWillUnmount() {
15853 this.mounted = false;
15854 };
15855
15856 TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {
15857 var prevChildMapping = _ref.children,
15858 handleExited = _ref.handleExited,
15859 firstRender = _ref.firstRender;
15860 return {
15861 children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),
15862 firstRender: false
15863 };
15864 };
15865
15866 _proto.handleExited = function handleExited(child, node) {
15867 var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);
15868 if (child.key in currentChildMapping) return;
15869
15870 if (child.props.onExited) {
15871 child.props.onExited(node);
15872 }
15873
15874 if (this.mounted) {
15875 this.setState(function (state) {
15876 var children = _extends({}, state.children);
15877
15878 delete children[child.key];
15879 return {
15880 children: children
15881 };
15882 });
15883 }
15884 };
15885
15886 _proto.render = function render() {
15887 var _this$props = this.props,
15888 Component = _this$props.component,
15889 childFactory = _this$props.childFactory,
15890 props = _objectWithoutPropertiesLoose(_this$props, ["component", "childFactory"]);
15891
15892 var children = values(this.state.children).map(childFactory);
15893 delete props.appear;
15894 delete props.enter;
15895 delete props.exit;
15896
15897 if (Component === null) {
15898 return children;
15899 }
15900
15901 return _react.default.createElement(Component, props, children);
15902 };
15903
15904 return TransitionGroup;
15905}(_react.default.Component);
15906
15907TransitionGroup.childContextTypes = {
15908 transitionGroup: _propTypes.default.object.isRequired
15909};
15910TransitionGroup.propTypes = false ? {
15911 /**
15912 * `<TransitionGroup>` renders a `<div>` by default. You can change this
15913 * behavior by providing a `component` prop.
15914 * If you use React v16+ and would like to avoid a wrapping `<div>` element
15915 * you can pass in `component={null}`. This is useful if the wrapping div
15916 * borks your css styles.
15917 */
15918 component: _propTypes.default.any,
15919
15920 /**
15921 * A set of `<Transition>` components, that are toggled `in` and out as they
15922 * leave. the `<TransitionGroup>` will inject specific transition props, so
15923 * remember to spread them through if you are wrapping the `<Transition>` as
15924 * with our `<Fade>` example.
15925 *
15926 * While this component is meant for multiple `Transition` or `CSSTransition`
15927 * children, sometimes you may want to have a single transition child with
15928 * content that you want to be transitioned out and in when you change it
15929 * (e.g. routes, images etc.) In that case you can change the `key` prop of
15930 * the transition child as you change its content, this will cause
15931 * `TransitionGroup` to transition the child out and back in.
15932 */
15933 children: _propTypes.default.node,
15934
15935 /**
15936 * A convenience prop that enables or disables appear animations
15937 * for all children. Note that specifying this will override any defaults set
15938 * on individual children Transitions.
15939 */
15940 appear: _propTypes.default.bool,
15941
15942 /**
15943 * A convenience prop that enables or disables enter animations
15944 * for all children. Note that specifying this will override any defaults set
15945 * on individual children Transitions.
15946 */
15947 enter: _propTypes.default.bool,
15948
15949 /**
15950 * A convenience prop that enables or disables exit animations
15951 * for all children. Note that specifying this will override any defaults set
15952 * on individual children Transitions.
15953 */
15954 exit: _propTypes.default.bool,
15955
15956 /**
15957 * You may need to apply reactive updates to a child as it is exiting.
15958 * This is generally done by using `cloneElement` however in the case of an exiting
15959 * child the element has already been removed and not accessible to the consumer.
15960 *
15961 * If you do need to update a child as it leaves you can provide a `childFactory`
15962 * to wrap every child, even the ones that are leaving.
15963 *
15964 * @type Function(child: ReactElement) -> ReactElement
15965 */
15966 childFactory: _propTypes.default.func
15967} : {};
15968TransitionGroup.defaultProps = defaultProps;
15969
15970var _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);
15971
15972exports.default = _default;
15973module.exports = exports["default"];
15974
15975/***/ }),
15976/* 136 */
15977/***/ (function(module, exports, __webpack_require__) {
15978
15979"use strict";
15980
15981
15982exports.__esModule = true;
15983
15984var _extends2 = __webpack_require__(1);
15985
15986var _extends3 = _interopRequireDefault(_extends2);
15987
15988var _classCallCheck2 = __webpack_require__(2);
15989
15990var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
15991
15992var _possibleConstructorReturn2 = __webpack_require__(3);
15993
15994var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
15995
15996var _inherits2 = __webpack_require__(4);
15997
15998var _inherits3 = _interopRequireDefault(_inherits2);
15999
16000var _class, _temp;
16001
16002var _react = __webpack_require__(0);
16003
16004var _react2 = _interopRequireDefault(_react);
16005
16006var _reactDom = __webpack_require__(12);
16007
16008var _propTypes = __webpack_require__(5);
16009
16010var _propTypes2 = _interopRequireDefault(_propTypes);
16011
16012var _classnames3 = __webpack_require__(7);
16013
16014var _classnames4 = _interopRequireDefault(_classnames3);
16015
16016var _reactLifecyclesCompat = __webpack_require__(10);
16017
16018var _util = __webpack_require__(6);
16019
16020var _manager = __webpack_require__(277);
16021
16022var _manager2 = _interopRequireDefault(_manager);
16023
16024var _gateway = __webpack_require__(137);
16025
16026var _gateway2 = _interopRequireDefault(_gateway);
16027
16028var _position = __webpack_require__(138);
16029
16030var _position2 = _interopRequireDefault(_position);
16031
16032var _findNode = __webpack_require__(60);
16033
16034var _findNode2 = _interopRequireDefault(_findNode);
16035
16036function _interopRequireDefault(obj) {
16037 return obj && obj.__esModule ? obj : { default: obj };
16038}
16039
16040var saveLastFocusNode = _util.focus.saveLastFocusNode,
16041 getFocusNodeList = _util.focus.getFocusNodeList,
16042 backLastFocusNode = _util.focus.backLastFocusNode;
16043var makeChain = _util.func.makeChain,
16044 noop = _util.func.noop,
16045 bindCtx = _util.func.bindCtx;
16046
16047var getContainerNode = function getContainerNode(props) {
16048 var targetNode = (0, _findNode2.default)(props.target);
16049 return (0, _findNode2.default)(props.container, targetNode);
16050};
16051
16052var prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];
16053var getStyleProperty = function getStyleProperty(node, name) {
16054 var style = window.getComputedStyle(node);
16055 var ret = '';
16056 for (var i = 0; i < prefixes.length; i++) {
16057 ret = style.getPropertyValue(prefixes[i] + name);
16058 if (ret) {
16059 break;
16060 }
16061 }
16062 return ret;
16063};
16064
16065// 存 containerNode 信息
16066var containerNodeList = [];
16067
16068/**
16069 * Overlay
16070 */
16071var Overlay = (_temp = _class = function (_Component) {
16072 (0, _inherits3.default)(Overlay, _Component);
16073
16074 function Overlay(props) {
16075 (0, _classCallCheck3.default)(this, Overlay);
16076
16077 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
16078
16079 _this.saveContentRef = function (ref) {
16080 _this.contentRef = ref;
16081 };
16082
16083 _this.saveGatewayRef = function (ref) {
16084 _this.gatewayRef = ref;
16085 };
16086
16087 _this.lastAlign = props.align;
16088
16089 bindCtx(_this, ['handlePosition', 'handleAnimateEnd', 'handleDocumentKeyDown', 'handleDocumentClick', 'handleMaskClick', 'beforeOpen', 'beforeClose']);
16090
16091 _this.state = {
16092 visible: false,
16093 status: 'none',
16094 animation: _this.getAnimation(props),
16095 willOpen: false,
16096 willClose: false
16097 };
16098
16099 _this.timeoutMap = {};
16100 return _this;
16101 }
16102
16103 Overlay.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
16104 var willOpen = !prevState.visible && nextProps.visible;
16105 var willClose = prevState.visible && !nextProps.visible;
16106
16107 var nextState = {
16108 willOpen: willOpen,
16109 willClose: willClose
16110 };
16111
16112 if (willOpen) {
16113 nextProps.beforeOpen && nextProps.beforeOpen();
16114 } else if (willClose) {
16115 nextProps.beforeClose && nextProps.beforeClose();
16116 }
16117
16118 if (nextProps.animation || nextProps.animation === false) {
16119 nextState.animation = nextProps.animation;
16120 }
16121
16122 if (nextProps.animation !== false && _util.support.animation) {
16123 if (willOpen) {
16124 nextState.visible = true;
16125 nextState.status = 'mounting';
16126 } else if (willClose) {
16127 // can not set visible=false directly, otherwise animation not work without dom
16128 // nextState.visible = false;
16129 nextState.status = 'leaving';
16130 }
16131 } else if ('visible' in nextProps && nextProps.visible !== prevState.visible) {
16132 nextState.visible = nextProps.visible;
16133 }
16134
16135 return nextState;
16136 };
16137
16138 Overlay.prototype.componentDidMount = function componentDidMount() {
16139 if (this.state.willOpen) {
16140 this.beforeOpen();
16141 } else if (this.state.willClose) {
16142 this.beforeClose();
16143 }
16144
16145 if (this.state.visible) {
16146 this.doAnimation(true, false);
16147 this._isMounted = true;
16148 }
16149
16150 this.addDocumentEvents();
16151
16152 _manager2.default.addOverlay(this);
16153 };
16154
16155 Overlay.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
16156 if (this.state.willOpen) {
16157 this.beforeOpen();
16158 } else if (this.state.willClose) {
16159 this.beforeClose();
16160 }
16161
16162 if (!this._isMounted && this.props.visible) {
16163 this._isMounted = true;
16164 }
16165
16166 if (this.props.align !== prevProps.align) {
16167 this.lastAlign = prevProps.align;
16168 }
16169
16170 var willOpen = !prevProps.visible && this.props.visible;
16171 var willClose = prevProps.visible && !this.props.visible;
16172
16173 (willOpen || willClose) && this.doAnimation(willOpen, willClose);
16174 };
16175
16176 Overlay.prototype.componentWillUnmount = function componentWillUnmount() {
16177 this._isDestroyed = true;
16178 this._isMounted = false;
16179 _manager2.default.removeOverlay(this);
16180 this.removeDocumentEvents();
16181 if (this.focusTimeout) {
16182 clearTimeout(this.focusTimeout);
16183 }
16184 if (this._animation) {
16185 this._animation.off();
16186 this._animation = null;
16187 }
16188 this.beforeClose();
16189 };
16190
16191 Overlay.prototype.doAnimation = function doAnimation(open, close) {
16192 var _this2 = this;
16193
16194 if (this.state.animation && _util.support.animation) {
16195 if (open) {
16196 this.onEntering();
16197 } else if (close) {
16198 this.onLeaving();
16199 }
16200 this.addAnimationEvents();
16201 } else {
16202 if (open) {
16203 // fix https://github.com/alibaba-fusion/next/issues/1901
16204 setTimeout(function () {
16205 _this2.props.onOpen();
16206 _util.dom.addClass(_this2.getWrapperNode(), 'opened');
16207 _manager2.default.addOverlay(_this2);
16208 _this2.props.afterOpen();
16209 });
16210 } else if (close) {
16211 this.props.onClose();
16212 _util.dom.removeClass(this.getWrapperNode(), 'opened');
16213 _manager2.default.removeOverlay(this);
16214 this.props.afterClose();
16215 }
16216 this.setFocusNode();
16217 }
16218 };
16219
16220 Overlay.prototype.getAnimation = function getAnimation(props) {
16221 if (props.animation === false) {
16222 return false;
16223 }
16224
16225 if (props.animation) {
16226 return props.animation;
16227 }
16228
16229 return this.getAnimationByAlign(props.align);
16230 };
16231
16232 Overlay.prototype.getAnimationByAlign = function getAnimationByAlign(align) {
16233 switch (align[0]) {
16234 case 't':
16235 return {
16236 // 为了防止有的用户 js升级了而css没升级,所以把两个动画都保留了。
16237 // 动画不会叠加,会替代,顺序根据 src/animate/main.scss 中的样式先后顺序遵循css覆盖原则
16238 // fadeInDownSmall fadeOutUpSmall 优先级更高
16239 in: 'expandInDown fadeInDownSmall',
16240 out: 'expandOutUp fadeOutUpSmall'
16241 };
16242 case 'b':
16243 return {
16244 in: 'fadeInUp',
16245 out: 'fadeOutDown'
16246 };
16247 default:
16248 return {
16249 in: 'expandInDown fadeInDownSmall',
16250 out: 'expandOutUp fadeOutUpSmall'
16251 };
16252 }
16253 };
16254
16255 Overlay.prototype.addAnimationEvents = function addAnimationEvents() {
16256 var _this3 = this;
16257
16258 setTimeout(function () {
16259 var node = _this3.getContentNode();
16260 if (node) {
16261 var id = (0, _util.guid)();
16262
16263 _this3._animation = _util.events.on(node, _util.support.animation.end, _this3.handleAnimateEnd.bind(_this3, id));
16264
16265 var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;
16266 var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;
16267 var time = animationDelay + animationDuration;
16268 if (time) {
16269 _this3.timeoutMap[id] = setTimeout(function () {
16270 _this3.handleAnimateEnd(id);
16271 }, time * 1000 + 200);
16272 }
16273 }
16274 });
16275 };
16276
16277 Overlay.prototype.handlePosition = function handlePosition(config) {
16278 var align = config.align.join(' ');
16279
16280 if (!('animation' in this.props) && this.props.needAdjust && this.lastAlign !== align) {
16281 this.setState({
16282 animation: this.getAnimationByAlign(align)
16283 });
16284 }
16285
16286 var status = this.state.status;
16287
16288 if (status === 'mounting') {
16289 this.setState({
16290 status: 'entering'
16291 });
16292 }
16293
16294 this.lastAlign = align;
16295 };
16296
16297 Overlay.prototype.handleAnimateEnd = function handleAnimateEnd(id) {
16298 if (this.timeoutMap[id]) {
16299 clearTimeout(this.timeoutMap[id]);
16300 }
16301 delete this.timeoutMap[id];
16302
16303 if (this._animation) {
16304 this._animation.off();
16305 this._animation = null;
16306 }
16307
16308 if (!this._isMounted) {
16309 return;
16310 }
16311
16312 if (this.state.status === 'leaving') {
16313 this.setState({
16314 visible: false,
16315 status: 'none'
16316 });
16317
16318 this.onLeaved();
16319 // dom结构首次出现 触发的是entering
16320 // dom结构已经存在(例如设置了cache),触发的是mounting
16321 } else if (this.state.status === 'entering' || this.state.status === 'mounting') {
16322 this.setState({
16323 status: 'none'
16324 });
16325
16326 this.onEntered();
16327 }
16328 };
16329
16330 Overlay.prototype.onEntering = function onEntering() {
16331 var _this4 = this;
16332
16333 if (this._isDestroyed) {
16334 return;
16335 }
16336
16337 // make sure overlay.ref has been called (eg: menu/popup-item called overlay.getInstance().getContentNode().)
16338 setTimeout(function () {
16339 var wrapperNode = _this4.getWrapperNode();
16340 _util.dom.addClass(wrapperNode, 'opened');
16341 _this4.props.onOpen();
16342 });
16343 };
16344
16345 Overlay.prototype.onLeaving = function onLeaving() {
16346 var wrapperNode = this.getWrapperNode();
16347 _util.dom.removeClass(wrapperNode, 'opened');
16348 this.props.onClose();
16349 };
16350
16351 Overlay.prototype.onEntered = function onEntered() {
16352 _manager2.default.addOverlay(this);
16353 this.setFocusNode();
16354 this.props.afterOpen();
16355 };
16356
16357 Overlay.prototype.onLeaved = function onLeaved() {
16358 _manager2.default.removeOverlay(this);
16359 this.setFocusNode();
16360 this.props.afterClose();
16361 };
16362
16363 Overlay.prototype.beforeOpen = function beforeOpen() {
16364 if (this.props.disableScroll) {
16365 var containerNode = getContainerNode(this.props) || document.body;
16366 var _containerNode$style = containerNode.style,
16367 overflow = _containerNode$style.overflow,
16368 paddingRight = _containerNode$style.paddingRight;
16369
16370 var cnInfo = containerNodeList.find(function (m) {
16371 return m.containerNode === containerNode;
16372 }) || {
16373 containerNode: containerNode,
16374 count: 0
16375 };
16376
16377 /**
16378 * container 节点初始状态已经是 overflow=hidden 则忽略
16379 * See {@link https://codesandbox.io/s/next-overlay-overflow-2-fulpq?file=/src/App.js}
16380 */
16381 if (cnInfo.count === 0 && overflow !== 'hidden') {
16382 var style = {
16383 overflow: 'hidden'
16384 };
16385
16386 cnInfo.overflow = overflow;
16387
16388 if (_util.dom.hasScroll(containerNode)) {
16389 cnInfo.paddingRight = paddingRight;
16390 style.paddingRight = _util.dom.getStyle(containerNode, 'paddingRight') + _util.dom.scrollbar().width + 'px';
16391 }
16392
16393 _util.dom.setStyle(containerNode, style);
16394 containerNodeList.push(cnInfo);
16395 cnInfo.count++;
16396 } else if (cnInfo.count) {
16397 cnInfo.count++;
16398 }
16399
16400 this._containerNode = containerNode;
16401 }
16402 };
16403
16404 Overlay.prototype.beforeClose = function beforeClose() {
16405 var _this5 = this;
16406
16407 if (this.props.disableScroll) {
16408 var idx = containerNodeList.findIndex(function (cn) {
16409 return cn.containerNode === _this5._containerNode;
16410 });
16411
16412 if (idx !== -1) {
16413 var cnInfo = containerNodeList[idx];
16414 var overflow = cnInfo.overflow,
16415 paddingRight = cnInfo.paddingRight;
16416
16417 // 最后一个 overlay 的时候再将样式重置回去
16418 // 此时 overflow 应该值在 beforeOpen 中设置的 hidden
16419
16420 if (cnInfo.count === 1 && this._containerNode && this._containerNode.style.overflow === 'hidden') {
16421 var style = {
16422 overflow: overflow
16423 };
16424
16425 if (paddingRight !== undefined) {
16426 style.paddingRight = paddingRight;
16427 }
16428
16429 _util.dom.setStyle(this._containerNode, style);
16430 }
16431
16432 cnInfo.count--;
16433
16434 if (cnInfo.count === 0) {
16435 containerNodeList.splice(idx, 1);
16436 }
16437 }
16438 this._containerNode = undefined;
16439 }
16440 };
16441
16442 Overlay.prototype.setFocusNode = function setFocusNode() {
16443 var _this6 = this;
16444
16445 if (!this.props.autoFocus) {
16446 return;
16447 }
16448
16449 if (this.state.visible && !this._hasFocused) {
16450 saveLastFocusNode();
16451 // 这个时候很可能上一个弹层的关闭事件还未触发,导致焦点已经回到触发的元素
16452 // 这里延时处理一下,延时的时间为 document.click 捕获触发的延时时间
16453 this.focusTimeout = setTimeout(function () {
16454 var node = _this6.getContentNode();
16455 if (node) {
16456 var focusNodeList = getFocusNodeList(node);
16457 if (focusNodeList.length) {
16458 focusNodeList[0].focus();
16459 }
16460 _this6._hasFocused = true;
16461 }
16462 }, 100);
16463 } else if (!this.state.visible && this._hasFocused) {
16464 backLastFocusNode();
16465 this._hasFocused = false;
16466 }
16467 };
16468
16469 Overlay.prototype.getContent = function getContent() {
16470 return this.contentRef;
16471 };
16472
16473 Overlay.prototype.getContentNode = function getContentNode() {
16474 try {
16475 return (0, _reactDom.findDOMNode)(this.contentRef);
16476 } catch (err) {
16477 return null;
16478 }
16479 };
16480
16481 Overlay.prototype.getWrapperNode = function getWrapperNode() {
16482 return this.gatewayRef ? this.gatewayRef.getChildNode() : null;
16483 };
16484
16485 /**
16486 * document global event
16487 */
16488
16489 Overlay.prototype.addDocumentEvents = function addDocumentEvents() {
16490 var useCapture = this.props.useCapture;
16491 // use capture phase listener to be compatible with react17
16492 // https://reactjs.org/blog/2020/08/10/react-v17-rc.html#fixing-potential-issues
16493
16494 if (this.props.canCloseByEsc) {
16495 this._keydownEvents = _util.events.on(document, 'keydown', this.handleDocumentKeyDown, useCapture);
16496 }
16497
16498 if (this.props.canCloseByOutSideClick) {
16499 this._clickEvents = _util.events.on(document, 'click', this.handleDocumentClick, useCapture);
16500 this._touchEvents = _util.events.on(document, 'touchend', this.handleDocumentClick, useCapture);
16501 }
16502 };
16503
16504 Overlay.prototype.removeDocumentEvents = function removeDocumentEvents() {
16505 var _this7 = this;
16506
16507 ['_keydownEvents', '_clickEvents', '_touchEvents'].forEach(function (event) {
16508 if (_this7[event]) {
16509 _this7[event].off();
16510 _this7[event] = null;
16511 }
16512 });
16513 };
16514
16515 Overlay.prototype.handleDocumentKeyDown = function handleDocumentKeyDown(e) {
16516 if (this.state.visible && e.keyCode === _util.KEYCODE.ESC && _manager2.default.isCurrentOverlay(this)) {
16517 this.props.onRequestClose('keyboard', e);
16518 }
16519 };
16520
16521 Overlay.prototype.isInShadowDOM = function isInShadowDOM(node) {
16522 return node.getRootNode ? node.getRootNode().nodeType === 11 : false;
16523 };
16524
16525 Overlay.prototype.getEventPath = function getEventPath(event) {
16526 // 参考 https://github.com/spring-media/react-shadow-dom-retarget-events/blob/master/index.js#L29
16527 return event.path || event.composedPath && event.composedPath() || this.composedPath(event.target);
16528 };
16529
16530 Overlay.prototype.composedPath = function composedPath(el) {
16531 var path = [];
16532 while (el) {
16533 path.push(el);
16534 if (el.tagName === 'HTML') {
16535 path.push(document);
16536 path.push(window);
16537 return path;
16538 }
16539 el = el.parentElement;
16540 }
16541 };
16542
16543 Overlay.prototype.matchInShadowDOM = function matchInShadowDOM(node, e) {
16544 if (this.isInShadowDOM(node)) {
16545 // Shadow DOM 环境中,触发点击事件,监听 document click 事件获得的事件源
16546 // 并非实际触发的 dom 节点,而是 Shadow DOM 的 host 节点
16547 // 进而会导致如 Select 组件的下拉弹层打开后立即关闭等问题
16548 // 因此额外增加 node 和 eventPath 的判断
16549 var eventPath = this.getEventPath(e);
16550 return node === eventPath[0] || node.contains(eventPath[0]);
16551 }
16552
16553 return false;
16554 };
16555
16556 Overlay.prototype.handleDocumentClick = function handleDocumentClick(e) {
16557 var _this8 = this;
16558
16559 if (this.state.visible) {
16560 var safeNode = this.props.safeNode;
16561
16562 var safeNodes = Array.isArray(safeNode) ? [].concat(safeNode) : [safeNode];
16563 safeNodes.unshift(function () {
16564 return _this8.getWrapperNode();
16565 });
16566
16567 for (var i = 0; i < safeNodes.length; i++) {
16568 var node = (0, _findNode2.default)(safeNodes[i], this.props);
16569 // HACK: 如果触发点击的节点是弹层内部的节点,并且在被点击后立即销毁,那么此时无法使用 node.contains(e.target)
16570 // 来判断此时点击的节点是否是弹层内部的节点,额外判断
16571 if (node && (node === e.target || node.contains(e.target) || this.matchInShadowDOM(node, e) || e.target !== document && !document.documentElement.contains(e.target))) {
16572 return;
16573 }
16574 }
16575
16576 this.props.onRequestClose('docClick', e);
16577 }
16578 };
16579
16580 Overlay.prototype.handleMaskClick = function handleMaskClick(e) {
16581 if (e.currentTarget === e.target && this.props.canCloseByMask) {
16582 this.props.onRequestClose('maskClick', e);
16583 }
16584 };
16585
16586 // 兼容过去的用法: this.popupRef.getInstance().overlay.getInstance().getContentNode()
16587 Overlay.prototype.getInstance = function getInstance() {
16588 return this;
16589 };
16590
16591 Overlay.prototype.render = function render() {
16592 var _props = this.props,
16593 prefix = _props.prefix,
16594 className = _props.className,
16595 style = _props.style,
16596 propChildren = _props.children,
16597 target = _props.target,
16598 align = _props.align,
16599 offset = _props.offset,
16600 container = _props.container,
16601 hasMask = _props.hasMask,
16602 needAdjust = _props.needAdjust,
16603 autoFit = _props.autoFit,
16604 beforePosition = _props.beforePosition,
16605 onPosition = _props.onPosition,
16606 wrapperStyle = _props.wrapperStyle,
16607 rtl = _props.rtl,
16608 propShouldUpdatePosition = _props.shouldUpdatePosition,
16609 cache = _props.cache,
16610 wrapperClassName = _props.wrapperClassName,
16611 onMaskMouseEnter = _props.onMaskMouseEnter,
16612 onMaskMouseLeave = _props.onMaskMouseLeave,
16613 maskClass = _props.maskClass,
16614 isChildrenInMask = _props.isChildrenInMask,
16615 pinFollowBaseElementWhenFixed = _props.pinFollowBaseElementWhenFixed;
16616 var _state = this.state,
16617 stateVisible = _state.visible,
16618 status = _state.status,
16619 animation = _state.animation;
16620
16621 var children = stateVisible || cache && this._isMounted ? propChildren : null;
16622 if (children) {
16623 var _classnames, _classnames2;
16624
16625 var child = _react.Children.only(children);
16626 // if chlild is a functional component wrap in a component to allow a ref to be set
16627 if (typeof child.type === 'function' && !(child.type.prototype instanceof _react.Component)) {
16628 child = _react2.default.createElement('div', { role: 'none' }, child);
16629 }
16630 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));
16631 if (typeof child.ref === 'string') {
16632 throw new Error('Can not set ref by string in Overlay, use function instead.');
16633 }
16634
16635 children = _react2.default.cloneElement(child, {
16636 className: childClazz,
16637 style: (0, _extends3.default)({}, child.props.style, style),
16638 ref: makeChain(this.saveContentRef, child.ref),
16639 'aria-hidden': !stateVisible && cache && this._isMounted,
16640 onClick: makeChain(this.props.onClick, child.props.onClick),
16641 onTouchEnd: makeChain(this.props.onTouchEnd, child.props.onTouchEnd)
16642 });
16643
16644 if (align) {
16645 var shouldUpdatePosition = status === 'leaving' ? false : propShouldUpdatePosition;
16646 children = _react2.default.createElement(_position2.default, {
16647 children: children,
16648 target: target,
16649 align: align,
16650 offset: offset,
16651 autoFit: autoFit,
16652 container: container,
16653 needAdjust: needAdjust,
16654 pinFollowBaseElementWhenFixed: pinFollowBaseElementWhenFixed,
16655 beforePosition: beforePosition,
16656 onPosition: makeChain(this.handlePosition, onPosition),
16657 shouldUpdatePosition: shouldUpdatePosition,
16658 rtl: rtl
16659 });
16660 }
16661
16662 var wrapperClazz = (0, _classnames4.default)([prefix + 'overlay-wrapper', wrapperClassName]);
16663 var newWrapperStyle = (0, _extends3.default)({}, {
16664 display: stateVisible ? '' : 'none'
16665 }, wrapperStyle);
16666
16667 var maskClazz = (0, _classnames4.default)((_classnames2 = {}, _classnames2[prefix + 'overlay-backdrop'] = true, _classnames2[maskClass] = !!maskClass, _classnames2));
16668
16669 children = _react2.default.createElement('div', { className: wrapperClazz, style: newWrapperStyle, dir: rtl ? 'rtl' : undefined }, hasMask ? _react2.default.createElement('div', {
16670 className: maskClazz,
16671 onClick: this.handleMaskClick,
16672 onMouseEnter: onMaskMouseEnter,
16673 onMouseLeave: onMaskMouseLeave,
16674 dir: rtl ? 'rtl' : undefined
16675 }, isChildrenInMask && children) : null, !isChildrenInMask && children);
16676 }
16677
16678 return _react2.default.createElement(_gateway2.default, (0, _extends3.default)({ container: container, target: target, children: children }, { ref: this.saveGatewayRef }));
16679 };
16680
16681 return Overlay;
16682}(_react.Component), _class.propTypes = {
16683 prefix: _propTypes2.default.string,
16684 pure: _propTypes2.default.bool,
16685 rtl: _propTypes2.default.bool,
16686 className: _propTypes2.default.string,
16687 style: _propTypes2.default.object,
16688 /**
16689 * 弹层内容
16690 */
16691 children: _propTypes2.default.any,
16692 /**
16693 * 是否显示弹层
16694 */
16695 visible: _propTypes2.default.bool,
16696 /**
16697 * 弹层请求关闭时触发事件的回调函数
16698 * @param {String} type 弹层关闭的来源
16699 * @param {Object} e DOM 事件
16700 */
16701 onRequestClose: _propTypes2.default.func,
16702 /**
16703 * 弹层定位的参照元素
16704 */
16705 target: _propTypes2.default.any,
16706 /**
16707 * 弹层相对于参照元素的定位, 详见开发指南的[定位部分](#定位)
16708 */
16709 align: _propTypes2.default.string,
16710 /**
16711 * 弹层相对于trigger的定位的微调, 接收数组[hoz, ver], 表示弹层在 left / top 上的增量
16712 * e.g. [100, 100] 表示往右(RTL 模式下是往左) 、下分布偏移100px
16713 */
16714 offset: _propTypes2.default.array,
16715 /**
16716 * 渲染组件的容器,如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点
16717 */
16718 container: _propTypes2.default.any,
16719 /**
16720 * 是否显示遮罩
16721 */
16722 hasMask: _propTypes2.default.bool,
16723 /**
16724 * 是否支持 esc 按键关闭弹层
16725 */
16726 canCloseByEsc: _propTypes2.default.bool,
16727 /**
16728 * 点击弹层外的区域是否关闭弹层,不显示遮罩时生效
16729 */
16730 canCloseByOutSideClick: _propTypes2.default.bool,
16731 /**
16732 * 点击遮罩区域是否关闭弹层,显示遮罩时生效
16733 */
16734 canCloseByMask: _propTypes2.default.bool,
16735 /**
16736 * 弹层打开前触发事件的回调函数
16737 */
16738 beforeOpen: _propTypes2.default.func,
16739 /**
16740 * 弹层打开时触发事件的回调函数
16741 */
16742 onOpen: _propTypes2.default.func,
16743 /**
16744 * 弹层打开后触发事件的回调函数, 如果有动画,则在动画结束后触发
16745 */
16746 afterOpen: _propTypes2.default.func,
16747 /**
16748 * 弹层关闭前触发事件的回调函数
16749 */
16750 beforeClose: _propTypes2.default.func,
16751 /**
16752 * 弹层关闭时触发事件的回调函数
16753 */
16754 onClose: _propTypes2.default.func,
16755 /**
16756 * 弹层关闭后触发事件的回调函数, 如果有动画,则在动画结束后触发
16757 */
16758 afterClose: _propTypes2.default.func,
16759 /**
16760 * 弹层定位完成前触发的事件
16761 */
16762 beforePosition: _propTypes2.default.func,
16763 /**
16764 * 弹层定位完成时触发的事件
16765 * @param {Object} config 定位的参数
16766 * @param {Array} config.align 对齐方式,如 ['cc', 'cc'](如果开启 needAdjust,可能和预先设置的 align 不同)
16767 * @param {Number} config.top 距离视口顶部距离
16768 * @param {Number} config.left 距离视口左侧距离
16769 * @param {Object} node 定位参照的容器节点
16770 */
16771 onPosition: _propTypes2.default.func,
16772 shouldUpdatePosition: _propTypes2.default.bool,
16773 /**
16774 * 弹层打开时是否让其中的元素自动获取焦点
16775 */
16776 autoFocus: _propTypes2.default.bool,
16777 needAdjust: _propTypes2.default.bool,
16778 /**
16779 * 是否禁用页面滚动
16780 */
16781 disableScroll: _propTypes2.default.bool,
16782 /**
16783 * 是否在捕获阶段监听,适配 react 17 事件模型变更
16784 * @version 1.25
16785 */
16786 useCapture: _propTypes2.default.bool,
16787 /**
16788 * 隐藏时是否保留子节点
16789 */
16790 cache: _propTypes2.default.bool,
16791 /**
16792 * 安全节点,当点击 document 的时候,如果包含该节点则不会关闭弹层,如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点,或者以上值组成的数组
16793 */
16794 safeNode: _propTypes2.default.any,
16795 /**
16796 * 弹层的根节点的样式类
16797 */
16798 wrapperClassName: _propTypes2.default.string,
16799 /**
16800 * 弹层的根节点的内联样式
16801 */
16802 wrapperStyle: _propTypes2.default.object,
16803 /**
16804 * 配置动画的播放方式,支持 { in: 'enter-class', out: 'leave-class' } 的对象参数,如果设置为 false,则不播放动画。 请参考 Animate 组件的文档获取可用的动画名
16805 * @default { in: 'expandInDown', out: 'expandOutUp' }
16806 */
16807 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
16808 onMaskMouseEnter: _propTypes2.default.func,
16809 onMaskMouseLeave: _propTypes2.default.func,
16810 onClick: _propTypes2.default.func,
16811 maskClass: _propTypes2.default.string,
16812 isChildrenInMask: _propTypes2.default.bool,
16813 // 当 pin 元素(一般是弹层)是 fixed 布局的时候,pin 元素是否要跟随 base 元素(一般是trigger)
16814 // 举例来说,dialog/drawer 这类组件弹层是不跟随trigger的,而 fixed 布局下的subNav是跟随trigger的
16815 pinFollowBaseElementWhenFixed: _propTypes2.default.bool,
16816 /**
16817 * 开启 v2 版本
16818 * @version 1.25
16819 */
16820 v2: _propTypes2.default.bool,
16821 /**
16822 * [v2] align 的数组形式,不能和 align 同时使用
16823 * @version 1.25
16824 */
16825 points: _propTypes2.default.array
16826}, _class.defaultProps = {
16827 prefix: 'next-',
16828 pure: false,
16829 visible: false,
16830 onRequestClose: noop,
16831 target: _position2.default.VIEWPORT,
16832 align: 'tl bl',
16833 offset: [0, 0],
16834 hasMask: false,
16835 canCloseByEsc: true,
16836 canCloseByOutSideClick: true,
16837 canCloseByMask: true,
16838 beforeOpen: noop,
16839 onOpen: noop,
16840 afterOpen: noop,
16841 beforeClose: noop,
16842 onClose: noop,
16843 afterClose: noop,
16844 beforePosition: noop,
16845 onPosition: noop,
16846 onMaskMouseEnter: noop,
16847 onMaskMouseLeave: noop,
16848 shouldUpdatePosition: false,
16849 autoFocus: false,
16850 needAdjust: true,
16851 disableScroll: false,
16852 cache: false,
16853 isChildrenInMask: false,
16854 onTouchEnd: function onTouchEnd(event) {
16855 event.stopPropagation();
16856 },
16857 onClick: function onClick(event) {
16858 return event.stopPropagation();
16859 },
16860 maskClass: '',
16861 useCapture: true
16862}, _temp);
16863Overlay.displayName = 'Overlay';
16864exports.default = (0, _reactLifecyclesCompat.polyfill)(Overlay);
16865module.exports = exports['default'];
16866
16867/***/ }),
16868/* 137 */
16869/***/ (function(module, exports, __webpack_require__) {
16870
16871"use strict";
16872
16873
16874exports.__esModule = true;
16875
16876var _classCallCheck2 = __webpack_require__(2);
16877
16878var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16879
16880var _possibleConstructorReturn2 = __webpack_require__(3);
16881
16882var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
16883
16884var _inherits2 = __webpack_require__(4);
16885
16886var _inherits3 = _interopRequireDefault(_inherits2);
16887
16888var _class, _temp;
16889
16890var _react = __webpack_require__(0);
16891
16892var _react2 = _interopRequireDefault(_react);
16893
16894var _reactDom = __webpack_require__(12);
16895
16896var _propTypes = __webpack_require__(5);
16897
16898var _propTypes2 = _interopRequireDefault(_propTypes);
16899
16900var _reactLifecyclesCompat = __webpack_require__(10);
16901
16902var _util = __webpack_require__(6);
16903
16904var _findNode = __webpack_require__(60);
16905
16906var _findNode2 = _interopRequireDefault(_findNode);
16907
16908function _interopRequireDefault(obj) {
16909 return obj && obj.__esModule ? obj : { default: obj };
16910}
16911
16912var makeChain = _util.func.makeChain;
16913
16914var getContainerNode = function getContainerNode(props) {
16915 var targetNode = (0, _findNode2.default)(props.target);
16916 return (0, _findNode2.default)(props.container, targetNode);
16917};
16918
16919var Gateway = (_temp = _class = function (_Component) {
16920 (0, _inherits3.default)(Gateway, _Component);
16921
16922 function Gateway(props) {
16923 (0, _classCallCheck3.default)(this, Gateway);
16924
16925 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
16926
16927 _this.updateContainer = function () {
16928 var containerNode = getContainerNode(_this.props);
16929
16930 if (containerNode !== _this.state.containerNode) {
16931 // eslint-disable-next-line
16932 _this.setState({
16933 containerNode: containerNode
16934 });
16935 }
16936 };
16937
16938 _this.saveChildRef = function (ref) {
16939 _this.child = ref;
16940 };
16941
16942 _this.state = {
16943 containerNode: null
16944 };
16945 return _this;
16946 }
16947
16948 Gateway.prototype.componentDidMount = function componentDidMount() {
16949 this.updateContainer();
16950 };
16951
16952 Gateway.prototype.componentDidUpdate = function componentDidUpdate() {
16953 this.updateContainer();
16954 };
16955
16956 Gateway.prototype.getChildNode = function getChildNode() {
16957 try {
16958 return (0, _reactDom.findDOMNode)(this.child);
16959 } catch (err) {
16960 return null;
16961 }
16962 };
16963
16964 Gateway.prototype.render = function render() {
16965 var containerNode = this.state.containerNode;
16966
16967 if (!containerNode) {
16968 return null;
16969 }
16970
16971 var children = this.props.children;
16972
16973 var child = children ? _react.Children.only(children) : null;
16974 if (!child) {
16975 return null;
16976 }
16977
16978 if (typeof child.ref === 'string') {
16979 throw new Error('Can not set ref by string in Gateway, use function instead.');
16980 }
16981 child = _react2.default.cloneElement(child, {
16982 ref: makeChain(this.saveChildRef, child.ref)
16983 });
16984
16985 return (0, _reactDom.createPortal)(child, containerNode);
16986 };
16987
16988 return Gateway;
16989}(_react.Component), _class.propTypes = {
16990 children: _propTypes2.default.node,
16991 container: _propTypes2.default.any,
16992 target: _propTypes2.default.any
16993}, _class.defaultProps = {
16994 container: function container() {
16995 return document.body;
16996 }
16997}, _temp);
16998Gateway.displayName = 'Gateway';
16999exports.default = (0, _reactLifecyclesCompat.polyfill)(Gateway);
17000module.exports = exports['default'];
17001
17002/***/ }),
17003/* 138 */
17004/***/ (function(module, exports, __webpack_require__) {
17005
17006"use strict";
17007
17008
17009exports.__esModule = true;
17010exports.default = undefined;
17011
17012var _classCallCheck2 = __webpack_require__(2);
17013
17014var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
17015
17016var _possibleConstructorReturn2 = __webpack_require__(3);
17017
17018var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
17019
17020var _inherits2 = __webpack_require__(4);
17021
17022var _inherits3 = _interopRequireDefault(_inherits2);
17023
17024var _class, _temp;
17025
17026var _react = __webpack_require__(0);
17027
17028var _reactDom = __webpack_require__(12);
17029
17030var _propTypes = __webpack_require__(5);
17031
17032var _propTypes2 = _interopRequireDefault(_propTypes);
17033
17034var _resizeObserverPolyfill = __webpack_require__(58);
17035
17036var _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);
17037
17038var _util = __webpack_require__(6);
17039
17040var _position = __webpack_require__(278);
17041
17042var _position2 = _interopRequireDefault(_position);
17043
17044var _findNode = __webpack_require__(60);
17045
17046var _findNode2 = _interopRequireDefault(_findNode);
17047
17048function _interopRequireDefault(obj) {
17049 return obj && obj.__esModule ? obj : { default: obj };
17050}
17051
17052var noop = _util.func.noop,
17053 bindCtx = _util.func.bindCtx;
17054var getStyle = _util.dom.getStyle;
17055
17056var place = _position2.default.place;
17057
17058var Position = (_temp = _class = function (_Component) {
17059 (0, _inherits3.default)(Position, _Component);
17060
17061 function Position(props) {
17062 (0, _classCallCheck3.default)(this, Position);
17063
17064 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
17065
17066 _this.observe = function () {
17067 var contentNode = _this.getContentNode();
17068 contentNode && _this.resizeObserver.observe(contentNode);
17069 };
17070
17071 _this.unobserve = function () {
17072 _this.resizeObserver.disconnect();
17073 };
17074
17075 bindCtx(_this, ['handleResize']);
17076
17077 _this.resizeObserver = new _resizeObserverPolyfill2.default(_this.handleResize);
17078 return _this;
17079 }
17080
17081 Position.prototype.componentDidMount = function componentDidMount() {
17082 this.setPosition();
17083
17084 if (this.props.needListenResize) {
17085 _util.events.on(window, 'resize', this.handleResize);
17086 this.observe();
17087 }
17088 };
17089
17090 Position.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
17091 var props = this.props;
17092
17093 if ('align' in props && props.align !== prevProps.align || props.shouldUpdatePosition) {
17094 this.shouldUpdatePosition = true;
17095 }
17096
17097 if (this.shouldUpdatePosition) {
17098 clearTimeout(this.resizeTimeout);
17099
17100 this.setPosition();
17101 this.shouldUpdatePosition = false;
17102 }
17103 };
17104
17105 Position.prototype.componentWillUnmount = function componentWillUnmount() {
17106 if (this.props.needListenResize) {
17107 _util.events.off(window, 'resize', this.handleResize);
17108 this.unobserve();
17109 }
17110
17111 clearTimeout(this.resizeTimeout);
17112 };
17113
17114 Position.prototype.setPosition = function setPosition() {
17115 var _props = this.props,
17116 align = _props.align,
17117 offset = _props.offset,
17118 beforePosition = _props.beforePosition,
17119 onPosition = _props.onPosition,
17120 needAdjust = _props.needAdjust,
17121 container = _props.container,
17122 rtl = _props.rtl,
17123 pinFollowBaseElementWhenFixed = _props.pinFollowBaseElementWhenFixed,
17124 autoFit = _props.autoFit;
17125
17126 beforePosition();
17127
17128 var contentNode = this.getContentNode();
17129 var targetNode = this.getTargetNode();
17130
17131 if (contentNode && targetNode) {
17132 var resultAlign = place({
17133 pinElement: contentNode,
17134 baseElement: targetNode,
17135 pinFollowBaseElementWhenFixed: pinFollowBaseElementWhenFixed,
17136 align: align,
17137 offset: offset,
17138 autoFit: autoFit,
17139 container: container,
17140 needAdjust: needAdjust,
17141 isRtl: rtl
17142 });
17143 var top = getStyle(contentNode, 'top');
17144 var left = getStyle(contentNode, 'left');
17145
17146 onPosition({
17147 align: resultAlign.split(' '),
17148 top: top,
17149 left: left
17150 }, contentNode);
17151 }
17152 };
17153
17154 Position.prototype.getContentNode = function getContentNode() {
17155 try {
17156 return (0, _reactDom.findDOMNode)(this);
17157 } catch (err) {
17158 return null;
17159 }
17160 };
17161
17162 Position.prototype.getTargetNode = function getTargetNode() {
17163 var target = this.props.target;
17164
17165 return target === _position2.default.VIEWPORT ? _position2.default.VIEWPORT : (0, _findNode2.default)(target, this.props);
17166 };
17167
17168 Position.prototype.handleResize = function handleResize() {
17169 var _this2 = this;
17170
17171 clearTimeout(this.resizeTimeout);
17172
17173 this.resizeTimeout = setTimeout(function () {
17174 _this2.setPosition();
17175 }, 200);
17176 };
17177
17178 Position.prototype.render = function render() {
17179 return _react.Children.only(this.props.children);
17180 };
17181
17182 return Position;
17183}(_react.Component), _class.VIEWPORT = _position2.default.VIEWPORT, _class.propTypes = {
17184 children: _propTypes2.default.node,
17185 target: _propTypes2.default.any,
17186 container: _propTypes2.default.any,
17187 align: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
17188 offset: _propTypes2.default.array,
17189 beforePosition: _propTypes2.default.func,
17190 onPosition: _propTypes2.default.func,
17191 needAdjust: _propTypes2.default.bool,
17192 autoFit: _propTypes2.default.bool,
17193 needListenResize: _propTypes2.default.bool,
17194 shouldUpdatePosition: _propTypes2.default.bool,
17195 rtl: _propTypes2.default.bool,
17196 pinFollowBaseElementWhenFixed: _propTypes2.default.bool
17197}, _class.defaultProps = {
17198 align: 'tl bl',
17199 offset: [0, 0],
17200 beforePosition: noop,
17201 onPosition: noop,
17202 needAdjust: true,
17203 autoFit: false,
17204 needListenResize: true,
17205 shouldUpdatePosition: false,
17206 rtl: false
17207}, _temp);
17208Position.displayName = 'Position';
17209exports.default = Position;
17210module.exports = exports['default'];
17211
17212/***/ }),
17213/* 139 */
17214/***/ (function(module, exports) {
17215
17216function _objectWithoutPropertiesLoose(source, excluded) {
17217 if (source == null) return {};
17218 var target = {};
17219 var sourceKeys = Object.keys(source);
17220 var key, i;
17221
17222 for (i = 0; i < sourceKeys.length; i++) {
17223 key = sourceKeys[i];
17224 if (excluded.indexOf(key) >= 0) continue;
17225 target[key] = source[key];
17226 }
17227
17228 return target;
17229}
17230
17231module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
17232
17233/***/ }),
17234/* 140 */
17235/***/ (function(module, exports, __webpack_require__) {
17236
17237"use strict";
17238
17239
17240exports.__esModule = true;
17241
17242var _extends2 = __webpack_require__(1);
17243
17244var _extends3 = _interopRequireDefault(_extends2);
17245
17246var _classCallCheck2 = __webpack_require__(2);
17247
17248var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
17249
17250var _possibleConstructorReturn2 = __webpack_require__(3);
17251
17252var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
17253
17254var _inherits2 = __webpack_require__(4);
17255
17256var _inherits3 = _interopRequireDefault(_inherits2);
17257
17258var _class, _temp;
17259
17260var _react = __webpack_require__(0);
17261
17262var _react2 = _interopRequireDefault(_react);
17263
17264var _propTypes = __webpack_require__(5);
17265
17266var _propTypes2 = _interopRequireDefault(_propTypes);
17267
17268var _classnames = __webpack_require__(7);
17269
17270var _classnames2 = _interopRequireDefault(_classnames);
17271
17272var _configProvider = __webpack_require__(9);
17273
17274var _configProvider2 = _interopRequireDefault(_configProvider);
17275
17276var _util = __webpack_require__(6);
17277
17278function _interopRequireDefault(obj) {
17279 return obj && obj.__esModule ? obj : { default: obj };
17280}
17281
17282/**
17283 * Icon
17284 */
17285var Icon = (_temp = _class = function (_Component) {
17286 (0, _inherits3.default)(Icon, _Component);
17287
17288 function Icon() {
17289 (0, _classCallCheck3.default)(this, Icon);
17290 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
17291 }
17292
17293 Icon.prototype.render = function render() {
17294 var _cx;
17295
17296 /* eslint-disable no-unused-vars*/
17297 var _props = this.props,
17298 prefix = _props.prefix,
17299 type = _props.type,
17300 size = _props.size,
17301 className = _props.className,
17302 rtl = _props.rtl,
17303 style = _props.style,
17304 children = _props.children;
17305
17306 var others = _util.obj.pickOthers((0, _extends3.default)({}, Icon.propTypes), this.props);
17307
17308 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));
17309
17310 if (rtl && ['arrow-left', 'arrow-right', 'arrow-double-left', 'arrow-double-right', 'switch', 'sorting', 'descending', 'ascending'].indexOf(type) !== -1) {
17311 others.dir = 'rtl';
17312 }
17313
17314 var sizeStyle = typeof size === 'number' ? {
17315 width: size,
17316 height: size,
17317 lineHeight: size + 'px',
17318 fontSize: size
17319 } : {};
17320
17321 return _react2.default.createElement('i', (0, _extends3.default)({}, others, { style: (0, _extends3.default)({}, sizeStyle, style), className: classes }), children);
17322 };
17323
17324 return Icon;
17325}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
17326 /**
17327 * 指定显示哪种图标
17328 */
17329 type: _propTypes2.default.string,
17330 children: _propTypes2.default.node,
17331 /**
17332 * 指定图标大小
17333 * <br/>**可选值**<br/> xxs, xs, small, medium, large, xl, xxl, xxxl, inherit
17334 */
17335 size: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['xxs', 'xs', 'small', 'medium', 'large', 'xl', 'xxl', 'xxxl', 'inherit']), _propTypes2.default.number]),
17336 className: _propTypes2.default.string,
17337 style: _propTypes2.default.object
17338}), _class.defaultProps = {
17339 prefix: 'next-',
17340 size: 'medium'
17341}, _class._typeMark = 'icon', _temp);
17342Icon.displayName = 'Icon';
17343exports.default = Icon;
17344module.exports = exports['default'];
17345
17346/***/ }),
17347/* 141 */
17348/***/ (function(module, exports, __webpack_require__) {
17349
17350"use strict";
17351
17352
17353exports.__esModule = true;
17354
17355var _extends2 = __webpack_require__(1);
17356
17357var _extends3 = _interopRequireDefault(_extends2);
17358
17359exports.getDisabledCompatibleTrigger = getDisabledCompatibleTrigger;
17360
17361var _react = __webpack_require__(0);
17362
17363var _react2 = _interopRequireDefault(_react);
17364
17365function _interopRequireDefault(obj) {
17366 return obj && obj.__esModule ? obj : { default: obj };
17367}
17368
17369function getDisabledCompatibleTrigger(element) {
17370 if (element.type.displayName === 'Config(Button)' && element.props.disabled) {
17371 var displayStyle = element.props.style && element.props.style.display ? element.props.style.display : 'inline-block';
17372 var child = _react2.default.cloneElement(element, {
17373 style: (0, _extends3.default)({}, element.props.style, {
17374 pointerEvents: 'none'
17375 })
17376 });
17377 return (
17378 // eslint-disable-next-line
17379 _react2.default.createElement('span', { style: { display: displayStyle, cursor: 'not-allowed' } }, child)
17380 );
17381 }
17382 return element;
17383}
17384
17385/***/ }),
17386/* 142 */
17387/***/ (function(module, exports, __webpack_require__) {
17388
17389"use strict";
17390
17391
17392exports.__esModule = true;
17393
17394var _extends2 = __webpack_require__(1);
17395
17396var _extends3 = _interopRequireDefault(_extends2);
17397
17398var _classCallCheck2 = __webpack_require__(2);
17399
17400var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
17401
17402var _possibleConstructorReturn2 = __webpack_require__(3);
17403
17404var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
17405
17406var _inherits2 = __webpack_require__(4);
17407
17408var _inherits3 = _interopRequireDefault(_inherits2);
17409
17410var _typeof2 = __webpack_require__(14);
17411
17412var _typeof3 = _interopRequireDefault(_typeof2);
17413
17414var _class, _temp;
17415
17416var _react = __webpack_require__(0);
17417
17418var _react2 = _interopRequireDefault(_react);
17419
17420var _reactDom = __webpack_require__(12);
17421
17422var _propTypes = __webpack_require__(5);
17423
17424var _propTypes2 = _interopRequireDefault(_propTypes);
17425
17426var _classnames = __webpack_require__(7);
17427
17428var _classnames2 = _interopRequireDefault(_classnames);
17429
17430var _reactLifecyclesCompat = __webpack_require__(10);
17431
17432var _subMenu = __webpack_require__(143);
17433
17434var _subMenu2 = _interopRequireDefault(_subMenu);
17435
17436var _configProvider = __webpack_require__(9);
17437
17438var _configProvider2 = _interopRequireDefault(_configProvider);
17439
17440var _util = __webpack_require__(6);
17441
17442var _util2 = __webpack_require__(89);
17443
17444function _interopRequireDefault(obj) {
17445 return obj && obj.__esModule ? obj : { default: obj };
17446}
17447
17448var bindCtx = _util.func.bindCtx;
17449var pickOthers = _util.obj.pickOthers,
17450 isNil = _util.obj.isNil;
17451
17452var noop = function noop() {};
17453var MENUITEM_OVERFLOWED_CLASSNAME = 'menuitem-overflowed';
17454
17455var getIndicatorsItem = function getIndicatorsItem(items, isPlaceholder) {
17456 var _cx;
17457
17458 var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
17459 var renderMore = arguments[3];
17460
17461 var moreCls = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'menu-more'] = true, _cx));
17462
17463 var style = {};
17464 // keep placehold to get width
17465 if (isPlaceholder) {
17466 style.visibility = 'hidden';
17467 style.display = 'inline-block';
17468 // indicators which not in use, just display: none
17469 } else if (items && items.length === 0) {
17470 style.display = 'none';
17471 style.visibility = 'unset';
17472 }
17473
17474 if (renderMore && typeof renderMore === 'function') {
17475 var moreNode = renderMore(items);
17476 var renderMoreCls = (0, _classnames2.default)(moreCls, moreNode.props && moreNode.props.className);
17477
17478 return _react2.default.isValidElement(moreNode) ? _react2.default.cloneElement(moreNode, {
17479 style: style,
17480 className: renderMoreCls
17481 }) : moreNode;
17482 }
17483
17484 return _react2.default.createElement(_subMenu2.default, { label: '\xB7\xB7\xB7', noIcon: true, className: moreCls, style: style }, items);
17485};
17486
17487var addIndicators = function addIndicators(_ref) {
17488 var children = _ref.children,
17489 lastVisibleIndex = _ref.lastVisibleIndex,
17490 prefix = _ref.prefix,
17491 renderMore = _ref.renderMore;
17492
17493 var arr = [];
17494
17495 _react2.default.Children.forEach(children, function (child, index) {
17496 if (!child) {
17497 return;
17498 }
17499 var overflowedItems = [];
17500
17501 if (index > lastVisibleIndex) {
17502 child = _react2.default.cloneElement(child, {
17503 key: child.key || 'more-' + index,
17504 style: { display: 'none' },
17505 className: (child && child.className || '') + ' ' + MENUITEM_OVERFLOWED_CLASSNAME
17506 });
17507 }
17508
17509 if (index === lastVisibleIndex + 1) {
17510 overflowedItems = children.slice(lastVisibleIndex + 1).map(function (c, i) {
17511 return _react2.default.cloneElement(c, {
17512 key: c.key || 'more-' + index + '-' + i
17513 });
17514 });
17515 arr.push(getIndicatorsItem(overflowedItems, false, prefix, renderMore));
17516 }
17517
17518 arr.push(child);
17519 });
17520
17521 arr.push(getIndicatorsItem([], true, prefix, renderMore));
17522
17523 return arr;
17524};
17525
17526var getNewChildren = function getNewChildren(_ref2) {
17527 var children = _ref2.children,
17528 root = _ref2.root,
17529 mode = _ref2.mode,
17530 lastVisibleIndex = _ref2.lastVisibleIndex,
17531 hozInLine = _ref2.hozInLine,
17532 prefix = _ref2.prefix,
17533 renderMore = _ref2.renderMore;
17534
17535 var k2n = {};
17536 var p2n = {};
17537
17538 var arr = hozInLine ? addIndicators({
17539 children: children,
17540 lastVisibleIndex: lastVisibleIndex,
17541 prefix: prefix,
17542 renderMore: renderMore
17543 }) : children;
17544
17545 var loop = function loop(children, posPrefix) {
17546 var indexWrapper = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { index: 0 };
17547 var inlineLevel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
17548
17549 var keyArray = [];
17550 return _react.Children.map(children, function (child) {
17551 if (child && (typeof child.type === 'function' ||
17552 // `React.forwardRef(render)` returns a forwarding
17553 // object that includes `render` method, and the specific
17554 // `child.type` will be an object instead of a class or
17555 // function.
17556 (0, _typeof3.default)(child.type) === 'object') && 'menuChildType' in child.type) {
17557 var newChild = void 0;
17558
17559 var pos = void 0;
17560 var props = { root: root };
17561
17562 if (['item', 'submenu', 'group'].indexOf(child.type.menuChildType) > -1) {
17563 pos = posPrefix + '-' + indexWrapper.index++;
17564 var key = typeof child.key === 'string' ? child.key : pos;
17565
17566 // filter out duplicate keys
17567 if (keyArray.indexOf(key) > -1) {
17568 return;
17569 }
17570
17571 keyArray.push(key);
17572
17573 var level = pos.split('-').length - 1;
17574 k2n[key] = p2n[pos] = {
17575 key: key,
17576 pos: pos,
17577 mode: child.props.mode,
17578 type: child.type.menuChildType,
17579 disabled: child.props.disabled,
17580 label: child.props.label || child.props.children
17581 };
17582
17583 props.level = level;
17584 props.inlineLevel = inlineLevel;
17585 props._key = key;
17586 props.groupIndent = child.type.menuChildType === 'group' ? 1 : 0;
17587 }
17588
17589 // paddingLeft(or paddingRight in rtl) only make sense in inline mode
17590 // parent know children's inlineLevel
17591 // if parent's mode is popup, then children's inlineLevel must be 1;
17592 // else inlineLevel should add 1
17593 var childLevel = (child.props.mode || mode) === 'popup' ? 1 : inlineLevel + 1;
17594
17595 switch (child.type.menuChildType) {
17596 case 'submenu':
17597 newChild = (0, _react.cloneElement)(child, props, loop(child.props.children, pos, undefined, childLevel));
17598 break;
17599 case 'group':
17600 newChild = (0, _react.cloneElement)(child, props, loop(child.props.children, posPrefix, indexWrapper, props.level));
17601 break;
17602 case 'item':
17603 case 'divider':
17604 newChild = (0, _react.cloneElement)(child, props);
17605 break;
17606 default:
17607 newChild = child;
17608 break;
17609 }
17610
17611 return newChild;
17612 }
17613
17614 return child;
17615 });
17616 };
17617
17618 var newChildren = loop(arr, '0');
17619
17620 return {
17621 newChildren: newChildren,
17622 _k2n: k2n,
17623 _p2n: p2n
17624 };
17625};
17626
17627/**
17628 * Menu
17629 */
17630var Menu = (_temp = _class = function (_Component) {
17631 (0, _inherits3.default)(Menu, _Component);
17632
17633 function Menu(props) {
17634 (0, _classCallCheck3.default)(this, Menu);
17635
17636 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
17637
17638 _this.getUpdateChildren = function () {
17639 var _this$state = _this.state,
17640 root = _this$state.root,
17641 lastVisibleIndex = _this$state.lastVisibleIndex;
17642
17643 return getNewChildren((0, _extends3.default)({
17644 root: root,
17645 lastVisibleIndex: lastVisibleIndex
17646 }, _this.props));
17647 };
17648
17649 _this.menuContentRef = function (ref) {
17650 _this.menuContent = ref;
17651 };
17652
17653 _this.menuHeaderRef = function (ref) {
17654 _this.menuHeader = ref;
17655 };
17656
17657 _this.menuFooterRef = function (ref) {
17658 _this.menuFooter = ref;
17659 };
17660
17661 var _this$props = _this.props,
17662 prefix = _this$props.prefix,
17663 children = _this$props.children,
17664 selectedKeys = _this$props.selectedKeys,
17665 defaultSelectedKeys = _this$props.defaultSelectedKeys,
17666 focusedKey = _this$props.focusedKey,
17667 focusable = _this$props.focusable,
17668 autoFocus = _this$props.autoFocus,
17669 hozInLine = _this$props.hozInLine,
17670 renderMore = _this$props.renderMore;
17671
17672 _this.state = {
17673 lastVisibleIndex: undefined
17674 };
17675
17676 var _getNewChildren = getNewChildren((0, _extends3.default)({
17677 root: _this
17678 }, _this.props)),
17679 newChildren = _getNewChildren.newChildren,
17680 _k2n = _getNewChildren._k2n,
17681 _p2n = _getNewChildren._p2n;
17682
17683 var tabbableKey = focusable ? (0, _util2.getFirstAvaliablelChildKey)('0', _p2n) : undefined;
17684
17685 _this.state = {
17686 root: _this,
17687 lastVisibleIndex: undefined,
17688 newChildren: newChildren,
17689 _k2n: _k2n,
17690 _p2n: _p2n,
17691 tabbableKey: tabbableKey,
17692 openKeys: _this.getInitOpenKeys(props, _k2n, _p2n),
17693 selectedKeys: (0, _util2.normalizeToArray)(selectedKeys || defaultSelectedKeys),
17694 focusedKey: !isNil(_this.props.focusedKey) ? focusedKey : focusable && autoFocus ? tabbableKey : null
17695 };
17696
17697 bindCtx(_this, ['handleOpen', 'handleSelect', 'handleItemClick', 'handleItemKeyDown', 'onBlur', 'adjustChildrenWidth']);
17698
17699 _this.popupNodes = [];
17700 return _this;
17701 }
17702
17703 Menu.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
17704 var state = {};
17705
17706 if ('openKeys' in nextProps) {
17707 state.openKeys = (0, _util2.normalizeToArray)(nextProps.openKeys);
17708 // 从展开状态变为收起状态,才需要清空openKeys
17709 } else if ('mode' in nextProps && nextProps.mode === 'popup' && prevState.lastMode === 'inline') {
17710 state.openKeys = [];
17711 }
17712
17713 if ('selectedKeys' in nextProps) {
17714 state.selectedKeys = (0, _util2.normalizeToArray)(nextProps.selectedKeys);
17715 }
17716 if ('focusedKey' in nextProps) {
17717 state.focusedKey = nextProps.focusedKey;
17718 }
17719
17720 state.lastMode = nextProps.mode;
17721
17722 var _getNewChildren2 = getNewChildren((0, _extends3.default)({
17723 root: prevState.root,
17724 lastVisibleIndex: prevState.lastVisibleIndex
17725 }, nextProps)),
17726 newChildren = _getNewChildren2.newChildren,
17727 _k2n = _getNewChildren2._k2n,
17728 _p2n = _getNewChildren2._p2n;
17729
17730 state.newChildren = newChildren;
17731 state._k2n = _k2n;
17732 state._p2n = _p2n;
17733
17734 if (nextProps.focusable) {
17735 if (prevState.tabbableKey in _k2n) {
17736 if (prevState.focusedKey) {
17737 state.tabbableKey = prevState.focusedKey;
17738 }
17739 } else {
17740 state.tabbableKey = (0, _util2.getFirstAvaliablelChildKey)('0', _p2n);
17741 }
17742 }
17743
17744 return state;
17745 };
17746
17747 Menu.prototype.componentDidMount = function componentDidMount() {
17748 this.menuNode = (0, _reactDom.findDOMNode)(this);
17749
17750 this.adjustChildrenWidth();
17751
17752 if (this.props.hozInLine) {
17753 _util.events.on(window, 'resize', this.adjustChildrenWidth);
17754 }
17755 };
17756
17757 Menu.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
17758 if (prevState.lastVisibleIndex !== this.state.lastVisibleIndex) {
17759 this.adjustChildrenWidth();
17760 }
17761 };
17762
17763 Menu.prototype.componentWillUnmount = function componentWillUnmount() {
17764 _util.events.off(window, 'resize', this.adjustChildrenWidth);
17765 };
17766
17767 Menu.prototype.adjustChildrenWidth = function adjustChildrenWidth() {
17768 var _props = this.props,
17769 direction = _props.direction,
17770 prefix = _props.prefix,
17771 header = _props.header,
17772 footer = _props.footer,
17773 hozInLine = _props.hozInLine;
17774
17775 if (direction !== 'hoz' || !hozInLine) {
17776 return;
17777 }
17778
17779 if (!this.menuNode && !this.menuContent) {
17780 return;
17781 }
17782
17783 var children = [],
17784 spaceWidth = void 0;
17785
17786 if (header || footer) {
17787 children = this.menuContent.children;
17788 spaceWidth = (0, _util2.getWidth)(this.menuNode) - (0, _util2.getWidth)(this.menuHeader) - (0, _util2.getWidth)(this.menuFooter);
17789 } else {
17790 children = this.menuNode.children;
17791 spaceWidth = (0, _util2.getWidth)(this.menuNode);
17792 }
17793
17794 if (children.length < 2) {
17795 return;
17796 }
17797
17798 var currentSumWidth = 0,
17799 lastVisibleIndex = -1;
17800
17801 var moreNode = '';
17802
17803 var menuItemNodes = [].slice.call(children).filter(function (node) {
17804 if (node.className.split(' ').indexOf(prefix + 'menu-more') < 0) {
17805 return true;
17806 } else {
17807 moreNode = node;
17808 }
17809 return false;
17810 });
17811
17812 var overflowedItems = menuItemNodes.filter(function (c) {
17813 return c.className.split(' ').indexOf(MENUITEM_OVERFLOWED_CLASSNAME) >= 0;
17814 });
17815
17816 overflowedItems.forEach(function (c) {
17817 _util.dom.setStyle(c, 'display', 'inline-block');
17818 });
17819
17820 _util.dom.setStyle(moreNode, 'display', 'inline-block');
17821 var moreWidth = (0, _util2.getWidth)(moreNode);
17822
17823 this.menuItemSizes = menuItemNodes.map(function (c) {
17824 return (0, _util2.getWidth)(c);
17825 });
17826 var totalLen = this.menuItemSizes.length;
17827
17828 overflowedItems.forEach(function (c) {
17829 _util.dom.setStyle(c, 'display', 'none');
17830 });
17831
17832 this.menuItemSizes.forEach(function (liWidth, i) {
17833 currentSumWidth += liWidth;
17834 if (i >= totalLen - 1 && currentSumWidth <= spaceWidth || currentSumWidth + moreWidth <= spaceWidth) {
17835 lastVisibleIndex++;
17836 }
17837 });
17838
17839 if (lastVisibleIndex >= totalLen - 1) {
17840 _util.dom.setStyle(moreNode, 'display', 'none');
17841 }
17842
17843 this.setState((0, _extends3.default)({
17844 lastVisibleIndex: lastVisibleIndex
17845 }, this.getUpdateChildren()));
17846 };
17847
17848 Menu.prototype.onBlur = function onBlur(e) {
17849 this.setState({
17850 focusedKey: undefined
17851 });
17852
17853 this.props.onBlur && this.props.onBlur(e);
17854 };
17855
17856 Menu.prototype.getInitOpenKeys = function getInitOpenKeys(props, _k2n, _p2n) {
17857 var initOpenKeys = void 0;
17858
17859 var openKeys = props.openKeys,
17860 defaultOpenKeys = props.defaultOpenKeys,
17861 defaultOpenAll = props.defaultOpenAll,
17862 mode = props.mode,
17863 openMode = props.openMode;
17864
17865 if (openKeys) {
17866 initOpenKeys = openKeys;
17867 } else if (defaultOpenAll && mode === 'inline' && openMode === 'multiple') {
17868 initOpenKeys = Object.keys(_k2n).filter(function (key) {
17869 return _k2n[key].type === 'submenu';
17870 });
17871 } else {
17872 initOpenKeys = defaultOpenKeys;
17873 }
17874
17875 return (0, _util2.normalizeToArray)(initOpenKeys);
17876 };
17877
17878 Menu.prototype.handleOpen = function handleOpen(key, open, triggerType, e) {
17879 var newOpenKeys = void 0;
17880
17881 var _props2 = this.props,
17882 mode = _props2.mode,
17883 openMode = _props2.openMode;
17884 var _state = this.state,
17885 openKeys = _state.openKeys,
17886 _k2n = _state._k2n;
17887
17888 var index = openKeys.indexOf(key);
17889 if (open && index === -1) {
17890 if (mode === 'inline') {
17891 if (openMode === 'single') {
17892 newOpenKeys = openKeys.filter(function (k) {
17893 return _k2n[k] && !(0, _util2.isSibling)(_k2n[key].pos, _k2n[k].pos);
17894 });
17895 newOpenKeys.push(key);
17896 } else {
17897 newOpenKeys = openKeys.concat(key);
17898 }
17899 } else {
17900 newOpenKeys = openKeys.filter(function (k) {
17901 return _k2n[k] && (0, _util2.isAncestor)(_k2n[key].pos, _k2n[k].pos);
17902 });
17903 newOpenKeys.push(key);
17904 }
17905 } else if (!open && index > -1) {
17906 if (mode === 'inline') {
17907 newOpenKeys = [].concat(openKeys.slice(0, index), openKeys.slice(index + 1));
17908 } else if (triggerType === 'docClick') {
17909 if (!this.popupNodes.concat(this.menuNode).some(function (node) {
17910 return node.contains(e.target);
17911 })) {
17912 newOpenKeys = [];
17913 }
17914 } else {
17915 newOpenKeys = openKeys.filter(function (k) {
17916 return k !== key && _k2n[k] && !(0, _util2.isAncestor)(_k2n[k].pos, _k2n[key].pos);
17917 });
17918 }
17919 }
17920
17921 if (newOpenKeys) {
17922 if (isNil(this.props.openKeys)) {
17923 this.setState((0, _extends3.default)({
17924 openKeys: newOpenKeys
17925 }, this.getUpdateChildren()));
17926 }
17927
17928 this.props.onOpen(newOpenKeys, {
17929 key: key,
17930 open: open
17931 });
17932 }
17933 };
17934
17935 Menu.prototype.getPath = function getPath(key, _k2n, _p2n) {
17936 var keyPath = [];
17937 var labelPath = [];
17938
17939 var pos = _k2n[key].pos;
17940 var nums = pos.split('-');
17941 for (var i = 1; i < nums.length - 1; i++) {
17942 var parentNums = nums.slice(0, i + 1);
17943 var parentPos = parentNums.join('-');
17944 var parent = _p2n[parentPos];
17945 keyPath.push(parent.key);
17946 labelPath.push(parent.label);
17947 }
17948
17949 return {
17950 keyPath: keyPath,
17951 labelPath: labelPath
17952 };
17953 };
17954
17955 Menu.prototype.handleSelect = function handleSelect(key, select, menuItem) {
17956 var _state2 = this.state,
17957 _k2n = _state2._k2n,
17958 _p2n = _state2._p2n;
17959
17960 var pos = _k2n[key].pos;
17961 var level = pos.split('-').length - 1;
17962 if (this.props.shallowSelect && level > 1) {
17963 return;
17964 }
17965
17966 var newSelectedKeys = void 0;
17967
17968 var selectMode = this.props.selectMode;
17969 var selectedKeys = this.state.selectedKeys;
17970
17971 var index = selectedKeys.indexOf(key);
17972 if (select && index === -1) {
17973 if (selectMode === 'single') {
17974 newSelectedKeys = [key];
17975 } else if (selectMode === 'multiple') {
17976 newSelectedKeys = selectedKeys.concat(key);
17977 }
17978 } else if (!select && index > -1 && selectMode === 'multiple') {
17979 newSelectedKeys = [].concat(selectedKeys.slice(0, index), selectedKeys.slice(index + 1));
17980 }
17981
17982 if (newSelectedKeys) {
17983 if (isNil(this.props.selectedKeys)) {
17984 this.setState({
17985 selectedKeys: newSelectedKeys
17986 });
17987 }
17988
17989 this.props.onSelect(newSelectedKeys, menuItem, (0, _extends3.default)({
17990 key: key,
17991 select: select,
17992 label: _k2n[key].label
17993 }, this.getPath(key, _k2n, _p2n)));
17994 }
17995 };
17996
17997 Menu.prototype.handleItemClick = function handleItemClick(key, item, e) {
17998 var _k2n = this.state._k2n;
17999
18000 if (this.props.focusable) {
18001 if (isNil(this.props.focusedKey)) {
18002 this.setState({
18003 focusedKey: key
18004 });
18005 }
18006
18007 this.props.onItemFocus(key, item, e);
18008 }
18009
18010 if (item.props.type === 'item') {
18011 if (item.props.parentMode === 'popup' && this.state.openKeys.length) {
18012 if (isNil(this.props.openKeys)) {
18013 this.setState({
18014 openKeys: []
18015 });
18016 }
18017
18018 this.props.onOpen([], {
18019 key: this.state.openKeys.sort(function (prevKey, nextKey) {
18020 return _k2n[nextKey].pos.split('-').length - _k2n[prevKey].pos.split('-').length;
18021 })[0],
18022 open: false
18023 });
18024 }
18025
18026 this.props.onItemClick(key, item, e);
18027 }
18028 };
18029
18030 Menu.prototype.getAvailableKey = function getAvailableKey(pos, prev) {
18031 var _p2n = this.state._p2n;
18032
18033 var ps = Object.keys(_p2n).filter(function (p) {
18034 return (0, _util2.isAvailablePos)(pos, p, _p2n);
18035 });
18036 if (ps.length > 1) {
18037 var index = ps.indexOf(pos);
18038 var targetIndex = void 0;
18039 if (prev) {
18040 targetIndex = index === 0 ? ps.length - 1 : index - 1;
18041 } else {
18042 targetIndex = index === ps.length - 1 ? 0 : index + 1;
18043 }
18044
18045 return _p2n[ps[targetIndex]].key;
18046 }
18047
18048 return null;
18049 };
18050
18051 Menu.prototype.getParentKey = function getParentKey(pos) {
18052 return this.state._p2n[pos.slice(0, pos.length - 2)].key;
18053 };
18054
18055 Menu.prototype.handleItemKeyDown = function handleItemKeyDown(key, type, item, e) {
18056 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) {
18057 e.preventDefault();
18058 e.stopPropagation();
18059 }
18060
18061 var focusedKey = this.state.focusedKey;
18062 var _state3 = this.state,
18063 _p2n = _state3._p2n,
18064 _k2n = _state3._k2n;
18065 var direction = this.props.direction;
18066
18067 var pos = _k2n[key].pos;
18068 var level = pos.split('-').length - 1;
18069 switch (e.keyCode) {
18070 case _util.KEYCODE.UP:
18071 {
18072 var avaliableKey = this.getAvailableKey(pos, true);
18073 if (avaliableKey) {
18074 focusedKey = avaliableKey;
18075 }
18076 break;
18077 }
18078 case _util.KEYCODE.DOWN:
18079 {
18080 var _avaliableKey = void 0;
18081 if (direction === 'hoz' && level === 1 && type === 'submenu') {
18082 this.handleOpen(key, true);
18083 _avaliableKey = (0, _util2.getFirstAvaliablelChildKey)(pos, _p2n);
18084 } else {
18085 _avaliableKey = this.getAvailableKey(pos, false);
18086 }
18087 if (_avaliableKey) {
18088 focusedKey = _avaliableKey;
18089 }
18090 break;
18091 }
18092 case _util.KEYCODE.RIGHT:
18093 {
18094 var _avaliableKey2 = void 0;
18095 if (direction === 'hoz' && level === 1) {
18096 _avaliableKey2 = this.getAvailableKey(pos, false);
18097 } else if (type === 'submenu') {
18098 this.handleOpen(key, true);
18099 _avaliableKey2 = (0, _util2.getFirstAvaliablelChildKey)(pos, _p2n);
18100 }
18101 if (_avaliableKey2) {
18102 focusedKey = _avaliableKey2;
18103 }
18104 break;
18105 }
18106 case _util.KEYCODE.ENTER:
18107 {
18108 if (type === 'submenu') {
18109 this.handleOpen(key, true);
18110 var _avaliableKey3 = (0, _util2.getFirstAvaliablelChildKey)(pos, _p2n);
18111 if (_avaliableKey3) {
18112 focusedKey = _avaliableKey3;
18113 }
18114 }
18115 break;
18116 }
18117 case _util.KEYCODE.LEFT:
18118 {
18119 if (direction === 'hoz' && level === 1) {
18120 var _avaliableKey4 = this.getAvailableKey(pos, true);
18121 if (_avaliableKey4) {
18122 focusedKey = _avaliableKey4;
18123 }
18124 } else if (level > 1) {
18125 var parentKey = this.getParentKey(pos);
18126 this.handleOpen(parentKey, false);
18127 focusedKey = parentKey;
18128 }
18129 break;
18130 }
18131 case _util.KEYCODE.ESC:
18132 if (level > 1) {
18133 var _parentKey = this.getParentKey(pos);
18134 this.handleOpen(_parentKey, false);
18135 focusedKey = _parentKey;
18136 }
18137 break;
18138
18139 case _util.KEYCODE.TAB:
18140 focusedKey = null;
18141 break;
18142 default:
18143 break;
18144 }
18145
18146 if (focusedKey !== this.state.focusedKey) {
18147 if (isNil(this.props.focusedKey)) {
18148 this.setState({
18149 focusedKey: focusedKey
18150 });
18151 }
18152
18153 this.props.onItemKeyDown(focusedKey, item, e);
18154 this.props.onItemFocus(focusedKey, e);
18155 }
18156 };
18157
18158 Menu.prototype.render = function render() {
18159 var _cx2;
18160
18161 var _props3 = this.props,
18162 prefix = _props3.prefix,
18163 className = _props3.className,
18164 direction = _props3.direction,
18165 hozAlign = _props3.hozAlign,
18166 header = _props3.header,
18167 footer = _props3.footer,
18168 embeddable = _props3.embeddable,
18169 selectMode = _props3.selectMode,
18170 hozInLine = _props3.hozInLine,
18171 rtl = _props3.rtl,
18172 flatenContent = _props3.flatenContent;
18173 var newChildren = this.state.newChildren;
18174
18175 var others = pickOthers(Object.keys(Menu.propTypes), this.props);
18176
18177 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));
18178
18179 var role = direction === 'hoz' ? 'menubar' : 'menu';
18180 var ariaMultiselectable = void 0;
18181 if ('selectMode' in this.props) {
18182 role = 'listbox';
18183 ariaMultiselectable = !!(selectMode === 'multiple');
18184 }
18185
18186 var headerElement = header ? _react2.default.createElement('li', { className: prefix + 'menu-header', ref: this.menuHeaderRef }, header) : null;
18187 var itemsElement = !flatenContent && (header || footer) ? _react2.default.createElement('ul', { className: prefix + 'menu-content', ref: this.menuContentRef }, newChildren) : newChildren;
18188 var footerElement = footer ? _react2.default.createElement('li', { className: prefix + 'menu-footer', ref: this.menuFooterRef }, footer) : null;
18189 var shouldWrapItemsAndFooter = hozAlign === 'right' && !!header;
18190
18191 if (rtl) {
18192 others.dir = 'rtl';
18193 }
18194
18195 return _react2.default.createElement('ul', (0, _extends3.default)({
18196 role: role,
18197 onBlur: this.onBlur,
18198 className: newClassName,
18199 onKeyDown: this.handleEnter,
18200 'aria-multiselectable': ariaMultiselectable
18201 }, others), headerElement, shouldWrapItemsAndFooter ? _react2.default.createElement('div', { className: prefix + 'menu-hoz-right' }, itemsElement, footerElement) : null, !shouldWrapItemsAndFooter ? itemsElement : null, !shouldWrapItemsAndFooter ? footerElement : null);
18202 };
18203
18204 return Menu;
18205}(_react.Component), _class.isNextMenu = true, _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
18206 prefix: _propTypes2.default.string,
18207 pure: _propTypes2.default.bool,
18208 rtl: _propTypes2.default.bool,
18209 className: _propTypes2.default.string,
18210 /**
18211 * 菜单项和子菜单
18212 */
18213 children: _propTypes2.default.node,
18214 /**
18215 * 点击菜单项触发的回调函数
18216 * @param {String} key 点击的菜单项的 key 值
18217 * @param {Object} item 点击的菜单项对象
18218 * @param {Object} event 点击的事件对象
18219 */
18220 onItemClick: _propTypes2.default.func,
18221 /**
18222 * 当前打开的子菜单的 key 值
18223 */
18224 openKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
18225 /**
18226 * 初始打开的子菜单的 key 值
18227 */
18228 defaultOpenKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
18229 /**
18230 * 初始展开所有的子菜单,只在 mode 设置为 'inline' 以及 openMode 设置为 'multiple' 下生效,优先级高于 defaultOpenKeys
18231 */
18232 defaultOpenAll: _propTypes2.default.bool,
18233 /**
18234 * 打开或关闭子菜单触发的回调函数
18235 * @param {Array} key 打开的所有子菜单的 key 值
18236 * @param {Object} extra 额外参数
18237 * @param {String} extra.key 当前操作子菜单的 key 值
18238 * @param {Boolean} extra.open 是否是打开
18239 */
18240 onOpen: _propTypes2.default.func,
18241 /**
18242 * 子菜单打开的模式
18243 */
18244 mode: _propTypes2.default.oneOf(['inline', 'popup']),
18245 /**
18246 * 子菜单打开的触发行为
18247 */
18248 triggerType: _propTypes2.default.oneOf(['click', 'hover']),
18249 /**
18250 * 展开内连子菜单的模式,同时可以展开一个子菜单还是多个子菜单,该属性仅在 mode 为 inline 时生效
18251 */
18252 openMode: _propTypes2.default.oneOf(['single', 'multiple']),
18253 /**
18254 * 内连子菜单缩进距离
18255 */
18256 inlineIndent: _propTypes2.default.number,
18257 inlineArrowDirection: _propTypes2.default.oneOf(['down', 'right']),
18258 /**
18259 * 是否自动让弹层的宽度和菜单项保持一致,如果弹层的宽度比菜单项小则和菜单项保持一致,如果宽度大于菜单项则不做处理
18260 */
18261 popupAutoWidth: _propTypes2.default.bool,
18262 /**
18263 * 弹层的对齐方式
18264 */
18265 popupAlign: _propTypes2.default.oneOf(['follow', 'outside']),
18266 /**
18267 * 弹层自定义 props
18268 */
18269 popupProps: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]),
18270 /**
18271 * 弹出子菜单自定义 className
18272 */
18273 popupClassName: _propTypes2.default.string,
18274 /**
18275 * 弹出子菜单自定义 style
18276 */
18277 popupStyle: _propTypes2.default.object,
18278 /**
18279 * 当前选中菜单项的 key 值
18280 */
18281 selectedKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
18282 /**
18283 * 初始选中菜单项的 key 值
18284 */
18285 defaultSelectedKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
18286 /**
18287 * 选中或取消选中菜单项触发的回调函数
18288 * @param {Array} selectedKeys 选中的所有菜单项的值
18289 * @param {Object} item 选中或取消选中的菜单项
18290 * @param {Object} extra 额外参数
18291 * @param {Boolean} extra.select 是否是选中
18292 * @param {Array} extra.key 菜单项的 key
18293 * @param {Object} extra.label 菜单项的文本
18294 * @param {Array} extra.keyPath 菜单项 key 的路径
18295 */
18296 onSelect: _propTypes2.default.func,
18297 /**
18298 * 选中模式,单选还是多选,默认无值,不可选
18299 */
18300 selectMode: _propTypes2.default.oneOf(['single', 'multiple']),
18301 /**
18302 * 是否只能选择第一层菜单项(不能选择子菜单中的菜单项)
18303 */
18304 shallowSelect: _propTypes2.default.bool,
18305 /**
18306 * 是否显示选中图标,如果设置为 false 需配合配置平台设置选中时的背景色以示区分
18307 */
18308 hasSelectedIcon: _propTypes2.default.bool,
18309 labelToggleChecked: _propTypes2.default.bool,
18310 /**
18311 * 是否将选中图标居右,仅当 hasSelectedIcon 为true 时生效。
18312 * 注意:SubMenu 上的选中图标一直居左,不受此API控制
18313 */
18314 isSelectIconRight: _propTypes2.default.bool,
18315 /**
18316 * 菜单第一层展示方向
18317 */
18318 direction: _propTypes2.default.oneOf(['ver', 'hoz']),
18319 /**
18320 * 横向菜单条 item 和 footer 的对齐方向,在 direction 设置为 'hoz' 并且 header 存在时生效
18321 */
18322 hozAlign: _propTypes2.default.oneOf(['left', 'right']),
18323 /**
18324 * 横向菜单模式下,是否维持在一行,即超出一行折叠成 SubMenu 显示, 仅在 direction='hoz' mode='popup' 时生效
18325 */
18326 hozInLine: _propTypes2.default.bool,
18327 renderMore: _propTypes2.default.func,
18328 /**
18329 * 自定义菜单头部
18330 */
18331 header: _propTypes2.default.node,
18332 /**
18333 * 自定义菜单尾部
18334 */
18335 footer: _propTypes2.default.node,
18336 /**
18337 * 是否自动获得焦点
18338 */
18339 autoFocus: _propTypes2.default.bool,
18340 /**
18341 * 当前获得焦点的子菜单或菜单项 key 值
18342 */
18343 focusedKey: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
18344 focusable: _propTypes2.default.bool,
18345 onItemFocus: _propTypes2.default.func,
18346 onBlur: _propTypes2.default.func,
18347 /**
18348 * 是否开启嵌入式模式,一般用于Layout的布局中,开启后没有默认背景、外层border、box-shadow,可以配合`<Menu style={{lineHeight: '100px'}}>` 自定义高度
18349 * @version 1.18
18350 */
18351 embeddable: _propTypes2.default.bool,
18352 onItemKeyDown: _propTypes2.default.func,
18353 expandAnimation: _propTypes2.default.bool,
18354 itemClassName: _propTypes2.default.string,
18355 /**
18356 * 可配置的icons,包括 select 等
18357 */
18358 icons: _propTypes2.default.object,
18359 // content 是否为单层模式,目前主要在有 header 或 footer 的时候有意义
18360 flatenContent: _propTypes2.default.bool
18361}), _class.defaultProps = {
18362 prefix: 'next-',
18363 pure: false,
18364 defaultOpenKeys: [],
18365 defaultOpenAll: false,
18366 onOpen: noop,
18367 mode: 'inline',
18368 triggerType: 'click',
18369 openMode: 'multiple',
18370 inlineIndent: 20,
18371 inlineArrowDirection: 'down',
18372 popupAutoWidth: false,
18373 popupAlign: 'follow',
18374 popupProps: {},
18375 defaultSelectedKeys: [],
18376 onSelect: noop,
18377 shallowSelect: false,
18378 hasSelectedIcon: true,
18379 isSelectIconRight: false,
18380 labelToggleChecked: true,
18381 direction: 'ver',
18382 hozAlign: 'left',
18383 hozInLine: false,
18384 autoFocus: false,
18385 focusable: true,
18386 embeddable: false,
18387 onItemFocus: noop,
18388 onItemKeyDown: noop,
18389 onItemClick: noop,
18390 expandAnimation: true,
18391 icons: {}
18392}, _temp);
18393Menu.displayName = 'Menu';
18394exports.default = (0, _reactLifecyclesCompat.polyfill)(Menu);
18395module.exports = exports['default'];
18396
18397/***/ }),
18398/* 143 */
18399/***/ (function(module, exports, __webpack_require__) {
18400
18401"use strict";
18402
18403
18404exports.__esModule = true;
18405exports.default = undefined;
18406
18407var _objectWithoutProperties2 = __webpack_require__(8);
18408
18409var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
18410
18411var _extends2 = __webpack_require__(1);
18412
18413var _extends3 = _interopRequireDefault(_extends2);
18414
18415var _typeof2 = __webpack_require__(14);
18416
18417var _typeof3 = _interopRequireDefault(_typeof2);
18418
18419var _classCallCheck2 = __webpack_require__(2);
18420
18421var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
18422
18423var _possibleConstructorReturn2 = __webpack_require__(3);
18424
18425var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
18426
18427var _inherits2 = __webpack_require__(4);
18428
18429var _inherits3 = _interopRequireDefault(_inherits2);
18430
18431var _class, _temp;
18432
18433var _react = __webpack_require__(0);
18434
18435var _react2 = _interopRequireDefault(_react);
18436
18437var _reactDom = __webpack_require__(12);
18438
18439var _propTypes = __webpack_require__(5);
18440
18441var _propTypes2 = _interopRequireDefault(_propTypes);
18442
18443var _classnames = __webpack_require__(7);
18444
18445var _classnames2 = _interopRequireDefault(_classnames);
18446
18447var _animate = __webpack_require__(20);
18448
18449var _animate2 = _interopRequireDefault(_animate);
18450
18451var _icon = __webpack_require__(11);
18452
18453var _icon2 = _interopRequireDefault(_icon);
18454
18455var _util = __webpack_require__(6);
18456
18457var _item = __webpack_require__(38);
18458
18459var _item2 = _interopRequireDefault(_item);
18460
18461var _selectableItem = __webpack_require__(88);
18462
18463var _selectableItem2 = _interopRequireDefault(_selectableItem);
18464
18465var _popupItem = __webpack_require__(144);
18466
18467var _popupItem2 = _interopRequireDefault(_popupItem);
18468
18469var _util2 = __webpack_require__(89);
18470
18471function _interopRequireDefault(obj) {
18472 return obj && obj.__esModule ? obj : { default: obj };
18473}
18474
18475var Expand = _animate2.default.Expand;
18476var bindCtx = _util.func.bindCtx;
18477
18478/**
18479 * Menu.SubMenu
18480 * @order 1
18481 */
18482
18483var SubMenu = (_temp = _class = function (_Component) {
18484 (0, _inherits3.default)(SubMenu, _Component);
18485
18486 function SubMenu(props) {
18487 (0, _classCallCheck3.default)(this, SubMenu);
18488
18489 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
18490
18491 bindCtx(_this, ['handleMouseEnter', 'handleMouseLeave', 'handleClick', 'handleOpen', 'afterLeave']);
18492 return _this;
18493 }
18494
18495 SubMenu.prototype.componentDidMount = function componentDidMount() {
18496 this.itemNode = (0, _reactDom.findDOMNode)(this);
18497 };
18498
18499 SubMenu.prototype.afterLeave = function afterLeave() {
18500 var _props = this.props,
18501 focused = _props.focused,
18502 root = _props.root;
18503 var focusable = root.props.focusable;
18504
18505 if (focusable && focused) {
18506 this.itemNode.focus();
18507 }
18508 };
18509
18510 SubMenu.prototype.getOpen = function getOpen() {
18511 var _props2 = this.props,
18512 _key = _props2._key,
18513 root = _props2.root;
18514 var openKeys = root.state.openKeys;
18515
18516 return openKeys.indexOf(_key) > -1;
18517 };
18518
18519 SubMenu.prototype.handleMouseEnter = function handleMouseEnter(e) {
18520 this.handleOpen(true);
18521
18522 this.props.onMouseEnter && this.props.onMouseEnter(e);
18523 };
18524
18525 SubMenu.prototype.handleMouseLeave = function handleMouseLeave(e) {
18526 this.handleOpen(false);
18527
18528 this.props.onMouseLeave && this.props.onMouseLeave(e);
18529 };
18530
18531 SubMenu.prototype.handleClick = function handleClick(e) {
18532 var _props3 = this.props,
18533 root = _props3.root,
18534 selectable = _props3.selectable;
18535 var selectMode = root.props.selectMode;
18536
18537 if (selectMode && selectable) {
18538 e.stopPropagation();
18539 }
18540
18541 var open = this.getOpen();
18542 this.handleOpen(!open);
18543 };
18544
18545 SubMenu.prototype.handleOpen = function handleOpen(open, triggerType, e) {
18546 var _props4 = this.props,
18547 _key = _props4._key,
18548 root = _props4.root;
18549
18550 root.handleOpen(_key, open, triggerType, e);
18551 };
18552
18553 SubMenu.prototype.passParentToChildren = function passParentToChildren(children) {
18554 var _this2 = this;
18555
18556 var _props5 = this.props,
18557 mode = _props5.mode,
18558 root = _props5.root;
18559
18560 return _react.Children.map(children, function (child) {
18561 // to fix https://github.com/alibaba-fusion/next/issues/952
18562 if (typeof child !== 'function' && (typeof child === 'undefined' ? 'undefined' : (0, _typeof3.default)(child)) !== 'object') {
18563 return child;
18564 }
18565
18566 return (0, _react.cloneElement)(child, {
18567 parent: _this2,
18568 parentMode: mode || root.props.mode
18569 });
18570 });
18571 };
18572
18573 SubMenu.prototype.renderInline = function renderInline() {
18574 var _cx, _cx2, _cx3, _cx4;
18575
18576 var _props6 = this.props,
18577 _key = _props6._key,
18578 level = _props6.level,
18579 inlineLevel = _props6.inlineLevel,
18580 root = _props6.root,
18581 className = _props6.className,
18582 selectableFromProps = _props6.selectable,
18583 label = _props6.label,
18584 children = _props6.children,
18585 noIcon = _props6.noIcon,
18586 subMenuContentClassName = _props6.subMenuContentClassName,
18587 propsTriggerType = _props6.triggerType,
18588 parentMode = _props6.parentMode;
18589 var _root$props = root.props,
18590 prefix = _root$props.prefix,
18591 selectMode = _root$props.selectMode,
18592 rootTriggerType = _root$props.triggerType,
18593 inlineArrowDirection = _root$props.inlineArrowDirection,
18594 expandAnimation = _root$props.expandAnimation,
18595 rtl = _root$props.rtl;
18596
18597 var triggerType = propsTriggerType || rootTriggerType;
18598 var open = this.getOpen();
18599
18600 var _root$state = root.state,
18601 selectedKeys = _root$state.selectedKeys,
18602 _k2n = _root$state._k2n;
18603
18604 var isChildSelected = (0, _util2.getChildSelected)({
18605 _key: _key,
18606 _k2n: _k2n,
18607 selectMode: selectMode,
18608 selectedKeys: selectedKeys
18609 });
18610
18611 var others = _util.obj.pickOthers(Object.keys(SubMenu.propTypes), this.props);
18612
18613 var liProps = {
18614 className: (0, _classnames2.default)((_cx = {}, _cx[prefix + 'menu-sub-menu-wrapper'] = true, _cx[className] = !!className, _cx))
18615 };
18616 var itemProps = {
18617 'aria-expanded': open,
18618 _key: _key,
18619 level: level,
18620 role: 'listitem',
18621 inlineLevel: inlineLevel,
18622 root: root,
18623 type: 'submenu',
18624 component: 'div',
18625 parentMode: parentMode,
18626 className: (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'opened'] = open, _cx2[prefix + 'child-selected'] = isChildSelected, _cx2))
18627 };
18628
18629 if (typeof label === 'string') {
18630 itemProps.title = label;
18631 }
18632
18633 var arrorProps = {
18634 type: inlineArrowDirection === 'right' ? 'arrow-right' : 'arrow-down',
18635 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))
18636 };
18637
18638 var selectable = !!selectMode && selectableFromProps;
18639 var NewItem = selectable ? _selectableItem2.default : _item2.default;
18640
18641 if (triggerType === 'hover') {
18642 liProps.onMouseEnter = this.handleMouseEnter;
18643 liProps.onMouseLeave = this.handleMouseLeave;
18644 } else if (selectable) {
18645 arrorProps.onClick = this.handleClick;
18646 } else {
18647 itemProps.onClick = this.handleClick;
18648 }
18649
18650 var newSubMenuContentClassName = (0, _classnames2.default)((_cx4 = {}, _cx4[prefix + 'menu-sub-menu'] = true, _cx4[subMenuContentClassName] = !!subMenuContentClassName, _cx4));
18651
18652 var roleMenu = 'menu',
18653 roleItem = 'menuitem';
18654 if ('selectMode' in root.props) {
18655 roleMenu = 'listbox';
18656 roleItem = 'option';
18657 }
18658
18659 var subMenu = open ? _react2.default.createElement('ul', { role: roleMenu, dir: rtl ? 'rtl' : undefined, className: newSubMenuContentClassName }, this.passParentToChildren(children)) : null;
18660
18661 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);
18662 };
18663
18664 SubMenu.prototype.renderPopup = function renderPopup() {
18665 var _cx5;
18666
18667 var _props7 = this.props,
18668 children = _props7.children,
18669 subMenuContentClassName = _props7.subMenuContentClassName,
18670 noIcon = _props7.noIcon,
18671 others = (0, _objectWithoutProperties3.default)(_props7, ['children', 'subMenuContentClassName', 'noIcon']);
18672
18673 var root = this.props.root;
18674 var _root$props2 = root.props,
18675 prefix = _root$props2.prefix,
18676 popupClassName = _root$props2.popupClassName,
18677 popupStyle = _root$props2.popupStyle,
18678 rtl = _root$props2.rtl;
18679
18680 var newClassName = (0, _classnames2.default)((_cx5 = {}, _cx5[prefix + 'menu'] = true, _cx5[prefix + 'ver'] = true, _cx5[popupClassName] = !!popupClassName, _cx5[subMenuContentClassName] = !!subMenuContentClassName, _cx5));
18681
18682 others.rtl = rtl;
18683
18684 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)));
18685 };
18686
18687 SubMenu.prototype.render = function render() {
18688 var _props8 = this.props,
18689 mode = _props8.mode,
18690 root = _props8.root;
18691
18692 var newMode = mode || root.props.mode;
18693
18694 return newMode === 'popup' ? this.renderPopup() : this.renderInline();
18695 };
18696
18697 return SubMenu;
18698}(_react.Component), _class.menuChildType = 'submenu', _class.propTypes = {
18699 _key: _propTypes2.default.string,
18700 root: _propTypes2.default.object,
18701 level: _propTypes2.default.number,
18702 inlineLevel: _propTypes2.default.number,
18703 groupIndent: _propTypes2.default.number,
18704 /**
18705 * 标签内容
18706 */
18707 label: _propTypes2.default.node,
18708 /**
18709 * 是否可选,该属性仅在设置 Menu 组件 selectMode 属性后生效
18710 */
18711 selectable: _propTypes2.default.bool,
18712 /**
18713 * 子菜单打开方式,如果设置会覆盖 Menu 上的同名属性
18714 * @default Menu 的 mode 属性值
18715 */
18716 mode: _propTypes2.default.oneOf(['inline', 'popup']),
18717 /**
18718 * 是否需要提示当前项可展开的 icon,默认是有的
18719 */
18720 noIcon: _propTypes2.default.bool,
18721 /**
18722 * 菜单项或下一级子菜单
18723 */
18724 children: _propTypes2.default.node,
18725 onMouseEnter: _propTypes2.default.func,
18726 onMouseLeave: _propTypes2.default.func,
18727 subMenuContentClassName: _propTypes2.default.string,
18728 triggerType: _propTypes2.default.oneOf(['click', 'hover']),
18729 align: _propTypes2.default.oneOf(['outside', 'follow']),
18730 parentMode: _propTypes2.default.oneOf(['inline', 'popup']),
18731 parent: _propTypes2.default.any
18732}, _class.defaultProps = {
18733 groupIndent: 0,
18734 noIcon: false,
18735 selectable: false
18736}, _temp);
18737SubMenu.displayName = 'SubMenu';
18738exports.default = SubMenu;
18739module.exports = exports['default'];
18740
18741/***/ }),
18742/* 144 */
18743/***/ (function(module, exports, __webpack_require__) {
18744
18745"use strict";
18746
18747
18748exports.__esModule = true;
18749exports.default = undefined;
18750
18751var _objectWithoutProperties2 = __webpack_require__(8);
18752
18753var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
18754
18755var _extends2 = __webpack_require__(1);
18756
18757var _extends3 = _interopRequireDefault(_extends2);
18758
18759var _classCallCheck2 = __webpack_require__(2);
18760
18761var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
18762
18763var _possibleConstructorReturn2 = __webpack_require__(3);
18764
18765var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
18766
18767var _inherits2 = __webpack_require__(4);
18768
18769var _inherits3 = _interopRequireDefault(_inherits2);
18770
18771var _class, _temp;
18772
18773var _react = __webpack_require__(0);
18774
18775var _react2 = _interopRequireDefault(_react);
18776
18777var _reactDom = __webpack_require__(12);
18778
18779var _propTypes = __webpack_require__(5);
18780
18781var _propTypes2 = _interopRequireDefault(_propTypes);
18782
18783var _classnames = __webpack_require__(7);
18784
18785var _classnames2 = _interopRequireDefault(_classnames);
18786
18787var _icon = __webpack_require__(11);
18788
18789var _icon2 = _interopRequireDefault(_icon);
18790
18791var _overlay = __webpack_require__(15);
18792
18793var _overlay2 = _interopRequireDefault(_overlay);
18794
18795var _util = __webpack_require__(6);
18796
18797var _item = __webpack_require__(38);
18798
18799var _item2 = _interopRequireDefault(_item);
18800
18801var _selectableItem = __webpack_require__(88);
18802
18803var _selectableItem2 = _interopRequireDefault(_selectableItem);
18804
18805var _util2 = __webpack_require__(89);
18806
18807function _interopRequireDefault(obj) {
18808 return obj && obj.__esModule ? obj : { default: obj };
18809}
18810
18811var bindCtx = _util.func.bindCtx;
18812var setStyle = _util.dom.setStyle;
18813
18814var Popup = _overlay2.default.Popup;
18815
18816/**
18817 * Menu.PopupItem
18818 * @order 2
18819 */
18820var PopupItem = (_temp = _class = function (_Component) {
18821 (0, _inherits3.default)(PopupItem, _Component);
18822
18823 function PopupItem(props) {
18824 (0, _classCallCheck3.default)(this, PopupItem);
18825
18826 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
18827
18828 bindCtx(_this, ['handleOpen', 'handlePopupOpen', 'handlePopupClose', 'getPopup']);
18829 return _this;
18830 }
18831
18832 PopupItem.prototype.getPopup = function getPopup(ref) {
18833 this.popup = ref;
18834 };
18835
18836 PopupItem.prototype.getOpen = function getOpen() {
18837 var _props = this.props,
18838 _key = _props._key,
18839 root = _props.root;
18840 var openKeys = root.state.openKeys;
18841
18842 return openKeys.indexOf(_key) > -1;
18843 };
18844
18845 PopupItem.prototype.getPopupProps = function getPopupProps() {
18846 var popupProps = this.props.root.props.popupProps;
18847
18848 if (typeof popupProps === 'function') {
18849 popupProps = popupProps(this.props);
18850 }
18851 return popupProps;
18852 };
18853
18854 PopupItem.prototype.handleOpen = function handleOpen(open, triggerType, e) {
18855 var _props2 = this.props,
18856 _key = _props2._key,
18857 root = _props2.root;
18858
18859 root.handleOpen(_key, open, triggerType, e);
18860
18861 var popupProps = this.popupProps;
18862 popupProps.onVisibleChange && popupProps.onVisibleChange(open, triggerType, e);
18863 };
18864
18865 PopupItem.prototype.handlePopupOpen = function handlePopupOpen() {
18866 var _props3 = this.props,
18867 root = _props3.root,
18868 level = _props3.level,
18869 align = _props3.align,
18870 autoWidth = _props3.autoWidth;
18871 var _root$props = root.props,
18872 rootPopupAutoWidth = _root$props.popupAutoWidth,
18873 rootPopupAlign = _root$props.popupAlign,
18874 direction = _root$props.direction;
18875
18876 var popupAlign = align || rootPopupAlign;
18877 var popupAutoWidth = 'autoWidth' in this.props ? autoWidth : rootPopupAutoWidth;
18878 try {
18879 // avoid errors while dom removed and js executing
18880 var itemNode = (0, _reactDom.findDOMNode)(this);
18881 var menuNode = itemNode.parentNode;
18882 this.popupNode = this.popup.getInstance().overlay.getInstance().getContentNode();
18883 root.popupNodes.push(this.popupNode);
18884
18885 if (popupAutoWidth) {
18886 var targetNode = direction === 'hoz' && level === 1 ? itemNode : menuNode;
18887
18888 if (targetNode.offsetWidth > this.popupNode.offsetWidth) {
18889 setStyle(this.popupNode, 'width', targetNode.offsetWidth + 'px');
18890 }
18891 }
18892 if (popupAlign === 'outside' && !(direction === 'hoz' && level === 1)) {
18893 setStyle(this.popupNode, 'height', menuNode.offsetHeight + 'px');
18894 this.popupNode.firstElementChild && setStyle(this.popupNode.firstElementChild, 'overflow-y', 'auto');
18895 }
18896 // removeClass(this.popupNode, `${prefix}hide`);
18897
18898 var popupProps = this.popupProps;
18899 popupProps.onOpen && popupProps.onOpen();
18900 } catch (error) {
18901 return null;
18902 }
18903 };
18904
18905 PopupItem.prototype.handlePopupClose = function handlePopupClose() {
18906 var root = this.props.root;
18907
18908 var popupNodes = root.popupNodes;
18909 var index = popupNodes.indexOf(this.popupNode);
18910 index > -1 && popupNodes.splice(index, 1);
18911
18912 var popupProps = this.popupProps;
18913 popupProps.onClose && popupProps.onClose();
18914 };
18915
18916 PopupItem.prototype.renderItem = function renderItem(selectable, children, others) {
18917 var _cx;
18918
18919 var _props4 = this.props,
18920 _key = _props4._key,
18921 root = _props4.root,
18922 level = _props4.level,
18923 inlineLevel = _props4.inlineLevel,
18924 label = _props4.label,
18925 className = _props4.className;
18926 var _root$props2 = root.props,
18927 prefix = _root$props2.prefix,
18928 selectMode = _root$props2.selectMode;
18929
18930 var NewItem = selectable ? _selectableItem2.default : _item2.default;
18931 var open = this.getOpen();
18932
18933 var _root$state = root.state,
18934 selectedKeys = _root$state.selectedKeys,
18935 _k2n = _root$state._k2n;
18936
18937 var isChildSelected = (0, _util2.getChildSelected)({
18938 _key: _key,
18939 _k2n: _k2n,
18940 selectMode: selectMode,
18941 selectedKeys: selectedKeys
18942 });
18943
18944 var itemProps = {
18945 'aria-haspopup': true,
18946 'aria-expanded': open,
18947 _key: _key,
18948 root: root,
18949 level: level,
18950 inlineLevel: inlineLevel,
18951 type: 'submenu'
18952 };
18953
18954 itemProps.className = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'opened'] = open, _cx[prefix + 'child-selected'] = isChildSelected, _cx[className] = !!className, _cx));
18955
18956 return _react2.default.createElement(NewItem, (0, _extends3.default)({}, itemProps, others), _react2.default.createElement('span', { className: prefix + 'menu-item-text' }, label), children);
18957 };
18958
18959 PopupItem.prototype.renderPopup = function renderPopup(trigger, triggerType, positionProps, children) {
18960 var _this2 = this;
18961
18962 var _props5 = this.props,
18963 root = _props5.root,
18964 level = _props5.level,
18965 selectable = _props5.selectable,
18966 propCls = _props5.className;
18967 var direction = root.props.direction;
18968
18969 this.popupProps = this.getPopupProps();
18970 var open = this.getOpen();
18971
18972 if (direction === 'hoz' && level === 1 && selectable) {
18973 positionProps.target = function () {
18974 return (0, _reactDom.findDOMNode)(_this2);
18975 };
18976 }
18977
18978 var posCls = positionProps.className,
18979 otherPostion = (0, _objectWithoutProperties3.default)(positionProps, ['className']);
18980
18981 var className = (0, _classnames2.default)(propCls, posCls);
18982
18983 return _react2.default.createElement(Popup, (0, _extends3.default)({
18984 ref: this.getPopup
18985 }, otherPostion, this.popupProps, {
18986 canCloseByEsc: false,
18987 trigger: trigger,
18988 triggerType: triggerType,
18989 visible: open,
18990 pinFollowBaseElementWhenFixed: true,
18991 onVisibleChange: this.handleOpen,
18992 onOpen: this.handlePopupOpen,
18993 onClose: this.handlePopupClose
18994 }), _react2.default.createElement('div', { className: className }, children));
18995 };
18996
18997 PopupItem.prototype.render = function render() {
18998 var _this3 = this;
18999
19000 var _props6 = this.props,
19001 root = _props6.root,
19002 level = _props6.level,
19003 hasSubMenu = _props6.hasSubMenu,
19004 selectableFromProps = _props6.selectable,
19005 children = _props6.children,
19006 triggerType = _props6.triggerType,
19007 align = _props6.align,
19008 noIcon = _props6.noIcon,
19009 rtl = _props6.rtl;
19010
19011 var others = _util.obj.pickOthers(Object.keys(PopupItem.propTypes), this.props);
19012 var _root$props3 = root.props,
19013 prefix = _root$props3.prefix,
19014 selectMode = _root$props3.selectMode,
19015 direction = _root$props3.direction,
19016 rootPopupAlign = _root$props3.popupAlign,
19017 rootTriggerType = _root$props3.triggerType;
19018
19019 var popupAlign = align || rootPopupAlign;
19020 var newTriggerType = triggerType || (hasSubMenu ? rootTriggerType : 'hover');
19021 var newChildren = Array.isArray(children) ? children[0] : children;
19022 // let newChildren = Array.isArray(children) ? children[0] : children;
19023 // newChildren = cloneElement(newChildren, {
19024 // className: cx({
19025 // [`${prefix}menu-popup-content`]: true,
19026 // [newChildren.props.className]: !!newChildren.props.className,
19027 // [`${prefix}hide`]: popupAutoWidth || popupAlign === 'outside'
19028 // })
19029 // });
19030 var selectable = selectMode && selectableFromProps;
19031 var triggerIsIcon = selectable && newTriggerType === 'click';
19032 var open = this.getOpen();
19033
19034 var positionProps = {};
19035 var arrowProps = void 0;
19036
19037 if (direction === 'hoz' && level === 1) {
19038 var _cx2;
19039
19040 positionProps.align = 'tl bl';
19041 positionProps.className = prefix + 'menu-spacing-tb';
19042
19043 arrowProps = {
19044 type: 'arrow-down',
19045 className: (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'menu-hoz-icon-arrow'] = true, _cx2[prefix + 'open'] = open, _cx2))
19046 };
19047 } else {
19048 if (popupAlign === 'outside') {
19049 positionProps.target = function () {
19050 return (0, _reactDom.findDOMNode)(root);
19051 };
19052 positionProps.align = 'tl tr';
19053
19054 positionProps.className = prefix + 'menu-spacing-lr ' + prefix + 'menu-outside';
19055 } else {
19056 if (triggerIsIcon) {
19057 positionProps.target = function () {
19058 return (0, _reactDom.findDOMNode)(_this3);
19059 };
19060 }
19061 positionProps.align = 'tl tr';
19062 positionProps.className = prefix + 'menu-spacing-lr';
19063 }
19064
19065 arrowProps = {
19066 type: 'arrow-right',
19067 className: prefix + 'menu-icon-arrow ' + prefix + 'menu-symbol-popupfold'
19068 };
19069 }
19070
19071 var arrow = _react2.default.createElement(_icon2.default, arrowProps);
19072 var trigger = triggerIsIcon ? arrow : this.renderItem(selectable, noIcon ? null : arrow, others);
19073 var popup = this.renderPopup(trigger, newTriggerType, positionProps, newChildren);
19074 return triggerIsIcon ? this.renderItem(selectable, popup, others) : popup;
19075 };
19076
19077 return PopupItem;
19078}(_react.Component), _class.menuChildType = 'submenu', _class.propTypes = {
19079 _key: _propTypes2.default.string,
19080 root: _propTypes2.default.object,
19081 level: _propTypes2.default.number,
19082 hasSubMenu: _propTypes2.default.bool,
19083 noIcon: _propTypes2.default.bool,
19084 rtl: _propTypes2.default.bool,
19085 selectable: _propTypes2.default.bool,
19086 /**
19087 * 标签内容
19088 */
19089 label: _propTypes2.default.node,
19090 /**
19091 * 自定义弹层内容
19092 */
19093 children: _propTypes2.default.node,
19094 className: _propTypes2.default.string,
19095 /**
19096 * 子菜单打开的触发行为
19097 */
19098 triggerType: _propTypes2.default.oneOf(['click', 'hover']),
19099 align: _propTypes2.default.oneOf(['outside', 'follow']),
19100 autoWidth: _propTypes2.default.bool
19101}, _class.defaultProps = {
19102 selectable: false,
19103 noIcon: false
19104}, _temp);
19105PopupItem.displayName = 'PopupItem';
19106exports.default = PopupItem;
19107module.exports = exports['default'];
19108
19109/***/ }),
19110/* 145 */
19111/***/ (function(module, exports, __webpack_require__) {
19112
19113"use strict";
19114
19115
19116exports.__esModule = true;
19117exports.default = undefined;
19118
19119var _extends2 = __webpack_require__(1);
19120
19121var _extends3 = _interopRequireDefault(_extends2);
19122
19123var _classCallCheck2 = __webpack_require__(2);
19124
19125var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19126
19127var _possibleConstructorReturn2 = __webpack_require__(3);
19128
19129var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
19130
19131var _inherits2 = __webpack_require__(4);
19132
19133var _inherits3 = _interopRequireDefault(_inherits2);
19134
19135var _class, _temp;
19136
19137var _react = __webpack_require__(0);
19138
19139var _react2 = _interopRequireDefault(_react);
19140
19141var _propTypes = __webpack_require__(5);
19142
19143var _propTypes2 = _interopRequireDefault(_propTypes);
19144
19145var _checkbox = __webpack_require__(49);
19146
19147var _checkbox2 = _interopRequireDefault(_checkbox);
19148
19149var _radio = __webpack_require__(50);
19150
19151var _radio2 = _interopRequireDefault(_radio);
19152
19153var _util = __webpack_require__(6);
19154
19155var _item = __webpack_require__(38);
19156
19157var _item2 = _interopRequireDefault(_item);
19158
19159function _interopRequireDefault(obj) {
19160 return obj && obj.__esModule ? obj : { default: obj };
19161}
19162
19163var noop = {};
19164var bindCtx = _util.func.bindCtx;
19165var pickOthers = _util.obj.pickOthers;
19166var CheckableItem = (_temp = _class = function (_Component) {
19167 (0, _inherits3.default)(CheckableItem, _Component);
19168
19169 function CheckableItem(props) {
19170 (0, _classCallCheck3.default)(this, CheckableItem);
19171
19172 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
19173
19174 bindCtx(_this, ['stopPropagation', 'handleKeyDown', 'handleClick']);
19175 _this.id = _util.htmlId.escapeForId('checkable-item-' + (props.id || props._key));
19176 return _this;
19177 }
19178
19179 CheckableItem.prototype.stopPropagation = function stopPropagation(e) {
19180 e.stopPropagation();
19181 };
19182
19183 CheckableItem.prototype.handleCheck = function handleCheck(e) {
19184 var _props = this.props,
19185 checkType = _props.checkType,
19186 checked = _props.checked,
19187 onChange = _props.onChange;
19188
19189 if (!(checkType === 'radio' && checked)) {
19190 onChange(!checked, e);
19191 }
19192 };
19193
19194 CheckableItem.prototype.handleKeyDown = function handleKeyDown(e) {
19195 if (e.keyCode === _util.KEYCODE.SPACE && !this.props.checkDisabled) {
19196 this.handleCheck(e);
19197 }
19198
19199 this.props.onKeyDown && this.props.onKeyDown(e);
19200 };
19201
19202 CheckableItem.prototype.handleClick = function handleClick(e) {
19203 this.handleCheck(e);
19204
19205 this.props.onClick && this.props.onClick(e);
19206 };
19207
19208 CheckableItem.prototype.renderCheck = function renderCheck() {
19209 var _props2 = this.props,
19210 root = _props2.root,
19211 checked = _props2.checked,
19212 indeterminate = _props2.indeterminate,
19213 disabled = _props2.disabled,
19214 checkType = _props2.checkType,
19215 checkDisabled = _props2.checkDisabled,
19216 onChange = _props2.onChange;
19217 var labelToggleChecked = root.props.labelToggleChecked;
19218
19219 var Check = checkType === 'radio' ? _radio2.default : _checkbox2.default;
19220
19221 var checkProps = {
19222 tabIndex: '-1',
19223 checked: checked,
19224 disabled: disabled || checkDisabled
19225 };
19226 if (checkType === 'checkbox') {
19227 checkProps.indeterminate = indeterminate;
19228 }
19229 if (!labelToggleChecked) {
19230 checkProps.onChange = onChange;
19231 checkProps.onClick = this.stopPropagation;
19232 }
19233
19234 return _react2.default.createElement(Check, (0, _extends3.default)({ 'aria-labelledby': this.id }, checkProps));
19235 };
19236
19237 CheckableItem.prototype.render = function render() {
19238 var _props3 = this.props,
19239 _key = _props3._key,
19240 root = _props3.root,
19241 checked = _props3.checked,
19242 disabled = _props3.disabled,
19243 onClick = _props3.onClick,
19244 helper = _props3.helper,
19245 children = _props3.children;
19246 var _root$props = root.props,
19247 prefix = _root$props.prefix,
19248 labelToggleChecked = _root$props.labelToggleChecked;
19249
19250 var others = pickOthers(Object.keys(CheckableItem.propTypes), this.props);
19251
19252 var newProps = (0, _extends3.default)({
19253 _key: _key,
19254 root: root,
19255 disabled: disabled,
19256 type: 'item',
19257 onClick: onClick,
19258 onKeyDown: this.handleKeyDown
19259 }, others);
19260 if (labelToggleChecked && !disabled) {
19261 newProps.onClick = this.handleClick;
19262 }
19263
19264 var title = void 0;
19265 if (typeof children === 'string') {
19266 title = children;
19267 }
19268
19269 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);
19270 };
19271
19272 return CheckableItem;
19273}(_react.Component), _class.propTypes = {
19274 _key: _propTypes2.default.string,
19275 root: _propTypes2.default.object,
19276 disabled: _propTypes2.default.bool,
19277 inlineIndent: _propTypes2.default.number,
19278 checked: _propTypes2.default.bool,
19279 indeterminate: _propTypes2.default.bool,
19280 onChange: _propTypes2.default.func,
19281 checkType: _propTypes2.default.oneOf(['checkbox', 'radio']),
19282 checkDisabled: _propTypes2.default.bool,
19283 helper: _propTypes2.default.node,
19284 children: _propTypes2.default.node,
19285 onKeyDown: _propTypes2.default.func,
19286 onClick: _propTypes2.default.func,
19287 id: _propTypes2.default.string
19288}, _class.defaultProps = {
19289 disabled: false,
19290 checked: false,
19291 indeterminate: false,
19292 checkType: 'checkbox',
19293 checkDisabled: false,
19294 onChange: noop
19295}, _temp);
19296CheckableItem.displayName = 'CheckableItem';
19297exports.default = CheckableItem;
19298module.exports = exports['default'];
19299
19300/***/ }),
19301/* 146 */
19302/***/ (function(module, exports, __webpack_require__) {
19303
19304"use strict";
19305
19306
19307exports.__esModule = true;
19308
19309var _extends2 = __webpack_require__(1);
19310
19311var _extends3 = _interopRequireDefault(_extends2);
19312
19313var _objectWithoutProperties2 = __webpack_require__(8);
19314
19315var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
19316
19317var _classCallCheck2 = __webpack_require__(2);
19318
19319var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19320
19321var _createClass2 = __webpack_require__(147);
19322
19323var _createClass3 = _interopRequireDefault(_createClass2);
19324
19325var _possibleConstructorReturn2 = __webpack_require__(3);
19326
19327var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
19328
19329var _inherits2 = __webpack_require__(4);
19330
19331var _inherits3 = _interopRequireDefault(_inherits2);
19332
19333var _class, _temp;
19334
19335var _react = __webpack_require__(0);
19336
19337var _react2 = _interopRequireDefault(_react);
19338
19339var _propTypes = __webpack_require__(5);
19340
19341var _propTypes2 = _interopRequireDefault(_propTypes);
19342
19343var _classnames3 = __webpack_require__(7);
19344
19345var _classnames4 = _interopRequireDefault(_classnames3);
19346
19347var _reactLifecyclesCompat = __webpack_require__(10);
19348
19349var _mixinUiState = __webpack_require__(148);
19350
19351var _mixinUiState2 = _interopRequireDefault(_mixinUiState);
19352
19353var _configProvider = __webpack_require__(9);
19354
19355var _configProvider2 = _interopRequireDefault(_configProvider);
19356
19357var _icon = __webpack_require__(11);
19358
19359var _icon2 = _interopRequireDefault(_icon);
19360
19361var _withContext = __webpack_require__(292);
19362
19363var _withContext2 = _interopRequireDefault(_withContext);
19364
19365var _util = __webpack_require__(6);
19366
19367function _interopRequireDefault(obj) {
19368 return obj && obj.__esModule ? obj : { default: obj };
19369}
19370
19371var noop = _util.func.noop;
19372function isChecked(selectedValue, value) {
19373 return selectedValue.indexOf(value) > -1;
19374}
19375/**
19376 * Checkbox
19377 * @order 1
19378 */
19379var Checkbox = (_temp = _class = function (_UIState) {
19380 (0, _inherits3.default)(Checkbox, _UIState);
19381
19382 function Checkbox(props) {
19383 (0, _classCallCheck3.default)(this, Checkbox);
19384
19385 var _this = (0, _possibleConstructorReturn3.default)(this, _UIState.call(this, props));
19386
19387 var context = props.context;
19388
19389 var checked = void 0,
19390 indeterminate = void 0;
19391
19392 if ('checked' in props) {
19393 checked = props.checked;
19394 } else {
19395 checked = props.defaultChecked;
19396 }
19397
19398 if ('indeterminate' in props) {
19399 indeterminate = props.indeterminate;
19400 } else {
19401 indeterminate = props.defaultIndeterminate;
19402 }
19403 if (context.__group__) {
19404 checked = isChecked(context.selectedValue, props.value);
19405 }
19406 _this.state = {
19407 checked: checked,
19408 indeterminate: indeterminate
19409 };
19410
19411 _this.onChange = _this.onChange.bind(_this);
19412 return _this;
19413 }
19414
19415 Checkbox.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
19416 var nextContext = nextProps.context;
19417
19418 var state = {};
19419 if (nextContext.__group__) {
19420 if ('selectedValue' in nextContext) {
19421 state.checked = isChecked(nextContext.selectedValue, nextProps.value);
19422 }
19423 } else if ('checked' in nextProps) {
19424 state.checked = nextProps.checked;
19425 }
19426
19427 if ('indeterminate' in nextProps) {
19428 state.indeterminate = nextProps.indeterminate;
19429 }
19430
19431 return state;
19432 };
19433
19434 Checkbox.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState, nextContext) {
19435 var shallowEqual = _util.obj.shallowEqual;
19436
19437 return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState) || !shallowEqual(this.context, nextContext);
19438 };
19439
19440 Checkbox.prototype.onChange = function onChange(e) {
19441 var _props = this.props,
19442 context = _props.context,
19443 value = _props.value;
19444
19445 var checked = e.target.checked;
19446
19447 if (this.disabled) {
19448 return;
19449 }
19450 if (context.__group__) {
19451 context.onChange(value, e);
19452 } else {
19453 if (!('checked' in this.props)) {
19454 this.setState({
19455 checked: checked
19456 });
19457 }
19458
19459 if (!('indeterminate' in this.props)) {
19460 this.setState({
19461 indeterminate: false
19462 });
19463 }
19464 this.props.onChange(checked, e);
19465 }
19466 };
19467
19468 Checkbox.prototype.render = function render() {
19469 var _classnames, _classnames2;
19470
19471 /* eslint-disable no-unused-vars */
19472 var _props2 = this.props,
19473 id = _props2.id,
19474 className = _props2.className,
19475 children = _props2.children,
19476 style = _props2.style,
19477 label = _props2.label,
19478 onMouseEnter = _props2.onMouseEnter,
19479 onMouseLeave = _props2.onMouseLeave,
19480 rtl = _props2.rtl,
19481 isPreview = _props2.isPreview,
19482 renderPreview = _props2.renderPreview,
19483 context = _props2.context,
19484 value = _props2.value,
19485 name = _props2.name,
19486 otherProps = (0, _objectWithoutProperties3.default)(_props2, ['id', 'className', 'children', 'style', 'label', 'onMouseEnter', 'onMouseLeave', 'rtl', 'isPreview', 'renderPreview', 'context', 'value', 'name']);
19487
19488 var checked = !!this.state.checked;
19489 var disabled = this.disabled;
19490 var indeterminate = !!this.state.indeterminate;
19491 var prefix = context.prefix || this.props.prefix;
19492
19493 var others = _util.obj.pickOthers(Checkbox.propTypes, otherProps);
19494 var othersData = _util.obj.pickAttrsWith(others, 'data-');
19495 if (otherProps.title) {
19496 othersData.title = otherProps.title;
19497 }
19498
19499 var childInput = _react2.default.createElement('input', (0, _extends3.default)({}, _util.obj.pickOthers(Checkbox.propTypes, otherProps), {
19500 id: id,
19501 value: value,
19502 name: name,
19503 disabled: disabled,
19504 checked: checked,
19505 type: 'checkbox',
19506 onChange: this.onChange,
19507 'aria-checked': indeterminate ? 'mixed' : checked,
19508 className: prefix + 'checkbox-input'
19509 }));
19510
19511 // disable 无状态操作
19512 if (!disabled) {
19513 childInput = this.getStateElement(childInput);
19514 }
19515 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));
19516 var labelCls = prefix + 'checkbox-label';
19517 var type = indeterminate ? 'semi-select' : 'select';
19518
19519 if (isPreview) {
19520 var previewCls = (0, _classnames4.default)(className, prefix + 'form-preview');
19521 if ('renderPreview' in this.props) {
19522 return _react2.default.createElement('div', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : undefined }, othersData, { className: previewCls }), renderPreview(checked, this.props));
19523 }
19524
19525 return _react2.default.createElement('p', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : undefined }, othersData, { className: previewCls }), checked && (children || label || this.state.value));
19526 }
19527
19528 var iconCls = (0, _classnames4.default)((_classnames2 = {
19529 zoomIn: indeterminate
19530 }, _classnames2[prefix + 'checkbox-semi-select-icon'] = indeterminate, _classnames2[prefix + 'checkbox-select-icon'] = !indeterminate, _classnames2));
19531
19532 return _react2.default.createElement('label', (0, _extends3.default)({}, othersData, {
19533 className: cls,
19534 style: style,
19535 dir: rtl ? 'rtl' : undefined,
19536 onMouseEnter: onMouseEnter,
19537 onMouseLeave: onMouseLeave
19538 }), _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) {
19539 return [undefined, null].indexOf(item) === -1 ? _react2.default.createElement('span', { key: i, className: labelCls }, item) : null;
19540 }));
19541 };
19542
19543 (0, _createClass3.default)(Checkbox, [{
19544 key: 'disabled',
19545 get: function get() {
19546 var props = this.props;
19547 var context = props.context;
19548
19549 return props.disabled || 'disabled' in context && context.disabled;
19550 }
19551 }]);
19552 return Checkbox;
19553}(_mixinUiState2.default), _class.displayName = 'Checkbox', _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
19554 prefix: _propTypes2.default.string,
19555 rtl: _propTypes2.default.bool,
19556 /**
19557 * 自定义类名
19558 */
19559 className: _propTypes2.default.string,
19560 /**
19561 * checkbox id, 挂载在input上
19562 */
19563 id: _propTypes2.default.string,
19564 /**
19565 * 自定义内敛样式
19566 */
19567 style: _propTypes2.default.object,
19568 /**
19569 * 选中状态
19570 */
19571 checked: _propTypes2.default.bool,
19572 /**
19573 * 默认选中状态
19574 */
19575 defaultChecked: _propTypes2.default.bool,
19576 /**
19577 * 禁用
19578 */
19579 disabled: _propTypes2.default.bool,
19580 /**
19581 * 通过属性配置label,
19582 */
19583 label: _propTypes2.default.node,
19584 /**
19585 * Checkbox 的中间状态,只会影响到 Checkbox 的样式,并不影响其 checked 属性
19586 */
19587 indeterminate: _propTypes2.default.bool,
19588 /**
19589 * Checkbox 的默认中间态,只会影响到 Checkbox 的样式,并不影响其 checked 属性
19590 */
19591 defaultIndeterminate: _propTypes2.default.bool,
19592 /**
19593 * 状态变化时触发的事件
19594 * @param {Boolean} checked 是否选中
19595 * @param {Event} e Dom 事件对象
19596 */
19597 onChange: _propTypes2.default.func,
19598 /**
19599 * 鼠标进入enter事件
19600 * @param {Event} e Dom 事件对象
19601 */
19602 onMouseEnter: _propTypes2.default.func,
19603 /**
19604 * 鼠标离开Leave事件
19605 * @param {Event} e Dom 事件对象
19606 */
19607 onMouseLeave: _propTypes2.default.func,
19608 /**
19609 * checkbox 的value
19610 */
19611 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
19612 /**
19613 * name
19614 */
19615 name: _propTypes2.default.string,
19616 /**
19617 * 是否为预览态
19618 * @version 1.19
19619 */
19620 isPreview: _propTypes2.default.bool,
19621 /**
19622 * 预览态模式下渲染的内容
19623 * @param {Boolean} checked 是否选中
19624 * @param {Object} props 所有传入的参数
19625 * @returns {reactNode} Element 渲染内容
19626 * @version 1.19
19627 */
19628 renderPreview: _propTypes2.default.func
19629}), _class.defaultProps = {
19630 defaultChecked: false,
19631 defaultIndeterminate: false,
19632 onChange: noop,
19633 onMouseEnter: noop,
19634 onMouseLeave: noop,
19635 prefix: 'next-',
19636 isPreview: false
19637}, _temp);
19638exports.default = _configProvider2.default.config((0, _withContext2.default)((0, _reactLifecyclesCompat.polyfill)(Checkbox)));
19639module.exports = exports['default'];
19640
19641/***/ }),
19642/* 147 */
19643/***/ (function(module, exports, __webpack_require__) {
19644
19645"use strict";
19646
19647
19648exports.__esModule = true;
19649
19650var _defineProperty = __webpack_require__(289);
19651
19652var _defineProperty2 = _interopRequireDefault(_defineProperty);
19653
19654function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19655
19656exports.default = function () {
19657 function defineProperties(target, props) {
19658 for (var i = 0; i < props.length; i++) {
19659 var descriptor = props[i];
19660 descriptor.enumerable = descriptor.enumerable || false;
19661 descriptor.configurable = true;
19662 if ("value" in descriptor) descriptor.writable = true;
19663 (0, _defineProperty2.default)(target, descriptor.key, descriptor);
19664 }
19665 }
19666
19667 return function (Constructor, protoProps, staticProps) {
19668 if (protoProps) defineProperties(Constructor.prototype, protoProps);
19669 if (staticProps) defineProperties(Constructor, staticProps);
19670 return Constructor;
19671 };
19672}();
19673
19674/***/ }),
19675/* 148 */
19676/***/ (function(module, exports, __webpack_require__) {
19677
19678"use strict";
19679
19680
19681exports.__esModule = true;
19682
19683var _classCallCheck2 = __webpack_require__(2);
19684
19685var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19686
19687var _possibleConstructorReturn2 = __webpack_require__(3);
19688
19689var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
19690
19691var _inherits2 = __webpack_require__(4);
19692
19693var _inherits3 = _interopRequireDefault(_inherits2);
19694
19695var _react = __webpack_require__(0);
19696
19697var _react2 = _interopRequireDefault(_react);
19698
19699var _classnames = __webpack_require__(7);
19700
19701var _classnames2 = _interopRequireDefault(_classnames);
19702
19703var _util = __webpack_require__(6);
19704
19705function _interopRequireDefault(obj) {
19706 return obj && obj.__esModule ? obj : { default: obj };
19707}
19708
19709var makeChain = _util.func.makeChain;
19710// UIState 为一些特殊元素的状态响应提供了标准的方式,
19711// 尤其适合CSS无法完全定制的控件,比如checkbox,radio等。
19712// 若组件 disable 则自行判断是否需要绑定状态管理。
19713// 注意:disable 不会触发事件,请使用resetUIState还原状态
19714/* eslint-disable react/prop-types */
19715
19716var UIState = function (_Component) {
19717 (0, _inherits3.default)(UIState, _Component);
19718
19719 function UIState(props) {
19720 (0, _classCallCheck3.default)(this, UIState);
19721
19722 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
19723
19724 _this.state = {};
19725 ['_onUIFocus', '_onUIBlur'].forEach(function (item) {
19726 _this[item] = _this[item].bind(_this);
19727 });
19728 return _this;
19729 }
19730 // base 事件绑定的元素
19731
19732
19733 UIState.prototype.getStateElement = function getStateElement(base) {
19734 var _props = this.props,
19735 onFocus = _props.onFocus,
19736 onBlur = _props.onBlur;
19737
19738 return _react2.default.cloneElement(base, {
19739 onFocus: makeChain(this._onUIFocus, onFocus),
19740 onBlur: makeChain(this._onUIBlur, onBlur)
19741 });
19742 };
19743 // 获取状态classname
19744
19745
19746 UIState.prototype.getStateClassName = function getStateClassName() {
19747 var focused = this.state.focused;
19748
19749 return (0, _classnames2.default)({
19750 focused: focused
19751 });
19752 };
19753 // 复原状态
19754
19755
19756 UIState.prototype.resetUIState = function resetUIState() {
19757 this.setState({
19758 focused: false
19759 });
19760 };
19761
19762 UIState.prototype._onUIFocus = function _onUIFocus() {
19763 this.setState({
19764 focused: true
19765 });
19766 };
19767
19768 UIState.prototype._onUIBlur = function _onUIBlur() {
19769 this.setState({
19770 focused: false
19771 });
19772 };
19773
19774 return UIState;
19775}(_react.Component);
19776
19777UIState.displayName = 'UIState';
19778exports.default = UIState;
19779module.exports = exports['default'];
19780
19781/***/ }),
19782/* 149 */
19783/***/ (function(module, exports, __webpack_require__) {
19784
19785"use strict";
19786
19787
19788exports.__esModule = true;
19789
19790var _extends2 = __webpack_require__(1);
19791
19792var _extends3 = _interopRequireDefault(_extends2);
19793
19794var _objectWithoutProperties2 = __webpack_require__(8);
19795
19796var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
19797
19798var _classCallCheck2 = __webpack_require__(2);
19799
19800var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19801
19802var _createClass2 = __webpack_require__(147);
19803
19804var _createClass3 = _interopRequireDefault(_createClass2);
19805
19806var _possibleConstructorReturn2 = __webpack_require__(3);
19807
19808var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
19809
19810var _inherits2 = __webpack_require__(4);
19811
19812var _inherits3 = _interopRequireDefault(_inherits2);
19813
19814var _class, _temp;
19815
19816var _react = __webpack_require__(0);
19817
19818var _react2 = _interopRequireDefault(_react);
19819
19820var _propTypes = __webpack_require__(5);
19821
19822var _propTypes2 = _interopRequireDefault(_propTypes);
19823
19824var _classnames4 = __webpack_require__(7);
19825
19826var _classnames5 = _interopRequireDefault(_classnames4);
19827
19828var _reactLifecyclesCompat = __webpack_require__(10);
19829
19830var _mixinUiState = __webpack_require__(148);
19831
19832var _mixinUiState2 = _interopRequireDefault(_mixinUiState);
19833
19834var _configProvider = __webpack_require__(9);
19835
19836var _configProvider2 = _interopRequireDefault(_configProvider);
19837
19838var _withContext = __webpack_require__(294);
19839
19840var _withContext2 = _interopRequireDefault(_withContext);
19841
19842var _util = __webpack_require__(6);
19843
19844function _interopRequireDefault(obj) {
19845 return obj && obj.__esModule ? obj : { default: obj };
19846}
19847
19848var makeChain = _util.func.makeChain,
19849 noop = _util.func.noop;
19850/**
19851 * Radio
19852 * @order 1
19853 */
19854
19855var Radio = (_temp = _class = function (_UIState) {
19856 (0, _inherits3.default)(Radio, _UIState);
19857
19858 function Radio(props) {
19859 (0, _classCallCheck3.default)(this, Radio);
19860
19861 var _this = (0, _possibleConstructorReturn3.default)(this, _UIState.call(this, props));
19862
19863 var context = props.context;
19864
19865 var checked = void 0;
19866 if (context.__group__) {
19867 checked = context.selectedValue === props.value;
19868 } else if ('checked' in props) {
19869 checked = props.checked;
19870 } else {
19871 checked = props.defaultChecked;
19872 }
19873
19874 _this.state = { checked: checked };
19875
19876 _this.onChange = _this.onChange.bind(_this);
19877 return _this;
19878 }
19879
19880 Radio.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
19881 var nextContext = nextProps.context;
19882
19883 if (nextContext.__group__ && 'selectedValue' in nextContext) {
19884 return {
19885 checked: nextContext.selectedValue === nextProps.value
19886 };
19887 } else if ('checked' in nextProps) {
19888 return {
19889 checked: nextProps.checked
19890 };
19891 }
19892
19893 return null;
19894 };
19895
19896 Radio.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState, nextContext) {
19897 var shallowEqual = _util.obj.shallowEqual;
19898
19899 return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState) || !shallowEqual(this.context, nextContext);
19900 };
19901
19902 Radio.prototype.componentDidUpdate = function componentDidUpdate() {
19903 // when disabled, reset UIState
19904 if (this.disabled) {
19905 // only class has an impact, no effect on visual
19906 this.resetUIState();
19907 }
19908 };
19909
19910 Radio.prototype.onChange = function onChange(e) {
19911 var checked = e.target.checked;
19912 var _props = this.props,
19913 context = _props.context,
19914 value = _props.value;
19915
19916 if (context.__group__) {
19917 context.onChange(value, e);
19918 } else if (this.state.checked !== checked) {
19919 if (!('checked' in this.props)) {
19920 this.setState({
19921 checked: checked
19922 });
19923 }
19924 this.props.onChange(checked, e);
19925 }
19926 };
19927
19928 Radio.prototype.render = function render() {
19929 var _classnames, _classnames2, _classnames3;
19930
19931 /* eslint-disable no-unused-vars */
19932 var _props2 = this.props,
19933 id = _props2.id,
19934 className = _props2.className,
19935 children = _props2.children,
19936 style = _props2.style,
19937 label = _props2.label,
19938 onMouseEnter = _props2.onMouseEnter,
19939 onMouseLeave = _props2.onMouseLeave,
19940 tabIndex = _props2.tabIndex,
19941 rtl = _props2.rtl,
19942 name = _props2.name,
19943 isPreview = _props2.isPreview,
19944 renderPreview = _props2.renderPreview,
19945 value = _props2.value,
19946 context = _props2.context,
19947 otherProps = (0, _objectWithoutProperties3.default)(_props2, ['id', 'className', 'children', 'style', 'label', 'onMouseEnter', 'onMouseLeave', 'tabIndex', 'rtl', 'name', 'isPreview', 'renderPreview', 'value', 'context']);
19948
19949 var checked = !!this.state.checked;
19950 var disabled = this.disabled;
19951 var isButton = context.isButton;
19952 var prefix = context.prefix || this.props.prefix;
19953
19954 var others = _util.obj.pickOthers(Radio.propTypes, otherProps);
19955 var othersData = _util.obj.pickAttrsWith(others, 'data-');
19956
19957 if (isPreview) {
19958 var previewCls = (0, _classnames5.default)(className, prefix + 'form-preview');
19959
19960 if ('renderPreview' in this.props) {
19961 return _react2.default.createElement('div', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : 'ltr' }, others, { className: previewCls }), renderPreview(checked, this.props));
19962 }
19963
19964 return _react2.default.createElement('p', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : 'ltr' }, others, { className: previewCls }), checked && (children || label || value));
19965 }
19966
19967 var input = _react2.default.createElement('input', (0, _extends3.default)({}, _util.obj.pickOthers(othersData, others), {
19968 name: name,
19969 id: id,
19970 tabIndex: tabIndex,
19971 disabled: disabled,
19972 checked: checked,
19973 type: 'radio',
19974 onChange: this.onChange,
19975 'aria-checked': checked,
19976 className: prefix + 'radio-input'
19977 }));
19978
19979 // disabled do not hove focus state
19980 if (!disabled) {
19981 input = this.getStateElement(input);
19982 }
19983
19984 var cls = (0, _classnames5.default)((_classnames = {}, _classnames[prefix + 'radio'] = true, _classnames.checked = checked, _classnames.disabled = disabled, _classnames[this.getStateClassName()] = true, _classnames));
19985 var clsInner = (0, _classnames5.default)((_classnames2 = {}, _classnames2[prefix + 'radio-inner'] = true, _classnames2.press = checked, _classnames2.unpress = !checked, _classnames2));
19986 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));
19987 var childrenCls = prefix + 'radio-label';
19988
19989 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);
19990
19991 return _react2.default.createElement('label', (0, _extends3.default)({}, othersData, {
19992 dir: rtl ? 'rtl' : 'ltr',
19993 style: style,
19994 'aria-checked': checked,
19995 'aria-disabled': disabled,
19996 className: clsWrapper,
19997 onMouseEnter: disabled ? onMouseEnter : makeChain(this._onUIMouseEnter, onMouseEnter),
19998 onMouseLeave: disabled ? onMouseLeave : makeChain(this._onUIMouseLeave, onMouseLeave)
19999 }), radioComp, [children, label].map(function (d, i) {
20000 return d !== undefined ? _react2.default.createElement('span', { key: i, className: childrenCls }, d) : null;
20001 }));
20002 };
20003
20004 (0, _createClass3.default)(Radio, [{
20005 key: 'disabled',
20006 get: function get() {
20007 var props = this.props;
20008 var context = props.context;
20009
20010 var disabled = props.disabled || context.__group__ && 'disabled' in context && context.disabled;
20011
20012 return disabled;
20013 }
20014 }]);
20015 return Radio;
20016}(_mixinUiState2.default), _class.displayName = 'Radio', _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
20017 /**
20018 * 自定义类名
20019 */
20020 className: _propTypes2.default.string,
20021 /**
20022 * 组件input的id
20023 */
20024 id: _propTypes2.default.string,
20025 /**
20026 * 自定义内敛样式
20027 */
20028 style: _propTypes2.default.object,
20029 /**
20030 * 设置radio是否选中
20031 */
20032 checked: _propTypes2.default.bool,
20033 /**
20034 * 设置radio是否默认选中
20035 */
20036 defaultChecked: _propTypes2.default.bool,
20037 /**
20038 * 通过属性配置label
20039 */
20040 label: _propTypes2.default.node,
20041 /**
20042 * 状态变化时触发的事件
20043 * @param {Boolean} checked 是否选中
20044 * @param {Event} e Dom 事件对象
20045 */
20046 onChange: _propTypes2.default.func,
20047 /**
20048 * 鼠标进入enter事件
20049 * @param {Event} e Dom 事件对象
20050 */
20051 onMouseEnter: _propTypes2.default.func,
20052 /**
20053 * 鼠标离开事件
20054 * @param {Event} e Dom 事件对象
20055 */
20056 onMouseLeave: _propTypes2.default.func,
20057 /**
20058 * radio是否被禁用
20059 */
20060 disabled: _propTypes2.default.bool,
20061 /**
20062 * radio 的value
20063 */
20064 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
20065 /**
20066 * name
20067 */
20068 name: _propTypes2.default.string,
20069 /**
20070 * 是否为预览态
20071 */
20072 isPreview: _propTypes2.default.bool,
20073 /**
20074 * 预览态模式下渲染的内容
20075 * @param {Boolean} checked 是否选中
20076 * @param {Object} props 所有传入的参数
20077 * @returns {reactNode} Element 渲染内容
20078 */
20079 renderPreview: _propTypes2.default.func
20080}), _class.defaultProps = {
20081 onChange: noop,
20082 onMouseLeave: noop,
20083 onMouseEnter: noop,
20084 tabIndex: 0,
20085 prefix: 'next-',
20086 isPreview: false
20087}, _class.contextTypes = {
20088 onChange: _propTypes2.default.func,
20089 __group__: _propTypes2.default.bool,
20090 isButton: _propTypes2.default.bool,
20091 selectedValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
20092 disabled: _propTypes2.default.bool
20093}, _temp);
20094exports.default = _configProvider2.default.config((0, _withContext2.default)((0, _reactLifecyclesCompat.polyfill)(Radio)));
20095module.exports = exports['default'];
20096
20097/***/ }),
20098/* 150 */
20099/***/ (function(module, exports, __webpack_require__) {
20100
20101"use strict";
20102
20103
20104exports.__esModule = true;
20105
20106var _configProvider = __webpack_require__(9);
20107
20108var _configProvider2 = _interopRequireDefault(_configProvider);
20109
20110var _util = __webpack_require__(6);
20111
20112var _tag = __webpack_require__(90);
20113
20114var _tag2 = _interopRequireDefault(_tag);
20115
20116var _tagGroup = __webpack_require__(306);
20117
20118var _tagGroup2 = _interopRequireDefault(_tagGroup);
20119
20120var _selectable = __webpack_require__(307);
20121
20122var _selectable2 = _interopRequireDefault(_selectable);
20123
20124var _closeable = __webpack_require__(308);
20125
20126var _closeable2 = _interopRequireDefault(_closeable);
20127
20128function _interopRequireDefault(obj) {
20129 return obj && obj.__esModule ? obj : { default: obj };
20130}
20131
20132var ConfigTag = _configProvider2.default.config(_tag2.default, {
20133 transfrom: /* istanbul ignore next */function transfrom(props, deprecated) {
20134 var shape = props.shape,
20135 type = props.type;
20136
20137 if (shape === 'selectable') {
20138 deprecated('shape=selectable', 'Tag.Selectable', 'Tag');
20139 }
20140
20141 if (shape === 'deletable') {
20142 deprecated('shape=deletable', 'Tag.Closeable', 'Tag');
20143 }
20144
20145 if (shape === 'link') {
20146 deprecated('shape=link', '<Tag><a href="x">x</a></Tag>', 'Tag');
20147 }
20148
20149 if (shape === 'readonly' || shape === 'interactive') {
20150 _util.log.warning('Warning: [ shape=' + shape + ' ] is deprecated at [ Tag ]');
20151 }
20152
20153 if (type === 'secondary') {
20154 _util.log.warning('Warning: [ type=secondary ] is deprecated at [ Tag ]');
20155 }
20156
20157 ['count', 'marked', 'value', 'onChange'].forEach(function (key) {
20158 if (key in props) {
20159 _util.log.warning('Warning: [ ' + key + ' ] is deprecated at [ Tag ]');
20160 }
20161 });
20162
20163 if ('selected' in props || 'defaultSelected' in props) {
20164 _util.log.warning('Warning: [ selected|defaultSelected ] is deprecated at [ Tag ], use [ checked|defaultChecked ] at [ Tag.Selectable ] instead of it');
20165 }
20166
20167 if ('closed' in props) {
20168 _util.log.warning('Warning: [ closed ] is deprecated at [ Tag ], use [ onClose ] at [ Tag.Closeable ] instead of it');
20169 }
20170
20171 if ('onSelect' in props) {
20172 deprecated('onSelect', '<Tag.Selectable onChange/>', 'Tag');
20173 }
20174
20175 if ('afterClose' in props) {
20176 _util.log.warning('Warning: [ afterClose ] is deprecated at [ Tag ], use [ afterClose ] at [ Tag.Closeable ] instead of it');
20177 }
20178
20179 return props;
20180 }
20181});
20182
20183ConfigTag.Group = _configProvider2.default.config(_tagGroup2.default);
20184
20185ConfigTag.Selectable = _configProvider2.default.config(_selectable2.default);
20186
20187// 有的地方叫做 Closeable 有的地方用Closeable, 为了保持兼容 文档类出现 Closeable, Closeable可以继续用
20188ConfigTag.Closable = _configProvider2.default.config(_closeable2.default);
20189ConfigTag.Closeable = ConfigTag.Closable;
20190
20191exports.default = ConfigTag;
20192module.exports = exports['default'];
20193
20194/***/ }),
20195/* 151 */
20196/***/ (function(module, exports, __webpack_require__) {
20197
20198"use strict";
20199
20200
20201exports.__esModule = true;
20202exports.default = undefined;
20203
20204var _extends2 = __webpack_require__(1);
20205
20206var _extends3 = _interopRequireDefault(_extends2);
20207
20208var _classCallCheck2 = __webpack_require__(2);
20209
20210var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
20211
20212var _possibleConstructorReturn2 = __webpack_require__(3);
20213
20214var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20215
20216var _inherits2 = __webpack_require__(4);
20217
20218var _inherits3 = _interopRequireDefault(_inherits2);
20219
20220var _class, _temp;
20221
20222var _react = __webpack_require__(0);
20223
20224var _react2 = _interopRequireDefault(_react);
20225
20226var _propTypes = __webpack_require__(5);
20227
20228var _propTypes2 = _interopRequireDefault(_propTypes);
20229
20230var _classnames = __webpack_require__(7);
20231
20232var _classnames2 = _interopRequireDefault(_classnames);
20233
20234var _icon = __webpack_require__(11);
20235
20236var _icon2 = _interopRequireDefault(_icon);
20237
20238var _util = __webpack_require__(6);
20239
20240var _base = __webpack_require__(152);
20241
20242var _base2 = _interopRequireDefault(_base);
20243
20244var _group = __webpack_require__(153);
20245
20246var _group2 = _interopRequireDefault(_group);
20247
20248function _interopRequireDefault(obj) {
20249 return obj && obj.__esModule ? obj : { default: obj };
20250}
20251
20252// preventDefault here can stop onBlur to keep focus state
20253function preventDefault(e) {
20254 e.preventDefault();
20255}
20256
20257/** Input */
20258var Input = (_temp = _class = function (_Base) {
20259 (0, _inherits3.default)(Input, _Base);
20260
20261 function Input(props) {
20262 (0, _classCallCheck3.default)(this, Input);
20263
20264 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
20265
20266 _this.handleKeyDown = function (e) {
20267 if (e.keyCode === 13) {
20268 _this.props.onPressEnter(e);
20269 }
20270
20271 _this.onKeyDown(e);
20272 };
20273
20274 _this.handleKeyDownFromClear = function (e) {
20275 if (e.keyCode === 13) {
20276 _this.onClear(e);
20277 }
20278 };
20279
20280 var value = void 0;
20281 if ('value' in props) {
20282 value = props.value;
20283 } else {
20284 value = props.defaultValue;
20285 }
20286
20287 _this.state = {
20288 value: typeof value === 'undefined' ? '' : value
20289 };
20290 return _this;
20291 }
20292
20293 // `Enter` was considered to be two chars in chrome , but one char in ie.
20294 // so we make all `Enter` to be two chars
20295
20296
20297 Input.prototype.getValueLength = function getValueLength(value) {
20298 var nv = '' + value;
20299 var strLen = this.props.getValueLength(nv);
20300 if (typeof strLen !== 'number') {
20301 strLen = nv.length;
20302 }
20303
20304 return strLen;
20305 };
20306
20307 Input.prototype.renderControl = function renderControl() {
20308 var _this2 = this;
20309
20310 var _props = this.props,
20311 hasClear = _props.hasClear,
20312 readOnly = _props.readOnly,
20313 state = _props.state,
20314 prefix = _props.prefix,
20315 hint = _props.hint,
20316 extra = _props.extra,
20317 locale = _props.locale,
20318 disabled = _props.disabled,
20319 hoverShowClear = _props.hoverShowClear;
20320
20321 var lenWrap = this.renderLength();
20322
20323 var stateWrap = null;
20324 if (state === 'success') {
20325 stateWrap = _react2.default.createElement(_icon2.default, { type: 'success-filling', className: prefix + 'input-success-icon' });
20326 } else if (state === 'loading') {
20327 stateWrap = _react2.default.createElement(_icon2.default, { type: 'loading', className: prefix + 'input-loading-icon' });
20328 } else if (state === 'warning') {
20329 stateWrap = _react2.default.createElement(_icon2.default, { type: 'warning', className: prefix + 'input-warning-icon' });
20330 }
20331
20332 var clearWrap = null;
20333 // showClear属性应该与disable属性为互斥状态
20334 var showClear = hasClear && !readOnly && !!('' + this.state.value) && !disabled;
20335
20336 if (hint || showClear) {
20337 var hintIcon = null;
20338 if (hint) {
20339 if (typeof hint === 'string') {
20340 hintIcon = _react2.default.createElement(_icon2.default, { type: hint, className: prefix + 'input-hint' });
20341 } else if ((0, _react.isValidElement)(hint)) {
20342 hintIcon = (0, _react.cloneElement)(hint, {
20343 className: (0, _classnames2.default)(hint.props.className, prefix + 'input-hint')
20344 });
20345 } else {
20346 hintIcon = hint;
20347 }
20348 } else {
20349 var _classNames;
20350
20351 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'input-hint'] = true, _classNames[prefix + 'input-clear-icon'] = true, _classNames[prefix + 'input-hover-show'] = hoverShowClear, _classNames));
20352 hintIcon = _react2.default.createElement(_icon2.default, {
20353 type: 'delete-filling',
20354 role: 'button',
20355 tabIndex: '0',
20356 className: cls,
20357 'aria-label': locale.clear,
20358 onClick: this.onClear.bind(this),
20359 onMouseDown: preventDefault,
20360 onKeyDown: this.handleKeyDownFromClear
20361 });
20362 }
20363
20364 clearWrap = _react2.default.createElement('span', { className: prefix + 'input-hint-wrap' }, hasClear && hint ? _react2.default.createElement(_icon2.default, {
20365 type: 'delete-filling',
20366 role: 'button',
20367 tabIndex: '0',
20368 className: prefix + 'input-clear ' + prefix + 'input-clear-icon',
20369 'aria-label': locale.clear,
20370 onClick: this.onClear.bind(this),
20371 onMouseDown: preventDefault,
20372 onKeyDown: this.handleKeyDownFromClear
20373 }) : null, hintIcon);
20374 }
20375
20376 if (state === 'loading') {
20377 clearWrap = null;
20378 }
20379
20380 return clearWrap || lenWrap || stateWrap || extra ? _react2.default.createElement('span', { onClick: function onClick() {
20381 return _this2.focus();
20382 }, className: prefix + 'input-control' }, clearWrap, lenWrap, stateWrap, extra) : null;
20383 };
20384
20385 Input.prototype.renderLabel = function renderLabel() {
20386 var _props2 = this.props,
20387 label = _props2.label,
20388 prefix = _props2.prefix,
20389 id = _props2.id;
20390
20391 return label ? _react2.default.createElement('label', { className: prefix + 'input-label', htmlFor: id }, label) : null;
20392 };
20393
20394 Input.prototype.renderInner = function renderInner(inner, cls) {
20395 return inner ? _react2.default.createElement('span', { className: cls }, inner) : null;
20396 };
20397
20398 Input.prototype.onClear = function onClear(e) {
20399 if (this.props.disabled) {
20400 return;
20401 }
20402
20403 // 非受控模式清空内部数据
20404 if (!('value' in this.props)) {
20405 this.setState({
20406 value: ''
20407 });
20408 }
20409 this.props.onChange('', e, 'clear');
20410 this.focus();
20411 };
20412
20413 Input.prototype.render = function render() {
20414 var _classNames2, _classNames3, _classNames4, _classNames5, _classNames6, _classNames7, _classNames8;
20415
20416 var _props3 = this.props,
20417 size = _props3.size,
20418 htmlType = _props3.htmlType,
20419 htmlSize = _props3.htmlSize,
20420 autoComplete = _props3.autoComplete,
20421 autoFocus = _props3.autoFocus,
20422 disabled = _props3.disabled,
20423 style = _props3.style,
20424 innerBefore = _props3.innerBefore,
20425 innerAfter = _props3.innerAfter,
20426 innerBeforeClassName = _props3.innerBeforeClassName,
20427 innerAfterClassName = _props3.innerAfterClassName,
20428 className = _props3.className,
20429 hasBorder = _props3.hasBorder,
20430 prefix = _props3.prefix,
20431 isPreview = _props3.isPreview,
20432 renderPreview = _props3.renderPreview,
20433 addonBefore = _props3.addonBefore,
20434 addonAfter = _props3.addonAfter,
20435 addonTextBefore = _props3.addonTextBefore,
20436 addonTextAfter = _props3.addonTextAfter,
20437 inputRender = _props3.inputRender,
20438 rtl = _props3.rtl,
20439 composition = _props3.composition;
20440
20441 var hasAddon = addonBefore || addonAfter || addonTextBefore || addonTextAfter;
20442 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));
20443
20444 var innerCls = prefix + 'input-inner';
20445 var innerBeforeCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[innerCls] = true, _classNames3[prefix + 'before'] = true, _classNames3[innerBeforeClassName] = innerBeforeClassName, _classNames3));
20446 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));
20447 var previewCls = (0, _classnames2.default)((_classNames5 = {}, _classNames5[prefix + 'form-preview'] = true, _classNames5[className] = !!className, _classNames5));
20448
20449 var props = this.getProps();
20450 // custom data attributes are assigned to the top parent node
20451 // data-类自定义数据属性分配到顶层node节点
20452 var dataProps = _util.obj.pickAttrsWith(this.props, 'data-');
20453 // Custom props are transparently transmitted to the core input node by default
20454 // 自定义属性默认透传到核心node节点:input
20455 var others = _util.obj.pickOthers((0, _extends3.default)({}, dataProps, Input.propTypes), this.props);
20456
20457 if (isPreview) {
20458 var value = props.value;
20459 var label = this.props.label;
20460
20461 if (typeof renderPreview === 'function') {
20462 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
20463 }
20464 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), addonBefore || addonTextBefore, label, innerBefore, value, innerAfter, addonAfter || addonTextAfter);
20465 }
20466
20467 var compositionProps = {};
20468 if (composition) {
20469 compositionProps.onCompositionStart = this.handleCompositionStart;
20470 compositionProps.onCompositionEnd = this.handleCompositionEnd;
20471 }
20472
20473 var inputEl = _react2.default.createElement('input', (0, _extends3.default)({}, others, props, compositionProps, {
20474 height: '100%',
20475 type: htmlType,
20476 size: htmlSize,
20477 autoFocus: autoFocus,
20478 autoComplete: autoComplete,
20479 onKeyDown: this.handleKeyDown,
20480 ref: this.saveRef
20481 }));
20482
20483 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());
20484
20485 var groupCls = (0, _classnames2.default)((_classNames6 = {}, _classNames6[prefix + 'input-group-text'] = true, _classNames6['' + prefix + size] = !!size, _classNames6[prefix + 'disabled'] = disabled, _classNames6));
20486
20487 var addonBeforeCls = (0, _classnames2.default)((_classNames7 = {}, _classNames7[groupCls] = addonTextBefore, _classNames7));
20488 var addonAfterCls = (0, _classnames2.default)((_classNames8 = {}, _classNames8[groupCls] = addonTextAfter, _classNames8));
20489
20490 if (hasAddon) {
20491 return _react2.default.createElement(_group2.default, (0, _extends3.default)({}, dataProps, {
20492 prefix: prefix,
20493 className: className,
20494 style: style,
20495 disabled: disabled,
20496 addonBefore: addonBefore || addonTextBefore,
20497 addonBeforeClassName: addonBeforeCls,
20498 addonAfter: addonAfter || addonTextAfter,
20499 addonAfterClassName: addonAfterCls
20500 }), inputWrap);
20501 }
20502
20503 return inputWrap;
20504 };
20505
20506 return Input;
20507}(_base2.default), _class.getDerivedStateFromProps = _base2.default.getDerivedStateFromProps, _class.propTypes = (0, _extends3.default)({}, _base2.default.propTypes, {
20508 /**
20509 * label
20510 */
20511 label: _propTypes2.default.node,
20512 /**
20513 * 是否出现clear按钮
20514 */
20515 hasClear: _propTypes2.default.bool,
20516 /**
20517 * 是否有边框
20518 */
20519 hasBorder: _propTypes2.default.bool,
20520 /**
20521 * 状态
20522 * @enumdesc 错误, 校验中, 成功, 警告
20523 */
20524 state: _propTypes2.default.oneOf(['error', 'loading', 'success', 'warning']),
20525 /**
20526 * 按下回车的回调
20527 */
20528 onPressEnter: _propTypes2.default.func,
20529
20530 onClear: _propTypes2.default.func,
20531 /**
20532 * 原生type
20533 */
20534 htmlType: _propTypes2.default.string,
20535 htmlSize: _propTypes2.default.string,
20536 /**
20537 * 水印 (Icon的type类型,和hasClear占用一个地方)
20538 */
20539 hint: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
20540 /**
20541 * 文字前附加内容
20542 */
20543 innerBefore: _propTypes2.default.node,
20544 /**
20545 * 文字后附加内容
20546 */
20547 innerAfter: _propTypes2.default.node,
20548 /**
20549 * 输入框前附加内容
20550 */
20551 addonBefore: _propTypes2.default.node,
20552 /**
20553 * 输入框后附加内容
20554 */
20555 addonAfter: _propTypes2.default.node,
20556 /**
20557 * 输入框前附加文字
20558 */
20559 addonTextBefore: _propTypes2.default.node,
20560 /**
20561 * 输入框后附加文字
20562 */
20563 addonTextAfter: _propTypes2.default.node,
20564 /**
20565 * (原生input支持)
20566 */
20567 autoComplete: _propTypes2.default.string,
20568 /**
20569 * 自动聚焦(原生input支持)
20570 */
20571 autoFocus: _propTypes2.default.bool,
20572 inputRender: _propTypes2.default.func,
20573 extra: _propTypes2.default.node,
20574 innerBeforeClassName: _propTypes2.default.string,
20575 innerAfterClassName: _propTypes2.default.string,
20576 /**
20577 * 是否为预览态
20578 */
20579 isPreview: _propTypes2.default.bool,
20580 /**
20581 * 预览态模式下渲染的内容
20582 * @param {number} value 评分值
20583 */
20584 renderPreview: _propTypes2.default.func,
20585 /**
20586 * hover展示clear (配合 hasClear=true使用)
20587 * @version 1.24
20588 */
20589 hoverShowClear: _propTypes2.default.bool
20590}), _class.defaultProps = (0, _extends3.default)({}, _base2.default.defaultProps, {
20591 autoComplete: 'off',
20592 hasBorder: true,
20593 isPreview: false,
20594 hoverShowClear: false,
20595 onPressEnter: _util.func.noop,
20596 inputRender: function inputRender(el) {
20597 return el;
20598 }
20599}), _temp);
20600exports.default = Input;
20601module.exports = exports['default'];
20602
20603/***/ }),
20604/* 152 */
20605/***/ (function(module, exports, __webpack_require__) {
20606
20607"use strict";
20608
20609
20610exports.__esModule = true;
20611
20612var _extends2 = __webpack_require__(1);
20613
20614var _extends3 = _interopRequireDefault(_extends2);
20615
20616var _classCallCheck2 = __webpack_require__(2);
20617
20618var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
20619
20620var _possibleConstructorReturn2 = __webpack_require__(3);
20621
20622var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20623
20624var _inherits2 = __webpack_require__(4);
20625
20626var _inherits3 = _interopRequireDefault(_inherits2);
20627
20628var _class, _temp2;
20629
20630var _react = __webpack_require__(0);
20631
20632var _react2 = _interopRequireDefault(_react);
20633
20634var _propTypes = __webpack_require__(5);
20635
20636var _propTypes2 = _interopRequireDefault(_propTypes);
20637
20638var _classnames = __webpack_require__(7);
20639
20640var _classnames2 = _interopRequireDefault(_classnames);
20641
20642var _reactLifecyclesCompat = __webpack_require__(10);
20643
20644var _configProvider = __webpack_require__(9);
20645
20646var _configProvider2 = _interopRequireDefault(_configProvider);
20647
20648var _util = __webpack_require__(6);
20649
20650var _zhCn = __webpack_require__(13);
20651
20652var _zhCn2 = _interopRequireDefault(_zhCn);
20653
20654function _interopRequireDefault(obj) {
20655 return obj && obj.__esModule ? obj : { default: obj };
20656}
20657
20658var Base = (_temp2 = _class = function (_React$Component) {
20659 (0, _inherits3.default)(Base, _React$Component);
20660
20661 function Base() {
20662 var _temp, _this, _ret;
20663
20664 (0, _classCallCheck3.default)(this, Base);
20665
20666 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
20667 args[_key] = arguments[_key];
20668 }
20669
20670 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleCompositionStart = function (e) {
20671 _this.setState({
20672 composition: true
20673 });
20674 _this.props.onCompositionStart(e);
20675 }, _this.handleCompositionEnd = function (e) {
20676 _this.setState({
20677 composition: false
20678 });
20679 _this.props.onCompositionEnd(e);
20680
20681 var value = e.target.value;
20682 _this.props.onChange(value, e);
20683 }, _this.saveRef = function (input) {
20684 _this.inputRef = input;
20685 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
20686 }
20687
20688 Base.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
20689 if ('value' in nextProps && nextProps.value !== prevState.value && !prevState.composition) {
20690 var value = nextProps.value;
20691 return {
20692 value: value === undefined || value === null ? '' : value
20693 };
20694 }
20695
20696 return null;
20697 };
20698
20699 Base.prototype.ieHack = function ieHack(value) {
20700 return value;
20701 };
20702
20703 Base.prototype.onChange = function onChange(e) {
20704 if ('stopPropagation' in e) {
20705 e.stopPropagation();
20706 } else if ('cancelBubble' in e) {
20707 e.cancelBubble();
20708 }
20709
20710 var value = e.target.value;
20711
20712 if (this.props.trim) {
20713 value = value.trim();
20714 }
20715
20716 value = this.ieHack(value);
20717
20718 // not controlled
20719 if (!('value' in this.props) || this.state.composition) {
20720 this.setState({
20721 value: value
20722 });
20723 }
20724
20725 if (this.state.composition) {
20726 return;
20727 }
20728
20729 // Number('') = 0
20730 if (value && this.props.htmlType === 'number') {
20731 value = Number(value);
20732 }
20733
20734 this.props.onChange(value, e);
20735 };
20736
20737 Base.prototype.onKeyDown = function onKeyDown(e) {
20738 var value = e.target.value;
20739 var maxLength = this.props.maxLength;
20740
20741 var len = maxLength > 0 && value ? this.getValueLength(value) : 0;
20742 var opts = {};
20743
20744 // has enable trim and has input whitespace
20745 if (this.props.trim && e.keyCode === 32) {
20746 opts.beTrimed = true;
20747 }
20748
20749 // has defined maxLength and has over max length and has not input backspace and delete
20750 if (maxLength > 0 && (len > maxLength + 1 || (len === maxLength || len === maxLength + 1) && e.keyCode !== 8 && e.keyCode !== 46)) {
20751 opts.overMaxLength = true;
20752 }
20753
20754 this.props.onKeyDown(e, opts);
20755 };
20756
20757 Base.prototype.onFocus = function onFocus(e) {
20758 this.setState({
20759 focus: true
20760 });
20761 this.props.onFocus(e);
20762 };
20763
20764 Base.prototype.onBlur = function onBlur(e) {
20765 this.setState({
20766 focus: false
20767 });
20768 this.props.onBlur(e);
20769 };
20770
20771 Base.prototype.renderLength = function renderLength() {
20772 var _classNames;
20773
20774 var _props = this.props,
20775 maxLength = _props.maxLength,
20776 showLimitHint = _props.showLimitHint,
20777 prefix = _props.prefix,
20778 rtl = _props.rtl;
20779
20780 var len = maxLength > 0 && this.state.value ? this.getValueLength(this.state.value) : 0;
20781
20782 var classesLenWrap = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'input-len'] = true, _classNames[prefix + 'error'] = len > maxLength, _classNames));
20783
20784 var content = rtl ? maxLength + '/' + len : len + '/' + maxLength;
20785
20786 return maxLength && showLimitHint ? _react2.default.createElement('span', { className: classesLenWrap }, content) : null;
20787 };
20788
20789 Base.prototype.renderControl = function renderControl() {
20790 var _this2 = this;
20791
20792 var lenWrap = this.renderLength();
20793
20794 return lenWrap ? _react2.default.createElement('span', { onClick: function onClick() {
20795 return _this2.focus();
20796 }, className: this.props.prefix + 'input-control' }, lenWrap) : null;
20797 };
20798
20799 Base.prototype.getClass = function getClass() {
20800 var _classNames2;
20801
20802 var _props2 = this.props,
20803 disabled = _props2.disabled,
20804 state = _props2.state,
20805 prefix = _props2.prefix;
20806
20807 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));
20808 };
20809
20810 Base.prototype.getProps = function getProps() {
20811 var _props3 = this.props,
20812 placeholder = _props3.placeholder,
20813 inputStyle = _props3.inputStyle,
20814 disabled = _props3.disabled,
20815 readOnly = _props3.readOnly,
20816 cutString = _props3.cutString,
20817 maxLength = _props3.maxLength,
20818 name = _props3.name,
20819 onCompositionStart = _props3.onCompositionStart,
20820 onCompositionEnd = _props3.onCompositionEnd;
20821
20822 var props = {
20823 style: inputStyle,
20824 placeholder: placeholder,
20825 disabled: disabled,
20826 readOnly: readOnly,
20827 name: name,
20828 maxLength: cutString ? maxLength : undefined,
20829 value: this.state.value,
20830 onChange: this.onChange.bind(this),
20831 onBlur: this.onBlur.bind(this),
20832 onFocus: this.onFocus.bind(this),
20833 onCompositionStart: onCompositionStart,
20834 onCompositionEnd: onCompositionEnd
20835 };
20836
20837 // fix accessibility:auto process status of aria disabled
20838 if (disabled) {
20839 props['aria-disabled'] = disabled;
20840 }
20841
20842 return props;
20843 };
20844
20845 Base.prototype.getInputNode = function getInputNode() {
20846 return this.inputRef;
20847 };
20848
20849 Base.prototype.focus = function focus(start, end) {
20850 this.inputRef.focus();
20851 if (typeof start === 'number') {
20852 this.inputRef.selectionStart = start;
20853 }
20854 if (typeof end === 'number') {
20855 this.inputRef.selectionEnd = end;
20856 }
20857 };
20858
20859 return Base;
20860}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
20861 /**
20862 * 当前值
20863 */
20864 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
20865 /**
20866 * 初始化值
20867 */
20868 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
20869 /**
20870 * 发生改变的时候触发的回调
20871 * @param {String} value 数据
20872 * @param {Event} e DOM事件对象
20873 */
20874 onChange: _propTypes2.default.func,
20875 /**
20876 * 键盘按下的时候触发的回调
20877 * @param {Event} e DOM事件对象
20878 * @param {Object} opts 可扩展的附加信息:<br> - opts.overMaxLength: {Boolean} 已超出最大长度<br> - opts.beTrimed: {Boolean} 输入的空格被清理
20879 */
20880 onKeyDown: _propTypes2.default.func,
20881 /**
20882 * 禁用状态
20883 */
20884 disabled: _propTypes2.default.bool,
20885 /**
20886 * 最大长度
20887 */
20888 maxLength: _propTypes2.default.number,
20889 /**
20890 * 是否展现最大长度样式(旧版本为 hasLimitHint,目前仍兼容旧用法,将在2.x直接废弃)
20891 */
20892 showLimitHint: _propTypes2.default.bool,
20893 /**
20894 * 当设置了maxLength时,是否截断超出字符串
20895 */
20896 cutString: _propTypes2.default.bool,
20897 /**
20898 * 只读
20899 */
20900 readOnly: _propTypes2.default.bool,
20901 /**
20902 * onChange返回会自动去除头尾空字符
20903 */
20904 trim: _propTypes2.default.bool,
20905 /**
20906 * 输入提示
20907 */
20908 placeholder: _propTypes2.default.string,
20909 /**
20910 * 获取焦点时候触发的回调
20911 * @param {Event} e DOM事件对象
20912 */
20913 onFocus: _propTypes2.default.func,
20914 /**
20915 * 失去焦点时候触发的回调
20916 * @param {Event} e DOM事件对象
20917 */
20918 onBlur: _propTypes2.default.func,
20919 /**
20920 * 自定义字符串计算长度方式
20921 * @param {String} value 数据
20922 * @returns {Number} 自定义长度
20923 */
20924 getValueLength: _propTypes2.default.func,
20925 inputStyle: _propTypes2.default.object,
20926 /**
20927 * 自定义class
20928 */
20929 className: _propTypes2.default.string,
20930 /**
20931 * 自定义内联样式
20932 */
20933 style: _propTypes2.default.object,
20934 /**
20935 * 原生type
20936 */
20937 htmlType: _propTypes2.default.string,
20938 /**
20939 * name
20940 */
20941 name: _propTypes2.default.string,
20942 rtl: _propTypes2.default.bool,
20943 state: _propTypes2.default.oneOf(['error', 'loading', 'success', 'warning']),
20944 locale: _propTypes2.default.object,
20945 /**
20946 * 是否为预览态
20947 */
20948 isPreview: _propTypes2.default.bool,
20949 /**
20950 * 预览态模式下渲染的内容
20951 * @param {number} value 评分值
20952 */
20953 renderPreview: _propTypes2.default.func,
20954 /**
20955 * 尺寸
20956 * @enumdesc 小, 中, 大
20957 */
20958 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
20959 /**
20960 * 开启后会过滤输入法中间字母状态,文字输入完成后才会触发 onChange
20961 * @version 1.23
20962 */
20963 composition: _propTypes2.default.bool,
20964 onCompositionStart: _propTypes2.default.func,
20965 onCompositionEnd: _propTypes2.default.func
20966}), _class.defaultProps = {
20967 disabled: false,
20968 prefix: 'next-',
20969 size: 'medium',
20970 maxLength: null,
20971 showLimitHint: false,
20972 cutString: true,
20973 readOnly: false,
20974 isPreview: false,
20975 trim: false,
20976 composition: false,
20977 onFocus: _util.func.noop,
20978 onBlur: _util.func.noop,
20979 onChange: _util.func.noop,
20980 onKeyDown: _util.func.noop,
20981 getValueLength: _util.func.noop,
20982 onCompositionStart: _util.func.noop,
20983 onCompositionEnd: _util.func.noop,
20984 locale: _zhCn2.default.Input
20985}, _temp2);
20986Base.displayName = 'Base';
20987exports.default = (0, _reactLifecyclesCompat.polyfill)(Base);
20988module.exports = exports['default'];
20989
20990/***/ }),
20991/* 153 */
20992/***/ (function(module, exports, __webpack_require__) {
20993
20994"use strict";
20995
20996
20997exports.__esModule = true;
20998
20999var _extends2 = __webpack_require__(1);
21000
21001var _extends3 = _interopRequireDefault(_extends2);
21002
21003var _objectWithoutProperties2 = __webpack_require__(8);
21004
21005var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
21006
21007var _classCallCheck2 = __webpack_require__(2);
21008
21009var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
21010
21011var _possibleConstructorReturn2 = __webpack_require__(3);
21012
21013var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
21014
21015var _inherits2 = __webpack_require__(4);
21016
21017var _inherits3 = _interopRequireDefault(_inherits2);
21018
21019var _class, _temp;
21020
21021var _react = __webpack_require__(0);
21022
21023var _react2 = _interopRequireDefault(_react);
21024
21025var _propTypes = __webpack_require__(5);
21026
21027var _propTypes2 = _interopRequireDefault(_propTypes);
21028
21029var _classnames = __webpack_require__(7);
21030
21031var _classnames2 = _interopRequireDefault(_classnames);
21032
21033var _configProvider = __webpack_require__(9);
21034
21035var _configProvider2 = _interopRequireDefault(_configProvider);
21036
21037function _interopRequireDefault(obj) {
21038 return obj && obj.__esModule ? obj : { default: obj };
21039}
21040
21041/**
21042 * Input.Group
21043 */
21044var Group = (_temp = _class = function (_React$Component) {
21045 (0, _inherits3.default)(Group, _React$Component);
21046
21047 function Group() {
21048 (0, _classCallCheck3.default)(this, Group);
21049 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
21050 }
21051
21052 Group.prototype.render = function render() {
21053 var _classNames, _classNames2, _classNames3;
21054
21055 var _props = this.props,
21056 className = _props.className,
21057 style = _props.style,
21058 children = _props.children,
21059 prefix = _props.prefix,
21060 addonBefore = _props.addonBefore,
21061 addonAfter = _props.addonAfter,
21062 addonBeforeClassName = _props.addonBeforeClassName,
21063 addonAfterClassName = _props.addonAfterClassName,
21064 rtl = _props.rtl,
21065 disabled = _props.disabled,
21066 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'style', 'children', 'prefix', 'addonBefore', 'addonAfter', 'addonBeforeClassName', 'addonAfterClassName', 'rtl', 'disabled']);
21067
21068 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'input-group'] = true, _classNames[prefix + 'disabled'] = disabled, _classNames[className] = !!className, _classNames));
21069
21070 var addonCls = prefix + 'input-group-addon';
21071 var beforeCls = (0, _classnames2.default)(addonCls, (_classNames2 = {}, _classNames2[prefix + 'before'] = true, _classNames2[addonBeforeClassName] = addonBeforeClassName, _classNames2));
21072 var afterCls = (0, _classnames2.default)(addonCls, (_classNames3 = {}, _classNames3[prefix + 'after'] = true, _classNames3[addonAfterClassName] = addonAfterClassName, _classNames3));
21073
21074 var before = addonBefore ? _react2.default.createElement('span', { className: beforeCls }, addonBefore) : null;
21075
21076 var after = addonAfter ? _react2.default.createElement('span', { className: afterCls }, addonAfter) : null;
21077
21078 return _react2.default.createElement('span', (0, _extends3.default)({}, others, { disabled: disabled, dir: rtl ? 'rtl' : undefined, className: cls, style: style }), before, children, after);
21079 };
21080
21081 return Group;
21082}(_react2.default.Component), _class.propTypes = {
21083 /**
21084 * 样式前缀
21085 */
21086 prefix: _propTypes2.default.string,
21087 className: _propTypes2.default.string,
21088 style: _propTypes2.default.object,
21089 children: _propTypes2.default.node,
21090 /**
21091 * 输入框前附加内容
21092 */
21093 addonBefore: _propTypes2.default.node,
21094 /**
21095 * 输入框前附加内容css
21096 */
21097 addonBeforeClassName: _propTypes2.default.string,
21098 /**
21099 * 输入框后附加内容
21100 */
21101 addonAfter: _propTypes2.default.node,
21102 /**
21103 * 输入框后额外css
21104 */
21105 addonAfterClassName: _propTypes2.default.string,
21106 /**
21107 * rtl
21108 */
21109 rtl: _propTypes2.default.bool
21110}, _class.defaultProps = {
21111 prefix: 'next-'
21112}, _temp);
21113Group.displayName = 'Group';
21114exports.default = _configProvider2.default.config(Group);
21115module.exports = exports['default'];
21116
21117/***/ }),
21118/* 154 */
21119/***/ (function(module, exports, __webpack_require__) {
21120
21121"use strict";
21122
21123
21124exports.__esModule = true;
21125exports.default = undefined;
21126
21127var _extends2 = __webpack_require__(1);
21128
21129var _extends3 = _interopRequireDefault(_extends2);
21130
21131var _classCallCheck2 = __webpack_require__(2);
21132
21133var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
21134
21135var _possibleConstructorReturn2 = __webpack_require__(3);
21136
21137var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
21138
21139var _inherits2 = __webpack_require__(4);
21140
21141var _inherits3 = _interopRequireDefault(_inherits2);
21142
21143var _class, _temp;
21144
21145var _react = __webpack_require__(0);
21146
21147var _react2 = _interopRequireDefault(_react);
21148
21149var _reactDom = __webpack_require__(12);
21150
21151var _propTypes = __webpack_require__(5);
21152
21153var _propTypes2 = _interopRequireDefault(_propTypes);
21154
21155var _classnames = __webpack_require__(7);
21156
21157var _classnames2 = _interopRequireDefault(_classnames);
21158
21159var _util = __webpack_require__(6);
21160
21161var _menu = __webpack_require__(16);
21162
21163var _menu2 = _interopRequireDefault(_menu);
21164
21165var _overlay = __webpack_require__(15);
21166
21167var _overlay2 = _interopRequireDefault(_overlay);
21168
21169var _input = __webpack_require__(18);
21170
21171var _input2 = _interopRequireDefault(_input);
21172
21173var _zhCn = __webpack_require__(13);
21174
21175var _zhCn2 = _interopRequireDefault(_zhCn);
21176
21177var _dataStore = __webpack_require__(311);
21178
21179var _dataStore2 = _interopRequireDefault(_dataStore);
21180
21181var _virtualList = __webpack_require__(51);
21182
21183var _virtualList2 = _interopRequireDefault(_virtualList);
21184
21185var _util2 = __webpack_require__(62);
21186
21187function _interopRequireDefault(obj) {
21188 return obj && obj.__esModule ? obj : { default: obj };
21189}
21190
21191var Popup = _overlay2.default.Popup;
21192var MenuItem = _menu2.default.Item,
21193 MenuGroup = _menu2.default.Group;
21194var noop = _util.func.noop,
21195 bindCtx = _util.func.bindCtx,
21196 makeChain = _util.func.makeChain;
21197
21198function preventDefault(e) {
21199 e.preventDefault();
21200}
21201
21202var Base = (_temp = _class = function (_React$Component) {
21203 (0, _inherits3.default)(Base, _React$Component);
21204
21205 function Base(props) {
21206 (0, _classCallCheck3.default)(this, Base);
21207
21208 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
21209
21210 _this.handleMouseDown = function (e) {
21211 if (!_this.props.popupAutoFocus) {
21212 preventDefault(e);
21213 }
21214 };
21215
21216 _this.saveSelectRef = function (ref) {
21217 _this.selectDOM = (0, _reactDom.findDOMNode)(ref);
21218 };
21219
21220 _this.saveInputRef = function (ref) {
21221 if (ref && ref.getInstance()) {
21222 _this.inputRef = ref.getInstance();
21223 }
21224 };
21225
21226 _this.savePopupRef = function (ref) {
21227 _this.popupRef = ref;
21228 };
21229
21230 _this.dataStore = new _dataStore2.default({
21231 filter: props.filter,
21232 filterLocal: props.filterLocal,
21233 showDataSourceChildren: props.showDataSourceChildren
21234 });
21235
21236 var mode = props.mode;
21237
21238 var value = 'value' in props ? props.value : props.defaultValue;
21239
21240 // 多选情况下做 value 数组订正
21241 if (props.mode !== 'single' && value && !Array.isArray(value)) {
21242 value = [value];
21243 }
21244
21245 _this.state = {
21246 dataStore: _this.dataStore,
21247 value: value,
21248 visible: 'visible' in props ? props.visible : props.defaultVisible,
21249 dataSource: _this.setDataSource(_this.props),
21250 width: 100,
21251 // highlightKey应为String 多选初始化只赋值受控highlightKey/defaultHighlightKey
21252 highlightKey: 'highlightKey' in props ? props.highlightKey : props.mode === 'single' ? props.value || props.defaultHighlightKey || props.defaultValue : props.defaultHighlightKey,
21253 srReader: ''
21254 };
21255
21256 bindCtx(_this, ['handleMenuBodyClick', 'handleVisibleChange', 'focusInput', 'beforeOpen', 'beforeClose', 'afterClose', 'handleResize']);
21257 return _this;
21258 }
21259
21260 Base.prototype.componentDidMount = function componentDidMount() {
21261 var _this2 = this;
21262
21263 // overlay 还没有完成 mount,所以需要滞后同步宽度
21264 setTimeout(function () {
21265 return _this2.syncWidth();
21266 }, 0);
21267
21268 _util.events.on(window, 'resize', this.handleResize);
21269 };
21270
21271 Base.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
21272 if (prevProps.label !== this.props.label || prevState.value !== this.state.value) {
21273 this.syncWidth();
21274 }
21275 };
21276
21277 Base.prototype.componentWillUnmount = function componentWillUnmount() {
21278 _util.events.off(window, 'resize', this.handleResize);
21279 clearTimeout(this.resizeTimeout);
21280 };
21281
21282 /**
21283 * Calculate and set width of popup menu
21284 * @protected
21285 */
21286
21287 Base.prototype.syncWidth = function syncWidth() {
21288 var _this3 = this;
21289
21290 var _props2 = this.props,
21291 popupStyle = _props2.popupStyle,
21292 popupProps = _props2.popupProps;
21293
21294 if (popupStyle && 'width' in popupStyle || popupProps && popupProps.style && 'width' in popupProps.style) {
21295 return;
21296 }
21297
21298 var width = _util.dom.getStyle(this.selectDOM, 'width');
21299 if (width && this.width !== width) {
21300 this.width = width;
21301
21302 if (this.popupRef && this.shouldAutoWidth()) {
21303 // overy 的 node 节点可能没有挂载完成,所以这里需要异步
21304 setTimeout(function () {
21305 if (_this3.popupRef) {
21306 _util.dom.setStyle(_this3.popupRef, 'width', _this3.width);
21307 return;
21308 }
21309 }, 0);
21310 }
21311 }
21312 };
21313
21314 Base.prototype.handleResize = function handleResize() {
21315 var _this4 = this;
21316
21317 clearTimeout(this.resizeTimeout);
21318 if (this.state.visible) {
21319 this.resizeTimeout = setTimeout(function () {
21320 _this4.syncWidth();
21321 }, 200);
21322 }
21323 };
21324
21325 /**
21326 * Get structured dataSource, for cache
21327 * @protected
21328 * @param {Object} [props=this.props]
21329 * @return {Array}
21330 */
21331
21332 Base.prototype.setDataSource = function setDataSource(props) {
21333 var dataSource = props.dataSource,
21334 children = props.children;
21335
21336 // children is higher priority then dataSource
21337
21338 if (_react.Children.count(children)) {
21339 return this.dataStore.updateByDS(children, true);
21340 } else if (Array.isArray(dataSource)) {
21341 return this.dataStore.updateByDS(dataSource, false);
21342 }
21343 return [];
21344 };
21345
21346 /**
21347 * Set popup visible
21348 * @protected
21349 * @param {boolean} visible
21350 * @param {string} type trigger type
21351 */
21352
21353 Base.prototype.setVisible = function setVisible(visible, type) {
21354 // disabled 状态下只允许关闭不允许打开
21355 if (this.props.disabled && visible || this.state.visible === visible) {
21356 return;
21357 }
21358
21359 if (!('visible' in this.props)) {
21360 this.setState({
21361 visible: visible
21362 });
21363 }
21364
21365 this.props.onVisibleChange(visible, type);
21366 };
21367
21368 Base.prototype.setFirstHightLightKeyForMenu = function setFirstHightLightKeyForMenu(searchValue) {
21369 // 判断value/highlightKey解决受控后,默认高亮第一个元素问题。(当搜索值时,搜索后应执行默认选择第一个元素)
21370 var highlightKey = this.state.highlightKey;
21371
21372 if (!this.props.autoHighlightFirstItem) {
21373 return;
21374 }
21375
21376 // 设置高亮 item key
21377 if (this.dataStore.getMenuDS().length && this.dataStore.getEnableDS().length && (!highlightKey || searchValue)) {
21378 var _highlightKey = '' + this.dataStore.getEnableDS()[0].value;
21379 this.setState({
21380 highlightKey: _highlightKey
21381 });
21382 this.props.onToggleHighlightItem(_highlightKey, 'autoFirstItem');
21383 }
21384
21385 // 当有搜索值且搜索条件与dataSource不匹配时(搜索条件不满足不会出现可选择的列表,所以高亮key应为null)
21386 if (searchValue && !this.dataStore.getEnableDS().length) {
21387 this.setState({
21388 highlightKey: null
21389 });
21390 this.props.onToggleHighlightItem(null, 'highlightKeyToNull');
21391 }
21392 };
21393
21394 Base.prototype.handleChange = function handleChange(value) {
21395 var _props3;
21396
21397 // 非受控模式清空内部数据
21398 if (!('value' in this.props)) {
21399 this.setState({
21400 value: value
21401 });
21402 }
21403
21404 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
21405 args[_key - 1] = arguments[_key];
21406 }
21407
21408 (_props3 = this.props).onChange.apply(_props3, [value].concat(args));
21409 };
21410
21411 /**
21412 * Handle Menu body click
21413 * @param {Event} e click event
21414 */
21415
21416 Base.prototype.handleMenuBodyClick = function handleMenuBodyClick(e) {
21417 if (!this.props.popupAutoFocus) {
21418 this.focusInput(e);
21419 }
21420 };
21421
21422 /**
21423 * Toggle highlight MenuItem
21424 * @private
21425 * @param {number} dir -1: up, 1: down
21426 */
21427
21428 Base.prototype.toggleHighlightItem = function toggleHighlightItem(dir) {
21429 if (!this.state.visible) {
21430 this.setVisible(true, 'enter');
21431 return;
21432 }
21433
21434 var maxCount = this.dataStore.getEnableDS().length;
21435 // When there is no enabled item
21436 if (!maxCount) {
21437 return false;
21438 }
21439
21440 var highlightKey = this.state.highlightKey;
21441
21442 var highlightIndex = -1;
21443
21444 // find previous highlight index
21445 highlightKey !== null && this.dataStore.getEnableDS().some(function (item, index) {
21446 if ('' + item.value === highlightKey) {
21447 highlightIndex = index;
21448 }
21449 return highlightIndex > -1;
21450 });
21451
21452 // toggle highlight index
21453 highlightIndex += dir;
21454 if (highlightIndex < 0) {
21455 highlightIndex = maxCount - 1;
21456 }
21457 if (highlightIndex >= maxCount) {
21458 highlightIndex = 0;
21459 }
21460
21461 // get highlight key
21462 var highlightItem = this.dataStore.getEnableDS()[highlightIndex];
21463 highlightKey = highlightItem ? '' + highlightItem.value : null;
21464
21465 this.setState({ highlightKey: highlightKey, srReader: highlightItem.label });
21466
21467 this.scrollMenuIntoView();
21468
21469 return highlightItem;
21470 };
21471
21472 // scroll into focus item
21473
21474
21475 Base.prototype.scrollMenuIntoView = function scrollMenuIntoView() {
21476 var _this5 = this;
21477
21478 var prefix = this.props.prefix;
21479
21480 clearTimeout(this.highlightTimer);
21481 this.highlightTimer = setTimeout(function () {
21482 try {
21483 var menuNode = (0, _reactDom.findDOMNode)(_this5.menuRef);
21484 var itemNode = menuNode.querySelector('.' + prefix + 'select-menu-item.' + prefix + 'focused');
21485 itemNode && itemNode.scrollIntoViewIfNeeded && itemNode.scrollIntoViewIfNeeded();
21486 } catch (ex) {
21487 // I don't care...
21488 }
21489 });
21490 };
21491
21492 /**
21493 * render popup menu header
21494 * @abstract
21495 */
21496
21497 Base.prototype.renderMenuHeader = function renderMenuHeader() {
21498 var menuProps = this.props.menuProps;
21499
21500 if (menuProps && 'header' in menuProps) {
21501 return menuProps.header;
21502 }
21503
21504 return null;
21505 };
21506
21507 Base.prototype.handleSelect = function handleSelect() {};
21508
21509 /**
21510 * 防止 onBlur/onFocus 抖动
21511 */
21512
21513 /**
21514 * render popup children
21515 * @protected
21516 * @param {object} props
21517 */
21518 Base.prototype.renderMenu = function renderMenu() {
21519 var _classNames,
21520 _this6 = this;
21521
21522 var _props4 = this.props,
21523 prefix = _props4.prefix,
21524 mode = _props4.mode,
21525 locale = _props4.locale,
21526 notFoundContent = _props4.notFoundContent,
21527 useVirtual = _props4.useVirtual,
21528 menuProps = _props4.menuProps;
21529 var _state = this.state,
21530 dataSource = _state.dataSource,
21531 highlightKey = _state.highlightKey;
21532
21533 var value = this.state.value;
21534 var selectedKeys = void 0;
21535
21536 if ((0, _util2.isNull)(value) || value.length === 0 || this.isAutoComplete) {
21537 selectedKeys = [];
21538 } else if ((0, _util2.isSingle)(mode)) {
21539 selectedKeys = [(0, _util2.valueToSelectKey)(value)];
21540 } else {
21541 selectedKeys = [].concat(value).map(function (n) {
21542 return (0, _util2.valueToSelectKey)(n);
21543 });
21544 }
21545
21546 var children = this.renderMenuItem(dataSource);
21547
21548 var menuClassName = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'select-menu'] = true, _classNames[prefix + 'select-menu-empty'] = !children || !children.length, _classNames));
21549
21550 if (!children || !children.length) {
21551 children = _react2.default.createElement('span', { className: prefix + 'select-menu-empty-content' }, notFoundContent || locale.notFoundContent);
21552 }
21553
21554 var customProps = (0, _extends3.default)({}, menuProps, {
21555 children: children,
21556 role: 'listbox',
21557 selectedKeys: selectedKeys,
21558 focusedKey: highlightKey,
21559 focusable: false,
21560 selectMode: (0, _util2.isSingle)(mode) ? 'single' : 'multiple',
21561 onSelect: this.handleMenuSelect,
21562 onItemClick: this.handleItemClick,
21563 header: this.renderMenuHeader(),
21564 onClick: this.handleMenuBodyClick,
21565 onMouseDown: this.handleMouseDown,
21566 className: menuClassName
21567 });
21568 var menuStyle = this.shouldAutoWidth() ? { width: '100%' } : { minWidth: this.width };
21569
21570 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, {
21571 itemsRenderer: function itemsRenderer(items, _ref) {
21572 return _react2.default.createElement(_menu2.default, (0, _extends3.default)({
21573 ref: function ref(c) {
21574 _ref(c);
21575 _this6.menuRef = c;
21576 },
21577 flatenContent: true
21578 }, customProps), items);
21579 }
21580 }, children)) : _react2.default.createElement(_menu2.default, (0, _extends3.default)({}, customProps, { style: menuStyle }));
21581 };
21582
21583 /**
21584 * render menu item
21585 * @protected
21586 * @param {Array} dataSource
21587 */
21588
21589 Base.prototype.renderMenuItem = function renderMenuItem(dataSource) {
21590 var _this7 = this;
21591
21592 var _props5 = this.props,
21593 prefix = _props5.prefix,
21594 itemRender = _props5.itemRender,
21595 showDataSourceChildren = _props5.showDataSourceChildren;
21596 // If it has.
21597
21598 var searchKey = void 0;
21599 if (this.isAutoComplete) {
21600 // In AutoComplete, value is the searchKey
21601 searchKey = this.state.value;
21602 } else {
21603 searchKey = this.state.searchValue;
21604 }
21605
21606 return dataSource.map(function (item, index) {
21607 if (!item) {
21608 return null;
21609 }
21610 if (Array.isArray(item.children) && showDataSourceChildren) {
21611 return _react2.default.createElement(MenuGroup, { key: index, label: item.label }, _this7.renderMenuItem(item.children));
21612 } else {
21613 var itemProps = {
21614 role: 'option',
21615 key: item.value,
21616 className: prefix + 'select-menu-item',
21617 disabled: item.disabled
21618 };
21619
21620 if ('title' in item) {
21621 itemProps.title = item.title;
21622 }
21623
21624 return _react2.default.createElement(MenuItem, itemProps, itemRender(item, searchKey));
21625 }
21626 });
21627 };
21628
21629 /**
21630 * 点击 arrow 或 label 的时候焦点切到 input 中
21631 * @override
21632 */
21633 Base.prototype.focusInput = function focusInput() {
21634 this.inputRef.focus();
21635 };
21636
21637 Base.prototype.focus = function focus() {
21638 var _inputRef;
21639
21640 (_inputRef = this.inputRef).focus.apply(_inputRef, arguments);
21641 };
21642
21643 Base.prototype.beforeOpen = function beforeOpen() {
21644 if (this.props.mode === 'single') {
21645 this.setFirstHightLightKeyForMenu();
21646 }
21647 this.syncWidth();
21648 };
21649
21650 Base.prototype.beforeClose = function beforeClose() {};
21651
21652 Base.prototype.afterClose = function afterClose() {};
21653
21654 Base.prototype.shouldAutoWidth = function shouldAutoWidth() {
21655 if (this.props.popupComponent) {
21656 return false;
21657 }
21658
21659 return this.props.autoWidth;
21660 };
21661
21662 Base.prototype.render = function render(props) {
21663 var _classNames2;
21664
21665 var prefix = props.prefix,
21666 mode = props.mode,
21667 popupProps = props.popupProps,
21668 popupContainer = props.popupContainer,
21669 popupClassName = props.popupClassName,
21670 popupStyle = props.popupStyle,
21671 popupContent = props.popupContent,
21672 canCloseByTrigger = props.canCloseByTrigger,
21673 followTrigger = props.followTrigger,
21674 cache = props.cache,
21675 popupComponent = props.popupComponent,
21676 isPreview = props.isPreview,
21677 renderPreview = props.renderPreview,
21678 style = props.style,
21679 className = props.className;
21680
21681 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);
21682
21683 if (isPreview) {
21684 if (this.isAutoComplete) {
21685 return _react2.default.createElement(_input2.default, {
21686 style: style,
21687 className: className,
21688 isPreview: isPreview,
21689 renderPreview: renderPreview,
21690 value: this.state.value
21691 });
21692 } else {
21693 var value = this.state.value;
21694 var valueDS = this.state.value;
21695
21696 if (!this.useDetailValue()) {
21697 if (value === this.valueDataSource.value) {
21698 valueDS = this.valueDataSource.valueDS;
21699 } else {
21700 valueDS = (0, _util2.getValueDataSource)(value, this.valueDataSource.mapValueDS, this.dataStore.getMapDS()).valueDS;
21701 }
21702 }
21703
21704 if (typeof renderPreview === 'function') {
21705 var _classNames3;
21706
21707 var previewCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'form-preview'] = true, _classNames3[className] = !!className, _classNames3));
21708 return _react2.default.createElement('div', { style: style, className: previewCls }, renderPreview(valueDS, this.props));
21709 } else {
21710 var fillProps = this.props.fillProps;
21711
21712 if (mode === 'single') {
21713 return _react2.default.createElement(_input2.default, {
21714 style: style,
21715 className: className,
21716 isPreview: isPreview,
21717 value: valueDS ? fillProps ? valueDS[fillProps] : valueDS.label : ''
21718 });
21719 } else {
21720 return _react2.default.createElement(_input2.default, {
21721 style: style,
21722 className: className,
21723 isPreview: isPreview,
21724 value: (valueDS || []).map(function (i) {
21725 return i.label;
21726 }).join(', ')
21727 });
21728 }
21729 }
21730 }
21731 }
21732
21733 var _props = (0, _extends3.default)({
21734 triggerType: 'click',
21735 autoFocus: !!this.props.popupAutoFocus,
21736 cache: cache
21737 }, popupProps, {
21738 //beforeOpen node not mount, afterOpen too slow.
21739 // from display:none to block, we may need to recompute width
21740 beforeOpen: makeChain(this.beforeOpen, popupProps.beforeOpen),
21741 beforeClose: makeChain(this.beforeClose, popupProps.beforeClose),
21742 afterClose: makeChain(this.afterClose, popupProps.afterClose),
21743 canCloseByTrigger: canCloseByTrigger,
21744 followTrigger: followTrigger,
21745 visible: this.state.visible,
21746 onVisibleChange: this.handleVisibleChange,
21747 shouldUpdatePosition: true,
21748 container: popupContainer || popupProps.container,
21749 className: cls,
21750 style: popupStyle || popupProps.style
21751 });
21752
21753 if (popupProps.v2) {
21754 delete _props.shouldUpdatePosition;
21755 }
21756
21757 var Tag = popupComponent ? popupComponent : Popup;
21758
21759 return _react2.default.createElement(Tag, (0, _extends3.default)({}, _props, { trigger: this.renderSelect() }), popupContent ? _react2.default.createElement('div', {
21760 className: prefix + 'select-popup-wrap',
21761 style: this.shouldAutoWidth() ? { width: this.width } : {},
21762 ref: this.savePopupRef
21763 }, popupContent) : _react2.default.createElement('div', {
21764 className: prefix + 'select-spacing-tb',
21765 style: this.shouldAutoWidth() ? { width: this.width } : {},
21766 ref: this.savePopupRef
21767 }, this.renderMenu()));
21768 };
21769
21770 return Base;
21771}(_react2.default.Component), _class.propTypes = {
21772 prefix: _propTypes2.default.string,
21773 /**
21774 * 选择器尺寸
21775 */
21776 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
21777 // 当前值,用于受控模式
21778 value: _propTypes2.default.any, // to be override
21779 // 初始化的默认值
21780 defaultValue: _propTypes2.default.any, // to be override
21781 /**
21782 * 没有值的时候的占位符
21783 */
21784 placeholder: _propTypes2.default.string,
21785 /**
21786 * 下拉菜单是否与选择器对齐
21787 */
21788 autoWidth: _propTypes2.default.bool,
21789 /**
21790 * 自定义内联 label
21791 */
21792 label: _propTypes2.default.node,
21793 /**
21794 * 是否有清除按钮(单选模式有效)
21795 */
21796 hasClear: _propTypes2.default.bool,
21797 /**
21798 * 校验状态
21799 */
21800 state: _propTypes2.default.oneOf(['error', 'loading', 'success', 'warning']),
21801 /**
21802 * 是否只读,只读模式下可以展开弹层但不能选
21803 */
21804 readOnly: _propTypes2.default.bool,
21805 /**
21806 * 是否禁用选择器
21807 */
21808 disabled: _propTypes2.default.bool,
21809 /**
21810 * 当前弹层是否显示
21811 */
21812 visible: _propTypes2.default.bool,
21813 /**
21814 * 弹层初始化是否显示
21815 */
21816 defaultVisible: _propTypes2.default.bool,
21817 /**
21818 * 弹层显示或隐藏时触发的回调
21819 * @param {Boolean} visible 弹层是否显示
21820 * @param {String} type 触发弹层显示或隐藏的来源 fromContent 表示由Dropdown内容触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
21821 */
21822 onVisibleChange: _propTypes2.default.func,
21823 /**
21824 * 弹层挂载的容器节点
21825 */
21826 popupContainer: _propTypes2.default.any,
21827 /**
21828 * 弹层的 className
21829 */
21830 popupClassName: _propTypes2.default.any,
21831 /**
21832 * 弹层的内联样式
21833 */
21834 popupStyle: _propTypes2.default.object,
21835 /**
21836 * 添加到弹层上的属性
21837 */
21838 popupProps: _propTypes2.default.object,
21839 /**
21840 * 是否跟随滚动
21841 */
21842 followTrigger: _propTypes2.default.bool,
21843 /**
21844 * 自定义弹层的内容
21845 */
21846 popupContent: _propTypes2.default.node,
21847 /**
21848 * 添加到菜单上的属性
21849 * @version 1.18
21850 */
21851 menuProps: _propTypes2.default.object,
21852 /**
21853 * 是否使用本地过滤,在数据源为远程的时候需要关闭此项
21854 */
21855 filterLocal: _propTypes2.default.bool,
21856 /**
21857 * 本地过滤方法,返回一个 Boolean 值确定是否保留
21858 * @param {String} key 搜索关键字
21859 * @param {Object} item 渲染节点的item
21860 * @return {Boolean} 是否匹配
21861 */
21862 filter: _propTypes2.default.func,
21863 /**
21864 * 默认高亮的 key,不要和 autoHighlightFirstItem 同时使用
21865 */
21866 defaultHighlightKey: _propTypes2.default.string,
21867 /**
21868 * 高亮 key,不要和 autoHighlightFirstItem 同时使用,用于受控模式
21869 */
21870 highlightKey: _propTypes2.default.string,
21871 /**
21872 * 键盘上下键切换菜单高亮选项的回调
21873 */
21874 onToggleHighlightItem: _propTypes2.default.func,
21875 /**
21876 * 自动高亮第一个元素
21877 */
21878 autoHighlightFirstItem: _propTypes2.default.bool,
21879 /**
21880 * 是否开启虚拟滚动模式
21881 */
21882 useVirtual: _propTypes2.default.bool,
21883 // 自定义类名
21884 className: _propTypes2.default.any,
21885 children: _propTypes2.default.any,
21886 dataSource: _propTypes2.default.array,
21887 itemRender: _propTypes2.default.func,
21888 mode: _propTypes2.default.string,
21889 notFoundContent: _propTypes2.default.node,
21890 locale: _propTypes2.default.object,
21891 rtl: _propTypes2.default.bool,
21892 popupComponent: _propTypes2.default.any,
21893 /**
21894 * 是否为预览态
21895 */
21896 isPreview: _propTypes2.default.bool,
21897 /**
21898 * 预览态模式下渲染的内容
21899 * @param {number} value 评分值
21900 */
21901 renderPreview: _propTypes2.default.func,
21902 showDataSourceChildren: _propTypes2.default.bool
21903}, _class.defaultProps = {
21904 prefix: 'next-',
21905 size: 'medium',
21906 autoWidth: true,
21907 onChange: noop,
21908 onVisibleChange: noop,
21909 onToggleHighlightItem: noop,
21910 popupProps: {},
21911 filterLocal: true,
21912 filter: _util2.filter,
21913 itemRender: function itemRender(item) {
21914 return item.label || item.value;
21915 },
21916 locale: _zhCn2.default.Select,
21917 autoHighlightFirstItem: true,
21918 showDataSourceChildren: true,
21919 defaultHighlightKey: null
21920}, _temp);
21921Base.displayName = 'Base';
21922exports.default = Base;
21923module.exports = exports['default'];
21924
21925/***/ }),
21926/* 155 */
21927/***/ (function(module, exports, __webpack_require__) {
21928
21929"use strict";
21930
21931
21932exports.__esModule = true;
21933exports.default = undefined;
21934
21935var _extends2 = __webpack_require__(1);
21936
21937var _extends3 = _interopRequireDefault(_extends2);
21938
21939var _objectWithoutProperties2 = __webpack_require__(8);
21940
21941var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
21942
21943var _classCallCheck2 = __webpack_require__(2);
21944
21945var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
21946
21947var _possibleConstructorReturn2 = __webpack_require__(3);
21948
21949var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
21950
21951var _inherits2 = __webpack_require__(4);
21952
21953var _inherits3 = _interopRequireDefault(_inherits2);
21954
21955var _class, _temp2; /* istanbul ignore file */
21956
21957var _react = __webpack_require__(0);
21958
21959var _react2 = _interopRequireDefault(_react);
21960
21961var _propTypes = __webpack_require__(5);
21962
21963var _propTypes2 = _interopRequireDefault(_propTypes);
21964
21965var _reactDom = __webpack_require__(12);
21966
21967var _menu = __webpack_require__(16);
21968
21969var _menu2 = _interopRequireDefault(_menu);
21970
21971function _interopRequireDefault(obj) {
21972 return obj && obj.__esModule ? obj : { default: obj };
21973}
21974
21975var SelectMenu = (_temp2 = _class = function (_Component) {
21976 (0, _inherits3.default)(SelectMenu, _Component);
21977
21978 function SelectMenu() {
21979 var _temp, _this, _ret;
21980
21981 (0, _classCallCheck3.default)(this, SelectMenu);
21982
21983 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
21984 args[_key] = arguments[_key];
21985 }
21986
21987 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.saveRef = function (ref) {
21988 _this.menuEl = ref;
21989 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
21990 }
21991
21992 SelectMenu.prototype.componentDidMount = function componentDidMount() {
21993 this.scrollToSelectedItem();
21994 };
21995
21996 SelectMenu.prototype.scrollToSelectedItem = function scrollToSelectedItem() {
21997 var _props = this.props,
21998 prefix = _props.prefix,
21999 dataSource = _props.dataSource,
22000 value = _props.value;
22001
22002 var selectedIndex = dataSource.findIndex(function (item) {
22003 return item.value === value;
22004 });
22005
22006 if (selectedIndex === -1) {
22007 return;
22008 }
22009
22010 var itemSelector = '.' + prefix + 'menu-item';
22011 var menu = (0, _reactDom.findDOMNode)(this.menuEl);
22012 var targetItem = menu.querySelectorAll(itemSelector)[selectedIndex];
22013 if (targetItem) {
22014 menu.scrollTop = targetItem.offsetTop - Math.floor((menu.clientHeight / targetItem.clientHeight - 1) / 2) * targetItem.clientHeight;
22015 }
22016 };
22017
22018 SelectMenu.prototype.render = function render() {
22019 var _props2 = this.props,
22020 prefix = _props2.prefix,
22021 dataSource = _props2.dataSource,
22022 onChange = _props2.onChange,
22023 value = _props2.value,
22024 className = _props2.className,
22025 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'dataSource', 'onChange', 'value', 'className']);
22026
22027 return _react2.default.createElement(_menu2.default, (0, _extends3.default)({}, others, {
22028 ref: this.saveRef,
22029 selectMode: 'single',
22030 selectedKeys: [String(value)],
22031 onSelect: function onSelect(selectKeys) {
22032 return onChange(Number(selectKeys[0]));
22033 },
22034 role: 'listbox',
22035 className: prefix + 'calendar-panel-menu ' + className
22036 }), dataSource.map(function (_ref) {
22037 var label = _ref.label,
22038 value = _ref.value;
22039 return _react2.default.createElement(_menu2.default.Item, { key: value }, label);
22040 }));
22041 };
22042
22043 return SelectMenu;
22044}(_react.Component), _class.isNextMenu = true, _class.propTypes = {
22045 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.object),
22046 value: _propTypes2.default.number,
22047 prefix: _propTypes2.default.string,
22048 onChange: _propTypes2.default.func,
22049 children: _propTypes2.default.node
22050}, _temp2);
22051SelectMenu.displayName = 'SelectMenu';
22052exports.default = SelectMenu;
22053module.exports = exports['default'];
22054
22055/***/ }),
22056/* 156 */
22057/***/ (function(module, exports, __webpack_require__) {
22058
22059"use strict";
22060
22061
22062exports.__esModule = true;
22063
22064var _classCallCheck2 = __webpack_require__(2);
22065
22066var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22067
22068var _possibleConstructorReturn2 = __webpack_require__(3);
22069
22070var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22071
22072var _inherits2 = __webpack_require__(4);
22073
22074var _inherits3 = _interopRequireDefault(_inherits2);
22075
22076var _react = __webpack_require__(0);
22077
22078var _react2 = _interopRequireDefault(_react);
22079
22080var _icon = __webpack_require__(11);
22081
22082var _icon2 = _interopRequireDefault(_icon);
22083
22084function _interopRequireDefault(obj) {
22085 return obj && obj.__esModule ? obj : { default: obj };
22086}
22087
22088var MonthPanelHeader = function (_React$PureComponent) {
22089 (0, _inherits3.default)(MonthPanelHeader, _React$PureComponent);
22090
22091 function MonthPanelHeader() {
22092 (0, _classCallCheck3.default)(this, MonthPanelHeader);
22093 return (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.apply(this, arguments));
22094 }
22095
22096 MonthPanelHeader.prototype.render = function render() {
22097 var _props = this.props,
22098 prefix = _props.prefix,
22099 visibleMonth = _props.visibleMonth,
22100 locale = _props.locale,
22101 changeMode = _props.changeMode,
22102 goPrevYear = _props.goPrevYear,
22103 goNextYear = _props.goNextYear;
22104
22105 var yearLabel = visibleMonth.year();
22106 var btnCls = prefix + 'calendar-btn';
22107
22108 return _react2.default.createElement('div', { className: prefix + 'calendar-panel-header' }, _react2.default.createElement('button', {
22109 role: 'button',
22110 type: 'button',
22111 title: locale.prevYear,
22112 className: btnCls + ' ' + btnCls + '-prev-year',
22113 onClick: goPrevYear
22114 }, _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', {
22115 role: 'button',
22116 type: 'button',
22117 title: yearLabel,
22118 className: '' + btnCls,
22119 onClick: function onClick() {
22120 return changeMode('year');
22121 }
22122 }, yearLabel)), _react2.default.createElement('button', {
22123 role: 'button',
22124 type: 'button',
22125 title: locale.nextYear,
22126 className: btnCls + ' ' + btnCls + '-next-year',
22127 onClick: goNextYear
22128 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-right', className: prefix + 'calendar-symbol-next-super' })));
22129 };
22130
22131 return MonthPanelHeader;
22132}(_react2.default.PureComponent);
22133
22134exports.default = MonthPanelHeader;
22135module.exports = exports['default'];
22136
22137/***/ }),
22138/* 157 */
22139/***/ (function(module, exports, __webpack_require__) {
22140
22141"use strict";
22142
22143
22144exports.__esModule = true;
22145
22146var _classCallCheck2 = __webpack_require__(2);
22147
22148var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22149
22150var _possibleConstructorReturn2 = __webpack_require__(3);
22151
22152var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22153
22154var _inherits2 = __webpack_require__(4);
22155
22156var _inherits3 = _interopRequireDefault(_inherits2);
22157
22158var _react = __webpack_require__(0);
22159
22160var _react2 = _interopRequireDefault(_react);
22161
22162var _icon = __webpack_require__(11);
22163
22164var _icon2 = _interopRequireDefault(_icon);
22165
22166function _interopRequireDefault(obj) {
22167 return obj && obj.__esModule ? obj : { default: obj };
22168}
22169
22170var YearPanelHeader = function (_React$PureComponent) {
22171 (0, _inherits3.default)(YearPanelHeader, _React$PureComponent);
22172
22173 function YearPanelHeader() {
22174 var _temp, _this, _ret;
22175
22176 (0, _classCallCheck3.default)(this, YearPanelHeader);
22177
22178 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
22179 args[_key] = arguments[_key];
22180 }
22181
22182 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.getDecadeLabel = function (date) {
22183 var year = date.year();
22184 var start = parseInt(year / 10, 10) * 10;
22185 var end = start + 9;
22186 return start + '-' + end;
22187 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
22188 }
22189
22190 YearPanelHeader.prototype.render = function render() {
22191 var _props = this.props,
22192 prefix = _props.prefix,
22193 visibleMonth = _props.visibleMonth,
22194 locale = _props.locale,
22195 goPrevDecade = _props.goPrevDecade,
22196 goNextDecade = _props.goNextDecade;
22197
22198 var decadeLable = this.getDecadeLabel(visibleMonth);
22199 var btnCls = prefix + 'calendar-btn';
22200
22201 return _react2.default.createElement('div', { className: prefix + 'calendar-panel-header' }, _react2.default.createElement('button', {
22202 role: 'button',
22203 type: 'button',
22204 title: locale.prevDecade,
22205 className: btnCls + ' ' + btnCls + '-prev-decade',
22206 onClick: goPrevDecade
22207 }, _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', {
22208 role: 'button',
22209 type: 'button',
22210 title: locale.nextDecade,
22211 className: btnCls + ' ' + btnCls + '-next-decade',
22212 onClick: goNextDecade
22213 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-right', className: prefix + 'calendar-symbol-next-super' })));
22214 };
22215
22216 return YearPanelHeader;
22217}(_react2.default.PureComponent);
22218
22219exports.default = YearPanelHeader;
22220module.exports = exports['default'];
22221
22222/***/ }),
22223/* 158 */
22224/***/ (function(module, exports, __webpack_require__) {
22225
22226"use strict";
22227
22228
22229exports.__esModule = true;
22230
22231var _extends2 = __webpack_require__(1);
22232
22233var _extends3 = _interopRequireDefault(_extends2);
22234
22235var _classCallCheck2 = __webpack_require__(2);
22236
22237var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22238
22239var _possibleConstructorReturn2 = __webpack_require__(3);
22240
22241var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22242
22243var _inherits2 = __webpack_require__(4);
22244
22245var _inherits3 = _interopRequireDefault(_inherits2);
22246
22247var _react = __webpack_require__(0);
22248
22249var _react2 = _interopRequireDefault(_react);
22250
22251var _classnames = __webpack_require__(7);
22252
22253var _classnames2 = _interopRequireDefault(_classnames);
22254
22255var _dateTableHead = __webpack_require__(317);
22256
22257var _dateTableHead2 = _interopRequireDefault(_dateTableHead);
22258
22259var _utils = __webpack_require__(22);
22260
22261function _interopRequireDefault(obj) {
22262 return obj && obj.__esModule ? obj : { default: obj };
22263}
22264
22265function isSameDay(a, b) {
22266 return a && b && a.isSame(b, 'day');
22267}
22268
22269function isRangeDate(date, startDate, endDate) {
22270 return date.format('L') !== startDate.format('L') && date.format('L') !== endDate.format('L') && date.valueOf() > startDate.valueOf() && date.valueOf() < endDate.valueOf();
22271}
22272
22273function isLastMonthDate(date, target) {
22274 if (date.year() < target.year()) {
22275 return 1;
22276 }
22277 return date.year() === target.year() && date.month() < target.month();
22278}
22279
22280function isNextMonthDate(date, target) {
22281 if (date.year() > target.year()) {
22282 return 1;
22283 }
22284 return date.year() === target.year() && date.month() > target.month();
22285}
22286
22287var DateTable = function (_PureComponent) {
22288 (0, _inherits3.default)(DateTable, _PureComponent);
22289
22290 function DateTable() {
22291 (0, _classCallCheck3.default)(this, DateTable);
22292 return (0, _possibleConstructorReturn3.default)(this, _PureComponent.apply(this, arguments));
22293 }
22294
22295 DateTable.prototype.render = function render() {
22296 var _props = this.props,
22297 prefix = _props.prefix,
22298 visibleMonth = _props.visibleMonth,
22299 showOtherMonth = _props.showOtherMonth,
22300 endValue = _props.endValue,
22301 format = _props.format,
22302 today = _props.today,
22303 momentLocale = _props.momentLocale,
22304 dateCellRender = _props.dateCellRender,
22305 disabledDate = _props.disabledDate,
22306 onSelectDate = _props.onSelectDate;
22307
22308 var startValue = this.props.startValue || this.props.value;
22309
22310 var firstDayOfMonth = visibleMonth.clone().startOf('month'); // 该月的 1 号
22311 var firstDayOfMonthInWeek = firstDayOfMonth.day(); // 星期几
22312
22313 var firstDayOfWeek = momentLocale.firstDayOfWeek();
22314
22315 var datesOfLastMonthCount = (firstDayOfMonthInWeek + _utils.DAYS_OF_WEEK - firstDayOfWeek) % _utils.DAYS_OF_WEEK;
22316
22317 var lastMonthDate = firstDayOfMonth.clone();
22318 lastMonthDate.add(0 - datesOfLastMonthCount, 'days');
22319
22320 var counter = 0;
22321 var currentDate = void 0;
22322 var dateList = [];
22323 for (var i = 0; i < _utils.CALENDAR_TABLE_ROW_COUNT; i++) {
22324 for (var j = 0; j < _utils.CALENDAR_TABLE_COL_COUNT; j++) {
22325 currentDate = lastMonthDate;
22326 if (counter) {
22327 currentDate = currentDate.clone();
22328 currentDate.add(counter, 'days');
22329 }
22330 dateList.push(currentDate);
22331 counter++;
22332 }
22333 }
22334 counter = 0; // reset counter
22335 var monthElements = [];
22336 for (var _i = 0; _i < _utils.CALENDAR_TABLE_ROW_COUNT; _i++) {
22337 var weekElements = [];
22338 var firstDayOfWeekInCurrentMonth = true;
22339 var lastDayOfWeekInCurrentMonth = true;
22340 for (var _j = 0; _j < _utils.CALENDAR_TABLE_COL_COUNT; _j++) {
22341 var _classNames;
22342
22343 currentDate = dateList[counter];
22344 if (_j === 0) {
22345 // currentDate 的month 是否等于当前月 firstDayOfMonth
22346 firstDayOfWeekInCurrentMonth = currentDate.format('M') === firstDayOfMonth.format('M');
22347 }
22348 if (_j === _utils.CALENDAR_TABLE_COL_COUNT - 1) {
22349 // currentDate 的month 是否等于当前月 firstDayOfMonth
22350 lastDayOfWeekInCurrentMonth = currentDate.format('M') === firstDayOfMonth.format('M');
22351 }
22352 var isLastMonth = isLastMonthDate(currentDate, visibleMonth);
22353 var isNextMonth = isNextMonthDate(currentDate, visibleMonth);
22354 var isCurrentMonth = !isLastMonth && !isNextMonth;
22355
22356 var isDisabled = (0, _utils.isDisabledDate)(currentDate, disabledDate, 'date');
22357 var isToday = !isDisabled && isSameDay(currentDate, today) && isCurrentMonth;
22358 var isSelected = !isDisabled && (isSameDay(currentDate, startValue) || isSameDay(currentDate, endValue)) && isCurrentMonth;
22359 var isInRange = !isDisabled && startValue && endValue && isRangeDate(currentDate, startValue, endValue) && isCurrentMonth;
22360
22361 var cellContent = !showOtherMonth && !isCurrentMonth ? null : dateCellRender(currentDate);
22362
22363 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));
22364
22365 weekElements.push(_react2.default.createElement('td', {
22366 key: counter,
22367 title: currentDate.format(format),
22368 onClick: isDisabled ? undefined : onSelectDate.bind(null, currentDate),
22369 className: elementCls,
22370 role: 'cell',
22371 'aria-disabled': isDisabled ? 'true' : 'false',
22372 'aria-selected': isSelected ? 'true' : 'false'
22373 }, _react2.default.createElement('div', { className: prefix + 'calendar-date' }, cellContent)));
22374 counter++;
22375 }
22376
22377 if (!showOtherMonth && !lastDayOfWeekInCurrentMonth && !firstDayOfWeekInCurrentMonth) {
22378 break;
22379 }
22380
22381 monthElements.push(_react2.default.createElement('tr', { key: _i, role: 'row' }, weekElements));
22382 }
22383
22384 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));
22385 };
22386
22387 return DateTable;
22388}(_react.PureComponent);
22389
22390exports.default = DateTable;
22391module.exports = exports['default'];
22392
22393/***/ }),
22394/* 159 */
22395/***/ (function(module, exports, __webpack_require__) {
22396
22397"use strict";
22398
22399
22400exports.__esModule = true;
22401
22402var _classCallCheck2 = __webpack_require__(2);
22403
22404var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22405
22406var _possibleConstructorReturn2 = __webpack_require__(3);
22407
22408var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22409
22410var _inherits2 = __webpack_require__(4);
22411
22412var _inherits3 = _interopRequireDefault(_inherits2);
22413
22414var _react = __webpack_require__(0);
22415
22416var _react2 = _interopRequireDefault(_react);
22417
22418var _classnames2 = __webpack_require__(7);
22419
22420var _classnames3 = _interopRequireDefault(_classnames2);
22421
22422var _utils = __webpack_require__(22);
22423
22424function _interopRequireDefault(obj) {
22425 return obj && obj.__esModule ? obj : { default: obj };
22426}
22427
22428function isSameMonth(currentDate, selectedDate) {
22429 return selectedDate && currentDate.year() === selectedDate.year() && currentDate.month() === selectedDate.month();
22430}
22431
22432var MonthTable = function (_PureComponent) {
22433 (0, _inherits3.default)(MonthTable, _PureComponent);
22434
22435 function MonthTable() {
22436 (0, _classCallCheck3.default)(this, MonthTable);
22437 return (0, _possibleConstructorReturn3.default)(this, _PureComponent.apply(this, arguments));
22438 }
22439
22440 MonthTable.prototype.onMonthCellClick = function onMonthCellClick(date) {
22441 this.props.onSelectMonth(date, 'date');
22442 };
22443
22444 MonthTable.prototype.render = function render() {
22445 var _props = this.props,
22446 prefix = _props.prefix,
22447 value = _props.value,
22448 visibleMonth = _props.visibleMonth,
22449 disabledDate = _props.disabledDate,
22450 today = _props.today,
22451 momentLocale = _props.momentLocale,
22452 monthCellRender = _props.monthCellRender;
22453
22454 var monthLocale = momentLocale.monthsShort();
22455
22456 var counter = 0;
22457 var monthList = [];
22458 for (var i = 0; i < _utils.MONTH_TABLE_ROW_COUNT; i++) {
22459 var rowList = [];
22460 for (var j = 0; j < _utils.MONTH_TABLE_COL_COUNT; j++) {
22461 var _classnames;
22462
22463 var monthDate = visibleMonth.clone().month(counter);
22464 var isDisabled = (0, _utils.isDisabledDate)(monthDate, disabledDate, 'month');
22465 var isSelected = isSameMonth(monthDate, value);
22466 var isThisMonth = isSameMonth(monthDate, today);
22467 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));
22468 var localedMonth = monthLocale[counter];
22469 var monthCellContent = monthCellRender ? monthCellRender(monthDate) : localedMonth;
22470 rowList.push(_react2.default.createElement('td', {
22471 key: counter,
22472 title: localedMonth,
22473 onClick: isDisabled ? undefined : this.onMonthCellClick.bind(this, monthDate),
22474 className: elementCls,
22475 role: 'cell',
22476 'aria-disabled': isDisabled ? 'true' : 'false',
22477 'aria-selected': isSelected ? 'true' : 'false'
22478 }, _react2.default.createElement('div', { className: prefix + 'calendar-month' }, monthCellContent)));
22479 counter++;
22480 }
22481 monthList.push(_react2.default.createElement('tr', { key: i, role: 'row' }, rowList));
22482 }
22483
22484 return _react2.default.createElement('table', { className: prefix + 'calendar-table', role: 'grid' }, _react2.default.createElement('tbody', { className: prefix + 'calendar-tbody', role: 'rowgroup' }, monthList));
22485 };
22486
22487 return MonthTable;
22488}(_react.PureComponent);
22489
22490exports.default = MonthTable;
22491module.exports = exports['default'];
22492
22493/***/ }),
22494/* 160 */
22495/***/ (function(module, exports, __webpack_require__) {
22496
22497"use strict";
22498
22499
22500exports.__esModule = true;
22501
22502var _classCallCheck2 = __webpack_require__(2);
22503
22504var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22505
22506var _possibleConstructorReturn2 = __webpack_require__(3);
22507
22508var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22509
22510var _inherits2 = __webpack_require__(4);
22511
22512var _inherits3 = _interopRequireDefault(_inherits2);
22513
22514var _react = __webpack_require__(0);
22515
22516var _react2 = _interopRequireDefault(_react);
22517
22518var _classnames2 = __webpack_require__(7);
22519
22520var _classnames3 = _interopRequireDefault(_classnames2);
22521
22522var _icon = __webpack_require__(11);
22523
22524var _icon2 = _interopRequireDefault(_icon);
22525
22526var _utils = __webpack_require__(22);
22527
22528function _interopRequireDefault(obj) {
22529 return obj && obj.__esModule ? obj : { default: obj };
22530}
22531
22532var YearTable = function (_React$PureComponent) {
22533 (0, _inherits3.default)(YearTable, _React$PureComponent);
22534
22535 function YearTable() {
22536 (0, _classCallCheck3.default)(this, YearTable);
22537 return (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.apply(this, arguments));
22538 }
22539
22540 YearTable.prototype.onYearCellClick = function onYearCellClick(date) {
22541 this.props.onSelectYear(date, 'month');
22542 };
22543
22544 YearTable.prototype.render = function render() {
22545 var _props = this.props,
22546 prefix = _props.prefix,
22547 value = _props.value,
22548 today = _props.today,
22549 visibleMonth = _props.visibleMonth,
22550 locale = _props.locale,
22551 disabledDate = _props.disabledDate,
22552 goPrevDecade = _props.goPrevDecade,
22553 goNextDecade = _props.goNextDecade,
22554 yearCellRender = _props.yearCellRender;
22555
22556 var currentYear = today.year();
22557 var selectedYear = value ? value.year() : null;
22558 var visibleYear = visibleMonth.year();
22559 var startYear = Math.floor(visibleYear / 10) * 10;
22560
22561 var yearElements = [];
22562 var counter = 0;
22563
22564 var lastRowIndex = _utils.YEAR_TABLE_ROW_COUNT - 1;
22565 var lastColIndex = _utils.YEAR_TABLE_COL_COUNT - 1;
22566
22567 for (var i = 0; i < _utils.YEAR_TABLE_ROW_COUNT; i++) {
22568 var rowElements = [];
22569 for (var j = 0; j < _utils.YEAR_TABLE_COL_COUNT; j++) {
22570 var _classnames;
22571
22572 var content = void 0;
22573 var year = void 0;
22574 var isDisabled = false;
22575 var onClick = void 0;
22576 var title = void 0;
22577
22578 if (i === 0 && j === 0) {
22579 title = locale.prevDecade;
22580 onClick = goPrevDecade;
22581 content = _react2.default.createElement(_icon2.default, { type: 'arrow-left', size: 'xs' });
22582 } else if (i === lastRowIndex && j === lastColIndex) {
22583 title = locale.nextDecade;
22584 onClick = goNextDecade;
22585 content = _react2.default.createElement(_icon2.default, { type: 'arrow-right', size: 'xs' });
22586 } else {
22587 year = startYear + counter++;
22588 title = year;
22589 var yearDate = visibleMonth.clone().year(year);
22590 isDisabled = (0, _utils.isDisabledDate)(yearDate, disabledDate, 'year');
22591
22592 !isDisabled && (onClick = this.onYearCellClick.bind(this, yearDate));
22593
22594 content = yearCellRender ? yearCellRender(yearDate) : year;
22595 }
22596
22597 var isSelected = year === selectedYear;
22598
22599 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));
22600
22601 rowElements.push(_react2.default.createElement('td', { key: i + '-' + j, className: classNames, role: 'cell' }, _react2.default.createElement('div', {
22602 className: prefix + 'calendar-year',
22603 onClick: onClick,
22604 title: title,
22605 'aria-disabled': isDisabled ? 'true' : 'false',
22606 'aria-selected': isSelected ? 'true' : 'false'
22607 }, content)));
22608 }
22609 yearElements.push(_react2.default.createElement('tr', { key: i, role: 'row' }, rowElements));
22610 }
22611 return _react2.default.createElement('table', { className: prefix + 'calendar-table', role: 'grid' }, _react2.default.createElement('tbody', { className: prefix + 'calendar-tbody', role: 'rowgroup' }, yearElements));
22612 };
22613
22614 return YearTable;
22615}(_react2.default.PureComponent);
22616
22617exports.default = YearTable;
22618module.exports = exports['default'];
22619
22620/***/ }),
22621/* 161 */
22622/***/ (function(module, exports, __webpack_require__) {
22623
22624"use strict";
22625
22626
22627exports.__esModule = true;
22628
22629var _extends2 = __webpack_require__(1);
22630
22631var _extends3 = _interopRequireDefault(_extends2);
22632
22633var _objectWithoutProperties2 = __webpack_require__(8);
22634
22635var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
22636
22637var _classCallCheck2 = __webpack_require__(2);
22638
22639var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22640
22641var _possibleConstructorReturn2 = __webpack_require__(3);
22642
22643var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22644
22645var _inherits2 = __webpack_require__(4);
22646
22647var _inherits3 = _interopRequireDefault(_inherits2);
22648
22649var _class, _temp;
22650
22651var _react = __webpack_require__(0);
22652
22653var _react2 = _interopRequireDefault(_react);
22654
22655var _propTypes = __webpack_require__(5);
22656
22657var _propTypes2 = _interopRequireDefault(_propTypes);
22658
22659var _reactLifecyclesCompat = __webpack_require__(10);
22660
22661var _classnames2 = __webpack_require__(7);
22662
22663var _classnames3 = _interopRequireDefault(_classnames2);
22664
22665var _moment = __webpack_require__(19);
22666
22667var _moment2 = _interopRequireDefault(_moment);
22668
22669var _configProvider = __webpack_require__(9);
22670
22671var _configProvider2 = _interopRequireDefault(_configProvider);
22672
22673var _zhCn = __webpack_require__(13);
22674
22675var _zhCn2 = _interopRequireDefault(_zhCn);
22676
22677var _util = __webpack_require__(6);
22678
22679var _rangePanelHeader = __webpack_require__(318);
22680
22681var _rangePanelHeader2 = _interopRequireDefault(_rangePanelHeader);
22682
22683var _monthPanelHeader = __webpack_require__(156);
22684
22685var _monthPanelHeader2 = _interopRequireDefault(_monthPanelHeader);
22686
22687var _yearPanelHeader = __webpack_require__(157);
22688
22689var _yearPanelHeader2 = _interopRequireDefault(_yearPanelHeader);
22690
22691var _dateTable = __webpack_require__(158);
22692
22693var _dateTable2 = _interopRequireDefault(_dateTable);
22694
22695var _monthTable = __webpack_require__(159);
22696
22697var _monthTable2 = _interopRequireDefault(_monthTable);
22698
22699var _yearTable = __webpack_require__(160);
22700
22701var _yearTable2 = _interopRequireDefault(_yearTable);
22702
22703var _utils = __webpack_require__(22);
22704
22705function _interopRequireDefault(obj) {
22706 return obj && obj.__esModule ? obj : { default: obj };
22707}
22708
22709var RangeCalendar = (_temp = _class = function (_React$Component) {
22710 (0, _inherits3.default)(RangeCalendar, _React$Component);
22711
22712 function RangeCalendar(props, context) {
22713 (0, _classCallCheck3.default)(this, RangeCalendar);
22714
22715 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
22716
22717 _this.onSelectCell = function (date, nextMode) {
22718 if (_this.state.mode === _utils.CALENDAR_MODE_DATE) {
22719 _this.props.onSelect(date);
22720 } else {
22721 _this.changeVisibleMonth(date, 'cellClick');
22722 }
22723
22724 _this.changeMode(nextMode);
22725 };
22726
22727 _this.changeMode = function (mode, activePanel) {
22728 var _this$state = _this.state,
22729 lastMode = _this$state.lastMode,
22730 lastPanelType = _this$state.lastPanelType;
22731
22732 var state = {
22733 lastMode: mode,
22734 // rangePicker的panel下,选 year -> month ,从当前函数的activePanel传来的数据已经拿不到 start end panel的状态了,需要根据 lastMode 来判断
22735 lastPanelType: lastMode === 'year' ? lastPanelType : activePanel
22736 };
22737 if (typeof mode === 'string' && mode !== _this.state.mode) {
22738 state.mode = mode;
22739 }
22740 if (activePanel && activePanel !== _this.state.activePanel) {
22741 state.activePanel = activePanel;
22742 }
22743
22744 _this.setState(state);
22745 };
22746
22747 _this.changeVisibleMonth = function (date, reason) {
22748 var lastPanelType = _this.state.lastPanelType;
22749
22750 if (!(0, _utils.isSameYearMonth)(date, _this.state.startVisibleMonth)) {
22751 var startVisibleMonth = lastPanelType === 'end' ? date.clone().add(-1, 'month') : date;
22752 _this.setState({ startVisibleMonth: startVisibleMonth });
22753 _this.props.onVisibleMonthChange(startVisibleMonth, reason);
22754 }
22755 };
22756
22757 _this.changeVisibleMonthByOffset = function (offset, type) {
22758 var offsetDate = _this.state.startVisibleMonth.clone().add(offset, type);
22759 _this.changeVisibleMonth(offsetDate, 'buttonClick');
22760 };
22761
22762 _this.goPrevDecade = function () {
22763 _this.changeVisibleMonthByOffset(-10, 'years');
22764 };
22765
22766 _this.goNextDecade = function () {
22767 _this.changeVisibleMonthByOffset(10, 'years');
22768 };
22769
22770 _this.goPrevYear = function () {
22771 _this.changeVisibleMonthByOffset(-1, 'years');
22772 };
22773
22774 _this.goNextYear = function () {
22775 _this.changeVisibleMonthByOffset(1, 'years');
22776 };
22777
22778 _this.goPrevMonth = function () {
22779 _this.changeVisibleMonthByOffset(-1, 'months');
22780 };
22781
22782 _this.goNextMonth = function () {
22783 _this.changeVisibleMonthByOffset(1, 'months');
22784 };
22785
22786 var startValue = (0, _utils.formatDateValue)(props.startValue || props.defaultStartValue);
22787 var endValue = (0, _utils.formatDateValue)(props.endValue || props.defaultEndValue);
22788 var visibleMonth = (0, _utils.getVisibleMonth)(props.defaultVisibleMonth, startValue);
22789
22790 _this.state = {
22791 startValue: startValue,
22792 endValue: endValue,
22793 mode: props.mode,
22794 prevMode: props.mode,
22795 startVisibleMonth: visibleMonth,
22796 activePanel: undefined,
22797 lastMode: undefined,
22798 lastPanelType: 'start' // enum, 包括 start end
22799 };
22800 _this.today = (0, _moment2.default)();
22801 return _this;
22802 }
22803
22804 RangeCalendar.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
22805 var st = {};
22806 if ('startValue' in props) {
22807 var startValue = (0, _utils.formatDateValue)(props.startValue);
22808 st.startValue = startValue;
22809 if (startValue && !startValue.isSame(state.startValue, 'day')) {
22810 st.startVisibleMonth = startValue;
22811 }
22812 }
22813
22814 if ('endValue' in props) {
22815 st.endValue = (0, _utils.formatDateValue)(props.endValue);
22816 }
22817
22818 if ('mode' in props && state.prevMode !== props.mode) {
22819 st.prevMode = props.mode;
22820 st.mode = props.mode;
22821 }
22822
22823 return st;
22824 };
22825
22826 /**
22827 * 根据日期偏移量设置当前展示的月份
22828 * @param {Number} offset 日期偏移量
22829 * @param {String} type 日期偏移类型 days, months, years
22830 */
22831
22832 RangeCalendar.prototype.render = function render() {
22833 var _classnames;
22834
22835 var _props = this.props,
22836 prefix = _props.prefix,
22837 rtl = _props.rtl,
22838 dateCellRender = _props.dateCellRender,
22839 monthCellRender = _props.monthCellRender,
22840 yearCellRender = _props.yearCellRender,
22841 className = _props.className,
22842 format = _props.format,
22843 locale = _props.locale,
22844 showOtherMonth = _props.showOtherMonth,
22845 disabledDate = _props.disabledDate,
22846 disableChangeMode = _props.disableChangeMode,
22847 yearRange = _props.yearRange,
22848 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'rtl', 'dateCellRender', 'monthCellRender', 'yearCellRender', 'className', 'format', 'locale', 'showOtherMonth', 'disabledDate', 'disableChangeMode', 'yearRange']);
22849 var _state = this.state,
22850 startValue = _state.startValue,
22851 endValue = _state.endValue,
22852 mode = _state.mode,
22853 startVisibleMonth = _state.startVisibleMonth,
22854 activePanel = _state.activePanel;
22855
22856 // reset moment locale
22857
22858 if (locale.momentLocale) {
22859 startValue && startValue.locale(locale.momentLocale);
22860 endValue && endValue.locale(locale.momentLocale);
22861 startVisibleMonth.locale(locale.momentLocale);
22862 }
22863
22864 if (rtl) {
22865 others.dir = 'rtl';
22866 }
22867 var localeData = (0, _utils.getLocaleData)(locale.format || {}, startVisibleMonth.localeData());
22868
22869 var endVisibleMonth = startVisibleMonth.clone().add(1, 'months');
22870
22871 var headerProps = {
22872 prefix: prefix,
22873 rtl: rtl,
22874 mode: mode,
22875 locale: locale,
22876 momentLocale: localeData,
22877 startVisibleMonth: startVisibleMonth,
22878 endVisibleMonth: endVisibleMonth,
22879 changeVisibleMonth: this.changeVisibleMonth,
22880 changeMode: this.changeMode,
22881 yearRange: yearRange,
22882 disableChangeMode: disableChangeMode
22883 };
22884
22885 var tableProps = {
22886 prefix: prefix,
22887 value: startValue,
22888 startValue: startValue,
22889 endValue: endValue,
22890 mode: mode,
22891 locale: locale,
22892 momentLocale: localeData,
22893 showOtherMonth: showOtherMonth,
22894 today: this.today,
22895 disabledDate: disabledDate,
22896 dateCellRender: dateCellRender,
22897 monthCellRender: monthCellRender,
22898 yearCellRender: yearCellRender,
22899 changeMode: this.changeMode,
22900 changeVisibleMonth: this.changeVisibleMonth
22901 };
22902
22903 var visibleMonths = {
22904 start: startVisibleMonth,
22905 end: endVisibleMonth
22906 };
22907
22908 var visibleMonth = visibleMonths[activePanel];
22909
22910 var header = void 0;
22911 var table = void 0;
22912
22913 switch (mode) {
22914 case _utils.CALENDAR_MODE_DATE:
22915 {
22916 table = [_react2.default.createElement('div', { className: prefix + 'calendar-body-left', key: 'left-panel' }, _react2.default.createElement(_dateTable2.default, (0, _extends3.default)({
22917 format: format
22918 }, tableProps, {
22919 visibleMonth: startVisibleMonth,
22920 onSelectDate: this.onSelectCell
22921 }))), _react2.default.createElement('div', { className: prefix + 'calendar-body-right', key: 'right-panel' }, _react2.default.createElement(_dateTable2.default, (0, _extends3.default)({
22922 format: format
22923 }, tableProps, {
22924 visibleMonth: endVisibleMonth,
22925 onSelectDate: this.onSelectCell
22926 })))];
22927 header = _react2.default.createElement(_rangePanelHeader2.default, (0, _extends3.default)({}, headerProps, {
22928 goPrevYear: this.goPrevYear,
22929 goPrevMonth: this.goPrevMonth,
22930 goNextYear: this.goNextYear,
22931 goNextMonth: this.goNextMonth
22932 }));
22933 break;
22934 }
22935 case _utils.CALENDAR_MODE_MONTH:
22936 {
22937 table = _react2.default.createElement(_monthTable2.default, (0, _extends3.default)({}, tableProps, { visibleMonth: visibleMonth, onSelectMonth: this.onSelectCell }));
22938 header = _react2.default.createElement(_monthPanelHeader2.default, (0, _extends3.default)({}, headerProps, {
22939 visibleMonth: visibleMonth,
22940 goPrevYear: this.goPrevYear,
22941 goNextYear: this.goNextYear
22942 }));
22943 break;
22944 }
22945 case _utils.CALENDAR_MODE_YEAR:
22946 {
22947 table = _react2.default.createElement(_yearTable2.default, (0, _extends3.default)({}, tableProps, {
22948 rtl: rtl,
22949 visibleMonth: visibleMonth,
22950 onSelectYear: this.onSelectCell,
22951 goPrevDecade: this.goPrevDecade,
22952 goNextDecade: this.goNextDecade
22953 }));
22954 header = _react2.default.createElement(_yearPanelHeader2.default, (0, _extends3.default)({}, headerProps, {
22955 visibleMonth: visibleMonth,
22956 goPrevDecade: this.goPrevDecade,
22957 goNextDecade: this.goNextDecade
22958 }));
22959 break;
22960 }
22961 }
22962
22963 var classNames = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'calendar'] = true, _classnames[prefix + 'calendar-range'] = true, _classnames), className);
22964
22965 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));
22966 };
22967
22968 return RangeCalendar;
22969}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
22970 /**
22971 * 样式前缀
22972 */
22973 prefix: _propTypes2.default.string,
22974 rtl: _propTypes2.default.bool,
22975 /**
22976 * 默认的开始日期
22977 */
22978 defaultStartValue: _utils.checkMomentObj,
22979 /**
22980 * 默认的结束日期
22981 */
22982 defaultEndValue: _utils.checkMomentObj,
22983 /**
22984 * 开始日期(moment 对象)
22985 */
22986 startValue: _utils.checkMomentObj,
22987 /**
22988 * 结束日期(moment 对象)
22989 */
22990 endValue: _utils.checkMomentObj,
22991 // 面板模式
22992 mode: _propTypes2.default.oneOf(_utils.CALENDAR_MODES),
22993 // 禁用更改面板模式,采用 dropdown 的方式切换显示日期 (暂不正式对外透出)
22994 disableChangeMode: _propTypes2.default.bool,
22995 // 日期值的格式(用于日期title显示的格式)
22996 format: _propTypes2.default.string,
22997 yearRange: _propTypes2.default.arrayOf(_propTypes2.default.number),
22998 /**
22999 * 是否显示非本月的日期
23000 */
23001 showOtherMonth: _propTypes2.default.bool,
23002 /**
23003 * 模板展示的月份(起始月份)
23004 */
23005 defaultVisibleMonth: _propTypes2.default.func,
23006 /**
23007 * 展现的月份变化时的回调
23008 * @param {Object} value 显示的月份 (moment 对象)
23009 * @param {String} reason 触发月份改变原因
23010 */
23011 onVisibleMonthChange: _propTypes2.default.func,
23012 /**
23013 * 不可选择的日期
23014 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
23015 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
23016 * @returns {Boolean}
23017 */
23018 disabledDate: _propTypes2.default.func,
23019 /**
23020 * 选择日期单元格时的回调
23021 * @param {Object} value 对应的日期值 (moment 对象)
23022 */
23023 onSelect: _propTypes2.default.func,
23024 /**
23025 * 自定义日期单元格渲染
23026 */
23027 dateCellRender: _propTypes2.default.func,
23028 /**
23029 * 自定义月份渲染函数
23030 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
23031 * @returns {ReactNode}
23032 */
23033 monthCellRender: _propTypes2.default.func,
23034 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
23035 locale: _propTypes2.default.object,
23036 className: _propTypes2.default.string
23037}), _class.defaultProps = {
23038 prefix: 'next-',
23039 rtl: false,
23040 mode: _utils.CALENDAR_MODE_DATE,
23041 disableChangeMode: false,
23042 format: 'YYYY-MM-DD',
23043 dateCellRender: function dateCellRender(value) {
23044 return value.date();
23045 },
23046 onSelect: _util.func.noop,
23047 onVisibleMonthChange: _util.func.noop,
23048 locale: _zhCn2.default.Calendar,
23049 showOtherMonth: false
23050}, _temp);
23051RangeCalendar.displayName = 'RangeCalendar';
23052exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(RangeCalendar), {
23053 componentName: 'Calendar'
23054});
23055module.exports = exports['default'];
23056
23057/***/ }),
23058/* 162 */
23059/***/ (function(module, exports, __webpack_require__) {
23060
23061"use strict";
23062
23063
23064exports.__esModule = true;
23065
23066var _classCallCheck2 = __webpack_require__(2);
23067
23068var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
23069
23070var _possibleConstructorReturn2 = __webpack_require__(3);
23071
23072var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
23073
23074var _inherits2 = __webpack_require__(4);
23075
23076var _inherits3 = _interopRequireDefault(_inherits2);
23077
23078var _class, _temp;
23079
23080var _react = __webpack_require__(0);
23081
23082var _react2 = _interopRequireDefault(_react);
23083
23084var _propTypes = __webpack_require__(5);
23085
23086var _propTypes2 = _interopRequireDefault(_propTypes);
23087
23088var _classnames = __webpack_require__(7);
23089
23090var _classnames2 = _interopRequireDefault(_classnames);
23091
23092var _configProvider = __webpack_require__(9);
23093
23094var _configProvider2 = _interopRequireDefault(_configProvider);
23095
23096function _interopRequireDefault(obj) {
23097 return obj && obj.__esModule ? obj : { default: obj };
23098}
23099
23100/**
23101 * Card.BulletHeader
23102 * @order 2
23103 */
23104var CardBulletHeader = (_temp = _class = function (_Component) {
23105 (0, _inherits3.default)(CardBulletHeader, _Component);
23106
23107 function CardBulletHeader() {
23108 (0, _classCallCheck3.default)(this, CardBulletHeader);
23109 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
23110 }
23111
23112 CardBulletHeader.prototype.render = function render() {
23113 var _classNames;
23114
23115 var _props = this.props,
23116 prefix = _props.prefix,
23117 title = _props.title,
23118 subTitle = _props.subTitle,
23119 extra = _props.extra,
23120 showTitleBullet = _props.showTitleBullet;
23121
23122 if (!title) return null;
23123
23124 var headCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'card-head'] = true, _classNames[prefix + 'card-head-show-bullet'] = showTitleBullet, _classNames));
23125
23126 var headExtra = extra ? _react2.default.createElement('div', { className: prefix + 'card-extra' }, extra) : null;
23127
23128 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));
23129 };
23130
23131 return CardBulletHeader;
23132}(_react.Component), _class.propTypes = {
23133 prefix: _propTypes2.default.string,
23134 /**
23135 * 卡片的标题
23136 */
23137 title: _propTypes2.default.node,
23138 /**
23139 * 卡片的副标题
23140 */
23141 subTitle: _propTypes2.default.node,
23142 /**
23143 * 是否显示标题的项目符号
23144 */
23145 showTitleBullet: _propTypes2.default.bool,
23146 /**
23147 * 标题区域的用户自定义内容
23148 */
23149 extra: _propTypes2.default.node
23150}, _class.defaultProps = {
23151 prefix: 'next-',
23152 showTitleBullet: true
23153}, _temp);
23154CardBulletHeader.displayName = 'CardBulletHeader';
23155exports.default = _configProvider2.default.config(CardBulletHeader, {
23156 componentName: 'Card'
23157});
23158module.exports = exports['default'];
23159
23160/***/ }),
23161/* 163 */
23162/***/ (function(module, exports, __webpack_require__) {
23163
23164"use strict";
23165
23166
23167exports.__esModule = true;
23168
23169var _classCallCheck2 = __webpack_require__(2);
23170
23171var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
23172
23173var _possibleConstructorReturn2 = __webpack_require__(3);
23174
23175var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
23176
23177var _inherits2 = __webpack_require__(4);
23178
23179var _inherits3 = _interopRequireDefault(_inherits2);
23180
23181var _class, _temp;
23182
23183var _react = __webpack_require__(0);
23184
23185var _react2 = _interopRequireDefault(_react);
23186
23187var _reactDom = __webpack_require__(12);
23188
23189var _reactDom2 = _interopRequireDefault(_reactDom);
23190
23191var _propTypes = __webpack_require__(5);
23192
23193var _propTypes2 = _interopRequireDefault(_propTypes);
23194
23195var _icon = __webpack_require__(11);
23196
23197var _icon2 = _interopRequireDefault(_icon);
23198
23199var _button = __webpack_require__(17);
23200
23201var _button2 = _interopRequireDefault(_button);
23202
23203var _configProvider = __webpack_require__(9);
23204
23205var _configProvider2 = _interopRequireDefault(_configProvider);
23206
23207var _zhCn = __webpack_require__(13);
23208
23209var _zhCn2 = _interopRequireDefault(_zhCn);
23210
23211function _interopRequireDefault(obj) {
23212 return obj && obj.__esModule ? obj : { default: obj };
23213}
23214
23215/**
23216 * Card.CollapseContent
23217 * @order 3
23218 */
23219var CardCollapseContent = (_temp = _class = function (_Component) {
23220 (0, _inherits3.default)(CardCollapseContent, _Component);
23221
23222 function CardCollapseContent(props, context) {
23223 (0, _classCallCheck3.default)(this, CardCollapseContent);
23224
23225 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
23226
23227 _this.handleToggle = function () {
23228 _this.setState(function (prevState) {
23229 return {
23230 expand: !prevState.expand
23231 };
23232 });
23233 };
23234
23235 _this._contentRefHandler = function (ref) {
23236 _this.content = ref;
23237 };
23238
23239 _this.saveFooter = function (ref) {
23240 _this.footer = ref;
23241 };
23242
23243 _this.state = {
23244 needMore: false,
23245 expand: false,
23246 contentHeight: 'auto'
23247 };
23248 return _this;
23249 }
23250
23251 CardCollapseContent.prototype.componentDidMount = function componentDidMount() {
23252 this._setNeedMore();
23253 this._setContentHeight();
23254 };
23255
23256 CardCollapseContent.prototype.componentDidUpdate = function componentDidUpdate() {
23257 this._setContentHeight();
23258 };
23259
23260 // 是否展示 More 按钮
23261 CardCollapseContent.prototype._setNeedMore = function _setNeedMore() {
23262 var contentHeight = this.props.contentHeight;
23263
23264 var childrenHeight = this._getNodeChildrenHeight(this.content);
23265 this.setState({
23266 needMore: contentHeight !== 'auto' && childrenHeight > contentHeight
23267 });
23268 };
23269
23270 // 设置 Body 的高度
23271
23272
23273 CardCollapseContent.prototype._setContentHeight = function _setContentHeight() {
23274 if (this.props.contentHeight === 'auto') {
23275 this.content.style.height = 'auto';
23276 return;
23277 }
23278
23279 if (this.state.expand) {
23280 var childrenHeight = this._getNodeChildrenHeight(this.content);
23281 this.content.style.height = childrenHeight + 'px'; // get the real height
23282 } else {
23283 var el = _reactDom2.default.findDOMNode(this.footer);
23284 var height = this.props.contentHeight;
23285
23286 if (el) {
23287 height = height - el.getBoundingClientRect().height;
23288 }
23289
23290 this.content.style.height = height + 'px';
23291 }
23292 };
23293
23294 CardCollapseContent.prototype._getNodeChildrenHeight = function _getNodeChildrenHeight(node) {
23295 if (!node) {
23296 return 0;
23297 }
23298
23299 var contentChildNodes = node.childNodes;
23300 var length = contentChildNodes.length;
23301
23302 if (!length) {
23303 return 0;
23304 }
23305
23306 var lastNode = contentChildNodes[length - 1];
23307
23308 return lastNode.offsetTop + lastNode.offsetHeight;
23309 };
23310
23311 CardCollapseContent.prototype.render = function render() {
23312 var _props = this.props,
23313 prefix = _props.prefix,
23314 children = _props.children,
23315 locale = _props.locale;
23316 var _state = this.state,
23317 needMore = _state.needMore,
23318 expand = _state.expand;
23319
23320 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);
23321 };
23322
23323 return CardCollapseContent;
23324}(_react.Component), _class.propTypes = {
23325 prefix: _propTypes2.default.string,
23326 /**
23327 * 内容区域的固定高度
23328 */
23329 contentHeight: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
23330 locale: _propTypes2.default.object,
23331 children: _propTypes2.default.node
23332}, _class.defaultProps = {
23333 prefix: 'next-',
23334 contentHeight: 120,
23335 locale: _zhCn2.default.Card
23336}, _temp);
23337CardCollapseContent.displayName = 'CardCollapseContent';
23338exports.default = _configProvider2.default.config(CardCollapseContent, {
23339 componentName: 'Card'
23340});
23341module.exports = exports['default'];
23342
23343/***/ }),
23344/* 164 */
23345/***/ (function(module, exports, __webpack_require__) {
23346
23347"use strict";
23348
23349
23350exports.__esModule = true;
23351
23352var _extends2 = __webpack_require__(1);
23353
23354var _extends3 = _interopRequireDefault(_extends2);
23355
23356var _objectWithoutProperties2 = __webpack_require__(8);
23357
23358var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
23359
23360var _classCallCheck2 = __webpack_require__(2);
23361
23362var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
23363
23364var _possibleConstructorReturn2 = __webpack_require__(3);
23365
23366var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
23367
23368var _inherits2 = __webpack_require__(4);
23369
23370var _inherits3 = _interopRequireDefault(_inherits2);
23371
23372var _class, _temp;
23373
23374var _react = __webpack_require__(0);
23375
23376var _react2 = _interopRequireDefault(_react);
23377
23378var _propTypes = __webpack_require__(5);
23379
23380var _propTypes2 = _interopRequireDefault(_propTypes);
23381
23382var _classnames = __webpack_require__(7);
23383
23384var _classnames2 = _interopRequireDefault(_classnames);
23385
23386var _configProvider = __webpack_require__(9);
23387
23388var _configProvider2 = _interopRequireDefault(_configProvider);
23389
23390var _util = __webpack_require__(6);
23391
23392function _interopRequireDefault(obj) {
23393 return obj && obj.__esModule ? obj : { default: obj };
23394}
23395
23396var warning = _util.log.warning;
23397
23398var MEDIA_COMPONENTS = ['video', 'audio', 'picture', 'iframe', 'img'];
23399
23400/**
23401 * Card.Media
23402 * @order 1
23403 */
23404var CardMedia = (_temp = _class = function (_Component) {
23405 (0, _inherits3.default)(CardMedia, _Component);
23406
23407 function CardMedia() {
23408 (0, _classCallCheck3.default)(this, CardMedia);
23409 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
23410 }
23411
23412 CardMedia.prototype.render = function render() {
23413 var _props = this.props,
23414 prefix = _props.prefix,
23415 style = _props.style,
23416 className = _props.className,
23417 Component = _props.component,
23418 image = _props.image,
23419 src = _props.src,
23420 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'style', 'className', 'component', 'image', 'src']);
23421
23422 if (!('children' in others || Boolean(image || src))) {
23423 warning('either `children`, `image` or `src` prop must be specified.');
23424 }
23425
23426 var isMediaComponent = MEDIA_COMPONENTS.indexOf(Component) !== -1;
23427 var composedStyle = !isMediaComponent && image ? (0, _extends3.default)({ backgroundImage: 'url("' + image + '")' }, style) : style;
23428
23429 return _react2.default.createElement(Component, (0, _extends3.default)({}, others, {
23430 style: composedStyle,
23431 className: (0, _classnames2.default)(prefix + 'card-media', className),
23432 src: isMediaComponent ? image || src : undefined
23433 }));
23434 };
23435
23436 return CardMedia;
23437}(_react.Component), _class.propTypes = {
23438 prefix: _propTypes2.default.string,
23439 /**
23440 * 设置标签类型
23441 */
23442 component: _propTypes2.default.elementType,
23443 /**
23444 * 背景图片地址
23445 */
23446 image: _propTypes2.default.string,
23447 /**
23448 * 媒体源文件地址
23449 */
23450 src: _propTypes2.default.string,
23451 style: _propTypes2.default.object,
23452 className: _propTypes2.default.string
23453}, _class.defaultProps = {
23454 prefix: 'next-',
23455 component: 'div',
23456 style: {}
23457}, _temp);
23458CardMedia.displayName = 'CardMedia';
23459exports.default = _configProvider2.default.config(CardMedia);
23460module.exports = exports['default'];
23461
23462/***/ }),
23463/* 165 */
23464/***/ (function(module, exports, __webpack_require__) {
23465
23466"use strict";
23467
23468
23469exports.__esModule = true;
23470
23471var _extends2 = __webpack_require__(1);
23472
23473var _extends3 = _interopRequireDefault(_extends2);
23474
23475var _objectWithoutProperties2 = __webpack_require__(8);
23476
23477var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
23478
23479var _classCallCheck2 = __webpack_require__(2);
23480
23481var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
23482
23483var _possibleConstructorReturn2 = __webpack_require__(3);
23484
23485var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
23486
23487var _inherits2 = __webpack_require__(4);
23488
23489var _inherits3 = _interopRequireDefault(_inherits2);
23490
23491var _class, _temp;
23492
23493var _react = __webpack_require__(0);
23494
23495var _react2 = _interopRequireDefault(_react);
23496
23497var _propTypes = __webpack_require__(5);
23498
23499var _propTypes2 = _interopRequireDefault(_propTypes);
23500
23501var _classnames = __webpack_require__(7);
23502
23503var _classnames2 = _interopRequireDefault(_classnames);
23504
23505var _configProvider = __webpack_require__(9);
23506
23507var _configProvider2 = _interopRequireDefault(_configProvider);
23508
23509function _interopRequireDefault(obj) {
23510 return obj && obj.__esModule ? obj : { default: obj };
23511}
23512
23513/**
23514 * Card.Actions
23515 * @order 5
23516 */
23517var CardActions = (_temp = _class = function (_Component) {
23518 (0, _inherits3.default)(CardActions, _Component);
23519
23520 function CardActions() {
23521 (0, _classCallCheck3.default)(this, CardActions);
23522 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
23523 }
23524
23525 CardActions.prototype.render = function render() {
23526 var _props = this.props,
23527 prefix = _props.prefix,
23528 Component = _props.component,
23529 className = _props.className,
23530 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'component', 'className']);
23531
23532 return _react2.default.createElement(Component, (0, _extends3.default)({}, others, {
23533 className: (0, _classnames2.default)(prefix + 'card-actions', className)
23534 }));
23535 };
23536
23537 return CardActions;
23538}(_react.Component), _class.propTypes = {
23539 prefix: _propTypes2.default.string,
23540 /**
23541 * 设置标签类型
23542 */
23543 component: _propTypes2.default.elementType,
23544 className: _propTypes2.default.string
23545}, _class.defaultProps = {
23546 prefix: 'next-',
23547 component: 'div'
23548}, _temp);
23549CardActions.displayName = 'CardActions';
23550exports.default = _configProvider2.default.config(CardActions);
23551module.exports = exports['default'];
23552
23553/***/ }),
23554/* 166 */
23555/***/ (function(module, exports, __webpack_require__) {
23556
23557"use strict";
23558
23559
23560exports.__esModule = true;
23561
23562var _extends2 = __webpack_require__(1);
23563
23564var _extends3 = _interopRequireDefault(_extends2);
23565
23566var _objectWithoutProperties2 = __webpack_require__(8);
23567
23568var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
23569
23570var _configProvider = __webpack_require__(9);
23571
23572var _configProvider2 = _interopRequireDefault(_configProvider);
23573
23574var _cascader = __webpack_require__(324);
23575
23576var _cascader2 = _interopRequireDefault(_cascader);
23577
23578function _interopRequireDefault(obj) {
23579 return obj && obj.__esModule ? obj : { default: obj };
23580}
23581
23582exports.default = _configProvider2.default.config(_cascader2.default, {
23583 transform: /* istanbul ignore next */function transform(props, deprecated) {
23584 if ('expandTrigger' in props) {
23585 deprecated('expandTrigger', 'expandTriggerType', 'Cascader');
23586 var _props = props,
23587 expandTrigger = _props.expandTrigger,
23588 others = (0, _objectWithoutProperties3.default)(_props, ['expandTrigger']);
23589
23590 props = (0, _extends3.default)({ expandTriggerType: expandTrigger }, others);
23591 }
23592
23593 if ('showItemCount' in props) {
23594 deprecated('showItemCount', 'listStyle | listClassName', 'Cascader');
23595 }
23596 if ('labelWidth' in props) {
23597 deprecated('labelWidth', 'listStyle | listClassName', 'Cascader');
23598 }
23599
23600 return props;
23601 },
23602 exportNames: ['setFocusValue']
23603});
23604module.exports = exports['default'];
23605
23606/***/ }),
23607/* 167 */
23608/***/ (function(module, exports, __webpack_require__) {
23609
23610/* WEBPACK VAR INJECTION */(function(global, module) {/**
23611 * lodash (Custom Build) <https://lodash.com/>
23612 * Build: `lodash modularize exports="npm" -o ./`
23613 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
23614 * Released under MIT license <https://lodash.com/license>
23615 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
23616 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
23617 */
23618
23619/** Used as the size to enable large array optimizations. */
23620var LARGE_ARRAY_SIZE = 200;
23621
23622/** Used to stand-in for `undefined` hash values. */
23623var HASH_UNDEFINED = '__lodash_hash_undefined__';
23624
23625/** Used as references for various `Number` constants. */
23626var MAX_SAFE_INTEGER = 9007199254740991;
23627
23628/** `Object#toString` result references. */
23629var argsTag = '[object Arguments]',
23630 arrayTag = '[object Array]',
23631 boolTag = '[object Boolean]',
23632 dateTag = '[object Date]',
23633 errorTag = '[object Error]',
23634 funcTag = '[object Function]',
23635 genTag = '[object GeneratorFunction]',
23636 mapTag = '[object Map]',
23637 numberTag = '[object Number]',
23638 objectTag = '[object Object]',
23639 promiseTag = '[object Promise]',
23640 regexpTag = '[object RegExp]',
23641 setTag = '[object Set]',
23642 stringTag = '[object String]',
23643 symbolTag = '[object Symbol]',
23644 weakMapTag = '[object WeakMap]';
23645
23646var arrayBufferTag = '[object ArrayBuffer]',
23647 dataViewTag = '[object DataView]',
23648 float32Tag = '[object Float32Array]',
23649 float64Tag = '[object Float64Array]',
23650 int8Tag = '[object Int8Array]',
23651 int16Tag = '[object Int16Array]',
23652 int32Tag = '[object Int32Array]',
23653 uint8Tag = '[object Uint8Array]',
23654 uint8ClampedTag = '[object Uint8ClampedArray]',
23655 uint16Tag = '[object Uint16Array]',
23656 uint32Tag = '[object Uint32Array]';
23657
23658/**
23659 * Used to match `RegExp`
23660 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
23661 */
23662var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
23663
23664/** Used to match `RegExp` flags from their coerced string values. */
23665var reFlags = /\w*$/;
23666
23667/** Used to detect host constructors (Safari). */
23668var reIsHostCtor = /^\[object .+?Constructor\]$/;
23669
23670/** Used to detect unsigned integer values. */
23671var reIsUint = /^(?:0|[1-9]\d*)$/;
23672
23673/** Used to identify `toStringTag` values supported by `_.clone`. */
23674var cloneableTags = {};
23675cloneableTags[argsTag] = cloneableTags[arrayTag] =
23676cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
23677cloneableTags[boolTag] = cloneableTags[dateTag] =
23678cloneableTags[float32Tag] = cloneableTags[float64Tag] =
23679cloneableTags[int8Tag] = cloneableTags[int16Tag] =
23680cloneableTags[int32Tag] = cloneableTags[mapTag] =
23681cloneableTags[numberTag] = cloneableTags[objectTag] =
23682cloneableTags[regexpTag] = cloneableTags[setTag] =
23683cloneableTags[stringTag] = cloneableTags[symbolTag] =
23684cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
23685cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
23686cloneableTags[errorTag] = cloneableTags[funcTag] =
23687cloneableTags[weakMapTag] = false;
23688
23689/** Detect free variable `global` from Node.js. */
23690var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
23691
23692/** Detect free variable `self`. */
23693var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
23694
23695/** Used as a reference to the global object. */
23696var root = freeGlobal || freeSelf || Function('return this')();
23697
23698/** Detect free variable `exports`. */
23699var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
23700
23701/** Detect free variable `module`. */
23702var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
23703
23704/** Detect the popular CommonJS extension `module.exports`. */
23705var moduleExports = freeModule && freeModule.exports === freeExports;
23706
23707/**
23708 * Adds the key-value `pair` to `map`.
23709 *
23710 * @private
23711 * @param {Object} map The map to modify.
23712 * @param {Array} pair The key-value pair to add.
23713 * @returns {Object} Returns `map`.
23714 */
23715function addMapEntry(map, pair) {
23716 // Don't return `map.set` because it's not chainable in IE 11.
23717 map.set(pair[0], pair[1]);
23718 return map;
23719}
23720
23721/**
23722 * Adds `value` to `set`.
23723 *
23724 * @private
23725 * @param {Object} set The set to modify.
23726 * @param {*} value The value to add.
23727 * @returns {Object} Returns `set`.
23728 */
23729function addSetEntry(set, value) {
23730 // Don't return `set.add` because it's not chainable in IE 11.
23731 set.add(value);
23732 return set;
23733}
23734
23735/**
23736 * A specialized version of `_.forEach` for arrays without support for
23737 * iteratee shorthands.
23738 *
23739 * @private
23740 * @param {Array} [array] The array to iterate over.
23741 * @param {Function} iteratee The function invoked per iteration.
23742 * @returns {Array} Returns `array`.
23743 */
23744function arrayEach(array, iteratee) {
23745 var index = -1,
23746 length = array ? array.length : 0;
23747
23748 while (++index < length) {
23749 if (iteratee(array[index], index, array) === false) {
23750 break;
23751 }
23752 }
23753 return array;
23754}
23755
23756/**
23757 * Appends the elements of `values` to `array`.
23758 *
23759 * @private
23760 * @param {Array} array The array to modify.
23761 * @param {Array} values The values to append.
23762 * @returns {Array} Returns `array`.
23763 */
23764function arrayPush(array, values) {
23765 var index = -1,
23766 length = values.length,
23767 offset = array.length;
23768
23769 while (++index < length) {
23770 array[offset + index] = values[index];
23771 }
23772 return array;
23773}
23774
23775/**
23776 * A specialized version of `_.reduce` for arrays without support for
23777 * iteratee shorthands.
23778 *
23779 * @private
23780 * @param {Array} [array] The array to iterate over.
23781 * @param {Function} iteratee The function invoked per iteration.
23782 * @param {*} [accumulator] The initial value.
23783 * @param {boolean} [initAccum] Specify using the first element of `array` as
23784 * the initial value.
23785 * @returns {*} Returns the accumulated value.
23786 */
23787function arrayReduce(array, iteratee, accumulator, initAccum) {
23788 var index = -1,
23789 length = array ? array.length : 0;
23790
23791 if (initAccum && length) {
23792 accumulator = array[++index];
23793 }
23794 while (++index < length) {
23795 accumulator = iteratee(accumulator, array[index], index, array);
23796 }
23797 return accumulator;
23798}
23799
23800/**
23801 * The base implementation of `_.times` without support for iteratee shorthands
23802 * or max array length checks.
23803 *
23804 * @private
23805 * @param {number} n The number of times to invoke `iteratee`.
23806 * @param {Function} iteratee The function invoked per iteration.
23807 * @returns {Array} Returns the array of results.
23808 */
23809function baseTimes(n, iteratee) {
23810 var index = -1,
23811 result = Array(n);
23812
23813 while (++index < n) {
23814 result[index] = iteratee(index);
23815 }
23816 return result;
23817}
23818
23819/**
23820 * Gets the value at `key` of `object`.
23821 *
23822 * @private
23823 * @param {Object} [object] The object to query.
23824 * @param {string} key The key of the property to get.
23825 * @returns {*} Returns the property value.
23826 */
23827function getValue(object, key) {
23828 return object == null ? undefined : object[key];
23829}
23830
23831/**
23832 * Checks if `value` is a host object in IE < 9.
23833 *
23834 * @private
23835 * @param {*} value The value to check.
23836 * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
23837 */
23838function isHostObject(value) {
23839 // Many host objects are `Object` objects that can coerce to strings
23840 // despite having improperly defined `toString` methods.
23841 var result = false;
23842 if (value != null && typeof value.toString != 'function') {
23843 try {
23844 result = !!(value + '');
23845 } catch (e) {}
23846 }
23847 return result;
23848}
23849
23850/**
23851 * Converts `map` to its key-value pairs.
23852 *
23853 * @private
23854 * @param {Object} map The map to convert.
23855 * @returns {Array} Returns the key-value pairs.
23856 */
23857function mapToArray(map) {
23858 var index = -1,
23859 result = Array(map.size);
23860
23861 map.forEach(function(value, key) {
23862 result[++index] = [key, value];
23863 });
23864 return result;
23865}
23866
23867/**
23868 * Creates a unary function that invokes `func` with its argument transformed.
23869 *
23870 * @private
23871 * @param {Function} func The function to wrap.
23872 * @param {Function} transform The argument transform.
23873 * @returns {Function} Returns the new function.
23874 */
23875function overArg(func, transform) {
23876 return function(arg) {
23877 return func(transform(arg));
23878 };
23879}
23880
23881/**
23882 * Converts `set` to an array of its values.
23883 *
23884 * @private
23885 * @param {Object} set The set to convert.
23886 * @returns {Array} Returns the values.
23887 */
23888function setToArray(set) {
23889 var index = -1,
23890 result = Array(set.size);
23891
23892 set.forEach(function(value) {
23893 result[++index] = value;
23894 });
23895 return result;
23896}
23897
23898/** Used for built-in method references. */
23899var arrayProto = Array.prototype,
23900 funcProto = Function.prototype,
23901 objectProto = Object.prototype;
23902
23903/** Used to detect overreaching core-js shims. */
23904var coreJsData = root['__core-js_shared__'];
23905
23906/** Used to detect methods masquerading as native. */
23907var maskSrcKey = (function() {
23908 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
23909 return uid ? ('Symbol(src)_1.' + uid) : '';
23910}());
23911
23912/** Used to resolve the decompiled source of functions. */
23913var funcToString = funcProto.toString;
23914
23915/** Used to check objects for own properties. */
23916var hasOwnProperty = objectProto.hasOwnProperty;
23917
23918/**
23919 * Used to resolve the
23920 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
23921 * of values.
23922 */
23923var objectToString = objectProto.toString;
23924
23925/** Used to detect if a method is native. */
23926var reIsNative = RegExp('^' +
23927 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
23928 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
23929);
23930
23931/** Built-in value references. */
23932var Buffer = moduleExports ? root.Buffer : undefined,
23933 Symbol = root.Symbol,
23934 Uint8Array = root.Uint8Array,
23935 getPrototype = overArg(Object.getPrototypeOf, Object),
23936 objectCreate = Object.create,
23937 propertyIsEnumerable = objectProto.propertyIsEnumerable,
23938 splice = arrayProto.splice;
23939
23940/* Built-in method references for those with the same name as other `lodash` methods. */
23941var nativeGetSymbols = Object.getOwnPropertySymbols,
23942 nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
23943 nativeKeys = overArg(Object.keys, Object);
23944
23945/* Built-in method references that are verified to be native. */
23946var DataView = getNative(root, 'DataView'),
23947 Map = getNative(root, 'Map'),
23948 Promise = getNative(root, 'Promise'),
23949 Set = getNative(root, 'Set'),
23950 WeakMap = getNative(root, 'WeakMap'),
23951 nativeCreate = getNative(Object, 'create');
23952
23953/** Used to detect maps, sets, and weakmaps. */
23954var dataViewCtorString = toSource(DataView),
23955 mapCtorString = toSource(Map),
23956 promiseCtorString = toSource(Promise),
23957 setCtorString = toSource(Set),
23958 weakMapCtorString = toSource(WeakMap);
23959
23960/** Used to convert symbols to primitives and strings. */
23961var symbolProto = Symbol ? Symbol.prototype : undefined,
23962 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
23963
23964/**
23965 * Creates a hash object.
23966 *
23967 * @private
23968 * @constructor
23969 * @param {Array} [entries] The key-value pairs to cache.
23970 */
23971function Hash(entries) {
23972 var index = -1,
23973 length = entries ? entries.length : 0;
23974
23975 this.clear();
23976 while (++index < length) {
23977 var entry = entries[index];
23978 this.set(entry[0], entry[1]);
23979 }
23980}
23981
23982/**
23983 * Removes all key-value entries from the hash.
23984 *
23985 * @private
23986 * @name clear
23987 * @memberOf Hash
23988 */
23989function hashClear() {
23990 this.__data__ = nativeCreate ? nativeCreate(null) : {};
23991}
23992
23993/**
23994 * Removes `key` and its value from the hash.
23995 *
23996 * @private
23997 * @name delete
23998 * @memberOf Hash
23999 * @param {Object} hash The hash to modify.
24000 * @param {string} key The key of the value to remove.
24001 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
24002 */
24003function hashDelete(key) {
24004 return this.has(key) && delete this.__data__[key];
24005}
24006
24007/**
24008 * Gets the hash value for `key`.
24009 *
24010 * @private
24011 * @name get
24012 * @memberOf Hash
24013 * @param {string} key The key of the value to get.
24014 * @returns {*} Returns the entry value.
24015 */
24016function hashGet(key) {
24017 var data = this.__data__;
24018 if (nativeCreate) {
24019 var result = data[key];
24020 return result === HASH_UNDEFINED ? undefined : result;
24021 }
24022 return hasOwnProperty.call(data, key) ? data[key] : undefined;
24023}
24024
24025/**
24026 * Checks if a hash value for `key` exists.
24027 *
24028 * @private
24029 * @name has
24030 * @memberOf Hash
24031 * @param {string} key The key of the entry to check.
24032 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
24033 */
24034function hashHas(key) {
24035 var data = this.__data__;
24036 return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
24037}
24038
24039/**
24040 * Sets the hash `key` to `value`.
24041 *
24042 * @private
24043 * @name set
24044 * @memberOf Hash
24045 * @param {string} key The key of the value to set.
24046 * @param {*} value The value to set.
24047 * @returns {Object} Returns the hash instance.
24048 */
24049function hashSet(key, value) {
24050 var data = this.__data__;
24051 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
24052 return this;
24053}
24054
24055// Add methods to `Hash`.
24056Hash.prototype.clear = hashClear;
24057Hash.prototype['delete'] = hashDelete;
24058Hash.prototype.get = hashGet;
24059Hash.prototype.has = hashHas;
24060Hash.prototype.set = hashSet;
24061
24062/**
24063 * Creates an list cache object.
24064 *
24065 * @private
24066 * @constructor
24067 * @param {Array} [entries] The key-value pairs to cache.
24068 */
24069function ListCache(entries) {
24070 var index = -1,
24071 length = entries ? entries.length : 0;
24072
24073 this.clear();
24074 while (++index < length) {
24075 var entry = entries[index];
24076 this.set(entry[0], entry[1]);
24077 }
24078}
24079
24080/**
24081 * Removes all key-value entries from the list cache.
24082 *
24083 * @private
24084 * @name clear
24085 * @memberOf ListCache
24086 */
24087function listCacheClear() {
24088 this.__data__ = [];
24089}
24090
24091/**
24092 * Removes `key` and its value from the list cache.
24093 *
24094 * @private
24095 * @name delete
24096 * @memberOf ListCache
24097 * @param {string} key The key of the value to remove.
24098 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
24099 */
24100function listCacheDelete(key) {
24101 var data = this.__data__,
24102 index = assocIndexOf(data, key);
24103
24104 if (index < 0) {
24105 return false;
24106 }
24107 var lastIndex = data.length - 1;
24108 if (index == lastIndex) {
24109 data.pop();
24110 } else {
24111 splice.call(data, index, 1);
24112 }
24113 return true;
24114}
24115
24116/**
24117 * Gets the list cache value for `key`.
24118 *
24119 * @private
24120 * @name get
24121 * @memberOf ListCache
24122 * @param {string} key The key of the value to get.
24123 * @returns {*} Returns the entry value.
24124 */
24125function listCacheGet(key) {
24126 var data = this.__data__,
24127 index = assocIndexOf(data, key);
24128
24129 return index < 0 ? undefined : data[index][1];
24130}
24131
24132/**
24133 * Checks if a list cache value for `key` exists.
24134 *
24135 * @private
24136 * @name has
24137 * @memberOf ListCache
24138 * @param {string} key The key of the entry to check.
24139 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
24140 */
24141function listCacheHas(key) {
24142 return assocIndexOf(this.__data__, key) > -1;
24143}
24144
24145/**
24146 * Sets the list cache `key` to `value`.
24147 *
24148 * @private
24149 * @name set
24150 * @memberOf ListCache
24151 * @param {string} key The key of the value to set.
24152 * @param {*} value The value to set.
24153 * @returns {Object} Returns the list cache instance.
24154 */
24155function listCacheSet(key, value) {
24156 var data = this.__data__,
24157 index = assocIndexOf(data, key);
24158
24159 if (index < 0) {
24160 data.push([key, value]);
24161 } else {
24162 data[index][1] = value;
24163 }
24164 return this;
24165}
24166
24167// Add methods to `ListCache`.
24168ListCache.prototype.clear = listCacheClear;
24169ListCache.prototype['delete'] = listCacheDelete;
24170ListCache.prototype.get = listCacheGet;
24171ListCache.prototype.has = listCacheHas;
24172ListCache.prototype.set = listCacheSet;
24173
24174/**
24175 * Creates a map cache object to store key-value pairs.
24176 *
24177 * @private
24178 * @constructor
24179 * @param {Array} [entries] The key-value pairs to cache.
24180 */
24181function MapCache(entries) {
24182 var index = -1,
24183 length = entries ? entries.length : 0;
24184
24185 this.clear();
24186 while (++index < length) {
24187 var entry = entries[index];
24188 this.set(entry[0], entry[1]);
24189 }
24190}
24191
24192/**
24193 * Removes all key-value entries from the map.
24194 *
24195 * @private
24196 * @name clear
24197 * @memberOf MapCache
24198 */
24199function mapCacheClear() {
24200 this.__data__ = {
24201 'hash': new Hash,
24202 'map': new (Map || ListCache),
24203 'string': new Hash
24204 };
24205}
24206
24207/**
24208 * Removes `key` and its value from the map.
24209 *
24210 * @private
24211 * @name delete
24212 * @memberOf MapCache
24213 * @param {string} key The key of the value to remove.
24214 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
24215 */
24216function mapCacheDelete(key) {
24217 return getMapData(this, key)['delete'](key);
24218}
24219
24220/**
24221 * Gets the map value for `key`.
24222 *
24223 * @private
24224 * @name get
24225 * @memberOf MapCache
24226 * @param {string} key The key of the value to get.
24227 * @returns {*} Returns the entry value.
24228 */
24229function mapCacheGet(key) {
24230 return getMapData(this, key).get(key);
24231}
24232
24233/**
24234 * Checks if a map value for `key` exists.
24235 *
24236 * @private
24237 * @name has
24238 * @memberOf MapCache
24239 * @param {string} key The key of the entry to check.
24240 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
24241 */
24242function mapCacheHas(key) {
24243 return getMapData(this, key).has(key);
24244}
24245
24246/**
24247 * Sets the map `key` to `value`.
24248 *
24249 * @private
24250 * @name set
24251 * @memberOf MapCache
24252 * @param {string} key The key of the value to set.
24253 * @param {*} value The value to set.
24254 * @returns {Object} Returns the map cache instance.
24255 */
24256function mapCacheSet(key, value) {
24257 getMapData(this, key).set(key, value);
24258 return this;
24259}
24260
24261// Add methods to `MapCache`.
24262MapCache.prototype.clear = mapCacheClear;
24263MapCache.prototype['delete'] = mapCacheDelete;
24264MapCache.prototype.get = mapCacheGet;
24265MapCache.prototype.has = mapCacheHas;
24266MapCache.prototype.set = mapCacheSet;
24267
24268/**
24269 * Creates a stack cache object to store key-value pairs.
24270 *
24271 * @private
24272 * @constructor
24273 * @param {Array} [entries] The key-value pairs to cache.
24274 */
24275function Stack(entries) {
24276 this.__data__ = new ListCache(entries);
24277}
24278
24279/**
24280 * Removes all key-value entries from the stack.
24281 *
24282 * @private
24283 * @name clear
24284 * @memberOf Stack
24285 */
24286function stackClear() {
24287 this.__data__ = new ListCache;
24288}
24289
24290/**
24291 * Removes `key` and its value from the stack.
24292 *
24293 * @private
24294 * @name delete
24295 * @memberOf Stack
24296 * @param {string} key The key of the value to remove.
24297 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
24298 */
24299function stackDelete(key) {
24300 return this.__data__['delete'](key);
24301}
24302
24303/**
24304 * Gets the stack value for `key`.
24305 *
24306 * @private
24307 * @name get
24308 * @memberOf Stack
24309 * @param {string} key The key of the value to get.
24310 * @returns {*} Returns the entry value.
24311 */
24312function stackGet(key) {
24313 return this.__data__.get(key);
24314}
24315
24316/**
24317 * Checks if a stack value for `key` exists.
24318 *
24319 * @private
24320 * @name has
24321 * @memberOf Stack
24322 * @param {string} key The key of the entry to check.
24323 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
24324 */
24325function stackHas(key) {
24326 return this.__data__.has(key);
24327}
24328
24329/**
24330 * Sets the stack `key` to `value`.
24331 *
24332 * @private
24333 * @name set
24334 * @memberOf Stack
24335 * @param {string} key The key of the value to set.
24336 * @param {*} value The value to set.
24337 * @returns {Object} Returns the stack cache instance.
24338 */
24339function stackSet(key, value) {
24340 var cache = this.__data__;
24341 if (cache instanceof ListCache) {
24342 var pairs = cache.__data__;
24343 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
24344 pairs.push([key, value]);
24345 return this;
24346 }
24347 cache = this.__data__ = new MapCache(pairs);
24348 }
24349 cache.set(key, value);
24350 return this;
24351}
24352
24353// Add methods to `Stack`.
24354Stack.prototype.clear = stackClear;
24355Stack.prototype['delete'] = stackDelete;
24356Stack.prototype.get = stackGet;
24357Stack.prototype.has = stackHas;
24358Stack.prototype.set = stackSet;
24359
24360/**
24361 * Creates an array of the enumerable property names of the array-like `value`.
24362 *
24363 * @private
24364 * @param {*} value The value to query.
24365 * @param {boolean} inherited Specify returning inherited property names.
24366 * @returns {Array} Returns the array of property names.
24367 */
24368function arrayLikeKeys(value, inherited) {
24369 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
24370 // Safari 9 makes `arguments.length` enumerable in strict mode.
24371 var result = (isArray(value) || isArguments(value))
24372 ? baseTimes(value.length, String)
24373 : [];
24374
24375 var length = result.length,
24376 skipIndexes = !!length;
24377
24378 for (var key in value) {
24379 if ((inherited || hasOwnProperty.call(value, key)) &&
24380 !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
24381 result.push(key);
24382 }
24383 }
24384 return result;
24385}
24386
24387/**
24388 * Assigns `value` to `key` of `object` if the existing value is not equivalent
24389 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
24390 * for equality comparisons.
24391 *
24392 * @private
24393 * @param {Object} object The object to modify.
24394 * @param {string} key The key of the property to assign.
24395 * @param {*} value The value to assign.
24396 */
24397function assignValue(object, key, value) {
24398 var objValue = object[key];
24399 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
24400 (value === undefined && !(key in object))) {
24401 object[key] = value;
24402 }
24403}
24404
24405/**
24406 * Gets the index at which the `key` is found in `array` of key-value pairs.
24407 *
24408 * @private
24409 * @param {Array} array The array to inspect.
24410 * @param {*} key The key to search for.
24411 * @returns {number} Returns the index of the matched value, else `-1`.
24412 */
24413function assocIndexOf(array, key) {
24414 var length = array.length;
24415 while (length--) {
24416 if (eq(array[length][0], key)) {
24417 return length;
24418 }
24419 }
24420 return -1;
24421}
24422
24423/**
24424 * The base implementation of `_.assign` without support for multiple sources
24425 * or `customizer` functions.
24426 *
24427 * @private
24428 * @param {Object} object The destination object.
24429 * @param {Object} source The source object.
24430 * @returns {Object} Returns `object`.
24431 */
24432function baseAssign(object, source) {
24433 return object && copyObject(source, keys(source), object);
24434}
24435
24436/**
24437 * The base implementation of `_.clone` and `_.cloneDeep` which tracks
24438 * traversed objects.
24439 *
24440 * @private
24441 * @param {*} value The value to clone.
24442 * @param {boolean} [isDeep] Specify a deep clone.
24443 * @param {boolean} [isFull] Specify a clone including symbols.
24444 * @param {Function} [customizer] The function to customize cloning.
24445 * @param {string} [key] The key of `value`.
24446 * @param {Object} [object] The parent object of `value`.
24447 * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
24448 * @returns {*} Returns the cloned value.
24449 */
24450function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
24451 var result;
24452 if (customizer) {
24453 result = object ? customizer(value, key, object, stack) : customizer(value);
24454 }
24455 if (result !== undefined) {
24456 return result;
24457 }
24458 if (!isObject(value)) {
24459 return value;
24460 }
24461 var isArr = isArray(value);
24462 if (isArr) {
24463 result = initCloneArray(value);
24464 if (!isDeep) {
24465 return copyArray(value, result);
24466 }
24467 } else {
24468 var tag = getTag(value),
24469 isFunc = tag == funcTag || tag == genTag;
24470
24471 if (isBuffer(value)) {
24472 return cloneBuffer(value, isDeep);
24473 }
24474 if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
24475 if (isHostObject(value)) {
24476 return object ? value : {};
24477 }
24478 result = initCloneObject(isFunc ? {} : value);
24479 if (!isDeep) {
24480 return copySymbols(value, baseAssign(result, value));
24481 }
24482 } else {
24483 if (!cloneableTags[tag]) {
24484 return object ? value : {};
24485 }
24486 result = initCloneByTag(value, tag, baseClone, isDeep);
24487 }
24488 }
24489 // Check for circular references and return its corresponding clone.
24490 stack || (stack = new Stack);
24491 var stacked = stack.get(value);
24492 if (stacked) {
24493 return stacked;
24494 }
24495 stack.set(value, result);
24496
24497 if (!isArr) {
24498 var props = isFull ? getAllKeys(value) : keys(value);
24499 }
24500 arrayEach(props || value, function(subValue, key) {
24501 if (props) {
24502 key = subValue;
24503 subValue = value[key];
24504 }
24505 // Recursively populate clone (susceptible to call stack limits).
24506 assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
24507 });
24508 return result;
24509}
24510
24511/**
24512 * The base implementation of `_.create` without support for assigning
24513 * properties to the created object.
24514 *
24515 * @private
24516 * @param {Object} prototype The object to inherit from.
24517 * @returns {Object} Returns the new object.
24518 */
24519function baseCreate(proto) {
24520 return isObject(proto) ? objectCreate(proto) : {};
24521}
24522
24523/**
24524 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
24525 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
24526 * symbols of `object`.
24527 *
24528 * @private
24529 * @param {Object} object The object to query.
24530 * @param {Function} keysFunc The function to get the keys of `object`.
24531 * @param {Function} symbolsFunc The function to get the symbols of `object`.
24532 * @returns {Array} Returns the array of property names and symbols.
24533 */
24534function baseGetAllKeys(object, keysFunc, symbolsFunc) {
24535 var result = keysFunc(object);
24536 return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
24537}
24538
24539/**
24540 * The base implementation of `getTag`.
24541 *
24542 * @private
24543 * @param {*} value The value to query.
24544 * @returns {string} Returns the `toStringTag`.
24545 */
24546function baseGetTag(value) {
24547 return objectToString.call(value);
24548}
24549
24550/**
24551 * The base implementation of `_.isNative` without bad shim checks.
24552 *
24553 * @private
24554 * @param {*} value The value to check.
24555 * @returns {boolean} Returns `true` if `value` is a native function,
24556 * else `false`.
24557 */
24558function baseIsNative(value) {
24559 if (!isObject(value) || isMasked(value)) {
24560 return false;
24561 }
24562 var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
24563 return pattern.test(toSource(value));
24564}
24565
24566/**
24567 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
24568 *
24569 * @private
24570 * @param {Object} object The object to query.
24571 * @returns {Array} Returns the array of property names.
24572 */
24573function baseKeys(object) {
24574 if (!isPrototype(object)) {
24575 return nativeKeys(object);
24576 }
24577 var result = [];
24578 for (var key in Object(object)) {
24579 if (hasOwnProperty.call(object, key) && key != 'constructor') {
24580 result.push(key);
24581 }
24582 }
24583 return result;
24584}
24585
24586/**
24587 * Creates a clone of `buffer`.
24588 *
24589 * @private
24590 * @param {Buffer} buffer The buffer to clone.
24591 * @param {boolean} [isDeep] Specify a deep clone.
24592 * @returns {Buffer} Returns the cloned buffer.
24593 */
24594function cloneBuffer(buffer, isDeep) {
24595 if (isDeep) {
24596 return buffer.slice();
24597 }
24598 var result = new buffer.constructor(buffer.length);
24599 buffer.copy(result);
24600 return result;
24601}
24602
24603/**
24604 * Creates a clone of `arrayBuffer`.
24605 *
24606 * @private
24607 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
24608 * @returns {ArrayBuffer} Returns the cloned array buffer.
24609 */
24610function cloneArrayBuffer(arrayBuffer) {
24611 var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
24612 new Uint8Array(result).set(new Uint8Array(arrayBuffer));
24613 return result;
24614}
24615
24616/**
24617 * Creates a clone of `dataView`.
24618 *
24619 * @private
24620 * @param {Object} dataView The data view to clone.
24621 * @param {boolean} [isDeep] Specify a deep clone.
24622 * @returns {Object} Returns the cloned data view.
24623 */
24624function cloneDataView(dataView, isDeep) {
24625 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
24626 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
24627}
24628
24629/**
24630 * Creates a clone of `map`.
24631 *
24632 * @private
24633 * @param {Object} map The map to clone.
24634 * @param {Function} cloneFunc The function to clone values.
24635 * @param {boolean} [isDeep] Specify a deep clone.
24636 * @returns {Object} Returns the cloned map.
24637 */
24638function cloneMap(map, isDeep, cloneFunc) {
24639 var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);
24640 return arrayReduce(array, addMapEntry, new map.constructor);
24641}
24642
24643/**
24644 * Creates a clone of `regexp`.
24645 *
24646 * @private
24647 * @param {Object} regexp The regexp to clone.
24648 * @returns {Object} Returns the cloned regexp.
24649 */
24650function cloneRegExp(regexp) {
24651 var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
24652 result.lastIndex = regexp.lastIndex;
24653 return result;
24654}
24655
24656/**
24657 * Creates a clone of `set`.
24658 *
24659 * @private
24660 * @param {Object} set The set to clone.
24661 * @param {Function} cloneFunc The function to clone values.
24662 * @param {boolean} [isDeep] Specify a deep clone.
24663 * @returns {Object} Returns the cloned set.
24664 */
24665function cloneSet(set, isDeep, cloneFunc) {
24666 var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);
24667 return arrayReduce(array, addSetEntry, new set.constructor);
24668}
24669
24670/**
24671 * Creates a clone of the `symbol` object.
24672 *
24673 * @private
24674 * @param {Object} symbol The symbol object to clone.
24675 * @returns {Object} Returns the cloned symbol object.
24676 */
24677function cloneSymbol(symbol) {
24678 return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
24679}
24680
24681/**
24682 * Creates a clone of `typedArray`.
24683 *
24684 * @private
24685 * @param {Object} typedArray The typed array to clone.
24686 * @param {boolean} [isDeep] Specify a deep clone.
24687 * @returns {Object} Returns the cloned typed array.
24688 */
24689function cloneTypedArray(typedArray, isDeep) {
24690 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
24691 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
24692}
24693
24694/**
24695 * Copies the values of `source` to `array`.
24696 *
24697 * @private
24698 * @param {Array} source The array to copy values from.
24699 * @param {Array} [array=[]] The array to copy values to.
24700 * @returns {Array} Returns `array`.
24701 */
24702function copyArray(source, array) {
24703 var index = -1,
24704 length = source.length;
24705
24706 array || (array = Array(length));
24707 while (++index < length) {
24708 array[index] = source[index];
24709 }
24710 return array;
24711}
24712
24713/**
24714 * Copies properties of `source` to `object`.
24715 *
24716 * @private
24717 * @param {Object} source The object to copy properties from.
24718 * @param {Array} props The property identifiers to copy.
24719 * @param {Object} [object={}] The object to copy properties to.
24720 * @param {Function} [customizer] The function to customize copied values.
24721 * @returns {Object} Returns `object`.
24722 */
24723function copyObject(source, props, object, customizer) {
24724 object || (object = {});
24725
24726 var index = -1,
24727 length = props.length;
24728
24729 while (++index < length) {
24730 var key = props[index];
24731
24732 var newValue = customizer
24733 ? customizer(object[key], source[key], key, object, source)
24734 : undefined;
24735
24736 assignValue(object, key, newValue === undefined ? source[key] : newValue);
24737 }
24738 return object;
24739}
24740
24741/**
24742 * Copies own symbol properties of `source` to `object`.
24743 *
24744 * @private
24745 * @param {Object} source The object to copy symbols from.
24746 * @param {Object} [object={}] The object to copy symbols to.
24747 * @returns {Object} Returns `object`.
24748 */
24749function copySymbols(source, object) {
24750 return copyObject(source, getSymbols(source), object);
24751}
24752
24753/**
24754 * Creates an array of own enumerable property names and symbols of `object`.
24755 *
24756 * @private
24757 * @param {Object} object The object to query.
24758 * @returns {Array} Returns the array of property names and symbols.
24759 */
24760function getAllKeys(object) {
24761 return baseGetAllKeys(object, keys, getSymbols);
24762}
24763
24764/**
24765 * Gets the data for `map`.
24766 *
24767 * @private
24768 * @param {Object} map The map to query.
24769 * @param {string} key The reference key.
24770 * @returns {*} Returns the map data.
24771 */
24772function getMapData(map, key) {
24773 var data = map.__data__;
24774 return isKeyable(key)
24775 ? data[typeof key == 'string' ? 'string' : 'hash']
24776 : data.map;
24777}
24778
24779/**
24780 * Gets the native function at `key` of `object`.
24781 *
24782 * @private
24783 * @param {Object} object The object to query.
24784 * @param {string} key The key of the method to get.
24785 * @returns {*} Returns the function if it's native, else `undefined`.
24786 */
24787function getNative(object, key) {
24788 var value = getValue(object, key);
24789 return baseIsNative(value) ? value : undefined;
24790}
24791
24792/**
24793 * Creates an array of the own enumerable symbol properties of `object`.
24794 *
24795 * @private
24796 * @param {Object} object The object to query.
24797 * @returns {Array} Returns the array of symbols.
24798 */
24799var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;
24800
24801/**
24802 * Gets the `toStringTag` of `value`.
24803 *
24804 * @private
24805 * @param {*} value The value to query.
24806 * @returns {string} Returns the `toStringTag`.
24807 */
24808var getTag = baseGetTag;
24809
24810// Fallback for data views, maps, sets, and weak maps in IE 11,
24811// for data views in Edge < 14, and promises in Node.js.
24812if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
24813 (Map && getTag(new Map) != mapTag) ||
24814 (Promise && getTag(Promise.resolve()) != promiseTag) ||
24815 (Set && getTag(new Set) != setTag) ||
24816 (WeakMap && getTag(new WeakMap) != weakMapTag)) {
24817 getTag = function(value) {
24818 var result = objectToString.call(value),
24819 Ctor = result == objectTag ? value.constructor : undefined,
24820 ctorString = Ctor ? toSource(Ctor) : undefined;
24821
24822 if (ctorString) {
24823 switch (ctorString) {
24824 case dataViewCtorString: return dataViewTag;
24825 case mapCtorString: return mapTag;
24826 case promiseCtorString: return promiseTag;
24827 case setCtorString: return setTag;
24828 case weakMapCtorString: return weakMapTag;
24829 }
24830 }
24831 return result;
24832 };
24833}
24834
24835/**
24836 * Initializes an array clone.
24837 *
24838 * @private
24839 * @param {Array} array The array to clone.
24840 * @returns {Array} Returns the initialized clone.
24841 */
24842function initCloneArray(array) {
24843 var length = array.length,
24844 result = array.constructor(length);
24845
24846 // Add properties assigned by `RegExp#exec`.
24847 if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
24848 result.index = array.index;
24849 result.input = array.input;
24850 }
24851 return result;
24852}
24853
24854/**
24855 * Initializes an object clone.
24856 *
24857 * @private
24858 * @param {Object} object The object to clone.
24859 * @returns {Object} Returns the initialized clone.
24860 */
24861function initCloneObject(object) {
24862 return (typeof object.constructor == 'function' && !isPrototype(object))
24863 ? baseCreate(getPrototype(object))
24864 : {};
24865}
24866
24867/**
24868 * Initializes an object clone based on its `toStringTag`.
24869 *
24870 * **Note:** This function only supports cloning values with tags of
24871 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
24872 *
24873 * @private
24874 * @param {Object} object The object to clone.
24875 * @param {string} tag The `toStringTag` of the object to clone.
24876 * @param {Function} cloneFunc The function to clone values.
24877 * @param {boolean} [isDeep] Specify a deep clone.
24878 * @returns {Object} Returns the initialized clone.
24879 */
24880function initCloneByTag(object, tag, cloneFunc, isDeep) {
24881 var Ctor = object.constructor;
24882 switch (tag) {
24883 case arrayBufferTag:
24884 return cloneArrayBuffer(object);
24885
24886 case boolTag:
24887 case dateTag:
24888 return new Ctor(+object);
24889
24890 case dataViewTag:
24891 return cloneDataView(object, isDeep);
24892
24893 case float32Tag: case float64Tag:
24894 case int8Tag: case int16Tag: case int32Tag:
24895 case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
24896 return cloneTypedArray(object, isDeep);
24897
24898 case mapTag:
24899 return cloneMap(object, isDeep, cloneFunc);
24900
24901 case numberTag:
24902 case stringTag:
24903 return new Ctor(object);
24904
24905 case regexpTag:
24906 return cloneRegExp(object);
24907
24908 case setTag:
24909 return cloneSet(object, isDeep, cloneFunc);
24910
24911 case symbolTag:
24912 return cloneSymbol(object);
24913 }
24914}
24915
24916/**
24917 * Checks if `value` is a valid array-like index.
24918 *
24919 * @private
24920 * @param {*} value The value to check.
24921 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
24922 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
24923 */
24924function isIndex(value, length) {
24925 length = length == null ? MAX_SAFE_INTEGER : length;
24926 return !!length &&
24927 (typeof value == 'number' || reIsUint.test(value)) &&
24928 (value > -1 && value % 1 == 0 && value < length);
24929}
24930
24931/**
24932 * Checks if `value` is suitable for use as unique object key.
24933 *
24934 * @private
24935 * @param {*} value The value to check.
24936 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
24937 */
24938function isKeyable(value) {
24939 var type = typeof value;
24940 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
24941 ? (value !== '__proto__')
24942 : (value === null);
24943}
24944
24945/**
24946 * Checks if `func` has its source masked.
24947 *
24948 * @private
24949 * @param {Function} func The function to check.
24950 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
24951 */
24952function isMasked(func) {
24953 return !!maskSrcKey && (maskSrcKey in func);
24954}
24955
24956/**
24957 * Checks if `value` is likely a prototype object.
24958 *
24959 * @private
24960 * @param {*} value The value to check.
24961 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
24962 */
24963function isPrototype(value) {
24964 var Ctor = value && value.constructor,
24965 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
24966
24967 return value === proto;
24968}
24969
24970/**
24971 * Converts `func` to its source code.
24972 *
24973 * @private
24974 * @param {Function} func The function to process.
24975 * @returns {string} Returns the source code.
24976 */
24977function toSource(func) {
24978 if (func != null) {
24979 try {
24980 return funcToString.call(func);
24981 } catch (e) {}
24982 try {
24983 return (func + '');
24984 } catch (e) {}
24985 }
24986 return '';
24987}
24988
24989/**
24990 * This method is like `_.clone` except that it recursively clones `value`.
24991 *
24992 * @static
24993 * @memberOf _
24994 * @since 1.0.0
24995 * @category Lang
24996 * @param {*} value The value to recursively clone.
24997 * @returns {*} Returns the deep cloned value.
24998 * @see _.clone
24999 * @example
25000 *
25001 * var objects = [{ 'a': 1 }, { 'b': 2 }];
25002 *
25003 * var deep = _.cloneDeep(objects);
25004 * console.log(deep[0] === objects[0]);
25005 * // => false
25006 */
25007function cloneDeep(value) {
25008 return baseClone(value, true, true);
25009}
25010
25011/**
25012 * Performs a
25013 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
25014 * comparison between two values to determine if they are equivalent.
25015 *
25016 * @static
25017 * @memberOf _
25018 * @since 4.0.0
25019 * @category Lang
25020 * @param {*} value The value to compare.
25021 * @param {*} other The other value to compare.
25022 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
25023 * @example
25024 *
25025 * var object = { 'a': 1 };
25026 * var other = { 'a': 1 };
25027 *
25028 * _.eq(object, object);
25029 * // => true
25030 *
25031 * _.eq(object, other);
25032 * // => false
25033 *
25034 * _.eq('a', 'a');
25035 * // => true
25036 *
25037 * _.eq('a', Object('a'));
25038 * // => false
25039 *
25040 * _.eq(NaN, NaN);
25041 * // => true
25042 */
25043function eq(value, other) {
25044 return value === other || (value !== value && other !== other);
25045}
25046
25047/**
25048 * Checks if `value` is likely an `arguments` object.
25049 *
25050 * @static
25051 * @memberOf _
25052 * @since 0.1.0
25053 * @category Lang
25054 * @param {*} value The value to check.
25055 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
25056 * else `false`.
25057 * @example
25058 *
25059 * _.isArguments(function() { return arguments; }());
25060 * // => true
25061 *
25062 * _.isArguments([1, 2, 3]);
25063 * // => false
25064 */
25065function isArguments(value) {
25066 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
25067 return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
25068 (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
25069}
25070
25071/**
25072 * Checks if `value` is classified as an `Array` object.
25073 *
25074 * @static
25075 * @memberOf _
25076 * @since 0.1.0
25077 * @category Lang
25078 * @param {*} value The value to check.
25079 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
25080 * @example
25081 *
25082 * _.isArray([1, 2, 3]);
25083 * // => true
25084 *
25085 * _.isArray(document.body.children);
25086 * // => false
25087 *
25088 * _.isArray('abc');
25089 * // => false
25090 *
25091 * _.isArray(_.noop);
25092 * // => false
25093 */
25094var isArray = Array.isArray;
25095
25096/**
25097 * Checks if `value` is array-like. A value is considered array-like if it's
25098 * not a function and has a `value.length` that's an integer greater than or
25099 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
25100 *
25101 * @static
25102 * @memberOf _
25103 * @since 4.0.0
25104 * @category Lang
25105 * @param {*} value The value to check.
25106 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
25107 * @example
25108 *
25109 * _.isArrayLike([1, 2, 3]);
25110 * // => true
25111 *
25112 * _.isArrayLike(document.body.children);
25113 * // => true
25114 *
25115 * _.isArrayLike('abc');
25116 * // => true
25117 *
25118 * _.isArrayLike(_.noop);
25119 * // => false
25120 */
25121function isArrayLike(value) {
25122 return value != null && isLength(value.length) && !isFunction(value);
25123}
25124
25125/**
25126 * This method is like `_.isArrayLike` except that it also checks if `value`
25127 * is an object.
25128 *
25129 * @static
25130 * @memberOf _
25131 * @since 4.0.0
25132 * @category Lang
25133 * @param {*} value The value to check.
25134 * @returns {boolean} Returns `true` if `value` is an array-like object,
25135 * else `false`.
25136 * @example
25137 *
25138 * _.isArrayLikeObject([1, 2, 3]);
25139 * // => true
25140 *
25141 * _.isArrayLikeObject(document.body.children);
25142 * // => true
25143 *
25144 * _.isArrayLikeObject('abc');
25145 * // => false
25146 *
25147 * _.isArrayLikeObject(_.noop);
25148 * // => false
25149 */
25150function isArrayLikeObject(value) {
25151 return isObjectLike(value) && isArrayLike(value);
25152}
25153
25154/**
25155 * Checks if `value` is a buffer.
25156 *
25157 * @static
25158 * @memberOf _
25159 * @since 4.3.0
25160 * @category Lang
25161 * @param {*} value The value to check.
25162 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
25163 * @example
25164 *
25165 * _.isBuffer(new Buffer(2));
25166 * // => true
25167 *
25168 * _.isBuffer(new Uint8Array(2));
25169 * // => false
25170 */
25171var isBuffer = nativeIsBuffer || stubFalse;
25172
25173/**
25174 * Checks if `value` is classified as a `Function` object.
25175 *
25176 * @static
25177 * @memberOf _
25178 * @since 0.1.0
25179 * @category Lang
25180 * @param {*} value The value to check.
25181 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
25182 * @example
25183 *
25184 * _.isFunction(_);
25185 * // => true
25186 *
25187 * _.isFunction(/abc/);
25188 * // => false
25189 */
25190function isFunction(value) {
25191 // The use of `Object#toString` avoids issues with the `typeof` operator
25192 // in Safari 8-9 which returns 'object' for typed array and other constructors.
25193 var tag = isObject(value) ? objectToString.call(value) : '';
25194 return tag == funcTag || tag == genTag;
25195}
25196
25197/**
25198 * Checks if `value` is a valid array-like length.
25199 *
25200 * **Note:** This method is loosely based on
25201 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
25202 *
25203 * @static
25204 * @memberOf _
25205 * @since 4.0.0
25206 * @category Lang
25207 * @param {*} value The value to check.
25208 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
25209 * @example
25210 *
25211 * _.isLength(3);
25212 * // => true
25213 *
25214 * _.isLength(Number.MIN_VALUE);
25215 * // => false
25216 *
25217 * _.isLength(Infinity);
25218 * // => false
25219 *
25220 * _.isLength('3');
25221 * // => false
25222 */
25223function isLength(value) {
25224 return typeof value == 'number' &&
25225 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
25226}
25227
25228/**
25229 * Checks if `value` is the
25230 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
25231 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
25232 *
25233 * @static
25234 * @memberOf _
25235 * @since 0.1.0
25236 * @category Lang
25237 * @param {*} value The value to check.
25238 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
25239 * @example
25240 *
25241 * _.isObject({});
25242 * // => true
25243 *
25244 * _.isObject([1, 2, 3]);
25245 * // => true
25246 *
25247 * _.isObject(_.noop);
25248 * // => true
25249 *
25250 * _.isObject(null);
25251 * // => false
25252 */
25253function isObject(value) {
25254 var type = typeof value;
25255 return !!value && (type == 'object' || type == 'function');
25256}
25257
25258/**
25259 * Checks if `value` is object-like. A value is object-like if it's not `null`
25260 * and has a `typeof` result of "object".
25261 *
25262 * @static
25263 * @memberOf _
25264 * @since 4.0.0
25265 * @category Lang
25266 * @param {*} value The value to check.
25267 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
25268 * @example
25269 *
25270 * _.isObjectLike({});
25271 * // => true
25272 *
25273 * _.isObjectLike([1, 2, 3]);
25274 * // => true
25275 *
25276 * _.isObjectLike(_.noop);
25277 * // => false
25278 *
25279 * _.isObjectLike(null);
25280 * // => false
25281 */
25282function isObjectLike(value) {
25283 return !!value && typeof value == 'object';
25284}
25285
25286/**
25287 * Creates an array of the own enumerable property names of `object`.
25288 *
25289 * **Note:** Non-object values are coerced to objects. See the
25290 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
25291 * for more details.
25292 *
25293 * @static
25294 * @since 0.1.0
25295 * @memberOf _
25296 * @category Object
25297 * @param {Object} object The object to query.
25298 * @returns {Array} Returns the array of property names.
25299 * @example
25300 *
25301 * function Foo() {
25302 * this.a = 1;
25303 * this.b = 2;
25304 * }
25305 *
25306 * Foo.prototype.c = 3;
25307 *
25308 * _.keys(new Foo);
25309 * // => ['a', 'b'] (iteration order is not guaranteed)
25310 *
25311 * _.keys('hi');
25312 * // => ['0', '1']
25313 */
25314function keys(object) {
25315 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
25316}
25317
25318/**
25319 * This method returns a new empty array.
25320 *
25321 * @static
25322 * @memberOf _
25323 * @since 4.13.0
25324 * @category Util
25325 * @returns {Array} Returns the new empty array.
25326 * @example
25327 *
25328 * var arrays = _.times(2, _.stubArray);
25329 *
25330 * console.log(arrays);
25331 * // => [[], []]
25332 *
25333 * console.log(arrays[0] === arrays[1]);
25334 * // => false
25335 */
25336function stubArray() {
25337 return [];
25338}
25339
25340/**
25341 * This method returns `false`.
25342 *
25343 * @static
25344 * @memberOf _
25345 * @since 4.13.0
25346 * @category Util
25347 * @returns {boolean} Returns `false`.
25348 * @example
25349 *
25350 * _.times(2, _.stubFalse);
25351 * // => [false, false]
25352 */
25353function stubFalse() {
25354 return false;
25355}
25356
25357module.exports = cloneDeep;
25358
25359/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(122), __webpack_require__(325)(module)))
25360
25361/***/ }),
25362/* 168 */
25363/***/ (function(module, exports, __webpack_require__) {
25364
25365"use strict";
25366
25367
25368exports.__esModule = true;
25369
25370var _extends2 = __webpack_require__(1);
25371
25372var _extends3 = _interopRequireDefault(_extends2);
25373
25374var _objectWithoutProperties2 = __webpack_require__(8);
25375
25376var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
25377
25378var _classCallCheck2 = __webpack_require__(2);
25379
25380var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
25381
25382var _possibleConstructorReturn2 = __webpack_require__(3);
25383
25384var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
25385
25386var _inherits2 = __webpack_require__(4);
25387
25388var _inherits3 = _interopRequireDefault(_inherits2);
25389
25390var _class, _temp2;
25391
25392var _react = __webpack_require__(0);
25393
25394var _react2 = _interopRequireDefault(_react);
25395
25396var _propTypes = __webpack_require__(5);
25397
25398var _propTypes2 = _interopRequireDefault(_propTypes);
25399
25400var _classnames = __webpack_require__(7);
25401
25402var _classnames2 = _interopRequireDefault(_classnames);
25403
25404var _configProvider = __webpack_require__(9);
25405
25406var _configProvider2 = _interopRequireDefault(_configProvider);
25407
25408var _icon = __webpack_require__(11);
25409
25410var _icon2 = _interopRequireDefault(_icon);
25411
25412var _util = __webpack_require__(6);
25413
25414function _interopRequireDefault(obj) {
25415 return obj && obj.__esModule ? obj : { default: obj };
25416}
25417
25418/** Collapse.Panel */
25419var Panel = (_temp2 = _class = function (_React$Component) {
25420 (0, _inherits3.default)(Panel, _React$Component);
25421
25422 function Panel() {
25423 var _temp, _this, _ret;
25424
25425 (0, _classCallCheck3.default)(this, Panel);
25426
25427 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
25428 args[_key] = arguments[_key];
25429 }
25430
25431 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onKeyDown = function (e) {
25432 var keyCode = e.keyCode;
25433
25434 if (keyCode === _util.KEYCODE.SPACE) {
25435 var onClick = _this.props.onClick;
25436
25437 e.preventDefault();
25438 onClick && onClick(e);
25439 }
25440 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
25441 } //
25442
25443 Panel.prototype.render = function render() {
25444 var _classNames, _classNames2;
25445
25446 var _props = this.props,
25447 title = _props.title,
25448 children = _props.children,
25449 className = _props.className,
25450 isExpanded = _props.isExpanded,
25451 disabled = _props.disabled,
25452 style = _props.style,
25453 prefix = _props.prefix,
25454 onClick = _props.onClick,
25455 id = _props.id,
25456 others = (0, _objectWithoutProperties3.default)(_props, ['title', 'children', 'className', 'isExpanded', 'disabled', 'style', 'prefix', 'onClick', 'id']);
25457
25458 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));
25459
25460 var iconCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'collapse-panel-icon'] = true, _classNames2[prefix + 'collapse-panel-icon-expanded'] = isExpanded, _classNames2));
25461
25462 // 为了无障碍 需要添加两个id
25463 var headingId = id ? id + '-heading' : undefined;
25464 var regionId = id ? id + '-region' : undefined;
25465 return _react2.default.createElement('div', (0, _extends3.default)({ className: cls, style: style, id: id }, others), _react2.default.createElement('div', {
25466 id: headingId,
25467 className: prefix + 'collapse-panel-title',
25468 onClick: onClick,
25469 onKeyDown: this.onKeyDown,
25470 tabIndex: '0',
25471 'aria-disabled': disabled,
25472 'aria-expanded': isExpanded,
25473 'aria-controls': regionId,
25474 role: 'button'
25475 }, _react2.default.createElement(_icon2.default, {
25476 type: 'arrow-right',
25477 className: iconCls,
25478 'aria-hidden': 'true'
25479 }), title), _react2.default.createElement('div', {
25480 className: prefix + 'collapse-panel-content',
25481 role: 'region',
25482 id: regionId
25483 }, children));
25484 };
25485
25486 return Panel;
25487}(_react2.default.Component), _class.propTypes = {
25488 /**
25489 * 样式类名的品牌前缀
25490 */
25491 prefix: _propTypes2.default.string,
25492 /**
25493 * 子组件接受行内样式
25494 */
25495 style: _propTypes2.default.object,
25496 children: _propTypes2.default.any,
25497 isExpanded: _propTypes2.default.bool,
25498 /**
25499 * 是否禁止用户操作
25500 */
25501 disabled: _propTypes2.default.bool,
25502 /**
25503 * 标题
25504 */
25505 title: _propTypes2.default.node,
25506 /**
25507 * 扩展class
25508 */
25509 className: _propTypes2.default.string,
25510 onClick: _propTypes2.default.func,
25511 id: _propTypes2.default.string
25512}, _class.defaultProps = {
25513 prefix: 'next-',
25514 isExpanded: false,
25515 onClick: _util.func.noop
25516}, _class.isNextPanel = true, _temp2);
25517Panel.displayName = 'Panel';
25518exports.default = _configProvider2.default.config(Panel);
25519module.exports = exports['default'];
25520
25521/***/ }),
25522/* 169 */
25523/***/ (function(module, exports, __webpack_require__) {
25524
25525"use strict";
25526
25527
25528exports.__esModule = true;
25529
25530var _extends2 = __webpack_require__(1);
25531
25532var _extends3 = _interopRequireDefault(_extends2);
25533
25534var _classCallCheck2 = __webpack_require__(2);
25535
25536var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
25537
25538var _possibleConstructorReturn2 = __webpack_require__(3);
25539
25540var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
25541
25542var _inherits2 = __webpack_require__(4);
25543
25544var _inherits3 = _interopRequireDefault(_inherits2);
25545
25546var _class, _temp2;
25547
25548var _react = __webpack_require__(0);
25549
25550var _react2 = _interopRequireDefault(_react);
25551
25552var _moment = __webpack_require__(19);
25553
25554var _moment2 = _interopRequireDefault(_moment);
25555
25556var _button = __webpack_require__(17);
25557
25558var _button2 = _interopRequireDefault(_button);
25559
25560var _util = __webpack_require__(6);
25561
25562var _util2 = __webpack_require__(30);
25563
25564function _interopRequireDefault(obj) {
25565 return obj && obj.__esModule ? obj : { default: obj };
25566}
25567
25568var PanelFooter = (_temp2 = _class = function (_React$PureComponent) {
25569 (0, _inherits3.default)(PanelFooter, _React$PureComponent);
25570
25571 function PanelFooter() {
25572 var _temp, _this, _ret;
25573
25574 (0, _classCallCheck3.default)(this, PanelFooter);
25575
25576 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
25577 args[_key] = arguments[_key];
25578 }
25579
25580 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.changePanel = function () {
25581 var _PANEL$DATE$PANEL$TIM;
25582
25583 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];
25584 _this.props.onPanelChange(targetPanel);
25585 }, _this.createRanges = function (ranges) {
25586 if (!ranges || ranges.length === 0) return null;
25587 var _this$props = _this.props,
25588 onOk = _this$props.onOk,
25589 prefix = _this$props.prefix;
25590
25591 return _react2.default.createElement('div', { className: prefix + 'date-picker-panel-tools' }, ranges.map(function (_ref) {
25592 var label = _ref.label,
25593 _ref$value = _ref.value,
25594 value = _ref$value === undefined ? [] : _ref$value,
25595 onChange = _ref.onChange;
25596
25597 var handleClick = function handleClick() {
25598 var momentValue = value.map(function (v) {
25599 return (0, _moment2.default)(v);
25600 });
25601
25602 onChange(momentValue);
25603 onOk(momentValue);
25604 };
25605 return _react2.default.createElement(_button2.default, {
25606 key: label,
25607 text: true,
25608 size: 'small',
25609 type: 'primary',
25610 onClick: handleClick
25611 }, label);
25612 }));
25613 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
25614 }
25615
25616 PanelFooter.prototype.render = function render() {
25617 var _PANEL$DATE$PANEL$TIM2;
25618
25619 var _props = this.props,
25620 prefix = _props.prefix,
25621 locale = _props.locale,
25622 panel = _props.panel,
25623 value = _props.value,
25624 ranges = _props.ranges,
25625 disabledOk = _props.disabledOk,
25626 onPanelChange = _props.onPanelChange,
25627 onOk = _props.onOk;
25628
25629 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];
25630
25631 var sharedBtnProps = {
25632 size: 'small',
25633 type: 'primary',
25634 disabled: !value
25635 };
25636 var onClick = function onClick() {
25637 return onOk();
25638 };
25639
25640 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, {
25641 disabled: disabledOk || !value,
25642 onClick: onClick
25643 }), locale.ok));
25644 };
25645
25646 return PanelFooter;
25647}(_react2.default.PureComponent), _class.defaultProps = {
25648 // onPanelChange: func.noop,
25649 onOk: _util.func.noop
25650}, _temp2);
25651exports.default = PanelFooter;
25652module.exports = exports['default'];
25653
25654/***/ }),
25655/* 170 */
25656/***/ (function(module, exports, __webpack_require__) {
25657
25658"use strict";
25659
25660
25661exports.__esModule = true;
25662exports.default = undefined;
25663
25664var _objectWithoutProperties2 = __webpack_require__(8);
25665
25666var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
25667
25668var _extends2 = __webpack_require__(1);
25669
25670var _extends3 = _interopRequireDefault(_extends2);
25671
25672var _classCallCheck2 = __webpack_require__(2);
25673
25674var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
25675
25676var _possibleConstructorReturn2 = __webpack_require__(3);
25677
25678var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
25679
25680var _inherits2 = __webpack_require__(4);
25681
25682var _inherits3 = _interopRequireDefault(_inherits2);
25683
25684var _class, _temp;
25685
25686var _react = __webpack_require__(0);
25687
25688var _react2 = _interopRequireDefault(_react);
25689
25690var _propTypes = __webpack_require__(5);
25691
25692var _propTypes2 = _interopRequireDefault(_propTypes);
25693
25694var _overlay = __webpack_require__(15);
25695
25696var _overlay2 = _interopRequireDefault(_overlay);
25697
25698var _zhCn = __webpack_require__(13);
25699
25700var _zhCn2 = _interopRequireDefault(_zhCn);
25701
25702var _util = __webpack_require__(6);
25703
25704var _inner = __webpack_require__(93);
25705
25706var _inner2 = _interopRequireDefault(_inner);
25707
25708function _interopRequireDefault(obj) {
25709 return obj && obj.__esModule ? obj : { default: obj };
25710}
25711
25712var noop = function noop() {};
25713var limitTabRange = _util.focus.limitTabRange;
25714var bindCtx = _util.func.bindCtx;
25715var pickOthers = _util.obj.pickOthers;
25716var getStyle = _util.dom.getStyle,
25717 setStyle = _util.dom.setStyle;
25718
25719// [fix issue #1609](https://github.com/alibaba-fusion/next/issues/1609)
25720// https://stackoverflow.com/questions/19717907/getcomputedstyle-reporting-different-heights-between-chrome-safari-firefox-and-i
25721
25722function _getSize(dom, name) {
25723 var boxSizing = getStyle(dom, 'boxSizing');
25724
25725 if (_util.env.ieVersion && ['width', 'height'].indexOf(name) !== -1 && boxSizing === 'border-box') {
25726 return parseFloat(dom.getBoundingClientRect()[name].toFixed(1));
25727 } else {
25728 return getStyle(dom, name);
25729 }
25730}
25731
25732/**
25733 * Dialog
25734 */
25735var Dialog = (_temp = _class = function (_Component) {
25736 (0, _inherits3.default)(Dialog, _Component);
25737
25738 function Dialog(props, context) {
25739 (0, _classCallCheck3.default)(this, Dialog);
25740
25741 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
25742
25743 bindCtx(_this, ['onKeyDown', 'beforePosition', 'adjustPosition', 'getOverlayRef']);
25744 return _this;
25745 }
25746
25747 Dialog.prototype.componentDidMount = function componentDidMount() {
25748 _util.events.on(document, 'keydown', this.onKeyDown);
25749 if (!this.useCSSToPosition()) {
25750 this.adjustPosition();
25751 }
25752 };
25753
25754 Dialog.prototype.componentWillUnmount = function componentWillUnmount() {
25755 _util.events.off(document, 'keydown', this.onKeyDown);
25756 };
25757
25758 Dialog.prototype.useCSSToPosition = function useCSSToPosition() {
25759 var _props = this.props,
25760 align = _props.align,
25761 isFullScreen = _props.isFullScreen;
25762
25763 return align === 'cc cc' && isFullScreen;
25764 };
25765
25766 Dialog.prototype.onKeyDown = function onKeyDown(e) {
25767 var node = this.getInnerNode();
25768 if (node) {
25769 limitTabRange(node, e);
25770 }
25771 };
25772
25773 Dialog.prototype.beforePosition = function beforePosition() {
25774 if (this.props.visible && this.overlay) {
25775 var inner = this.getInner();
25776 if (inner) {
25777 var node = this.getInnerNode();
25778 if (this._lastDialogHeight !== _getSize(node, 'height')) {
25779 this.revertSize(inner.bodyNode);
25780 }
25781 }
25782 }
25783 };
25784
25785 Dialog.prototype.adjustPosition = function adjustPosition() {
25786 if (this.props.visible && this.overlay) {
25787 var inner = this.getInner();
25788 if (inner) {
25789 var node = this.getInnerNode();
25790
25791 var top = getStyle(node, 'top');
25792 var minMargin = this.props.minMargin;
25793 if (top < minMargin) {
25794 top = minMargin;
25795 setStyle(node, 'top', minMargin + 'px');
25796 }
25797
25798 var height = _getSize(node, 'height');
25799 var viewportHeight = window.innerHeight || document.documentElement.clientHeight;
25800
25801 if (viewportHeight < height + top * 2 - 1 || // 分辨率和精确度的原因 高度计算的时候 可能会有1px内的偏差
25802 this.props.height) {
25803 this.adjustSize(inner, node, Math.min(height, viewportHeight - top * 2));
25804 } else {
25805 this.revertSize(inner.bodyNode);
25806 }
25807
25808 this._lastDialogHeight = height;
25809 }
25810 }
25811 };
25812
25813 Dialog.prototype.adjustSize = function adjustSize(inner, node, expectHeight) {
25814 var headerNode = inner.headerNode,
25815 bodyNode = inner.bodyNode,
25816 footerNode = inner.footerNode;
25817
25818 var _map = [headerNode, footerNode].map(function (node) {
25819 return node ? _getSize(node, 'height') : 0;
25820 }),
25821 headerHeight = _map[0],
25822 footerHeight = _map[1];
25823
25824 var padding = ['padding-top', 'padding-bottom'].reduce(function (sum, attr) {
25825 return sum + getStyle(node, attr);
25826 }, 0);
25827
25828 var maxBodyHeight = expectHeight - headerHeight - footerHeight - padding;
25829
25830 if (maxBodyHeight < 0) {
25831 maxBodyHeight = 1;
25832 }
25833
25834 if (bodyNode) {
25835 this.dialogBodyStyleMaxHeight = bodyNode.style.maxHeight;
25836 this.dialogBodyStyleOverflowY = bodyNode.style.overflowY;
25837
25838 setStyle(bodyNode, {
25839 'max-height': maxBodyHeight + 'px',
25840 'overflow-y': 'auto'
25841 });
25842 }
25843 };
25844
25845 Dialog.prototype.revertSize = function revertSize(bodyNode) {
25846 setStyle(bodyNode, {
25847 'max-height': this.dialogBodyStyleMaxHeight,
25848 'overflow-y': this.dialogBodyStyleOverflowY
25849 });
25850 };
25851
25852 Dialog.prototype.mapcloseableToConfig = function mapcloseableToConfig(closeable) {
25853 return ['esc', 'close', 'mask'].reduce(function (ret, option) {
25854 var key = option.charAt(0).toUpperCase() + option.substr(1);
25855 var value = typeof closeable === 'boolean' ? closeable : closeable.split(',').indexOf(option) > -1;
25856
25857 if (option === 'esc' || option === 'mask') {
25858 ret['canCloseBy' + key] = value;
25859 } else {
25860 ret['canCloseBy' + key + 'Click'] = value;
25861 }
25862
25863 return ret;
25864 }, {});
25865 };
25866
25867 Dialog.prototype.getOverlayRef = function getOverlayRef(ref) {
25868 this.overlay = ref;
25869 };
25870
25871 Dialog.prototype.getInner = function getInner() {
25872 return this.overlay.getInstance().getContent();
25873 };
25874
25875 Dialog.prototype.getInnerNode = function getInnerNode() {
25876 return this.overlay.getInstance().getContentNode();
25877 };
25878
25879 Dialog.prototype.renderInner = function renderInner(closeable) {
25880 var _props2 = this.props,
25881 prefix = _props2.prefix,
25882 className = _props2.className,
25883 title = _props2.title,
25884 children = _props2.children,
25885 footer = _props2.footer,
25886 footerAlign = _props2.footerAlign,
25887 footerActions = _props2.footerActions,
25888 onOk = _props2.onOk,
25889 onCancel = _props2.onCancel,
25890 okProps = _props2.okProps,
25891 cancelProps = _props2.cancelProps,
25892 onClose = _props2.onClose,
25893 locale = _props2.locale,
25894 visible = _props2.visible,
25895 rtl = _props2.rtl,
25896 height = _props2.height;
25897
25898 var others = pickOthers(Object.keys(Dialog.propTypes), this.props);
25899
25900 return _react2.default.createElement(_inner2.default, (0, _extends3.default)({
25901 prefix: prefix,
25902 className: className,
25903 title: title,
25904 footer: footer,
25905 footerAlign: footerAlign,
25906 footerActions: footerActions,
25907 onOk: visible ? onOk : noop,
25908 onCancel: visible ? onCancel : noop,
25909 okProps: okProps,
25910 cancelProps: cancelProps,
25911 locale: locale,
25912 closeable: closeable,
25913 rtl: rtl,
25914 onClose: onClose.bind(this, 'closeClick'),
25915 height: height
25916 }, others), children);
25917 };
25918
25919 Dialog.prototype.render = function render() {
25920 var _props3 = this.props,
25921 prefix = _props3.prefix,
25922 visible = _props3.visible,
25923 hasMask = _props3.hasMask,
25924 animation = _props3.animation,
25925 autoFocus = _props3.autoFocus,
25926 closeable = _props3.closeable,
25927 closeMode = _props3.closeMode,
25928 onClose = _props3.onClose,
25929 afterClose = _props3.afterClose,
25930 shouldUpdatePosition = _props3.shouldUpdatePosition,
25931 align = _props3.align,
25932 popupContainer = _props3.popupContainer,
25933 cache = _props3.cache,
25934 overlayProps = _props3.overlayProps,
25935 rtl = _props3.rtl;
25936
25937 var useCSS = this.useCSSToPosition();
25938 var newCloseable = 'closeMode' in this.props ? Array.isArray(closeMode) ? closeMode.join(',') : closeMode : closeable;
25939
25940 var _mapcloseableToConfig = this.mapcloseableToConfig(newCloseable),
25941 canCloseByCloseClick = _mapcloseableToConfig.canCloseByCloseClick,
25942 closeConfig = (0, _objectWithoutProperties3.default)(_mapcloseableToConfig, ['canCloseByCloseClick']);
25943
25944 var newOverlayProps = (0, _extends3.default)({
25945 disableScroll: true,
25946 container: popupContainer,
25947 cache: cache
25948 }, overlayProps, {
25949 prefix: prefix,
25950 visible: visible,
25951 animation: animation,
25952 hasMask: hasMask,
25953 autoFocus: autoFocus,
25954 afterClose: afterClose
25955 }, closeConfig, {
25956 canCloseByOutSideClick: false,
25957 align: useCSS ? false : align,
25958 onRequestClose: onClose,
25959 needAdjust: false,
25960 ref: this.getOverlayRef,
25961 rtl: rtl,
25962 maskClass: useCSS ? prefix + 'dialog-container' : '',
25963 isChildrenInMask: useCSS && hasMask
25964 });
25965 if (!useCSS) {
25966 newOverlayProps.beforePosition = this.beforePosition;
25967 newOverlayProps.onPosition = this.adjustPosition;
25968 newOverlayProps.shouldUpdatePosition = shouldUpdatePosition;
25969 }
25970
25971 var inner = this.renderInner(canCloseByCloseClick);
25972
25973 // useCSS && hasMask : isFullScreen 并且 有mask的模式下,为了解决 next-overlay-backdrop 覆盖mask,使得点击mask关闭页面的功能不生效的问题,需要开启 Overlay 的 isChildrenInMask 功能,并且把 next-dialog-container 放到 next-overlay-backdrop上
25974 // useCSS && !hasMask : isFullScreen 并且 没有mask的情况下,需要关闭 isChildrenInMask 功能,以防止children不渲染
25975 // 其他模式下维持 mask 与 children 同级的关系
25976 return _react2.default.createElement(_overlay2.default, newOverlayProps, useCSS && !hasMask ? _react2.default.createElement('div', { className: prefix + 'dialog-container', dir: rtl ? 'rtl' : undefined }, inner) : inner);
25977 };
25978
25979 return Dialog;
25980}(_react.Component), _class.propTypes = {
25981 prefix: _propTypes2.default.string,
25982 pure: _propTypes2.default.bool,
25983 rtl: _propTypes2.default.bool,
25984 className: _propTypes2.default.string,
25985 /**
25986 * 是否显示
25987 */
25988 visible: _propTypes2.default.bool,
25989 /**
25990 * 标题
25991 */
25992 title: _propTypes2.default.node,
25993 /**
25994 * 内容
25995 */
25996 children: _propTypes2.default.node,
25997 /**
25998 * 底部内容,设置为 false,则不进行显示
25999 * @default [<Button type="primary">确定</Button>, <Button>取消</Button>]
26000 */
26001 footer: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.node]),
26002 /**
26003 * 底部按钮的对齐方式
26004 */
26005 footerAlign: _propTypes2.default.oneOf(['left', 'center', 'right']),
26006 /**
26007 * 指定确定按钮和取消按钮是否存在以及如何排列,<br><br>**可选值**:
26008 * ['ok', 'cancel'](确认取消按钮同时存在,确认按钮在左)
26009 * ['cancel', 'ok'](确认取消按钮同时存在,确认按钮在右)
26010 * ['ok'](只存在确认按钮)
26011 * ['cancel'](只存在取消按钮)
26012 */
26013 footerActions: _propTypes2.default.array,
26014 /**
26015 * 在点击确定按钮时触发的回调函数
26016 * @param {Object} event 点击事件对象
26017 */
26018 onOk: _propTypes2.default.func,
26019 /**
26020 * 在点击取消/关闭按钮时触发的回调函数
26021 * @param {Object} event 点击事件对象, event.triggerType=esc|closeIcon 可区分点击来源
26022 */
26023 onCancel: _propTypes2.default.func,
26024 /**
26025 * 应用于确定按钮的属性对象
26026 */
26027 okProps: _propTypes2.default.object,
26028 /**
26029 * 应用于取消按钮的属性对象
26030 */
26031 cancelProps: _propTypes2.default.object,
26032 /**
26033 * [推荐]1.21.x 支持控制对话框关闭的方式,值可以为字符串或者数组,其中字符串、数组均为以下值的枚举:
26034 * **close** 表示点击关闭按钮可以关闭对话框
26035 * **mask** 表示点击遮罩区域可以关闭对话框
26036 * **esc** 表示按下 esc 键可以关闭对话框
26037 * 如 'close' 或 ['close','esc','mask'], []
26038 * @version 1.21
26039 */
26040 closeMode: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.oneOf(['close', 'mask', 'esc'])), _propTypes2.default.oneOf(['close', 'mask', 'esc'])]),
26041 /**
26042 * 隐藏时是否保留子节点,不销毁 (低版本通过 overlayProps 实现)
26043 * @version 1.23
26044 */
26045 cache: _propTypes2.default.bool,
26046 /**
26047 * 对话框关闭后触发的回调函数, 如果有动画,则在动画结束后触发
26048 */
26049 afterClose: _propTypes2.default.func,
26050 /**
26051 * 是否显示遮罩
26052 */
26053 hasMask: _propTypes2.default.bool,
26054 /**
26055 * 显示隐藏时动画的播放方式,支持 { in: 'enter-class', out: 'leave-class' } 的对象参数,如果设置为 false,则不播放动画。 请参考 Animate 组件的文档获取可用的动画名
26056 * @default { in: 'expandInDown', out: 'expandOutUp' }
26057 */
26058 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
26059 /**
26060 * 对话框弹出时是否自动获得焦点
26061 */
26062 autoFocus: _propTypes2.default.bool,
26063 /**
26064 * [v2废弃] 透传到弹层组件的属性对象
26065 */
26066 overlayProps: _propTypes2.default.object,
26067 /**
26068 * 自定义国际化文案对象
26069 * @property {String} ok 确认按钮文案
26070 * @property {String} cancel 取消按钮文案
26071 */
26072 locale: _propTypes2.default.object,
26073 // Do not remove this, it's for <ConfigProvider popupContainer={} />
26074 // see https://github.com/alibaba-fusion/next/issues/1508
26075 /**
26076 * 自定义弹窗挂载位置
26077 */
26078 popupContainer: _propTypes2.default.any,
26079 /**
26080 * 对话框的高度样式属性
26081 */
26082 height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
26083 /**
26084 * 开启 v2 版本弹窗
26085 */
26086 v2: _propTypes2.default.bool,
26087 /**
26088 * [v2] 弹窗宽度
26089 * @version 1.25
26090 */
26091 width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
26092 /**
26093 * [v2] 弹窗上边距。默认 100,设置 centered=true 后默认 40
26094 * @version 1.25
26095 */
26096 top: _propTypes2.default.number,
26097 /**
26098 * [v2] 弹窗下边距
26099 * @version 1.25
26100 */
26101 bottom: _propTypes2.default.number,
26102 /**
26103 * [v2] 定制关闭按钮 icon
26104 * @version 1.25
26105 */
26106 closeIcon: _propTypes2.default.node,
26107 /**
26108 * [v2] 弹窗居中对齐
26109 * @version 1.25
26110 */
26111 centered: _propTypes2.default.bool,
26112 /**
26113 * [v2] 对话框高度超过浏览器视口高度时,对话框是否展示滚动条。关闭此功后对话框会随高度撑开页面
26114 * @version 1.25
26115 */
26116 overflowScroll: _propTypes2.default.bool,
26117 /**
26118 * [废弃]同closeMode, 控制对话框关闭的方式,值可以为字符串或者布尔值,其中字符串是由以下值组成:
26119 * **close** 表示点击关闭按钮可以关闭对话框
26120 * **mask** 表示点击遮罩区域可以关闭对话框
26121 * **esc** 表示按下 esc 键可以关闭对话框
26122 * 如 'close' 或 'close,esc,mask'
26123 * 如果设置为 true,则以上关闭方式全部生效
26124 * 如果设置为 false,则以上关闭方式全部失效
26125 */
26126 closeable: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
26127 /**
26128 * 点击对话框关闭按钮时触发的回调函数
26129 * @param {String} trigger 关闭触发行为的描述字符串
26130 * @param {Object} event 关闭时事件对象
26131 */
26132 onClose: _propTypes2.default.func,
26133 /**
26134 * [v2废弃] 对话框对齐方式, 具体见Overlay文档
26135 */
26136 align: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
26137 /**
26138 * [v2废弃] 是否撑开页面。 v2 改用 overflowScroll
26139 */
26140 isFullScreen: _propTypes2.default.bool,
26141 /**
26142 * [v2废弃] 是否在对话框重新渲染时及时更新对话框位置,一般用于对话框高度变化后依然能保证原来的对齐方式
26143 */
26144 shouldUpdatePosition: _propTypes2.default.bool,
26145 /**
26146 * [v2废弃] 对话框距离浏览器顶部和底部的最小间距,align 被设置为 'cc cc' 并且 isFullScreen 被设置为 true 时不生效
26147 */
26148 minMargin: _propTypes2.default.number
26149}, _class.defaultProps = {
26150 prefix: 'next-',
26151 pure: false,
26152 visible: false,
26153 footerAlign: 'right',
26154 footerActions: ['ok', 'cancel'],
26155 onOk: noop,
26156 onCancel: noop,
26157 cache: false,
26158 okProps: {},
26159 cancelProps: {},
26160 closeable: 'esc,close',
26161 onClose: noop,
26162 afterClose: noop,
26163 centered: false,
26164 hasMask: true,
26165 animation: {
26166 in: 'fadeInUp',
26167 out: 'fadeOutUp'
26168 },
26169 autoFocus: false,
26170 align: 'cc cc',
26171 isFullScreen: false,
26172 overflowScroll: true,
26173 shouldUpdatePosition: false,
26174 minMargin: 40,
26175 bottom: 40,
26176 overlayProps: {},
26177 locale: _zhCn2.default.Dialog
26178}, _temp);
26179Dialog.displayName = 'Dialog';
26180exports.default = Dialog;
26181module.exports = exports['default'];
26182
26183/***/ }),
26184/* 171 */
26185/***/ (function(module, exports, __webpack_require__) {
26186
26187"use strict";
26188
26189
26190exports.__esModule = true;
26191
26192var _extends2 = __webpack_require__(1);
26193
26194var _extends3 = _interopRequireDefault(_extends2);
26195
26196var _objectWithoutProperties2 = __webpack_require__(8);
26197
26198var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
26199
26200var _react = __webpack_require__(0);
26201
26202var _react2 = _interopRequireDefault(_react);
26203
26204var _reactDom = __webpack_require__(12);
26205
26206var _reactDom2 = _interopRequireDefault(_reactDom);
26207
26208var _classnames = __webpack_require__(7);
26209
26210var _classnames2 = _interopRequireDefault(_classnames);
26211
26212var _overlay = __webpack_require__(85);
26213
26214var _overlay2 = _interopRequireDefault(_overlay);
26215
26216var _inner = __webpack_require__(93);
26217
26218var _inner2 = _interopRequireDefault(_inner);
26219
26220var _animate = __webpack_require__(20);
26221
26222var _animate2 = _interopRequireDefault(_animate);
26223
26224var _zhCn = __webpack_require__(13);
26225
26226var _zhCn2 = _interopRequireDefault(_zhCn);
26227
26228var _util = __webpack_require__(6);
26229
26230var _scrollLocker = __webpack_require__(341);
26231
26232var _scrollLocker2 = _interopRequireDefault(_scrollLocker);
26233
26234function _interopRequireDefault(obj) {
26235 return obj && obj.__esModule ? obj : { default: obj };
26236}
26237
26238var OverlayContext = _overlay2.default.OverlayContext; /* istanbul ignore file */
26239
26240var noop = _util.func.noop;
26241
26242var Dialog = function Dialog(props) {
26243 var _classNames, _classNames2, _classNames3;
26244
26245 if (!_react.useState || !_react.useRef || !_react.useEffect) {
26246 _util.log.warning('need react version > 16.8.0');
26247 return null;
26248 }
26249
26250 var _props$prefix = props.prefix,
26251 prefix = _props$prefix === undefined ? 'next-' : _props$prefix,
26252 _props$afterClose = props.afterClose,
26253 afterClose = _props$afterClose === undefined ? noop : _props$afterClose,
26254 _props$hasMask = props.hasMask,
26255 hasMask = _props$hasMask === undefined ? true : _props$hasMask,
26256 _props$autoFocus = props.autoFocus,
26257 autoFocus = _props$autoFocus === undefined ? false : _props$autoFocus,
26258 className = props.className,
26259 title = props.title,
26260 children = props.children,
26261 footer = props.footer,
26262 footerAlign = props.footerAlign,
26263 footerActions = props.footerActions,
26264 _props$onOk = props.onOk,
26265 onOk = _props$onOk === undefined ? noop : _props$onOk,
26266 onCancel = props.onCancel,
26267 okProps = props.okProps,
26268 cancelProps = props.cancelProps,
26269 _props$locale = props.locale,
26270 locale = _props$locale === undefined ? _zhCn2.default.Dialog : _props$locale,
26271 rtl = props.rtl,
26272 pvisible = props.visible,
26273 _props$closeMode = props.closeMode,
26274 closeMode = _props$closeMode === undefined ? ['close', 'esc'] : _props$closeMode,
26275 closeIcon = props.closeIcon,
26276 _props$animation = props.animation,
26277 animation = _props$animation === undefined ? { in: 'fadeInUp', out: 'fadeOutUp' } : _props$animation,
26278 cache = props.cache,
26279 wrapperStyle = props.wrapperStyle,
26280 _props$popupContainer = props.popupContainer,
26281 popupContainer = _props$popupContainer === undefined ? document.body : _props$popupContainer,
26282 dialogRender = props.dialogRender,
26283 centered = props.centered,
26284 _props$top = props.top,
26285 top = _props$top === undefined ? centered ? 40 : 100 : _props$top,
26286 _props$bottom = props.bottom,
26287 bottom = _props$bottom === undefined ? 40 : _props$bottom,
26288 _props$width = props.width,
26289 width = _props$width === undefined ? 520 : _props$width,
26290 height = props.height,
26291 isFullScreen = props.isFullScreen,
26292 _props$overflowScroll = props.overflowScroll,
26293 overflowScroll = _props$overflowScroll === undefined ? !isFullScreen : _props$overflowScroll,
26294 minMargin = props.minMargin,
26295 onClose = props.onClose,
26296 style = props.style,
26297 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']);
26298
26299 if ('isFullScreen' in props) {
26300 _util.log.deprecated('isFullScreen', 'overflowScroll', 'Dialog v2');
26301 }
26302 if ('minMargin' in props) {
26303 _util.log.deprecated('minMargin', 'top/bottom', 'Dialog v2');
26304 }
26305
26306 var _useState = (0, _react.useState)(pvisible || false),
26307 firstVisible = _useState[0],
26308 setFirst = _useState[1];
26309
26310 var _useState2 = (0, _react.useState)(pvisible),
26311 visible = _useState2[0],
26312 setVisible = _useState2[1];
26313
26314 var getContainer = typeof popupContainer === 'string' ? function () {
26315 return document.getElementById(popupContainer);
26316 } : typeof popupContainer !== 'function' ? function () {
26317 return popupContainer;
26318 } : popupContainer;
26319
26320 var _useState3 = (0, _react.useState)(getContainer()),
26321 container = _useState3[0],
26322 setContainer = _useState3[1];
26323
26324 var dialogRef = (0, _react.useRef)(null);
26325 var wrapperRef = (0, _react.useRef)(null);
26326 var lastFocus = (0, _react.useRef)(null);
26327 var locker = (0, _react.useRef)(null);
26328
26329 var _useState4 = (0, _react.useState)((0, _util.guid)()),
26330 uuid = _useState4[0];
26331
26332 var _useContext = (0, _react.useContext)(OverlayContext),
26333 setVisibleOverlayToParent = _useContext.setVisibleOverlayToParent,
26334 otherContext = (0, _objectWithoutProperties3.default)(_useContext, ['setVisibleOverlayToParent']);
26335
26336 var childIDMap = (0, _react.useRef)(new Map());
26337 var isAnimationEnd = (0, _react.useRef)(false);
26338
26339 var _useState5 = (0, _react.useState)(),
26340 forceUpdate = _useState5[1];
26341
26342 var markAnimationEnd = function markAnimationEnd(state) {
26343 isAnimationEnd.current = state;
26344 forceUpdate({});
26345 };
26346
26347 var canCloseByEsc = false;
26348 var canCloseByMask = false;
26349 var closeable = false;
26350
26351 var closeModeArray = Array.isArray(closeMode) ? closeMode : [closeMode];
26352 closeModeArray.forEach(function (mode) {
26353 switch (mode) {
26354 case 'esc':
26355 canCloseByEsc = true;
26356 break;
26357 case 'mask':
26358 canCloseByMask = true;
26359 break;
26360 case 'close':
26361 closeable = true;
26362 break;
26363 }
26364 });
26365
26366 // visible 受控
26367 (0, _react.useEffect)(function () {
26368 if ('visible' in props) {
26369 setVisible(pvisible);
26370 }
26371 }, [pvisible]);
26372
26373 // 打开遮罩后 document.body 滚动处理
26374 (0, _react.useEffect)(function () {
26375 if (visible && hasMask) {
26376 var _style = {
26377 overflow: 'hidden'
26378 };
26379
26380 if (_util.dom.hasScroll(document.body)) {
26381 var scrollWidth = _util.dom.scrollbar().width;
26382 if (scrollWidth) {
26383 _style.paddingRight = _util.dom.getStyle(document.body, 'paddingRight') + _util.dom.scrollbar().width + 'px';
26384 }
26385 }
26386 locker.current = _scrollLocker2.default.lock(document.body, _style);
26387 }
26388 }, [visible && hasMask]);
26389
26390 var handleClose = function handleClose(targetType, e) {
26391 setVisibleOverlayToParent(uuid, null);
26392 typeof onClose === 'function' && onClose(targetType, e);
26393 };
26394
26395 var keydownEvent = function keydownEvent(e) {
26396 if (e.keyCode === 27 && canCloseByEsc && !childIDMap.current.size) {
26397 handleClose('esc', e);
26398 }
26399 };
26400
26401 // esc 键盘事件处理
26402 (0, _react.useEffect)(function () {
26403 if (visible && canCloseByEsc) {
26404 document.body.addEventListener('keydown', keydownEvent, false);
26405 return function () {
26406 document.body.removeEventListener('keydown', keydownEvent, false);
26407 };
26408 }
26409 }, [visible && canCloseByEsc]);
26410
26411 // 优化: 第一次加载并且 visible=false 的情况不挂载弹窗
26412 (0, _react.useEffect)(function () {
26413 !firstVisible && visible && setFirst(true);
26414 }, [visible]);
26415
26416 // container 异步加载情况
26417 (0, _react.useEffect)(function () {
26418 if (!container) {
26419 setTimeout(function () {
26420 setContainer(getContainer());
26421 });
26422 }
26423 }, [container]);
26424
26425 var handleExited = function handleExited() {
26426 if (!isAnimationEnd.current) {
26427 markAnimationEnd(true);
26428 _util.dom.setStyle(wrapperRef.current, 'display', 'none');
26429 _scrollLocker2.default.unlock(document.body, locker.current);
26430
26431 if (autoFocus && lastFocus.current) {
26432 try {
26433 lastFocus.current.focus();
26434 } finally {
26435 // ignore ...
26436 }
26437 lastFocus.current = null;
26438 }
26439 afterClose();
26440 }
26441 };
26442
26443 (0, _react.useEffect)(function () {
26444 return function () {
26445 handleExited();
26446 };
26447 }, []);
26448
26449 if (firstVisible === false || !container) {
26450 return null;
26451 }
26452
26453 if (!visible && !cache && isAnimationEnd.current) {
26454 return null;
26455 }
26456
26457 var handleCancel = function handleCancel(e) {
26458 if (typeof onCancel === 'function') {
26459 onCancel(e);
26460 } else {
26461 handleClose('cancelBtn', e);
26462 }
26463 };
26464
26465 var handleMaskClick = function handleMaskClick(e) {
26466 if (!canCloseByMask) {
26467 return;
26468 }
26469
26470 if (e.type === 'click' && dialogRef.current) {
26471 var dialogNode = _reactDom2.default.findDOMNode(dialogRef.current);
26472 if (dialogNode && dialogNode.contains(e.target)) {
26473 return;
26474 }
26475 }
26476
26477 handleClose('maskClick', e);
26478 };
26479
26480 var handleEnter = function handleEnter() {
26481 markAnimationEnd(false);
26482 _util.dom.setStyle(wrapperRef.current, 'display', '');
26483 };
26484 var handleEntered = function handleEntered() {
26485 if (autoFocus && dialogRef.current && dialogRef.current.bodyNode) {
26486 var focusableNodes = _util.focus.getFocusNodeList(dialogRef.current.bodyNode);
26487 if (focusableNodes.length > 0 && focusableNodes[0]) {
26488 lastFocus.current = document.activeElement;
26489 focusableNodes[0].focus();
26490 }
26491 }
26492 setVisibleOverlayToParent(uuid, wrapperRef.current);
26493 };
26494
26495 var wrapperCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'overlay-wrapper'] = true, _classNames.opened = visible, _classNames));
26496 var dialogCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'dialog-v2'] = true, _classNames2[className] = !!className, _classNames2));
26497
26498 var topStyle = {};
26499 if (centered) {
26500 // 兼容 minMargin
26501 if (!top && !bottom && minMargin) {
26502 topStyle.marginTop = minMargin;
26503 topStyle.marginBottom = minMargin;
26504 } else {
26505 top && (topStyle.marginTop = top);
26506 bottom && (topStyle.marginBottom = bottom);
26507 }
26508 } else {
26509 top && (topStyle.top = top);
26510 bottom && (topStyle.paddingBottom = bottom);
26511 }
26512
26513 var maxHeight = void 0;
26514 if (overflowScroll) {
26515 maxHeight = 'calc(100vh - ' + (top + bottom) + 'px)';
26516 }
26517
26518 var timeout = {
26519 appear: 300,
26520 enter: 300,
26521 exit: 250
26522 };
26523
26524 var inner = _react2.default.createElement(_animate2.default.OverlayAnimate, {
26525 visible: visible,
26526 animation: animation,
26527 timeout: timeout,
26528 onEnter: handleEnter,
26529 onEntered: handleEntered,
26530 onExited: handleExited
26531 }, _react2.default.createElement(_inner2.default, (0, _extends3.default)({}, others, {
26532 style: centered ? (0, _extends3.default)({}, topStyle, style) : style,
26533 v2: true,
26534 ref: dialogRef,
26535 prefix: prefix,
26536 className: dialogCls,
26537 title: title,
26538 footer: footer,
26539 footerAlign: footerAlign,
26540 footerActions: footerActions,
26541 onOk: visible ? onOk : noop,
26542 onCancel: visible ? handleCancel : noop,
26543 okProps: okProps,
26544 cancelProps: cancelProps,
26545 locale: locale,
26546 closeable: closeable,
26547 rtl: rtl,
26548 onClose: function onClose() {
26549 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
26550 args[_key] = arguments[_key];
26551 }
26552
26553 return handleClose.apply(undefined, ['closeClick'].concat(args));
26554 },
26555 closeIcon: closeIcon,
26556 height: height,
26557 maxHeight: maxHeight,
26558 width: width
26559 }), children));
26560
26561 if (typeof dialogRender === 'function') {
26562 inner = dialogRender(inner);
26563 }
26564
26565 var innerWrapperCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'overlay-inner'] = true, _classNames3[prefix + 'dialog-wrapper'] = true, _classNames3[prefix + 'dialog-centered'] = centered, _classNames3));
26566
26567 var getVisibleOverlayFromChild = function getVisibleOverlayFromChild(id, node) {
26568 if (node) {
26569 childIDMap.current.set(id, node);
26570 } else {
26571 childIDMap.current.delete(id);
26572 }
26573 // 让父级也感知
26574 setVisibleOverlayToParent(id, node);
26575 };
26576
26577 return _react2.default.createElement(OverlayContext.Provider, {
26578 value: (0, _extends3.default)({}, otherContext, {
26579 setVisibleOverlayToParent: getVisibleOverlayFromChild
26580 })
26581 }, _reactDom2.default.createPortal(_react2.default.createElement('div', { className: wrapperCls, style: wrapperStyle, ref: wrapperRef }, hasMask ? _react2.default.createElement(_animate2.default.OverlayAnimate, {
26582 visible: visible,
26583 animation: animation ? { in: 'fadeIn', out: 'fadeOut' } : false,
26584 timeout: timeout,
26585 unmountOnExit: true
26586 }, _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));
26587};
26588
26589exports.default = Dialog;
26590module.exports = exports['default'];
26591
26592/***/ }),
26593/* 172 */
26594/***/ (function(module, exports, __webpack_require__) {
26595
26596"use strict";
26597
26598
26599exports.__esModule = true;
26600exports.default = undefined;
26601
26602var _extends2 = __webpack_require__(1);
26603
26604var _extends3 = _interopRequireDefault(_extends2);
26605
26606var _classCallCheck2 = __webpack_require__(2);
26607
26608var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
26609
26610var _possibleConstructorReturn2 = __webpack_require__(3);
26611
26612var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
26613
26614var _inherits2 = __webpack_require__(4);
26615
26616var _inherits3 = _interopRequireDefault(_inherits2);
26617
26618var _class, _temp;
26619
26620var _react = __webpack_require__(0);
26621
26622var _react2 = _interopRequireDefault(_react);
26623
26624var _propTypes = __webpack_require__(5);
26625
26626var _propTypes2 = _interopRequireDefault(_propTypes);
26627
26628var _classnames = __webpack_require__(7);
26629
26630var _classnames2 = _interopRequireDefault(_classnames);
26631
26632var _icon = __webpack_require__(11);
26633
26634var _icon2 = _interopRequireDefault(_icon);
26635
26636var _zhCn = __webpack_require__(13);
26637
26638var _zhCn2 = _interopRequireDefault(_zhCn);
26639
26640var _util = __webpack_require__(6);
26641
26642function _interopRequireDefault(obj) {
26643 return obj && obj.__esModule ? obj : { default: obj };
26644}
26645
26646var noop = function noop() {};
26647var pickOthers = _util.obj.pickOthers;
26648var Inner = (_temp = _class = function (_Component) {
26649 (0, _inherits3.default)(Inner, _Component);
26650
26651 function Inner() {
26652 (0, _classCallCheck3.default)(this, Inner);
26653 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
26654 }
26655
26656 Inner.prototype.renderHeader = function renderHeader() {
26657 var _cx;
26658
26659 var _props = this.props,
26660 prefix = _props.prefix,
26661 title = _props.title,
26662 headerStyle = _props.headerStyle;
26663
26664 var closeLink = this.renderCloseLink();
26665 var headerCls = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'drawer-header'] = true, _cx[prefix + 'drawer-no-title'] = !title, _cx));
26666
26667 return _react2.default.createElement('div', {
26668 className: headerCls,
26669 style: headerStyle,
26670 role: 'heading',
26671 'aria-level': '1'
26672 }, title, closeLink);
26673 };
26674
26675 Inner.prototype.renderBody = function renderBody() {
26676 var _props2 = this.props,
26677 prefix = _props2.prefix,
26678 children = _props2.children,
26679 bodyStyle = _props2.bodyStyle;
26680
26681 if (children) {
26682 return _react2.default.createElement('div', { className: prefix + 'drawer-body', style: bodyStyle }, children);
26683 }
26684 return null;
26685 };
26686
26687 Inner.prototype.renderCloseLink = function renderCloseLink() {
26688 var _props3 = this.props,
26689 prefix = _props3.prefix,
26690 closeable = _props3.closeable,
26691 onClose = _props3.onClose,
26692 locale = _props3.locale;
26693
26694 if (closeable) {
26695 return _react2.default.createElement('a', {
26696 role: 'button',
26697 'aria-label': locale.close,
26698 className: prefix + 'drawer-close',
26699 onClick: onClose
26700 }, _react2.default.createElement(_icon2.default, {
26701 className: prefix + 'drawer-close-icon',
26702 type: 'close'
26703 }));
26704 }
26705
26706 return null;
26707 };
26708
26709 Inner.prototype.render = function render() {
26710 var _cx2;
26711
26712 var _props4 = this.props,
26713 prefix = _props4.prefix,
26714 className = _props4.className,
26715 closeable = _props4.closeable,
26716 placement = _props4.placement,
26717 role = _props4.role,
26718 rtl = _props4.rtl;
26719
26720 var others = pickOthers(Object.keys(Inner.propTypes), this.props);
26721 var newClassName = (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'drawer'] = true, _cx2[prefix + 'drawer-' + placement] = true, _cx2[prefix + 'closeable'] = closeable, _cx2[className] = !!className, _cx2));
26722
26723 var ariaProps = {
26724 role: role,
26725 'aria-modal': 'true'
26726 };
26727
26728 var header = this.renderHeader();
26729 var body = this.renderBody();
26730
26731 return _react2.default.createElement('div', (0, _extends3.default)({}, ariaProps, {
26732 className: newClassName
26733 }, others, {
26734 dir: rtl ? 'rtl' : undefined
26735 }), _react2.default.createElement('div', { style: { height: '100%', overflow: 'auto' } }, header, body));
26736 };
26737
26738 return Inner;
26739}(_react.Component), _class.propTypes = {
26740 prefix: _propTypes2.default.string,
26741 className: _propTypes2.default.string,
26742 closeable: _propTypes2.default.bool,
26743 role: _propTypes2.default.string,
26744 title: _propTypes2.default.node,
26745 placement: _propTypes2.default.oneOf(['top', 'right', 'bottom', 'left']),
26746 rtl: _propTypes2.default.bool,
26747 onClose: _propTypes2.default.func,
26748 locale: _propTypes2.default.object,
26749 headerStyle: _propTypes2.default.object,
26750 bodyStyle: _propTypes2.default.object,
26751 afterClose: _propTypes2.default.func,
26752 beforeOpen: _propTypes2.default.func,
26753 beforeClose: _propTypes2.default.func,
26754 cache: _propTypes2.default.bool,
26755 shouldUpdatePosition: _propTypes2.default.bool
26756}, _class.defaultProps = {
26757 prefix: 'next-',
26758 closeable: true,
26759 role: 'dialog',
26760 onClose: noop,
26761 locale: _zhCn2.default.Drawer
26762}, _temp);
26763Inner.displayName = 'Inner';
26764exports.default = Inner;
26765module.exports = exports['default'];
26766
26767/***/ }),
26768/* 173 */
26769/***/ (function(module, exports, __webpack_require__) {
26770
26771"use strict";
26772
26773
26774exports.__esModule = true;
26775
26776var _extends2 = __webpack_require__(1);
26777
26778var _extends3 = _interopRequireDefault(_extends2);
26779
26780var _classCallCheck2 = __webpack_require__(2);
26781
26782var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
26783
26784var _possibleConstructorReturn2 = __webpack_require__(3);
26785
26786var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
26787
26788var _inherits2 = __webpack_require__(4);
26789
26790var _inherits3 = _interopRequireDefault(_inherits2);
26791
26792var _react = __webpack_require__(0);
26793
26794var _field = __webpack_require__(347);
26795
26796var _field2 = _interopRequireDefault(_field);
26797
26798var _util = __webpack_require__(6);
26799
26800var _utils = __webpack_require__(366);
26801
26802function _interopRequireDefault(obj) {
26803 return obj && obj.__esModule ? obj : { default: obj };
26804}
26805
26806var NextField = function (_Field) {
26807 (0, _inherits3.default)(NextField, _Field);
26808
26809 NextField.useField = function useField() {
26810 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26811
26812 if (!_react.useState || !_react.useMemo) {
26813 _util.log.warning('need react version > 16.8.0');
26814 return;
26815 }
26816 return this.getUseField({ useMemo: _react.useMemo, useState: _react.useState })(options);
26817 };
26818
26819 function NextField(com) {
26820 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
26821 (0, _classCallCheck3.default)(this, NextField);
26822
26823 var newOptions = (0, _extends3.default)({}, options, {
26824 afterValidateRerender: _utils.scrollToFirstError,
26825 processErrorMessage: _utils.cloneAndAddKey
26826 });
26827
26828 var _this = (0, _possibleConstructorReturn3.default)(this, _Field.call(this, com, newOptions));
26829
26830 _this.validate = _this.validate.bind(_this);
26831 return _this;
26832 }
26833
26834 NextField.prototype.validate = function validate(ns, cb) {
26835 this.validateCallback(ns, cb);
26836 };
26837
26838 NextField.prototype.reset = function reset(ns) {
26839 var backToDefault = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
26840
26841 if (ns === true) {
26842 _util.log.deprecated('reset(true)', 'resetToDefault()', 'Field');
26843 this.resetToDefault();
26844 } else if (backToDefault === true) {
26845 _util.log.deprecated('reset(ns,true)', 'resetToDefault(ns)', 'Field');
26846 this.resetToDefault(ns);
26847 } else {
26848 this._reset(ns, false);
26849 }
26850 };
26851
26852 return NextField;
26853}(_field2.default);
26854
26855exports.default = NextField;
26856module.exports = exports['default'];
26857
26858/***/ }),
26859/* 174 */
26860/***/ (function(module, exports) {
26861
26862function _classCallCheck(instance, Constructor) {
26863 if (!(instance instanceof Constructor)) {
26864 throw new TypeError("Cannot call a class as a function");
26865 }
26866}
26867
26868module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
26869
26870/***/ }),
26871/* 175 */
26872/***/ (function(module, exports) {
26873
26874function _defineProperties(target, props) {
26875 for (var i = 0; i < props.length; i++) {
26876 var descriptor = props[i];
26877 descriptor.enumerable = descriptor.enumerable || false;
26878 descriptor.configurable = true;
26879 if ("value" in descriptor) descriptor.writable = true;
26880 Object.defineProperty(target, descriptor.key, descriptor);
26881 }
26882}
26883
26884function _createClass(Constructor, protoProps, staticProps) {
26885 if (protoProps) _defineProperties(Constructor.prototype, protoProps);
26886 if (staticProps) _defineProperties(Constructor, staticProps);
26887 Object.defineProperty(Constructor, "prototype", {
26888 writable: false
26889 });
26890 return Constructor;
26891}
26892
26893module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
26894
26895/***/ }),
26896/* 176 */
26897/***/ (function(module, exports, __webpack_require__) {
26898
26899"use strict";
26900
26901
26902exports.__esModule = true;
26903
26904var _classCallCheck2 = __webpack_require__(2);
26905
26906var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
26907
26908var _possibleConstructorReturn2 = __webpack_require__(3);
26909
26910var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
26911
26912var _inherits2 = __webpack_require__(4);
26913
26914var _inherits3 = _interopRequireDefault(_inherits2);
26915
26916var _extends2 = __webpack_require__(1);
26917
26918var _extends3 = _interopRequireDefault(_extends2);
26919
26920var _typeof2 = __webpack_require__(14);
26921
26922var _typeof3 = _interopRequireDefault(_typeof2);
26923
26924var _class, _temp;
26925
26926var _react = __webpack_require__(0);
26927
26928var _react2 = _interopRequireDefault(_react);
26929
26930var _propTypes = __webpack_require__(5);
26931
26932var _propTypes2 = _interopRequireDefault(_propTypes);
26933
26934var _classnames = __webpack_require__(7);
26935
26936var _classnames2 = _interopRequireDefault(_classnames);
26937
26938var _configProvider = __webpack_require__(9);
26939
26940var _configProvider2 = _interopRequireDefault(_configProvider);
26941
26942var _util = __webpack_require__(6);
26943
26944var _createStyle = __webpack_require__(177);
26945
26946var _createStyle2 = _interopRequireDefault(_createStyle);
26947
26948function _interopRequireDefault(obj) {
26949 return obj && obj.__esModule ? obj : { default: obj };
26950}
26951
26952var pickOthers = _util.obj.pickOthers;
26953
26954var createChildren = function createChildren(children, _ref) {
26955 var spacing = _ref.spacing,
26956 direction = _ref.direction,
26957 wrap = _ref.wrap,
26958 device = _ref.device;
26959
26960 var array = _react2.default.Children.toArray(children);
26961 if (!children) {
26962 return null;
26963 }
26964
26965 return array.map(function (child, index) {
26966 var spacingMargin = {};
26967
26968 spacingMargin = (0, _createStyle.getChildMargin)(spacing);
26969
26970 if (!wrap) {
26971 // 不折行
26972 var isNone = [index === 0, index === array.length - 1];
26973 var props = direction === 'row' ? ['marginLeft', 'marginRight'] : ['marginTop', 'marginBottom'];
26974
26975 ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'].forEach(function (prop) {
26976 if (prop in spacingMargin && props.indexOf(prop) === -1) {
26977 spacingMargin[prop] = 0;
26978 }
26979
26980 props.forEach(function (key, i) {
26981 if (key in spacingMargin && isNone[i]) {
26982 spacingMargin[key] = 0;
26983 }
26984 });
26985 });
26986 }
26987
26988 if (_react2.default.isValidElement(child)) {
26989 var propsMargin = child.props.margin;
26990
26991 var childPropsMargin = (0, _createStyle.getMargin)(propsMargin);
26992 var gridProps = {};
26993
26994 if (['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && child.type._typeMark === 'responsive_grid') {
26995 gridProps = (0, _createStyle2.default)((0, _extends3.default)({ display: 'grid' }, child.props));
26996 }
26997
26998 return _react2.default.cloneElement(child, {
26999 style: (0, _extends3.default)({}, spacingMargin, childPropsMargin, gridProps, child.props.style || {})
27000 });
27001 }
27002
27003 return child;
27004 });
27005};
27006
27007var getStyle = function getStyle() {
27008 var style = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
27009 var props = arguments[1];
27010
27011 return (0, _extends3.default)({}, (0, _createStyle2.default)((0, _extends3.default)({ display: 'flex' }, props)), style);
27012};
27013
27014var getOuterStyle = function getOuterStyle(style, styleProps) {
27015 var sheet = getStyle(style, styleProps);
27016
27017 return (0, _createStyle.filterOuterStyle)(sheet);
27018};
27019
27020var getHelperStyle = function getHelperStyle(style, styleProps) {
27021 var sheet = getStyle(style, styleProps);
27022
27023 return (0, _createStyle.filterHelperStyle)((0, _extends3.default)({}, sheet, (0, _createStyle.getSpacingHelperMargin)(styleProps.spacing)));
27024};
27025
27026var getInnerStyle = function getInnerStyle(style, styleProps) {
27027 var sheet = getStyle(style, styleProps);
27028
27029 return (0, _createStyle.filterInnerStyle)(sheet);
27030};
27031
27032/**
27033 * Box
27034 */
27035var Box = (_temp = _class = function (_Component) {
27036 (0, _inherits3.default)(Box, _Component);
27037
27038 function Box() {
27039 (0, _classCallCheck3.default)(this, Box);
27040 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
27041 }
27042
27043 Box.prototype.render = function render() {
27044 var _cx;
27045
27046 var _props = this.props,
27047 prefix = _props.prefix,
27048 direction = _props.direction,
27049 justify = _props.justify,
27050 align = _props.align,
27051 wrap = _props.wrap,
27052 flex = _props.flex,
27053 spacing = _props.spacing,
27054 padding = _props.padding,
27055 margin = _props.margin,
27056 style = _props.style,
27057 className = _props.className,
27058 children = _props.children,
27059 device = _props.device,
27060 component = _props.component;
27061
27062 var styleProps = {
27063 direction: direction,
27064 justify: justify,
27065 align: align,
27066 wrap: wrap,
27067 flex: flex,
27068 spacing: spacing,
27069 padding: padding,
27070 margin: margin
27071 };
27072 var View = component;
27073 var others = pickOthers(Object.keys(Box.propTypes), this.props);
27074 var styleSheet = getStyle(style, styleProps);
27075
27076 var boxs = createChildren(children, {
27077 spacing: spacing,
27078 direction: direction,
27079 wrap: wrap,
27080 device: device
27081 });
27082
27083 var cls = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'box'] = true, _cx), className);
27084 if (wrap && spacing) {
27085 var outerStyle = getOuterStyle(style, styleProps);
27086 var helperStyle = getHelperStyle(style, styleProps);
27087 var innerStyle = getInnerStyle(style, styleProps);
27088
27089 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)));
27090 }
27091
27092 return _react2.default.createElement(View, (0, _extends3.default)({ style: styleSheet, className: cls }, others), boxs);
27093 };
27094
27095 return Box;
27096}(_react.Component), _class.propTypes = {
27097 prefix: _propTypes2.default.string,
27098 style: _propTypes2.default.object,
27099 className: _propTypes2.default.any,
27100 /**
27101 * 布局属性
27102 */
27103 flex: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string])), _propTypes2.default.number]),
27104 /**
27105 * 布局方向,默认为 column ,一个元素占据一整行
27106 * @default column
27107 */
27108 direction: _propTypes2.default.oneOf(['row', 'column', 'row-reverse']),
27109 /**
27110 * 是否折行 支持IE11+
27111 */
27112 wrap: _propTypes2.default.bool,
27113 /**
27114 * 元素之间的间距 [bottom&top, right&left]
27115 */
27116 spacing: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.number]),
27117 /**
27118 * 设置 margin [bottom&top, right&left]
27119 */
27120 margin: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.number]),
27121 /**
27122 * 设置 padding [bottom&top, right&left]
27123 */
27124 padding: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.number]),
27125 /**
27126 * 沿着主轴方向,子元素们的排布关系 (兼容性同 justify-content )
27127 */
27128 justify: _propTypes2.default.oneOf(['flex-start', 'center', 'flex-end', 'space-between', 'space-around']),
27129 /**
27130 * 垂直主轴方向,子元素们的排布关系 (兼容性同 align-items )
27131 */
27132 align: _propTypes2.default.oneOf(['flex-start', 'center', 'flex-end', 'baseline', 'stretch']),
27133 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
27134 /**
27135 * 定制标签名, 例如section等
27136 */
27137 component: _propTypes2.default.string
27138}, _class.defaultProps = {
27139 prefix: 'next-',
27140 direction: 'column',
27141 wrap: false,
27142 component: 'div'
27143}, _temp);
27144Box.displayName = 'Box';
27145exports.default = _configProvider2.default.config(Box);
27146module.exports = exports['default'];
27147
27148/***/ }),
27149/* 177 */
27150/***/ (function(module, exports, __webpack_require__) {
27151
27152"use strict";
27153
27154
27155exports.__esModule = true;
27156exports.getGridChildProps = exports.filterHelperStyle = exports.filterOuterStyle = exports.filterInnerStyle = exports.getSpacingHelperMargin = exports.getSpacingMargin = exports.getChildMargin = exports.getMargin = undefined;
27157
27158var _typeof2 = __webpack_require__(14);
27159
27160var _typeof3 = _interopRequireDefault(_typeof2);
27161
27162var _extends2 = __webpack_require__(1);
27163
27164var _extends3 = _interopRequireDefault(_extends2);
27165
27166var _util = __webpack_require__(369);
27167
27168var _util2 = __webpack_require__(6);
27169
27170function _interopRequireDefault(obj) {
27171 return obj && obj.__esModule ? obj : { default: obj };
27172}
27173
27174// import { prefix } from 'inline-style-prefixer';
27175var ieVersion = _util2.env.ieVersion;
27176
27177var getPadding = function getPadding(padding) {
27178 if (!Array.isArray(padding)) {
27179 return {
27180 padding: padding
27181 };
27182 }
27183
27184 var attrs = ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'];
27185 var paddings = {};
27186 var value = void 0;
27187
27188 attrs.forEach(function (attr, index) {
27189 switch (padding.length) {
27190 case 1:
27191 value = padding[0] || 0;
27192 break;
27193 case 2:
27194 value = padding[index] || padding[index - 2] || 0;
27195 break;
27196 case 3:
27197 value = index === 2 ? padding[2] : padding[index] || padding[index - 2] || 0;
27198 break;
27199 case 4:
27200 default:
27201 value = padding[index] || 0;
27202 break;
27203 }
27204 paddings[attr] = value;
27205 });
27206
27207 return paddings;
27208};
27209
27210var getMargin = function getMargin(size) {
27211 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { isNegative: false, half: false },
27212 isNegative = _ref.isNegative,
27213 half = _ref.half;
27214
27215 if (!size) {
27216 return {};
27217 }
27218 var attrs = ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'];
27219 var margins = {};
27220 var param = 1 * (isNegative ? -1 : 1) * (half ? 0.5 : 1);
27221 var value = void 0;
27222
27223 attrs.forEach(function (attr, index) {
27224 if (!Array.isArray(size)) {
27225 value = param * size;
27226 } else {
27227 switch (size.length) {
27228 case 1:
27229 value = param * (size[0] || 0);
27230 break;
27231 case 2:
27232 value = param * (size[index] || size[index - 2] || 0);
27233 break;
27234 case 3:
27235 value = param * (index === 2 ? size[2] : size[index] || size[index - 2] || 0);
27236 break;
27237 case 4:
27238 default:
27239 value = param * (size[index] || 0);
27240 break;
27241 }
27242 }
27243
27244 margins[attr] = value;
27245 });
27246
27247 return margins;
27248};
27249
27250var getChildMargin = function getChildMargin(spacing) {
27251 return getMargin(spacing, { half: true });
27252};
27253
27254var getSpacingMargin = function getSpacingMargin(spacing) {
27255 return getMargin(spacing, { half: true });
27256};
27257
27258var getSpacingHelperMargin = function getSpacingHelperMargin(spacing) {
27259 return getMargin(spacing, { isNegative: true, half: true });
27260};
27261
27262var getFlexs = function getFlexs(flex) {
27263 if (!Array.isArray(flex)) {
27264 return {
27265 flex: flex
27266 };
27267 }
27268
27269 var attrs = ['flexGrow', 'flexShrink', 'flexBasis'];
27270 var flexs = {};
27271
27272 flex.forEach(function (val, index) {
27273 flexs[attrs[index]] = val;
27274 });
27275
27276 return flexs;
27277};
27278
27279var getGridGap = function getGridGap(gap) {
27280 if (!Array.isArray(gap)) {
27281 return {
27282 gap: gap
27283 };
27284 }
27285
27286 var attrs = ['rowGap', 'columnGap'];
27287 var gaps = {};
27288
27289 gap.forEach(function (val, index) {
27290 gaps[attrs[index]] = val;
27291 });
27292
27293 return gaps;
27294};
27295
27296var getTemplateCount = function getTemplateCount(counts) {
27297 if (!isNaN(counts) || typeof counts === 'string') {
27298 return 'repeat(' + counts + ', minmax(0,1fr))';
27299 }
27300
27301 return counts;
27302};
27303
27304// const outerProps = ['alignSelf', 'flexGrow', 'flexShrink', 'flexBasis', 'backgroundColor', 'boxShadow', 'borderRadius', 'borderWidth', 'borderStyle', 'borderColor', 'padding', 'paddingTop', 'paddingLeft', 'paddingRight', 'paddingBottom'];
27305
27306var helperProps = ['margin', 'marginTop', 'marginLeft', 'marginRight', 'marginBottom'];
27307
27308var innerProps = ['flexDirection', 'flexWrap',
27309// 'justifyContent',
27310'alignContent', 'alignItems', 'display'];
27311
27312var filterOuterStyle = function filterOuterStyle(style) {
27313 var props = {};
27314
27315 [].concat(innerProps).forEach(function (key) {
27316 props[key] = style[key];
27317 });
27318
27319 return (0, _util.filterUndefinedValue)((0, _util.stripObject)(style, props));
27320};
27321
27322var filterHelperStyle = function filterHelperStyle(style) {
27323 var props = {};
27324 helperProps.forEach(function (key) {
27325 props[key] = style[key];
27326 });
27327
27328 return (0, _util.filterUndefinedValue)((0, _extends3.default)({}, props, {
27329 overflow: 'hidden'
27330 }));
27331};
27332
27333var filterInnerStyle = function filterInnerStyle(style) {
27334 var props = {};
27335
27336 innerProps.forEach(function (key) {
27337 props[key] = style[key];
27338 });
27339
27340 return (0, _util.filterUndefinedValue)(props);
27341};
27342
27343var getGridChildProps = function getGridChildProps(props, device, gap) {
27344 var _props$row = props.row,
27345 row = _props$row === undefined ? 'initial' : _props$row,
27346 _props$col = props.col,
27347 col = _props$col === undefined ? 'initial' : _props$col,
27348 _props$rowSpan = props.rowSpan,
27349 rowSpan = _props$rowSpan === undefined ? 1 : _props$rowSpan,
27350 _props$colSpan = props.colSpan,
27351 colSpan = _props$colSpan === undefined ? 1 : _props$colSpan;
27352
27353 var totalSpan = 12;
27354 var newColSpan = (typeof colSpan === 'undefined' ? 'undefined' : (0, _typeof3.default)(colSpan)) === 'object' && 'desktop' in colSpan ? colSpan.desktop : colSpan;
27355
27356 ['tablet', 'phone'].forEach(function (deviceKey) {
27357 if (deviceKey === device) {
27358 if ((typeof colSpan === 'undefined' ? 'undefined' : (0, _typeof3.default)(colSpan)) === 'object' && device in colSpan) {
27359 newColSpan = colSpan[device];
27360 } else {
27361 switch (deviceKey) {
27362 case 'tablet':
27363 totalSpan = 8;
27364 newColSpan = colSpan > 5 ? 8 : colSpan > 2 ? 4 : 2;
27365 break;
27366 case 'phone':
27367 totalSpan = 4;
27368 newColSpan = colSpan > 2 ? 4 : 2;
27369 break;
27370 }
27371 }
27372 }
27373 });
27374
27375 var gapLeft = gap;
27376 if (Array.isArray(gap)) {
27377 gapLeft = gap[1];
27378 }
27379
27380 var ieChildFix = ieVersion && !(rowSpan === 1 && colSpan === 1) ? {
27381 display: 'inline-block',
27382 width: gapLeft ? 'calc(' + newColSpan / totalSpan * 100 + '% - ' + gapLeft + 'px)' : newColSpan / totalSpan * 100 + '%'
27383 } : {};
27384
27385 return (0, _util.filterUndefinedValue)((0, _extends3.default)({
27386 gridRowStart: row,
27387 gridRowEnd: 'span ' + rowSpan,
27388 gridColumnStart: col,
27389 gridColumnEnd: 'span ' + newColSpan
27390 }, ieChildFix));
27391};
27392
27393var getBoxChildProps = function getBoxChildProps(props) {
27394 var alignSelf = props.alignSelf,
27395 flex = props.flex;
27396
27397 return (0, _util.filterUndefinedValue)((0, _extends3.default)({
27398 alignSelf: alignSelf
27399 }, getFlexs(flex)));
27400};
27401
27402exports.default = function (_ref2) {
27403 var device = _ref2.device,
27404 display = _ref2.display,
27405 gap = _ref2.gap,
27406 direction = _ref2.direction,
27407 dense = _ref2.dense,
27408 rowSpan = _ref2.rowSpan,
27409 colSpan = _ref2.colSpan,
27410 row = _ref2.row,
27411 col = _ref2.col,
27412 rows = _ref2.rows,
27413 columns = _ref2.columns,
27414 justify = _ref2.justify,
27415 align = _ref2.align,
27416 alignSelf = _ref2.alignSelf,
27417 wrap = _ref2.wrap,
27418 flex = _ref2.flex,
27419 padding = _ref2.padding,
27420 margin = _ref2.margin;
27421
27422 var style = (0, _extends3.default)({}, getPadding(padding));
27423
27424 var deviceColumns = 'auto';
27425
27426 switch (device) {
27427 case 'phone':
27428 deviceColumns = 4;
27429 break;
27430 case 'tablet':
27431 deviceColumns = 8;
27432 break;
27433 case 'desktop':
27434 deviceColumns = 12;
27435 break;
27436 default:
27437 break;
27438 }
27439 var newColumns = !isNaN(columns) || typeof columns === 'string' ? columns : deviceColumns;
27440
27441 switch (display) {
27442 case 'grid':
27443 style = (0, _extends3.default)({}, getGridGap(gap), {
27444 gridTemplateRows: getTemplateCount(rows),
27445 gridTemplateColumns: getTemplateCount(newColumns),
27446 gridAutoFlow: '' + (direction || '') + (dense && ' dense')
27447 }, getGridChildProps({
27448 row: row,
27449 rowSpan: rowSpan,
27450 col: col,
27451 colSpan: colSpan
27452 // justifySelf,
27453 // alignSelf,
27454 }, device), style);
27455 break;
27456 case 'flex':
27457 style = (0, _extends3.default)({
27458 // parent
27459 msFlexDirection: direction,
27460 flexDirection: direction,
27461 msFlexWrap: wrap ? 'wrap' : 'none',
27462 flexWrap: wrap ? 'wrap' : 'nowrap',
27463 msFlexPack: justify,
27464 justifyContent: justify,
27465 msFlexAlign: align,
27466 alignItems: align
27467 }, getMargin(margin), getBoxChildProps({
27468 alignSelf: alignSelf,
27469 flex: flex
27470 }), style);
27471 break;
27472 default:
27473 break;
27474 }
27475
27476 // return prefix(style);
27477 return (0, _util.filterUndefinedValue)(style);
27478};
27479
27480exports.getMargin = getMargin;
27481exports.getChildMargin = getChildMargin;
27482exports.getSpacingMargin = getSpacingMargin;
27483exports.getSpacingHelperMargin = getSpacingHelperMargin;
27484exports.filterInnerStyle = filterInnerStyle;
27485exports.filterOuterStyle = filterOuterStyle;
27486exports.filterHelperStyle = filterHelperStyle;
27487exports.getGridChildProps = getGridChildProps;
27488
27489/***/ }),
27490/* 178 */
27491/***/ (function(module, exports, __webpack_require__) {
27492
27493"use strict";
27494
27495
27496exports.__esModule = true;
27497
27498var _extends2 = __webpack_require__(1);
27499
27500var _extends3 = _interopRequireDefault(_extends2);
27501
27502var _objectWithoutProperties2 = __webpack_require__(8);
27503
27504var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
27505
27506var _configProvider = __webpack_require__(9);
27507
27508var _configProvider2 = _interopRequireDefault(_configProvider);
27509
27510var _row = __webpack_require__(372);
27511
27512var _row2 = _interopRequireDefault(_row);
27513
27514var _col = __webpack_require__(373);
27515
27516var _col2 = _interopRequireDefault(_col);
27517
27518function _interopRequireDefault(obj) {
27519 return obj && obj.__esModule ? obj : { default: obj };
27520}
27521
27522var Grid = {
27523 Row: _configProvider2.default.config(_row2.default, {
27524 transform: /* istanbul ignore next */function transform(props, deprecated) {
27525 if ('type' in props) {
27526 deprecated('type', 'fixed | wrap | gutter', 'Row');
27527
27528 var _props = props,
27529 type = _props.type,
27530 others = (0, _objectWithoutProperties3.default)(_props, ['type']);
27531
27532 var types = Array.isArray(type) ? type : [type];
27533 var fixed = void 0;
27534 if (types.indexOf('fixed') > -1) {
27535 fixed = true;
27536 }
27537 var wrap = void 0;
27538 if (types.indexOf('wrap') > -1) {
27539 wrap = true;
27540 }
27541 props = (0, _extends3.default)({ fixed: fixed, wrap: wrap }, others);
27542 }
27543
27544 return props;
27545 }
27546 }),
27547 Col: _configProvider2.default.config(_col2.default)
27548};
27549
27550exports.default = Grid;
27551module.exports = exports['default'];
27552
27553/***/ }),
27554/* 179 */
27555/***/ (function(module, exports, __webpack_require__) {
27556
27557"use strict";
27558
27559
27560exports.__esModule = true;
27561
27562var _extends2 = __webpack_require__(1);
27563
27564var _extends3 = _interopRequireDefault(_extends2);
27565
27566var _objectWithoutProperties2 = __webpack_require__(8);
27567
27568var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
27569
27570var _classCallCheck2 = __webpack_require__(2);
27571
27572var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
27573
27574var _possibleConstructorReturn2 = __webpack_require__(3);
27575
27576var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
27577
27578var _inherits2 = __webpack_require__(4);
27579
27580var _inherits3 = _interopRequireDefault(_inherits2);
27581
27582var _class, _temp2;
27583
27584var _react = __webpack_require__(0);
27585
27586var _react2 = _interopRequireDefault(_react);
27587
27588var _propTypes = __webpack_require__(5);
27589
27590var _propTypes2 = _interopRequireDefault(_propTypes);
27591
27592var _classnames = __webpack_require__(7);
27593
27594var _classnames2 = _interopRequireDefault(_classnames);
27595
27596var _configProvider = __webpack_require__(9);
27597
27598var _configProvider2 = _interopRequireDefault(_configProvider);
27599
27600function _interopRequireDefault(obj) {
27601 return obj && obj.__esModule ? obj : { default: obj };
27602}
27603
27604/**
27605 * Form.Error
27606 * @description 自定义错误展示
27607 * @order 4
27608 */
27609var Error = (_temp2 = _class = function (_React$Component) {
27610 (0, _inherits3.default)(Error, _React$Component);
27611
27612 function Error() {
27613 var _temp, _this, _ret;
27614
27615 (0, _classCallCheck3.default)(this, Error);
27616
27617 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
27618 args[_key] = arguments[_key];
27619 }
27620
27621 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.itemRender = function (errors) {
27622 return errors.length ? errors : null;
27623 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
27624 }
27625
27626 Error.prototype.render = function render() {
27627 var _classNames;
27628
27629 var _props = this.props,
27630 children = _props.children,
27631 name = _props.name,
27632 prefix = _props.prefix,
27633 style = _props.style,
27634 className = _props.className,
27635 _field = _props.field,
27636 others = (0, _objectWithoutProperties3.default)(_props, ['children', 'name', 'prefix', 'style', 'className', 'field']);
27637
27638 if (children && typeof children !== 'function') {
27639 return _react2.default.createElement('div', { className: prefix + 'form-item-help' }, children);
27640 }
27641
27642 var field = this.context._formField || _field;
27643
27644 if (!field || !name) {
27645 return null;
27646 }
27647
27648 var isSingle = typeof name === 'string';
27649
27650 var names = isSingle ? [name] : name;
27651 var errorArr = [];
27652
27653 if (names.length) {
27654 var errors = field.getErrors(names);
27655 Object.keys(errors).forEach(function (key) {
27656 if (errors[key]) {
27657 errorArr.push(errors[key]);
27658 }
27659 });
27660 }
27661
27662 var result = null;
27663 if (typeof children === 'function') {
27664 result = children(errorArr, isSingle ? field.getState(name) : undefined);
27665 } else {
27666 result = this.itemRender(errorArr);
27667 }
27668
27669 if (!result) {
27670 return null;
27671 }
27672
27673 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'form-item-help'] = true, _classNames[className] = className, _classNames));
27674
27675 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: cls, style: style }), result);
27676 };
27677
27678 return Error;
27679}(_react2.default.Component), _class.propTypes = {
27680 /**
27681 * 表单名
27682 */
27683 name: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
27684 /**
27685 * 自定义 field (在 Form 内不需要设置)
27686 */
27687 field: _propTypes2.default.object,
27688 style: _propTypes2.default.object,
27689 className: _propTypes2.default.string,
27690 /**
27691 * 自定义错误渲染, 可以是 node 或者 function(errors, state)
27692 */
27693 children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]),
27694 prefix: _propTypes2.default.string
27695}, _class.defaultProps = {
27696 prefix: 'next-'
27697}, _class.contextTypes = {
27698 _formField: _propTypes2.default.object
27699}, _class._typeMark = 'form_error', _temp2);
27700Error.displayName = 'Error';
27701exports.default = _configProvider2.default.config(Error);
27702module.exports = exports['default'];
27703
27704/***/ }),
27705/* 180 */
27706/***/ (function(module, exports, __webpack_require__) {
27707
27708"use strict";
27709
27710
27711exports.__esModule = true;
27712
27713var _objectWithoutProperties2 = __webpack_require__(8);
27714
27715var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
27716
27717var _configProvider = __webpack_require__(9);
27718
27719var _configProvider2 = _interopRequireDefault(_configProvider);
27720
27721var _Search = __webpack_require__(403);
27722
27723var _Search2 = _interopRequireDefault(_Search);
27724
27725function _interopRequireDefault(obj) {
27726 return obj && obj.__esModule ? obj : { default: obj };
27727}
27728
27729exports.default = _configProvider2.default.config(_Search2.default, {
27730 transfrom: /* istanbul ignore next */function transfrom(props, deprecated) {
27731 var onInputFocus = props.onInputFocus,
27732 overlayVisible = props.overlayVisible,
27733 combox = props.combox,
27734 others = (0, _objectWithoutProperties3.default)(props, ['onInputFocus', 'overlayVisible', 'combox']);
27735
27736 var newprops = others;
27737
27738 if (onInputFocus) {
27739 deprecated('onInputFocus', 'onFocus', 'Search');
27740 newprops.onFocus = onInputFocus;
27741 }
27742 if ('overlayVisible' in props) {
27743 deprecated('overlayVisible', 'visible', 'Search');
27744 newprops.visible = overlayVisible;
27745 }
27746 if (combox) {
27747 deprecated('combox', 'popupContent', 'Search');
27748 newprops.popupContent = combox;
27749 }
27750
27751 return newprops;
27752 }
27753});
27754module.exports = exports['default'];
27755
27756/***/ }),
27757/* 181 */
27758/***/ (function(module, exports, __webpack_require__) {
27759
27760"use strict";
27761
27762
27763exports.__esModule = true;
27764exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = undefined;
27765
27766var _extends2 = __webpack_require__(1);
27767
27768var _extends3 = _interopRequireDefault(_extends2);
27769
27770var _reactDom = __webpack_require__(12);
27771
27772var _reactDom2 = _interopRequireDefault(_reactDom);
27773
27774function _interopRequireDefault(obj) {
27775 return obj && obj.__esModule ? obj : { default: obj };
27776}
27777
27778var checkSpecKeys = function checkSpecKeys(spec, keysArray) {
27779 return keysArray.reduce(function (value, key) {
27780 return value && spec.hasOwnProperty(key);
27781 }, true) ? null : console.error('Keys Missing', spec); /*eslint no-console:0*/
27782};
27783
27784var getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {
27785 checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth']);
27786
27787 var trackWidth = void 0;
27788 var trackHeight = void 0;
27789
27790 var trackChildren = spec.slideCount + 2 * spec.slidesToShow;
27791
27792 if (!spec.vertical) {
27793 if (spec.variableWidth) {
27794 trackWidth = (spec.slideCount + 2 * spec.slidesToShow) * spec.slideWidth;
27795 } else if (spec.centerMode) {
27796 trackWidth = (spec.slideCount + 2 * (spec.slidesToShow + 1)) * spec.slideWidth;
27797 } else {
27798 trackWidth = (spec.slideCount + 2 * spec.slidesToShow) * spec.slideWidth;
27799 }
27800 } else {
27801 trackHeight = trackChildren * spec.slideHeight;
27802 }
27803
27804 var style = {
27805 opacity: 1
27806 };
27807
27808 var transform = {
27809 WebkitTransform: !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)',
27810 transform: !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)',
27811 transition: '',
27812 WebkitTransition: '',
27813 msTransform: !spec.vertical ? 'translateX(' + spec.left + 'px)' : 'translateY(' + spec.left + 'px)'
27814 };
27815
27816 if (trackWidth) {
27817 style = (0, _extends3.default)({}, style, { width: trackWidth });
27818 }
27819
27820 if (trackHeight) {
27821 style = (0, _extends3.default)({}, style, { height: trackHeight });
27822 }
27823
27824 if (spec.animation !== 'fade') {
27825 style = (0, _extends3.default)({}, style, transform);
27826 }
27827
27828 return style;
27829};
27830
27831var getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {
27832 checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth', 'speed', 'cssEase']);
27833
27834 var style = getTrackCSS(spec);
27835 // useCSS is true by default so it can be undefined
27836 style.WebkitTransition = '-webkit-transform ' + spec.speed + 'ms ' + spec.cssEase;
27837 style.transition = 'transform ' + spec.speed + 'ms ' + spec.cssEase;
27838 return style;
27839};
27840
27841var getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {
27842 checkSpecKeys(spec, ['slideIndex', 'trackRef', 'infinite', 'centerMode', 'slideCount', 'slidesToShow', 'slidesToScroll', 'slideWidth', 'listWidth', 'variableWidth', 'slideHeight']);
27843
27844 var slideOffset = 0;
27845 var targetLeft = void 0;
27846 var targetSlide = void 0;
27847 var verticalOffset = 0;
27848
27849 if (spec.animation === 'fade') {
27850 return 0;
27851 }
27852
27853 if (spec.infinite) {
27854 if (spec.slideCount > spec.slidesToShow) {
27855 slideOffset = spec.slideWidth * spec.slidesToShow * -1;
27856 verticalOffset = spec.slideHeight * spec.slidesToShow * -1;
27857 }
27858 if (spec.slideCount % spec.slidesToScroll !== 0) {
27859 var condition = spec.slideIndex + spec.slidesToScroll > spec.slideCount && spec.slideCount > spec.slidesToShow;
27860
27861 if (spec.rtl) {
27862 var slideIndex = spec.slideIndex >= spec.slideCount ? spec.slideCount - spec.slideIndex : spec.slideIndex;
27863 condition = slideIndex + spec.slidesToScroll > spec.slideCount && spec.slideCount > spec.slidesToShow;
27864 }
27865 if (condition) {
27866 if (spec.slideIndex > spec.slideCount) {
27867 slideOffset = (spec.slidesToShow - (spec.slideIndex - spec.slideCount)) * spec.slideWidth * -1;
27868 verticalOffset = (spec.slidesToShow - (spec.slideIndex - spec.slideCount)) * spec.slideHeight * -1;
27869 } else {
27870 slideOffset = spec.slideCount % spec.slidesToScroll * spec.slideWidth * -1;
27871 verticalOffset = spec.slideCount % spec.slidesToScroll * spec.slideHeight * -1;
27872 }
27873 }
27874 }
27875 } else {
27876 /* eslint-disable no-lonely-if */
27877 if (spec.slideCount % spec.slidesToScroll !== 0) {
27878 if (spec.slideIndex + spec.slidesToScroll > spec.slideCount && spec.slideCount > spec.slidesToShow) {
27879 var slidesToOffset = spec.slidesToShow - spec.slideCount % spec.slidesToScroll;
27880 slideOffset = slidesToOffset * spec.slideWidth;
27881 }
27882 }
27883 }
27884
27885 if (spec.centerMode) {
27886 if (spec.infinite) {
27887 slideOffset += spec.slideWidth * Math.floor(spec.slidesToShow / 2);
27888 } else {
27889 slideOffset = spec.slideWidth * Math.floor(spec.slidesToShow / 2);
27890 }
27891 }
27892
27893 if (!spec.vertical) {
27894 targetLeft = spec.slideIndex * spec.slideWidth * -1 + slideOffset;
27895 } else {
27896 targetLeft = spec.slideIndex * spec.slideHeight * -1 + verticalOffset;
27897 }
27898
27899 if (spec.variableWidth === true) {
27900 var targetSlideIndex = void 0;
27901 if (spec.slideCount <= spec.slidesToShow || spec.infinite === false) {
27902 targetSlide = _reactDom2.default.findDOMNode(spec.trackRef).childNodes[spec.slideIndex];
27903 } else {
27904 targetSlideIndex = spec.slideIndex + spec.slidesToShow;
27905 targetSlide = _reactDom2.default.findDOMNode(spec.trackRef).childNodes[targetSlideIndex];
27906 }
27907 targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;
27908 if (spec.centerMode === true) {
27909 if (spec.infinite === false) {
27910 targetSlide = _reactDom2.default.findDOMNode(spec.trackRef).children[spec.slideIndex];
27911 } else {
27912 targetSlide = _reactDom2.default.findDOMNode(spec.trackRef).children[spec.slideIndex + spec.slidesToShow + 1];
27913 }
27914
27915 if (targetSlide) {
27916 targetLeft = targetSlide.offsetLeft * -1 + (spec.listWidth - targetSlide.offsetWidth) / 2;
27917 }
27918 }
27919 }
27920
27921 return targetLeft;
27922};
27923
27924/***/ }),
27925/* 182 */
27926/***/ (function(module, exports, __webpack_require__) {
27927
27928"use strict";
27929
27930
27931exports.__esModule = true;
27932exports.triggerEvents = undefined;
27933
27934var _typeof2 = __webpack_require__(14);
27935
27936var _typeof3 = _interopRequireDefault(_typeof2);
27937
27938exports.getOffsetWH = getOffsetWH;
27939exports.getOffsetLT = getOffsetLT;
27940exports.isTransformSupported = isTransformSupported;
27941exports.toArray = toArray;
27942exports.tabsArrayShallowEqual = tabsArrayShallowEqual;
27943
27944var _react = __webpack_require__(0);
27945
27946var _react2 = _interopRequireDefault(_react);
27947
27948function _interopRequireDefault(obj) {
27949 return obj && obj.__esModule ? obj : { default: obj };
27950}
27951
27952var triggerEvents = exports.triggerEvents = {
27953 CLICK: 'click',
27954 HOVER: 'hover'
27955};
27956
27957function getOffsetWH(node, tabPosition) {
27958 var prop = 'width';
27959 if (tabPosition === 'left' || tabPosition === 'right') {
27960 prop = 'height';
27961 }
27962 return node ? node.getBoundingClientRect()[prop] : 0;
27963}
27964
27965function getOffsetLT(node, tabPosition) {
27966 var prop = 'left';
27967 if (tabPosition === 'left' || tabPosition === 'right') {
27968 prop = 'top';
27969 }
27970 return node.getBoundingClientRect()[prop];
27971}
27972
27973function isTransformSupported(style) {
27974 return 'transform' in style || 'webkitTransform' in style || 'MozTransform' in style;
27975}
27976
27977function toArray(children) {
27978 var ret = [];
27979 _react2.default.Children.forEach(children, function (child, index) {
27980 if (_react2.default.isValidElement(child)) {
27981 ret.push(_react2.default.cloneElement(child, {
27982 key: child.key || index,
27983 title: child.props.title || child.props.tab
27984 }));
27985 }
27986 });
27987 return ret;
27988}
27989
27990/**
27991 * tab数组浅比较
27992 * @param {Array} arrA 更新后的数组
27993 * @param {Array} arrB 原数组
27994 * @return {Boolean} 数组浅比较是否相等
27995 * @example
27996 * arr.tabsArrayShallowEqual(['2','3','4'], ['2','5','4']); // false
27997 */
27998
27999function tabsArrayShallowEqual(arrA, arrB) {
28000 // 相同地址的返回true,不需要更新数据(更新数据的基础是props数据与当前获取的值不同)
28001 if (arrA === arrB) {
28002 return true;
28003 }
28004
28005 // 判断:调用的值/是否为数组/数组的长度
28006 if (!arrA || !arrB || (typeof arrA === 'undefined' ? 'undefined' : (0, _typeof3.default)(arrA)) + (typeof arrB === 'undefined' ? 'undefined' : (0, _typeof3.default)(arrB)) !== 'objectobject' || arrA.length !== arrB.length) {
28007 return false;
28008 }
28009
28010 // 判断tabs的key与title是否更改
28011 for (var i = 0; i < arrA.length; i++) {
28012 if (arrA[i].key !== arrB[i].key || arrA[i].props.title !== arrB[i].props.title) {
28013 return false;
28014 }
28015 }
28016 return true;
28017}
28018
28019/***/ }),
28020/* 183 */
28021/***/ (function(module, exports, __webpack_require__) {
28022
28023"use strict";
28024
28025
28026exports.__esModule = true;
28027exports.default = undefined;
28028
28029var _extends2 = __webpack_require__(1);
28030
28031var _extends3 = _interopRequireDefault(_extends2);
28032
28033var _objectWithoutProperties2 = __webpack_require__(8);
28034
28035var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
28036
28037var _classCallCheck2 = __webpack_require__(2);
28038
28039var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
28040
28041var _possibleConstructorReturn2 = __webpack_require__(3);
28042
28043var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
28044
28045var _inherits2 = __webpack_require__(4);
28046
28047var _inherits3 = _interopRequireDefault(_inherits2);
28048
28049var _class, _temp;
28050
28051var _react = __webpack_require__(0);
28052
28053var _react2 = _interopRequireDefault(_react);
28054
28055var _propTypes = __webpack_require__(5);
28056
28057var _propTypes2 = _interopRequireDefault(_propTypes);
28058
28059var _classnames2 = __webpack_require__(7);
28060
28061var _classnames3 = _interopRequireDefault(_classnames2);
28062
28063var _filter = __webpack_require__(184);
28064
28065var _filter2 = _interopRequireDefault(_filter);
28066
28067var _sort = __webpack_require__(185);
28068
28069var _sort2 = _interopRequireDefault(_sort);
28070
28071var _cell = __webpack_require__(65);
28072
28073var _cell2 = _interopRequireDefault(_cell);
28074
28075var _resize = __webpack_require__(429);
28076
28077var _resize2 = _interopRequireDefault(_resize);
28078
28079function _interopRequireDefault(obj) {
28080 return obj && obj.__esModule ? obj : { default: obj };
28081}
28082
28083var noop = function noop() {};
28084var Header = (_temp = _class = function (_React$Component) {
28085 (0, _inherits3.default)(Header, _React$Component);
28086
28087 function Header() {
28088 (0, _classCallCheck3.default)(this, Header);
28089
28090 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this));
28091
28092 _this.checkHasLock = function () {
28093 var columns = _this.props.columns;
28094
28095 var hasLock = false;
28096 for (var i = 0; i < columns.length; i++) {
28097 var cols = columns[i];
28098 for (var j = 0; j < cols.length; j++) {
28099 var col = cols[j];
28100 if (col.lock) {
28101 hasLock = true;
28102 break;
28103 }
28104 }
28105 if (hasLock) {
28106 break;
28107 }
28108 }
28109 _this.hasLock = hasLock;
28110 };
28111
28112 _this.getCellRef = function (i, j, cell) {
28113 _this.props.headerCellRef(i, j, cell);
28114
28115 var columns = _this.props.columns;
28116
28117 var columnProps = columns[i] && columns[i][j];
28118 if (columnProps && columnProps.ref && typeof columnProps.ref === 'function') {
28119 columnProps.ref(cell);
28120 }
28121 };
28122
28123 _this.getCellDomRef = function (i, j, cellDom) {
28124 var cellRefKey = _this.getCellDomRefKey(i, j);
28125 _this[cellRefKey] = cellDom;
28126 };
28127
28128 _this.getCellDomRefKey = function (i, j) {
28129 return 'header_cell_' + i + '_' + j;
28130 };
28131
28132 _this.onSort = function (dataIndex, order, sort) {
28133 _this.props.onSort(dataIndex, order, sort);
28134 };
28135
28136 _this.hasLock = false;
28137 return _this;
28138 }
28139
28140 Header.prototype.render = function render() {
28141 var _this2 = this;
28142
28143 /*eslint-disable no-unused-vars */
28144 var _props = this.props,
28145 prefix = _props.prefix,
28146 className = _props.className,
28147 children = _props.children,
28148 Tag = _props.component,
28149 colGroup = _props.colGroup,
28150 columns = _props.columns,
28151 locale = _props.locale,
28152 filterParams = _props.filterParams,
28153 onFilter = _props.onFilter,
28154 components = _props.components,
28155 affixRef = _props.affixRef,
28156 headerCellRef = _props.headerCellRef,
28157 onSort = _props.onSort,
28158 sort = _props.sort,
28159 sortIcons = _props.sortIcons,
28160 onResizeChange = _props.onResizeChange,
28161 pure = _props.pure,
28162 rtl = _props.rtl,
28163 tableWidth = _props.tableWidth,
28164 tableEl = _props.tableEl,
28165 resizeProxyDomRef = _props.resizeProxyDomRef,
28166 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']);
28167
28168 this.checkHasLock();
28169
28170 var _components$Cell = components.Cell,
28171 Cell = _components$Cell === undefined ? _cell2.default : _components$Cell,
28172 _components$Filter = components.Filter,
28173 Filter = _components$Filter === undefined ? _filter2.default : _components$Filter,
28174 _components$Sort = components.Sort,
28175 Sort = _components$Sort === undefined ? _sort2.default : _components$Sort,
28176 _components$Resize = components.Resize,
28177 Resize = _components$Resize === undefined ? _resize2.default : _components$Resize;
28178
28179 var rowSpan = columns.length;
28180
28181 var header = columns.map(function (cols, index) {
28182 var col = cols.map(function (col, j) {
28183 var _classnames;
28184
28185 var cellRefKey = _this2.getCellDomRefKey(index, j);
28186 /* eslint-disable no-unused-vars, prefer-const */
28187 var title = col.title,
28188 colSpan = col.colSpan,
28189 sortable = col.sortable,
28190 sortDirections = col.sortDirections,
28191 resizable = col.resizable,
28192 asyncResizable = col.asyncResizable,
28193 dataIndex = col.dataIndex,
28194 filters = col.filters,
28195 filterMode = col.filterMode,
28196 filterMenuProps = col.filterMenuProps,
28197 filterProps = col.filterProps,
28198 width = col.width,
28199 align = col.align,
28200 alignHeader = col.alignHeader,
28201 className = col.className,
28202 __normalized = col.__normalized,
28203 lock = col.lock,
28204 cellStyle = col.cellStyle,
28205 wordBreak = col.wordBreak,
28206 others = (0, _objectWithoutProperties3.default)(col, ['title', 'colSpan', 'sortable', 'sortDirections', 'resizable', 'asyncResizable', 'dataIndex', 'filters', 'filterMode', 'filterMenuProps', 'filterProps', 'width', 'align', 'alignHeader', 'className', '__normalized', 'lock', 'cellStyle', 'wordBreak']);
28207
28208 var order = sort ? sort[dataIndex] : '';
28209 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));
28210 var attrs = {},
28211 sortElement = void 0,
28212 filterElement = void 0,
28213 resizeElement = void 0;
28214
28215 attrs.colSpan = colSpan;
28216
28217 // column.group doesn't have sort resize filter
28218 if (!(col.children && col.children.length)) {
28219 if (sortable) {
28220 sortElement = _react2.default.createElement(Sort, {
28221 prefix: prefix,
28222 className: prefix + 'table-header-icon',
28223 dataIndex: dataIndex,
28224 onSort: _this2.onSort,
28225 sortDirections: sortDirections,
28226 sortIcons: sortIcons,
28227 sort: sort,
28228 rtl: rtl,
28229 locale: locale
28230 });
28231 }
28232 if (asyncResizable || resizable) {
28233 resizeElement = _react2.default.createElement(Resize, {
28234 asyncResizable: asyncResizable,
28235 hasLock: _this2.hasLock,
28236 col: col,
28237 tableEl: tableEl,
28238 prefix: prefix,
28239 rtl: rtl,
28240 dataIndex: dataIndex,
28241 resizeProxyDomRef: resizeProxyDomRef,
28242 cellDomRef: _this2[cellRefKey],
28243 onChange: onResizeChange
28244 });
28245 }
28246
28247 if (filters) {
28248 filterElement = filters.length ? _react2.default.createElement(Filter, {
28249 dataIndex: dataIndex,
28250 className: prefix + 'table-header-icon',
28251 filters: filters,
28252 prefix: prefix,
28253 locale: locale,
28254 rtl: rtl,
28255 filterParams: filterParams,
28256 filterMode: filterMode,
28257 filterMenuProps: filterMenuProps,
28258 filterProps: filterProps,
28259 onFilter: onFilter
28260 }) : null;
28261 }
28262 attrs.rowSpan = rowSpan - index;
28263 }
28264
28265 if (+attrs.colSpan === 0) {
28266 return null;
28267 }
28268
28269 return _react2.default.createElement(Cell, (0, _extends3.default)({}, others, attrs, {
28270 key: j,
28271 prefix: prefix,
28272 pure: pure,
28273 rtl: rtl,
28274 cell: title,
28275 component: 'th',
28276 align: alignHeader ? alignHeader : align,
28277 className: className,
28278 ref: _this2.getCellRef.bind(_this2, index, j),
28279 getCellDomRef: _this2.getCellDomRef.bind(_this2, index, j),
28280 type: 'header'
28281 }), sortElement, filterElement, resizeElement);
28282 });
28283 return _react2.default.createElement('tr', { key: index }, col);
28284 });
28285
28286 return _react2.default.createElement(Tag, (0, _extends3.default)({ className: className }, others), header, children);
28287 };
28288
28289 return Header;
28290}(_react2.default.Component), _class.propTypes = {
28291 children: _propTypes2.default.any,
28292 prefix: _propTypes2.default.string,
28293 pure: _propTypes2.default.bool,
28294 className: _propTypes2.default.string,
28295 component: _propTypes2.default.string,
28296 columns: _propTypes2.default.array,
28297 colGroup: _propTypes2.default.object,
28298 headerCellRef: _propTypes2.default.func,
28299 locale: _propTypes2.default.object,
28300 filterParams: _propTypes2.default.object,
28301 onFilter: _propTypes2.default.func,
28302 components: _propTypes2.default.object,
28303 sort: _propTypes2.default.object,
28304 sortIcons: _propTypes2.default.object,
28305 onSort: _propTypes2.default.func,
28306 onResizeChange: _propTypes2.default.func,
28307 tableWidth: _propTypes2.default.number,
28308 tableEl: _propTypes2.default.any
28309}, _class.defaultProps = {
28310 component: 'thead',
28311 columns: [],
28312 headerCellRef: noop,
28313 onFilter: noop,
28314 components: {},
28315 onSort: noop,
28316 onResizeChange: noop
28317}, _temp);
28318Header.displayName = 'Header';
28319exports.default = Header;
28320module.exports = exports['default'];
28321
28322/***/ }),
28323/* 184 */
28324/***/ (function(module, exports, __webpack_require__) {
28325
28326"use strict";
28327
28328
28329exports.__esModule = true;
28330
28331var _extends2 = __webpack_require__(1);
28332
28333var _extends3 = _interopRequireDefault(_extends2);
28334
28335var _objectWithoutProperties2 = __webpack_require__(8);
28336
28337var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
28338
28339var _classCallCheck2 = __webpack_require__(2);
28340
28341var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
28342
28343var _possibleConstructorReturn2 = __webpack_require__(3);
28344
28345var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
28346
28347var _inherits2 = __webpack_require__(4);
28348
28349var _inherits3 = _interopRequireDefault(_inherits2);
28350
28351var _class, _temp, _initialiseProps;
28352
28353var _react = __webpack_require__(0);
28354
28355var _react2 = _interopRequireDefault(_react);
28356
28357var _propTypes = __webpack_require__(5);
28358
28359var _propTypes2 = _interopRequireDefault(_propTypes);
28360
28361var _reactLifecyclesCompat = __webpack_require__(10);
28362
28363var _classnames4 = __webpack_require__(7);
28364
28365var _classnames5 = _interopRequireDefault(_classnames4);
28366
28367var _dropdown = __webpack_require__(48);
28368
28369var _dropdown2 = _interopRequireDefault(_dropdown);
28370
28371var _menu = __webpack_require__(16);
28372
28373var _menu2 = _interopRequireDefault(_menu);
28374
28375var _button = __webpack_require__(17);
28376
28377var _button2 = _interopRequireDefault(_button);
28378
28379var _icon = __webpack_require__(11);
28380
28381var _icon2 = _interopRequireDefault(_icon);
28382
28383var _util = __webpack_require__(6);
28384
28385function _interopRequireDefault(obj) {
28386 return obj && obj.__esModule ? obj : { default: obj };
28387}
28388
28389// 共享状态的组件需要变成非受控组件
28390var Filter = (_temp = _class = function (_React$Component) {
28391 (0, _inherits3.default)(Filter, _React$Component);
28392
28393 function Filter(props) {
28394 (0, _classCallCheck3.default)(this, Filter);
28395
28396 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
28397
28398 _initialiseProps.call(_this);
28399
28400 var filterParams = props.filterParams || {};
28401 var filterConfig = filterParams[props.dataIndex] || {};
28402 _this.state = {
28403 visible: filterConfig.visible || false,
28404 selectedKeys: filterConfig.selectedKeys || [],
28405 selectedKeysChangedByInner: true
28406 };
28407 _this._selectedKeys = [].concat(_this.state.selectedKeys);
28408 return _this;
28409 }
28410
28411 Filter.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
28412 var state = {};
28413 if (nextProps.hasOwnProperty('filterParams') && typeof nextProps.filterParams !== 'undefined') {
28414 var dataIndex = nextProps.dataIndex || this.props.dataIndex;
28415 var filterParams = nextProps.filterParams || {};
28416 var filterConfig = filterParams[dataIndex] || {};
28417 var selectedKeys = void 0;
28418 if (prevState.selectedKeysChangedByInner) {
28419 selectedKeys = prevState.selectedKeys || [];
28420 state.selectedKeysChangedByInner = false;
28421 } else {
28422 selectedKeys = filterConfig.selectedKeys || [];
28423 }
28424
28425 state.selectedKeys = selectedKeys;
28426 }
28427
28428 return state;
28429 };
28430
28431 Filter.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
28432 var selectedKeys = prevState.selectedKeys;
28433
28434 this._selectedKeys = [].concat(selectedKeys);
28435 };
28436
28437 Filter.prototype.render = function render() {
28438 var _classnames, _classnames2, _classnames3;
28439
28440 var _props = this.props,
28441 filters = _props.filters,
28442 prefix = _props.prefix,
28443 locale = _props.locale,
28444 className = _props.className,
28445 filterMode = _props.filterMode,
28446 filterMenuProps = _props.filterMenuProps,
28447 filterProps = _props.filterProps,
28448 rtl = _props.rtl;
28449
28450 var dropdownClassname = (0, _classnames5.default)(filterProps && filterProps.className, (_classnames = {}, _classnames[prefix + 'table-filter-menu'] = true, _classnames));
28451 var _state = this.state,
28452 visible = _state.visible,
28453 selectedKeys = _state.selectedKeys;
28454
28455 var _ref = filterMenuProps || {},
28456 subMenuSelectable = _ref.subMenuSelectable,
28457 others = (0, _objectWithoutProperties3.default)(_ref, ['subMenuSelectable']);
28458
28459 function renderMenuItem(item) {
28460 return _react2.default.createElement(_menu2.default.Item, { key: item.value }, item.label);
28461 }
28462
28463 function renderSubMenu(parent, children) {
28464 return _react2.default.createElement(_menu2.default.SubMenu, { label: parent.label, key: parent.value, selectable: subMenuSelectable }, renderMenuContent(children));
28465 }
28466
28467 function renderMenuContent(list) {
28468 return list.map(function (item) {
28469 if (item.children) {
28470 return renderSubMenu(item, item.children);
28471 } else {
28472 return renderMenuItem(item);
28473 }
28474 });
28475 }
28476
28477 var content = renderMenuContent(filters),
28478 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));
28479
28480 var cls = (0, _classnames5.default)((_classnames2 = {}, _classnames2[prefix + 'table-filter'] = true, _classnames2[className] = className, _classnames2));
28481
28482 var filterIconCls = (0, _classnames5.default)((_classnames3 = {}, _classnames3[prefix + 'table-filter-active'] = selectedKeys && selectedKeys.length > 0, _classnames3));
28483
28484 return _react2.default.createElement(_dropdown2.default, (0, _extends3.default)({
28485 trigger: _react2.default.createElement('span', {
28486 role: 'button',
28487 'aria-label': locale.filter,
28488 onKeyDown: this.filterKeydown,
28489 tabIndex: '0',
28490 className: cls
28491 }, _react2.default.createElement(_icon2.default, { type: 'filter', size: 'small', className: filterIconCls })),
28492 triggerType: 'click',
28493 visible: visible,
28494 autoFocus: true,
28495 rtl: rtl,
28496 needAdjust: false,
28497 onVisibleChange: this.onFilterVisible,
28498 className: dropdownClassname
28499 }, filterProps), _react2.default.createElement(_menu2.default, (0, _extends3.default)({
28500 footer: footer,
28501 rtl: rtl,
28502 selectedKeys: selectedKeys,
28503 selectMode: filterMode,
28504 onSelect: this.onFilterSelect
28505 }, others), content));
28506 };
28507
28508 return Filter;
28509}(_react2.default.Component), _class.propTypes = {
28510 dataIndex: _propTypes2.default.string,
28511 filters: _propTypes2.default.array,
28512 filterMode: _propTypes2.default.string,
28513 filterParams: _propTypes2.default.object,
28514 filterMenuProps: _propTypes2.default.object,
28515 filterProps: _propTypes2.default.object,
28516 locale: _propTypes2.default.object,
28517 onFilter: _propTypes2.default.func,
28518 prefix: _propTypes2.default.string,
28519 rtl: _propTypes2.default.bool
28520}, _class.defaultProps = {
28521 onFilter: function onFilter() {}
28522}, _initialiseProps = function _initialiseProps() {
28523 var _this2 = this;
28524
28525 this.filterKeydown = function (e) {
28526 e.preventDefault();
28527 e.stopPropagation();
28528
28529 if (e.keyCode === _util.KEYCODE.ENTER) {
28530 _this2.setState({
28531 visible: !_this2.state.visible
28532 });
28533 }
28534 };
28535
28536 this.onFilterVisible = function (visible) {
28537 _this2.setState({
28538 visible: visible
28539 });
28540
28541 if (!visible) {
28542 var selectedKeys = [].concat(_this2._selectedKeys);
28543
28544 _this2.setState({
28545 selectedKeysChangedByInner: true,
28546 selectedKeys: selectedKeys
28547 });
28548 }
28549 };
28550
28551 this.onFilterSelect = function (selectedKeys) {
28552 _this2.setState({
28553 visible: true,
28554 selectedKeysChangedByInner: true,
28555 selectedKeys: selectedKeys
28556 });
28557 };
28558
28559 this.onFilterConfirm = function () {
28560 var selectedKeys = _this2.state.selectedKeys;
28561 var filterParams = {},
28562 dataIndex = _this2.props.dataIndex;
28563
28564 filterParams[dataIndex] = {
28565 visible: false,
28566 selectedKeys: selectedKeys
28567 };
28568 _this2._selectedKeys = [].concat(selectedKeys);
28569 _this2.setState({
28570 visible: false,
28571 selectedKeysChangedByInner: true
28572 });
28573 // 兼容之前的格式
28574 _this2.props.onFilter(filterParams);
28575 };
28576
28577 this.onFilterClear = function () {
28578 var filterParams = {},
28579 dataIndex = _this2.props.dataIndex;
28580
28581 filterParams[dataIndex] = {
28582 visible: false,
28583 selectedKeys: []
28584 };
28585 _this2._selectedKeys = [];
28586 _this2.setState({
28587 selectedKeys: [],
28588 visible: false,
28589 selectedKeysChangedByInner: true
28590 });
28591 // 兼容之前的格式
28592 _this2.props.onFilter(filterParams);
28593 };
28594}, _temp);
28595Filter.displayName = 'Filter';
28596exports.default = (0, _reactLifecyclesCompat.polyfill)(Filter);
28597module.exports = exports['default'];
28598
28599/***/ }),
28600/* 185 */
28601/***/ (function(module, exports, __webpack_require__) {
28602
28603"use strict";
28604
28605
28606exports.__esModule = true;
28607exports.default = undefined;
28608
28609var _classCallCheck2 = __webpack_require__(2);
28610
28611var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
28612
28613var _possibleConstructorReturn2 = __webpack_require__(3);
28614
28615var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
28616
28617var _inherits2 = __webpack_require__(4);
28618
28619var _inherits3 = _interopRequireDefault(_inherits2);
28620
28621var _class, _temp2;
28622
28623var _react = __webpack_require__(0);
28624
28625var _react2 = _interopRequireDefault(_react);
28626
28627var _propTypes = __webpack_require__(5);
28628
28629var _propTypes2 = _interopRequireDefault(_propTypes);
28630
28631var _classnames2 = __webpack_require__(7);
28632
28633var _classnames3 = _interopRequireDefault(_classnames2);
28634
28635var _icon = __webpack_require__(11);
28636
28637var _icon2 = _interopRequireDefault(_icon);
28638
28639var _util = __webpack_require__(6);
28640
28641function _interopRequireDefault(obj) {
28642 return obj && obj.__esModule ? obj : { default: obj };
28643}
28644
28645/* eslint-disable react/prefer-stateless-function */
28646var Sort = (_temp2 = _class = function (_React$Component) {
28647 (0, _inherits3.default)(Sort, _React$Component);
28648
28649 function Sort() {
28650 var _temp, _this, _ret;
28651
28652 (0, _classCallCheck3.default)(this, Sort);
28653
28654 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
28655 args[_key] = arguments[_key];
28656 }
28657
28658 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function () {
28659 var _this$props = _this.props,
28660 sort = _this$props.sort,
28661 dataIndex = _this$props.dataIndex,
28662 sortDirections = _this$props.sortDirections;
28663
28664 var nextSortType = '';
28665
28666 sortDirections.forEach(function (dir, i) {
28667 if (sort[dataIndex] === dir) {
28668 nextSortType = sortDirections.length - 1 > i ? sortDirections[i + 1] : sortDirections[0];
28669 }
28670 });
28671
28672 if (!sort[dataIndex]) {
28673 nextSortType = sortDirections[0];
28674 }
28675
28676 _this.onSort(dataIndex, nextSortType);
28677 }, _this.keydownHandler = function (e) {
28678 e.preventDefault();
28679 e.stopPropagation();
28680
28681 if (e.keyCode === _util.KEYCODE.ENTER) {
28682 _this.handleClick();
28683 }
28684 }, _this.onSort = function (dataIndex, order) {
28685 var sort = {};
28686 sort[dataIndex] = order;
28687
28688 _this.props.onSort(dataIndex, order, sort);
28689 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
28690 }
28691
28692 // 渲染排序
28693 Sort.prototype.renderSort = function renderSort() {
28694 var _classnames;
28695
28696 var _props = this.props,
28697 prefix = _props.prefix,
28698 sort = _props.sort,
28699 sortIcons = _props.sortIcons,
28700 className = _props.className,
28701 dataIndex = _props.dataIndex,
28702 locale = _props.locale,
28703 sortDirections = _props.sortDirections,
28704 rtl = _props.rtl,
28705 sortStatus = sort[dataIndex],
28706 map = {
28707 desc: 'descending',
28708 asc: 'ascending'
28709 };
28710
28711 var icons = sortDirections.map(function (sortOrder) {
28712 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' }));
28713 });
28714
28715 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-sort'] = true, _classnames[className] = className, _classnames));
28716
28717 return _react2.default.createElement('span', {
28718 role: 'button',
28719 tabIndex: '0',
28720 'aria-label': locale[sortStatus],
28721 className: cls,
28722 onClick: this.handleClick.bind(this),
28723 onKeyDown: this.keydownHandler
28724 }, icons);
28725 };
28726
28727 Sort.prototype.render = function render() {
28728 return this.renderSort();
28729 };
28730
28731 return Sort;
28732}(_react2.default.Component), _class.propTypes = {
28733 prefix: _propTypes2.default.string,
28734 rtl: _propTypes2.default.bool,
28735 className: _propTypes2.default.string,
28736 sort: _propTypes2.default.object,
28737 sortIcons: _propTypes2.default.object,
28738 onSort: _propTypes2.default.func,
28739 sortDirections: _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['desc', 'asc', 'default'])),
28740 dataIndex: _propTypes2.default.string,
28741 locale: _propTypes2.default.object
28742}, _class.defaultProps = {
28743 sort: {},
28744 sortDirections: ['desc', 'asc']
28745}, _temp2);
28746Sort.displayName = 'Sort';
28747exports.default = Sort;
28748module.exports = exports['default'];
28749
28750/***/ }),
28751/* 186 */
28752/***/ (function(module, exports, __webpack_require__) {
28753
28754"use strict";
28755
28756
28757exports.__esModule = true;
28758exports.default = undefined;
28759
28760var _extends2 = __webpack_require__(1);
28761
28762var _extends3 = _interopRequireDefault(_extends2);
28763
28764var _classCallCheck2 = __webpack_require__(2);
28765
28766var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
28767
28768var _possibleConstructorReturn2 = __webpack_require__(3);
28769
28770var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
28771
28772var _inherits2 = __webpack_require__(4);
28773
28774var _inherits3 = _interopRequireDefault(_inherits2);
28775
28776var _class, _temp;
28777
28778var _react = __webpack_require__(0);
28779
28780var _react2 = _interopRequireDefault(_react);
28781
28782var _propTypes = __webpack_require__(5);
28783
28784var _propTypes2 = _interopRequireDefault(_propTypes);
28785
28786var _classnames2 = __webpack_require__(7);
28787
28788var _classnames3 = _interopRequireDefault(_classnames2);
28789
28790var _row = __webpack_require__(187);
28791
28792var _row2 = _interopRequireDefault(_row);
28793
28794function _interopRequireDefault(obj) {
28795 return obj && obj.__esModule ? obj : { default: obj };
28796}
28797
28798/* eslint-disable react/prefer-stateless-function */
28799var SelectionRow = (_temp = _class = function (_React$Component) {
28800 (0, _inherits3.default)(SelectionRow, _React$Component);
28801
28802 function SelectionRow() {
28803 (0, _classCallCheck3.default)(this, SelectionRow);
28804 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
28805 }
28806
28807 SelectionRow.prototype.render = function render() {
28808 var _classnames;
28809
28810 /* eslint-disable no-unused-vars*/
28811 var _props = this.props,
28812 className = _props.className,
28813 record = _props.record,
28814 primaryKey = _props.primaryKey;
28815 var selectedRowKeys = this.context.selectedRowKeys;
28816
28817 var cls = (0, _classnames3.default)((_classnames = {
28818 selected: selectedRowKeys.indexOf(record[primaryKey]) > -1
28819 }, _classnames[className] = className, _classnames));
28820 return _react2.default.createElement(_row2.default, (0, _extends3.default)({}, this.props, { className: cls }));
28821 };
28822
28823 return SelectionRow;
28824}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _row2.default.propTypes), _class.defaultProps = (0, _extends3.default)({}, _row2.default.defaultProps), _class.contextTypes = {
28825 selectedRowKeys: _propTypes2.default.array
28826}, _temp);
28827SelectionRow.displayName = 'SelectionRow';
28828exports.default = SelectionRow;
28829module.exports = exports['default'];
28830
28831/***/ }),
28832/* 187 */
28833/***/ (function(module, exports, __webpack_require__) {
28834
28835"use strict";
28836
28837
28838exports.__esModule = true;
28839exports.default = undefined;
28840
28841var _extends2 = __webpack_require__(1);
28842
28843var _extends3 = _interopRequireDefault(_extends2);
28844
28845var _objectWithoutProperties2 = __webpack_require__(8);
28846
28847var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
28848
28849var _classCallCheck2 = __webpack_require__(2);
28850
28851var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
28852
28853var _possibleConstructorReturn2 = __webpack_require__(3);
28854
28855var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
28856
28857var _inherits2 = __webpack_require__(4);
28858
28859var _inherits3 = _interopRequireDefault(_inherits2);
28860
28861var _class, _temp2;
28862
28863var _react = __webpack_require__(0);
28864
28865var _react2 = _interopRequireDefault(_react);
28866
28867var _propTypes = __webpack_require__(5);
28868
28869var _propTypes2 = _interopRequireDefault(_propTypes);
28870
28871var _util = __webpack_require__(6);
28872
28873var _row = __webpack_require__(104);
28874
28875var _row2 = _interopRequireDefault(_row);
28876
28877function _interopRequireDefault(obj) {
28878 return obj && obj.__esModule ? obj : { default: obj };
28879}
28880
28881var ExpandedRow = (_temp2 = _class = function (_React$Component) {
28882 (0, _inherits3.default)(ExpandedRow, _React$Component);
28883
28884 function ExpandedRow() {
28885 var _temp, _this, _ret;
28886
28887 (0, _classCallCheck3.default)(this, ExpandedRow);
28888
28889 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
28890 args[_key] = arguments[_key];
28891 }
28892
28893 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.getExpandedRow = function (parentKey, ref) {
28894 var getExpandedRowRef = _this.context.getExpandedRowRef;
28895
28896 getExpandedRowRef && getExpandedRowRef(parentKey, ref);
28897 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
28898 }
28899
28900 ExpandedRow.prototype.renderExpandedRow = function renderExpandedRow(record, rowIndex) {
28901 var _context = this.context,
28902 expandedRowRender = _context.expandedRowRender,
28903 expandedRowIndent = _context.expandedRowIndent,
28904 openRowKeys = _context.openRowKeys,
28905 lockType = _context.lockType,
28906 expandedIndexSimulate = _context.expandedIndexSimulate,
28907 expandedRowWidthEquals2Table = _context.expandedRowWidthEquals2Table;
28908
28909 var expandedIndex = expandedIndexSimulate ? (rowIndex - 1) / 2 : rowIndex;
28910
28911 var _props = this.props,
28912 columns = _props.columns,
28913 cellRef = _props.cellRef;
28914
28915 var colSpan = columns.length;
28916 var expandedCols = columns[0] && columns[0].__colIndex || 0;
28917
28918 if (expandedRowRender) {
28919 var _props2 = this.props,
28920 primaryKey = _props2.primaryKey,
28921 prefix = _props2.prefix,
28922 leftIndent = expandedRowIndent[0],
28923 rightIndent = expandedRowIndent[1],
28924 totalIndent = leftIndent + rightIndent,
28925 renderCols = function renderCols(number) {
28926 var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
28927
28928 var ret = [];
28929
28930 var _loop = function _loop(i) {
28931 ret.push(_react2.default.createElement('td', { key: i, ref: function ref(cell) {
28932 return cellRef(rowIndex, i + start, cell);
28933 } }, '\xA0'));
28934 };
28935
28936 for (var i = 0; i < number; i++) {
28937 _loop(i);
28938 }
28939 return ret;
28940 };
28941
28942 var content = void 0;
28943
28944 if (totalIndent > colSpan && !lockType) {
28945 _util.log.warning("It's not allowed expandedRowIndent is more than the number of columns.");
28946 }
28947 if (leftIndent < columns.length && lockType === 'left') {
28948 _util.log.warning('expandedRowIndent left is less than the number of left lock columns.');
28949 }
28950 if (rightIndent < columns.length && lockType === 'right') {
28951 _util.log.warning('expandedRowIndent right is less than the number of right lock columns.');
28952 }
28953 if (lockType) {
28954 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) {
28955 return cellRef(rowIndex, expandedCols, cell);
28956 } }, '\xA0')) : null;
28957 }
28958
28959 var expandedRowStyle = {
28960 position: 'sticky',
28961 left: 0
28962 };
28963 // 暴露给用户的index
28964 content = expandedRowRender(record, expandedIndex);
28965 if (!_react2.default.isValidElement(content)) {
28966 content = _react2.default.createElement('div', {
28967 className: prefix + 'table-cell-wrapper',
28968 ref: this.getExpandedRow.bind(this, record[primaryKey]),
28969 style: expandedRowWidthEquals2Table && expandedRowStyle
28970 }, content);
28971 } else {
28972 content = expandedRowWidthEquals2Table ? _react2.default.createElement('div', {
28973 className: prefix + 'table-expanded-area',
28974 ref: this.getExpandedRow.bind(this, record[primaryKey]),
28975 style: expandedRowStyle
28976 }, content) : content;
28977 }
28978
28979 var rightStart = columns.length;
28980 columns.forEach(function (col) {
28981 col.lock === 'right' && rightStart--;
28982 });
28983 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;
28984 } else {
28985 return null;
28986 }
28987 };
28988
28989 ExpandedRow.prototype.render = function render() {
28990 /* eslint-disable no-unused-vars*/
28991 var _props3 = this.props,
28992 record = _props3.record,
28993 rowIndex = _props3.rowIndex,
28994 columns = _props3.columns,
28995 others = (0, _objectWithoutProperties3.default)(_props3, ['record', 'rowIndex', 'columns']);
28996 var expandedIndexSimulate = this.context.expandedIndexSimulate;
28997
28998 if (record.__expanded) {
28999 return this.renderExpandedRow(record, rowIndex, columns);
29000 }
29001
29002 var newRowIndex = expandedIndexSimulate ? rowIndex / 2 : rowIndex;
29003 return _react2.default.createElement(_row2.default, (0, _extends3.default)({}, others, { record: record, columns: columns, __rowIndex: rowIndex, rowIndex: newRowIndex }));
29004 };
29005
29006 return ExpandedRow;
29007}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _row2.default.propTypes), _class.defaultProps = (0, _extends3.default)({}, _row2.default.defaultProps), _class.contextTypes = {
29008 openRowKeys: _propTypes2.default.array,
29009 expandedRowRender: _propTypes2.default.func,
29010 expandedRowIndent: _propTypes2.default.array,
29011 expandedIndexSimulate: _propTypes2.default.bool,
29012 expandedRowWidthEquals2Table: _propTypes2.default.bool,
29013 lockType: _propTypes2.default.oneOf(['left', 'right']),
29014 getExpandedRowRef: _propTypes2.default.func
29015}, _temp2);
29016ExpandedRow.displayName = 'ExpandedRow';
29017exports.default = ExpandedRow;
29018module.exports = exports['default'];
29019
29020/***/ }),
29021/* 188 */
29022/***/ (function(module, exports, __webpack_require__) {
29023
29024"use strict";
29025
29026
29027exports.__esModule = true;
29028exports.default = undefined;
29029
29030var _extends2 = __webpack_require__(1);
29031
29032var _extends3 = _interopRequireDefault(_extends2);
29033
29034var _objectWithoutProperties2 = __webpack_require__(8);
29035
29036var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
29037
29038var _classCallCheck2 = __webpack_require__(2);
29039
29040var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29041
29042var _possibleConstructorReturn2 = __webpack_require__(3);
29043
29044var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29045
29046var _inherits2 = __webpack_require__(4);
29047
29048var _inherits3 = _interopRequireDefault(_inherits2);
29049
29050var _class, _temp2;
29051
29052var _react = __webpack_require__(0);
29053
29054var _react2 = _interopRequireDefault(_react);
29055
29056var _reactDom = __webpack_require__(12);
29057
29058var _propTypes = __webpack_require__(5);
29059
29060var _propTypes2 = _interopRequireDefault(_propTypes);
29061
29062var _body = __webpack_require__(63);
29063
29064var _body2 = _interopRequireDefault(_body);
29065
29066function _interopRequireDefault(obj) {
29067 return obj && obj.__esModule ? obj : { default: obj };
29068}
29069
29070/* eslint-disable react/prefer-stateless-function */
29071var FixedBody = (_temp2 = _class = function (_React$Component) {
29072 (0, _inherits3.default)(FixedBody, _React$Component);
29073
29074 function FixedBody() {
29075 var _temp, _this, _ret;
29076
29077 (0, _classCallCheck3.default)(this, FixedBody);
29078
29079 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
29080 args[_key] = arguments[_key];
29081 }
29082
29083 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onBodyScroll = function (event) {
29084 var onFixedScrollSync = _this.context.onFixedScrollSync;
29085 // sync scroll left to header
29086
29087 onFixedScrollSync && onFixedScrollSync(event);
29088
29089 // sync scroll top/left to lock columns
29090 if ('onLockScroll' in _this.props && typeof _this.props.onLockScroll === 'function') {
29091 _this.props.onLockScroll(event);
29092 }
29093 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
29094 }
29095
29096 FixedBody.prototype.componentDidMount = function componentDidMount() {
29097 var getNode = this.context.getNode;
29098
29099 getNode && getNode('body', (0, _reactDom.findDOMNode)(this));
29100 };
29101
29102 FixedBody.prototype.render = function render() {
29103 /*eslint-disable no-unused-vars */
29104 var _props = this.props,
29105 className = _props.className,
29106 colGroup = _props.colGroup,
29107 onLockScroll = _props.onLockScroll,
29108 tableWidth = _props.tableWidth,
29109 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'colGroup', 'onLockScroll', 'tableWidth']);
29110 var _context = this.context,
29111 maxBodyHeight = _context.maxBodyHeight,
29112 fixedHeader = _context.fixedHeader;
29113
29114 var style = {};
29115 if (fixedHeader) {
29116 style.maxHeight = maxBodyHeight;
29117 style.position = 'relative';
29118 }
29119 return _react2.default.createElement('div', {
29120 style: style,
29121 className: className,
29122 onScroll: this.onBodyScroll
29123 }, _react2.default.createElement('table', { style: { width: tableWidth } }, colGroup, _react2.default.createElement(_body2.default, (0, _extends3.default)({}, others, { colGroup: colGroup }))));
29124 };
29125
29126 return FixedBody;
29127}(_react2.default.Component), _class.propTypes = {
29128 children: _propTypes2.default.any,
29129 prefix: _propTypes2.default.string,
29130 className: _propTypes2.default.string,
29131 colGroup: _propTypes2.default.any,
29132 onLockScroll: _propTypes2.default.func,
29133 tableWidth: _propTypes2.default.number
29134}, _class.contextTypes = {
29135 fixedHeader: _propTypes2.default.bool,
29136 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
29137 onFixedScrollSync: _propTypes2.default.func,
29138 getNode: _propTypes2.default.func
29139}, _temp2);
29140FixedBody.displayName = 'FixedBody';
29141exports.default = FixedBody;
29142module.exports = exports['default'];
29143
29144/***/ }),
29145/* 189 */
29146/***/ (function(module, exports, __webpack_require__) {
29147
29148"use strict";
29149
29150
29151exports.__esModule = true;
29152exports.default = undefined;
29153
29154var _extends2 = __webpack_require__(1);
29155
29156var _extends3 = _interopRequireDefault(_extends2);
29157
29158var _classCallCheck2 = __webpack_require__(2);
29159
29160var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29161
29162var _possibleConstructorReturn2 = __webpack_require__(3);
29163
29164var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29165
29166var _inherits2 = __webpack_require__(4);
29167
29168var _inherits3 = _interopRequireDefault(_inherits2);
29169
29170var _class, _temp2;
29171
29172var _react = __webpack_require__(0);
29173
29174var _react2 = _interopRequireDefault(_react);
29175
29176var _reactDom = __webpack_require__(12);
29177
29178var _propTypes = __webpack_require__(5);
29179
29180var _propTypes2 = _interopRequireDefault(_propTypes);
29181
29182var _body = __webpack_require__(188);
29183
29184var _body2 = _interopRequireDefault(_body);
29185
29186function _interopRequireDefault(obj) {
29187 return obj && obj.__esModule ? obj : { default: obj };
29188}
29189
29190/* eslint-disable react/prefer-stateless-function */
29191var LockBody = (_temp2 = _class = function (_React$Component) {
29192 (0, _inherits3.default)(LockBody, _React$Component);
29193
29194 function LockBody() {
29195 var _temp, _this, _ret;
29196
29197 (0, _classCallCheck3.default)(this, LockBody);
29198
29199 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
29200 args[_key] = arguments[_key];
29201 }
29202
29203 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onBodyScroll = function (event) {
29204 _this.context.onLockBodyScroll(event);
29205 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
29206 }
29207
29208 LockBody.prototype.componentDidMount = function componentDidMount() {
29209 this.context.getLockNode('body', (0, _reactDom.findDOMNode)(this), this.context.lockType);
29210 };
29211
29212 LockBody.prototype.render = function render() {
29213 var event = {
29214 onLockScroll: this.onBodyScroll
29215 };
29216 return _react2.default.createElement(_body2.default, (0, _extends3.default)({}, this.props, event));
29217 };
29218
29219 return LockBody;
29220}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _body2.default.propTypes), _class.contextTypes = (0, _extends3.default)({}, _body2.default.contextTypes, {
29221 getLockNode: _propTypes2.default.func,
29222 onLockBodyScroll: _propTypes2.default.func,
29223 lockType: _propTypes2.default.oneOf(['left', 'right'])
29224}), _temp2);
29225LockBody.displayName = 'LockBody';
29226exports.default = LockBody;
29227module.exports = exports['default'];
29228
29229/***/ }),
29230/* 190 */
29231/***/ (function(module, exports, __webpack_require__) {
29232
29233"use strict";
29234
29235
29236exports.__esModule = true;
29237exports.default = undefined;
29238
29239var _extends2 = __webpack_require__(1);
29240
29241var _extends3 = _interopRequireDefault(_extends2);
29242
29243var _classCallCheck2 = __webpack_require__(2);
29244
29245var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29246
29247var _possibleConstructorReturn2 = __webpack_require__(3);
29248
29249var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29250
29251var _inherits2 = __webpack_require__(4);
29252
29253var _inherits3 = _interopRequireDefault(_inherits2);
29254
29255var _class, _temp;
29256
29257var _reactDom = __webpack_require__(12);
29258
29259var _propTypes = __webpack_require__(5);
29260
29261var _propTypes2 = _interopRequireDefault(_propTypes);
29262
29263var _header = __webpack_require__(66);
29264
29265var _header2 = _interopRequireDefault(_header);
29266
29267function _interopRequireDefault(obj) {
29268 return obj && obj.__esModule ? obj : { default: obj };
29269}
29270
29271var LockHeader = (_temp = _class = function (_FixedHeader) {
29272 (0, _inherits3.default)(LockHeader, _FixedHeader);
29273
29274 function LockHeader() {
29275 (0, _classCallCheck3.default)(this, LockHeader);
29276 return (0, _possibleConstructorReturn3.default)(this, _FixedHeader.apply(this, arguments));
29277 }
29278
29279 LockHeader.prototype.componentDidMount = function componentDidMount() {
29280 var _context = this.context,
29281 getNode = _context.getNode,
29282 getLockNode = _context.getLockNode;
29283
29284 getNode && getNode('header', (0, _reactDom.findDOMNode)(this), this.context.lockType);
29285 getLockNode && getLockNode('header', (0, _reactDom.findDOMNode)(this), this.context.lockType);
29286 };
29287
29288 return LockHeader;
29289}(_header2.default), _class.propTypes = (0, _extends3.default)({}, _header2.default.propTypes), _class.contextTypes = (0, _extends3.default)({}, _header2.default.contextTypes, {
29290 getLockNode: _propTypes2.default.func,
29291 lockType: _propTypes2.default.oneOf(['left', 'right'])
29292}), _temp);
29293exports.default = LockHeader;
29294module.exports = exports['default'];
29295
29296/***/ }),
29297/* 191 */
29298/***/ (function(module, exports, __webpack_require__) {
29299
29300"use strict";
29301
29302
29303exports.__esModule = true;
29304exports.default = undefined;
29305
29306var _classCallCheck2 = __webpack_require__(2);
29307
29308var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29309
29310var _possibleConstructorReturn2 = __webpack_require__(3);
29311
29312var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29313
29314var _inherits2 = __webpack_require__(4);
29315
29316var _inherits3 = _interopRequireDefault(_inherits2);
29317
29318var _class, _temp;
29319
29320var _react = __webpack_require__(0);
29321
29322var _react2 = _interopRequireDefault(_react);
29323
29324var _propTypes = __webpack_require__(5);
29325
29326var _propTypes2 = _interopRequireDefault(_propTypes);
29327
29328function _interopRequireDefault(obj) {
29329 return obj && obj.__esModule ? obj : { default: obj };
29330}
29331
29332/**
29333 * Table.GroupHeader
29334 * @order 2
29335 **/
29336var ListHeader = (_temp = _class = function (_React$Component) {
29337 (0, _inherits3.default)(ListHeader, _React$Component);
29338
29339 function ListHeader() {
29340 (0, _classCallCheck3.default)(this, ListHeader);
29341 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
29342 }
29343
29344 ListHeader.prototype.render = function render() {
29345 return null;
29346 };
29347
29348 return ListHeader;
29349}(_react2.default.Component), _class.propTypes = {
29350 /**
29351 * 行渲染的逻辑
29352 */
29353 cell: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func]),
29354 /**
29355 * 是否在Children上面渲染selection
29356 */
29357 hasChildrenSelection: _propTypes2.default.bool,
29358 /**
29359 * 是否在GroupHeader上面渲染selection
29360 */
29361 hasSelection: _propTypes2.default.bool,
29362 /**
29363 * 当 dataSouce 里没有 children 时,是否使用内容作为数据
29364 */
29365 useFirstLevelDataWhenNoChildren: _propTypes2.default.bool
29366}, _class.defaultProps = {
29367 cell: function cell() {
29368 return '';
29369 },
29370 hasSelection: true,
29371 hasChildrenSelection: false,
29372 useFirstLevelDataWhenNoChildren: false
29373}, _class._typeMark = 'listHeader', _temp);
29374ListHeader.displayName = 'ListHeader';
29375exports.default = ListHeader;
29376module.exports = exports['default'];
29377
29378/***/ }),
29379/* 192 */
29380/***/ (function(module, exports, __webpack_require__) {
29381
29382"use strict";
29383
29384
29385exports.__esModule = true;
29386exports.default = undefined;
29387
29388var _classCallCheck2 = __webpack_require__(2);
29389
29390var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29391
29392var _possibleConstructorReturn2 = __webpack_require__(3);
29393
29394var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29395
29396var _inherits2 = __webpack_require__(4);
29397
29398var _inherits3 = _interopRequireDefault(_inherits2);
29399
29400var _class, _temp;
29401
29402var _react = __webpack_require__(0);
29403
29404var _react2 = _interopRequireDefault(_react);
29405
29406var _propTypes = __webpack_require__(5);
29407
29408var _propTypes2 = _interopRequireDefault(_propTypes);
29409
29410function _interopRequireDefault(obj) {
29411 return obj && obj.__esModule ? obj : { default: obj };
29412}
29413
29414/* istanbul ignore file */
29415/**
29416 * Table.GroupFooter
29417 * @order 3
29418 **/
29419var ListFooter = (_temp = _class = function (_React$Component) {
29420 (0, _inherits3.default)(ListFooter, _React$Component);
29421
29422 function ListFooter() {
29423 (0, _classCallCheck3.default)(this, ListFooter);
29424 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
29425 }
29426
29427 ListFooter.prototype.render = function render() {
29428 return null;
29429 };
29430
29431 return ListFooter;
29432}(_react2.default.Component), _class.propTypes = {
29433 /**
29434 * 行渲染的逻辑
29435 */
29436 cell: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func])
29437}, _class.defaultProps = {
29438 cell: function cell() {
29439 return '';
29440 }
29441}, _class._typeMark = 'listFooter', _temp);
29442ListFooter.displayName = 'ListFooter';
29443exports.default = ListFooter;
29444module.exports = exports['default'];
29445
29446/***/ }),
29447/* 193 */
29448/***/ (function(module, exports, __webpack_require__) {
29449
29450"use strict";
29451
29452
29453exports.__esModule = true;
29454
29455var _configProvider = __webpack_require__(9);
29456
29457var _configProvider2 = _interopRequireDefault(_configProvider);
29458
29459var _tree = __webpack_require__(456);
29460
29461var _tree2 = _interopRequireDefault(_tree);
29462
29463var _treeNode = __webpack_require__(105);
29464
29465var _treeNode2 = _interopRequireDefault(_treeNode);
29466
29467function _interopRequireDefault(obj) {
29468 return obj && obj.__esModule ? obj : { default: obj };
29469}
29470
29471_tree2.default.Node = _treeNode2.default;
29472
29473exports.default = _configProvider2.default.config(_tree2.default, {
29474 exportNames: ['setFocusKey']
29475});
29476module.exports = exports['default'];
29477
29478/***/ }),
29479/* 194 */
29480/***/ (function(module, exports, __webpack_require__) {
29481
29482"use strict";
29483
29484
29485exports.__esModule = true;
29486
29487var _extends2 = __webpack_require__(1);
29488
29489var _extends3 = _interopRequireDefault(_extends2);
29490
29491var _objectWithoutProperties2 = __webpack_require__(8);
29492
29493var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
29494
29495exports.normalizeToArray = normalizeToArray;
29496exports.isNodeChecked = isNodeChecked;
29497exports.forEachEnableNode = forEachEnableNode;
29498exports.isNodeDisabledChecked = isNodeDisabledChecked;
29499exports.getCheckableParentNode = getCheckableParentNode;
29500exports.filterChildKey = filterChildKey;
29501exports.filterParentKey = filterParentKey;
29502exports.isDescendantOrSelf = isDescendantOrSelf;
29503exports.isSiblingOrSelf = isSiblingOrSelf;
29504exports.getAllCheckedKeys = getAllCheckedKeys;
29505exports.convertChildren2Data = convertChildren2Data;
29506exports.getAllDescendantKeys = getAllDescendantKeys;
29507
29508var _treeNode = __webpack_require__(105);
29509
29510var _treeNode2 = _interopRequireDefault(_treeNode);
29511
29512function _interopRequireDefault(obj) {
29513 return obj && obj.__esModule ? obj : { default: obj };
29514}
29515
29516/* eslint-disable valid-jsdoc */
29517function normalizeToArray(keys) {
29518 if (keys !== undefined && keys !== null) {
29519 if (Array.isArray(keys)) {
29520 return [].concat(keys);
29521 }
29522
29523 return [keys];
29524 }
29525
29526 return [];
29527}
29528
29529/**
29530 * 判断子节点是否是选中状态,如果 checkable={false} 则向下递归,
29531 * @param {Node} child
29532 * @param {Array} checkedKeys
29533 */
29534function isNodeChecked(node, checkedKeys) {
29535 if (node.disabled || node.checkboxDisabled) return true;
29536 /* istanbul ignore next */
29537 if (node.checkable === false) {
29538 return !node.children || node.children.length === 0 || node.children.every(function (c) {
29539 return isNodeChecked(c, checkedKeys);
29540 });
29541 }
29542 return checkedKeys.indexOf(node.key) > -1;
29543}
29544
29545/**
29546 * 遍历所有可用的子节点
29547 * @param {Node}
29548 * @param {Function} callback
29549 */
29550function forEachEnableNode(node) {
29551 var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
29552
29553 if (node.disabled || node.checkboxDisabled) return;
29554 // eslint-disable-next-line callback-return
29555 callback(node);
29556 if (node.children && node.children.length > 0) {
29557 node.children.forEach(function (child) {
29558 return forEachEnableNode(child, callback);
29559 });
29560 }
29561}
29562/**
29563 * 判断节点是否禁用checked
29564 * @param {Node} node
29565 * @returns {Boolean}
29566 */
29567function isNodeDisabledChecked(node) {
29568 if (node.disabled || node.checkboxDisabled) return true;
29569 /* istanbul ignore next */
29570 if (node.checkable === false) {
29571 return !node.children || node.children.length === 0 || node.children.every(isNodeDisabledChecked);
29572 }
29573
29574 return false;
29575}
29576
29577/**
29578 * 递归获取一个 checkable = {true} 的父节点,当 checkable={false} 时继续往上查找
29579 * @param {Node} node
29580 * @param {Map} _p2n
29581 * @return {Node}
29582 */
29583function getCheckableParentNode(node, _p2n) {
29584 var parentPos = node.pos.split(['-']);
29585 if (parentPos.length === 2) return node;
29586 parentPos.splice(parentPos.length - 1, 1);
29587 parentPos = parentPos.join('-');
29588 var parentNode = _p2n[parentPos];
29589 if (parentNode.disabled || parentNode.checkboxDisabled) return false;
29590 /* istanbul ignore next */
29591 if (parentNode.checkable === false) {
29592 return getCheckableParentNode(parentNode, _p2n);
29593 }
29594
29595 return parentNode;
29596}
29597/**
29598 * 过滤子节点
29599 * @param {Array} keys
29600 * @param {Object} _k2n
29601 */
29602function filterChildKey(keys, _k2n, _p2n) {
29603 var newKeys = [];
29604 keys.forEach(function (key) {
29605 var node = getCheckableParentNode(_k2n[key], _p2n);
29606 if (!node || node.checkable === false || node === _k2n[key] || keys.indexOf(node.key) === -1) {
29607 newKeys.push(key);
29608 }
29609 });
29610 return newKeys;
29611}
29612
29613function filterParentKey(keys, _k2n) {
29614 var newKeys = [];
29615
29616 for (var i = 0; i < keys.length; i++) {
29617 var node = _k2n[keys[i]];
29618 if (!node.children || node.children.length === 0 || node.children.every(isNodeDisabledChecked)) {
29619 newKeys.push(keys[i]);
29620 }
29621 }
29622
29623 return newKeys;
29624}
29625
29626function isDescendantOrSelf(currentPos, targetPos) {
29627 if (!currentPos || !targetPos) {
29628 return false;
29629 }
29630
29631 var currentNums = currentPos.split('-');
29632 var targetNums = targetPos.split('-');
29633
29634 return currentNums.length <= targetNums.length && currentNums.every(function (num, index) {
29635 return num === targetNums[index];
29636 });
29637}
29638
29639function isSiblingOrSelf(currentPos, targetPos) {
29640 var currentNums = currentPos.split('-').slice(0, -1);
29641 var targetNums = targetPos.split('-').slice(0, -1);
29642
29643 return currentNums.length === targetNums.length && currentNums.every(function (num, index) {
29644 return num === targetNums[index];
29645 });
29646}
29647
29648// eslint-disable-next-line max-statements
29649function getAllCheckedKeys(checkedKeys, _k2n, _p2n) {
29650 checkedKeys = normalizeToArray(checkedKeys);
29651 var filteredKeys = checkedKeys.filter(function (key) {
29652 return !!_k2n[key];
29653 });
29654 var flatKeys = [].concat(filterChildKey(filteredKeys, _k2n, _p2n).filter(function (key) {
29655 return !(_k2n[key].disabled || _k2n[key].checkboxDisabled);
29656 }), filteredKeys.filter(function (key) {
29657 return _k2n[key].disabled || _k2n[key].checkboxDisabled;
29658 }));
29659 var removeKey = function removeKey(child) {
29660 if (child.disabled || child.checkboxDisabled) return;
29661 if (child.checkable === false && child.children && child.children.length > 0) {
29662 return child.children.forEach(removeKey);
29663 }
29664 flatKeys.splice(flatKeys.indexOf(child.key), 1);
29665 };
29666
29667 var addParentKey = function addParentKey(i, parent) {
29668 return flatKeys.splice(i, 0, parent.key);
29669 };
29670
29671 // 所有 child nodes 选中时,取 parent node,删除所有 child nodes
29672 var keys = [].concat(flatKeys);
29673 for (var i = 0; i < keys.length; i++) {
29674 var pos = _k2n[keys[i]].pos;
29675 var nums = pos.split('-');
29676 if (nums.length === 2) {
29677 continue;
29678 }
29679 for (var j = nums.length - 2; j > 0; j--) {
29680 var parentPos = nums.slice(0, j + 1).join('-');
29681 var parent = _p2n[parentPos];
29682 if (parent.checkable === false || parent.disabled || parent.checkboxDisabled) continue;
29683 var parentChecked = parent.children.every(function (child) {
29684 return isNodeChecked(child, flatKeys);
29685 });
29686 if (parentChecked) {
29687 parent.children.forEach(removeKey);
29688 addParentKey(i, parent);
29689 } else {
29690 break;
29691 }
29692 }
29693 }
29694
29695 // 重新选中所有 child nodes
29696 var newKeys = new Set();
29697 flatKeys.forEach(function (key) {
29698 if (_k2n[key].disabled || _k2n[key].checkboxDisabled) {
29699 newKeys.add(key);
29700 return;
29701 }
29702 forEachEnableNode(_k2n[key], function (node) {
29703 if (node.checkable === false) return;
29704 newKeys.add(node.key);
29705 });
29706 });
29707
29708 return Array.from(newKeys);
29709}
29710
29711/**
29712 * Convert children of Tree into DataSource
29713 * @param {React.ReactNode} children
29714 * @return {Array}
29715 */
29716function convertChildren2Data(children) {
29717 function convert(treeNodes) {
29718 treeNodes = normalizeToArray(treeNodes);
29719
29720 return treeNodes.map(function (node) {
29721 if (node.type && node.type !== _treeNode2.default && node.type.target !== _treeNode2.default) {
29722 // 为了兼容之前的实现 保留非法节点
29723 return {
29724 illegalFlag: true,
29725 node: node
29726 };
29727 }
29728 var key = node.key,
29729 _node$props = node.props,
29730 children = _node$props.children,
29731 rest = (0, _objectWithoutProperties3.default)(_node$props, ['children']);
29732
29733 var nodeData = (0, _extends3.default)({ key: key }, rest);
29734
29735 if (children && !(Array.isArray(children) && !children.length)) {
29736 nodeData.children = convert(children);
29737 }
29738
29739 return nodeData;
29740 }).filter(function (treeNodeData) {
29741 return treeNodeData;
29742 });
29743 }
29744 return convert(children);
29745}
29746
29747/**
29748 * get all descendant`s keys of current node
29749 * @param {Object} nodeData
29750 * @param {Object} p2n
29751 * @return {Array}
29752 */
29753function getAllDescendantKeys(nodeData, p2n) {
29754 var posList = nodeData.pos.split('-');
29755 var keys = [];
29756 var pos = posList[0];
29757
29758 for (var i = 1; i < posList.length - 1; i++) {
29759 pos = [pos, posList[i]].join('-');
29760 keys.push(p2n[pos].key);
29761 }
29762
29763 return keys;
29764}
29765
29766/***/ }),
29767/* 195 */
29768/***/ (function(module, exports, __webpack_require__) {
29769
29770"use strict";
29771
29772
29773exports.__esModule = true;
29774
29775var _objectWithoutProperties2 = __webpack_require__(8);
29776
29777var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
29778
29779function _interopRequireDefault(obj) {
29780 return obj && obj.__esModule ? obj : { default: obj };
29781}
29782
29783// compatible with 0.x version
29784/* istanbul ignore next */
29785var transform = function transform(props, deprecated) {
29786 var listType = props.listType,
29787 defaultFileList = props.defaultFileList,
29788 fileList = props.fileList,
29789 others = (0, _objectWithoutProperties3.default)(props, ['listType', 'defaultFileList', 'fileList']);
29790
29791 var newprops = others;
29792
29793 if (listType === 'text-image') {
29794 deprecated('listType=text-image', 'listType=image', 'Upload');
29795 newprops.listType = 'image';
29796 } else if (listType === 'picture-card') {
29797 deprecated('listType=picture-card', 'listType=card', 'Upload');
29798 newprops.listType = 'card';
29799 } else {
29800 newprops.listType = listType;
29801 }
29802
29803 if ('defaultFileList' in props) {
29804 deprecated('defaultFileList', 'defaultValue', 'Upload');
29805 newprops.defaultValue = defaultFileList;
29806 }
29807
29808 if ('fileList' in props) {
29809 deprecated('fileList', 'value', 'Upload');
29810 newprops.value = fileList;
29811 }
29812
29813 return newprops;
29814};
29815
29816exports.default = transform;
29817module.exports = exports['default'];
29818
29819/***/ }),
29820/* 196 */
29821/***/ (function(module, exports, __webpack_require__) {
29822
29823"use strict";
29824
29825
29826exports.__esModule = true;
29827exports.default = undefined;
29828
29829var _classCallCheck2 = __webpack_require__(2);
29830
29831var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29832
29833var _possibleConstructorReturn2 = __webpack_require__(3);
29834
29835var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29836
29837var _inherits2 = __webpack_require__(4);
29838
29839var _inherits3 = _interopRequireDefault(_inherits2);
29840
29841var _react = __webpack_require__(0);
29842
29843function _interopRequireDefault(obj) {
29844 return obj && obj.__esModule ? obj : { default: obj };
29845}
29846
29847var Base = function (_Component) {
29848 (0, _inherits3.default)(Base, _Component);
29849
29850 function Base() {
29851 var _temp, _this, _ret;
29852
29853 (0, _classCallCheck3.default)(this, Base);
29854
29855 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
29856 args[_key] = arguments[_key];
29857 }
29858
29859 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.saveUploaderRef = function (ref) {
29860 /* istanbul ignore if */
29861 if (ref && typeof ref.getInstance === 'function') {
29862 _this.uploaderRef = ref.getInstance();
29863 } else {
29864 _this.uploaderRef = ref;
29865 }
29866 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
29867 }
29868
29869 /* istanbul ignore next */
29870 Base.prototype.abort = function abort(file) {
29871 /* istanbul ignore next */
29872 this.uploaderRef.abort(file);
29873 };
29874 /* istanbul ignore next */
29875
29876 Base.prototype.startUpload = function startUpload() {
29877 /* istanbul ignore next */
29878 this.uploaderRef.startUpload();
29879 };
29880
29881 /* istanbul ignore next */
29882 Base.prototype.isUploading = function isUploading() {
29883 /* istanbul ignore next */
29884 return this.uploaderRef.isUploading();
29885 };
29886
29887 return Base;
29888}(_react.Component);
29889
29890Base.displayName = 'Base';
29891exports.default = Base;
29892module.exports = exports['default'];
29893
29894/***/ }),
29895/* 197 */
29896/***/ (function(module, exports, __webpack_require__) {
29897
29898"use strict";
29899
29900
29901exports.__esModule = true;
29902exports.default = undefined;
29903
29904var _extends2 = __webpack_require__(1);
29905
29906var _extends3 = _interopRequireDefault(_extends2);
29907
29908var _objectWithoutProperties2 = __webpack_require__(8);
29909
29910var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
29911
29912var _classCallCheck2 = __webpack_require__(2);
29913
29914var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29915
29916var _possibleConstructorReturn2 = __webpack_require__(3);
29917
29918var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29919
29920var _inherits2 = __webpack_require__(4);
29921
29922var _inherits3 = _interopRequireDefault(_inherits2);
29923
29924var _class, _temp2;
29925
29926var _react = __webpack_require__(0);
29927
29928var _react2 = _interopRequireDefault(_react);
29929
29930var _propTypes = __webpack_require__(5);
29931
29932var _propTypes2 = _interopRequireDefault(_propTypes);
29933
29934var _util = __webpack_require__(6);
29935
29936var _uploader = __webpack_require__(198);
29937
29938var _uploader2 = _interopRequireDefault(_uploader);
29939
29940var _selecter = __webpack_require__(107);
29941
29942var _selecter2 = _interopRequireDefault(_selecter);
29943
29944function _interopRequireDefault(obj) {
29945 return obj && obj.__esModule ? obj : { default: obj };
29946}
29947
29948var Html5Uploader = (_temp2 = _class = function (_Component) {
29949 (0, _inherits3.default)(Html5Uploader, _Component);
29950
29951 function Html5Uploader() {
29952 var _temp, _this, _ret;
29953
29954 (0, _classCallCheck3.default)(this, Html5Uploader);
29955
29956 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
29957 args[_key] = arguments[_key];
29958 }
29959
29960 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.getUploadOptions = function (props) {
29961 return {
29962 action: props.action,
29963 name: props.name,
29964 timeout: props.timeout,
29965 method: props.method,
29966 beforeUpload: props.beforeUpload,
29967 onProgress: props.onProgress,
29968 onSuccess: props.onSuccess,
29969 onError: props.onError,
29970 withCredentials: props.withCredentials,
29971 headers: props.headers,
29972 data: props.data,
29973 request: props.request
29974 };
29975 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
29976 }
29977
29978 Html5Uploader.prototype.componentDidMount = function componentDidMount() {
29979 var props = this.props;
29980
29981 var options = this.getUploadOptions(props);
29982 this.uploader = new _uploader2.default(options);
29983 };
29984
29985 Html5Uploader.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
29986 var preOptions = this.getUploadOptions(prevProps);
29987 var options = this.getUploadOptions(this.props);
29988
29989 var keys = Object.keys(options);
29990
29991 for (var i = 0; i < keys.length; i++) {
29992 var key = keys[i];
29993 if (options[key] !== preOptions[key]) {
29994 this.uploader.setOptions(options);
29995 return;
29996 }
29997 }
29998 };
29999
30000 Html5Uploader.prototype.componentWillUnmount = function componentWillUnmount() {
30001 this.abort();
30002 };
30003
30004 Html5Uploader.prototype.abort = function abort(file) {
30005 this.uploader.abort(file);
30006 };
30007
30008 Html5Uploader.prototype.startUpload = function startUpload(fileList) {
30009 this.uploader.startUpload(fileList);
30010 };
30011
30012 Html5Uploader.prototype.render = function render() {
30013 var _props = this.props,
30014 accept = _props.accept,
30015 multiple = _props.multiple,
30016 webkitdirectory = _props.webkitdirectory,
30017 children = _props.children,
30018 id = _props.id,
30019 disabled = _props.disabled,
30020 dragable = _props.dragable,
30021 style = _props.style,
30022 className = _props.className,
30023 onSelect = _props.onSelect,
30024 onDragOver = _props.onDragOver,
30025 onDragLeave = _props.onDragLeave,
30026 onDrop = _props.onDrop,
30027 name = _props.name,
30028 others = (0, _objectWithoutProperties3.default)(_props, ['accept', 'multiple', 'webkitdirectory', 'children', 'id', 'disabled', 'dragable', 'style', 'className', 'onSelect', 'onDragOver', 'onDragLeave', 'onDrop', 'name']);
30029
30030 return _react2.default.createElement(_selecter2.default, (0, _extends3.default)({}, others, {
30031 id: id,
30032 accept: accept,
30033 multiple: multiple,
30034 webkitdirectory: webkitdirectory,
30035 dragable: dragable,
30036 disabled: disabled,
30037 className: className,
30038 style: style,
30039 onSelect: onSelect,
30040 onDragOver: onDragOver,
30041 onDragLeave: onDragLeave,
30042 onDrop: onDrop,
30043 name: name
30044 }), children);
30045 };
30046
30047 return Html5Uploader;
30048}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _selecter2.default.propTypes, {
30049 /**
30050 * 上传的地址
30051 */
30052 action: _propTypes2.default.string,
30053 /**
30054 * 接受上传的文件类型 (image/png, image/jpg, .doc, .ppt) 详见 [input accept attribute](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input#attr-accept)
30055 */
30056 accept: _propTypes2.default.string,
30057 /**
30058 * 上传额外传参
30059 */
30060 data: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]),
30061 /**
30062 * 设置上传的请求头部
30063 */
30064 headers: _propTypes2.default.object,
30065 /**
30066 * 是否允许请求携带 cookie
30067 */
30068 withCredentials: _propTypes2.default.bool,
30069 /**
30070 * 上传文件之前
30071 * @param {Object} file 文件对象
30072 * @return {Boolean} `false` 停止上传
30073 */
30074 beforeUpload: _propTypes2.default.func,
30075 /**
30076 * 正在上传文件的钩子,参数为上传的事件以及文件
30077 */
30078 onProgress: _propTypes2.default.func,
30079 /**
30080 * 上传成功回调函数,参数为请求下响应信息以及文件
30081 */
30082 onSuccess: _propTypes2.default.func,
30083 /**
30084 * 上传失败回调函数,参数为上传失败的信息、响应信息以及文件
30085 */
30086 onError: _propTypes2.default.func,
30087 children: _propTypes2.default.node,
30088 /**
30089 * 上传超时,单位ms
30090 */
30091 timeout: _propTypes2.default.number,
30092 /**
30093 * 上传方法
30094 */
30095 method: _propTypes2.default.oneOf(['post', 'put']),
30096 request: _propTypes2.default.func
30097}), _class.defaultProps = (0, _extends3.default)({}, _selecter2.default.defaultProps, {
30098 name: 'file',
30099 multiple: false,
30100 withCredentials: true,
30101 beforeUpload: _util.func.noop,
30102 onSelect: _util.func.noop,
30103 onDragOver: _util.func.noop,
30104 onDragLeave: _util.func.noop,
30105 onDrop: _util.func.noop,
30106 onProgress: _util.func.noop,
30107 onSuccess: _util.func.noop,
30108 onError: _util.func.noop,
30109 onAbort: _util.func.noop,
30110 method: 'post'
30111}), _temp2);
30112Html5Uploader.displayName = 'Html5Uploader';
30113exports.default = Html5Uploader;
30114module.exports = exports['default'];
30115
30116/***/ }),
30117/* 198 */
30118/***/ (function(module, exports, __webpack_require__) {
30119
30120"use strict";
30121
30122
30123exports.__esModule = true;
30124exports.default = undefined;
30125
30126var _extends2 = __webpack_require__(1);
30127
30128var _extends3 = _interopRequireDefault(_extends2);
30129
30130var _classCallCheck2 = __webpack_require__(2);
30131
30132var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
30133
30134var _util = __webpack_require__(6);
30135
30136var _util2 = __webpack_require__(42);
30137
30138var _request = __webpack_require__(467);
30139
30140var _request2 = _interopRequireDefault(_request);
30141
30142function _interopRequireDefault(obj) {
30143 return obj && obj.__esModule ? obj : { default: obj };
30144}
30145
30146var noop = _util.func.noop;
30147
30148var Uploader = function () {
30149 function Uploader(options) {
30150 (0, _classCallCheck3.default)(this, Uploader);
30151
30152 this.options = (0, _extends3.default)({
30153 beforeUpload: noop,
30154 onProgress: noop,
30155 onSuccess: noop,
30156 onError: noop,
30157 data: {},
30158 name: 'file',
30159 method: 'post'
30160 }, options);
30161 this.reqs = {};
30162 }
30163
30164 Uploader.prototype.setOptions = function setOptions(options) {
30165 (0, _extends3.default)(this.options, options);
30166 };
30167
30168 Uploader.prototype.startUpload = function startUpload(files) {
30169 var _this = this;
30170
30171 var filesArr = files.length ? Array.prototype.slice.call(files) : [files];
30172 filesArr.forEach(function (file) {
30173 file.uid = file.uid || (0, _util2.uid)();
30174 _this.upload(file);
30175 });
30176 };
30177
30178 Uploader.prototype.abort = function abort(file) {
30179 var reqs = this.reqs;
30180
30181 if (file) {
30182 var _uid = file;
30183 if (file && file.uid) {
30184 _uid = file.uid;
30185 }
30186 if (reqs[_uid]) {
30187 reqs[_uid].abort();
30188 delete reqs[_uid];
30189 }
30190 } else {
30191 Object.keys(reqs).forEach(function (uid) {
30192 if (reqs[uid] && reqs[uid].abort) {
30193 reqs[uid].abort();
30194 }
30195 delete reqs[uid];
30196 });
30197 }
30198 };
30199
30200 Uploader.prototype.upload = function upload(file) {
30201 var _this2 = this;
30202
30203 var _options = this.options,
30204 beforeUpload = _options.beforeUpload,
30205 action = _options.action,
30206 name = _options.name,
30207 headers = _options.headers,
30208 timeout = _options.timeout,
30209 withCredentials = _options.withCredentials,
30210 method = _options.method,
30211 data = _options.data;
30212
30213 var before = beforeUpload(file, {
30214 action: action,
30215 name: name,
30216 headers: headers,
30217 timeout: timeout,
30218 withCredentials: withCredentials,
30219 method: method,
30220 data: data
30221 });
30222
30223 _util.func.promiseCall(before, function (options) {
30224 if (options === false) {
30225 var err = new Error(_util2.errorCode.BEFOREUPLOAD_REJECT);
30226 err.code = _util2.errorCode.BEFOREUPLOAD_REJECT;
30227 return _this2.options.onError(err, null, file);
30228 }
30229 _this2.post(file, _util.obj.isPlainObject(options) ? options : undefined);
30230 }, function (error) {
30231 var err = void 0;
30232 if (error) {
30233 err = error;
30234 } else {
30235 err = new Error(_util2.errorCode.BEFOREUPLOAD_REJECT);
30236 err.code = _util2.errorCode.BEFOREUPLOAD_REJECT;
30237 }
30238 _this2.options.onError(err, null, file);
30239 });
30240 };
30241
30242 Uploader.prototype.post = function post(file) {
30243 var _this3 = this;
30244
30245 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
30246
30247 var requestOptions = (0, _extends3.default)({}, this.options, options);
30248 var action = requestOptions.action,
30249 name = requestOptions.name,
30250 headers = requestOptions.headers,
30251 timeout = requestOptions.timeout,
30252 withCredentials = requestOptions.withCredentials,
30253 _onProgress = requestOptions.onProgress,
30254 _onSuccess = requestOptions.onSuccess,
30255 _onError = requestOptions.onError,
30256 method = requestOptions.method;
30257
30258 var data = requestOptions.data;
30259 if (typeof data === 'function') {
30260 data = data(file);
30261 }
30262
30263 var uid = file.uid;
30264
30265 var request = typeof requestOptions.request === 'function' ? requestOptions.request : _request2.default;
30266 this.reqs[uid] = request({
30267 action: action,
30268 filename: name,
30269 file: file,
30270 data: data,
30271 timeout: timeout,
30272 headers: headers,
30273 withCredentials: withCredentials,
30274 method: method,
30275 onProgress: function onProgress(e) {
30276 _onProgress(e, file);
30277 },
30278 onSuccess: function onSuccess(ret) {
30279 delete _this3.reqs[uid];
30280 _onSuccess(ret, file);
30281 },
30282 onError: function onError(err, ret) {
30283 delete _this3.reqs[uid];
30284 _onError(err, ret, file);
30285 }
30286 });
30287 };
30288
30289 return Uploader;
30290}();
30291
30292exports.default = Uploader;
30293module.exports = exports['default'];
30294
30295/***/ }),
30296/* 199 */
30297/***/ (function(module, exports, __webpack_require__) {
30298
30299"use strict";
30300
30301
30302exports.__esModule = true;
30303
30304var _extends2 = __webpack_require__(1);
30305
30306var _extends3 = _interopRequireDefault(_extends2);
30307
30308var _objectWithoutProperties2 = __webpack_require__(8);
30309
30310var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
30311
30312var _classCallCheck2 = __webpack_require__(2);
30313
30314var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
30315
30316var _possibleConstructorReturn2 = __webpack_require__(3);
30317
30318var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
30319
30320var _inherits2 = __webpack_require__(4);
30321
30322var _inherits3 = _interopRequireDefault(_inherits2);
30323
30324var _class, _temp2;
30325
30326var _react = __webpack_require__(0);
30327
30328var _react2 = _interopRequireDefault(_react);
30329
30330var _propTypes = __webpack_require__(5);
30331
30332var _propTypes2 = _interopRequireDefault(_propTypes);
30333
30334var _classnames2 = __webpack_require__(7);
30335
30336var _classnames3 = _interopRequireDefault(_classnames2);
30337
30338var _zhCn = __webpack_require__(13);
30339
30340var _zhCn2 = _interopRequireDefault(_zhCn);
30341
30342var _util = __webpack_require__(6);
30343
30344var _timeMenu = __webpack_require__(480);
30345
30346var _timeMenu2 = _interopRequireDefault(_timeMenu);
30347
30348var _propTypes3 = __webpack_require__(109);
30349
30350var _propTypes4 = _interopRequireDefault(_propTypes3);
30351
30352function _interopRequireDefault(obj) {
30353 return obj && obj.__esModule ? obj : { default: obj };
30354}
30355
30356var noop = _util.func.noop;
30357var TimePickerPanel = (_temp2 = _class = function (_Component) {
30358 (0, _inherits3.default)(TimePickerPanel, _Component);
30359
30360 function TimePickerPanel() {
30361 var _temp, _this, _ret;
30362
30363 (0, _classCallCheck3.default)(this, TimePickerPanel);
30364
30365 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
30366 args[_key] = arguments[_key];
30367 }
30368
30369 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) {
30370 var _this$props = _this.props,
30371 value = _this$props.value,
30372 isRange = _this$props.isRange;
30373
30374 var valueArr = Array.isArray(value) ? value : [value];
30375 var val = panelType === 'end' ? valueArr[1] : valueArr[0];
30376
30377 var clonedValue = val ? val.clone() : (0, _util.datejs)('00:00:00', 'HH:mm:ss', true);
30378 var newValue = void 0;
30379 switch (type) {
30380 case 'hour':
30381 newValue = clonedValue.hour(index);
30382 break;
30383 case 'minute':
30384 newValue = clonedValue.minute(index);
30385 break;
30386 case 'second':
30387 newValue = clonedValue.second(index);
30388 break;
30389 }
30390
30391 if (isRange) {
30392 var nextValueArray = [];
30393 if (panelType === 'start') {
30394 nextValueArray[0] = newValue;
30395 nextValueArray[1] = value[1];
30396 } else if (panelType === 'end') {
30397 nextValueArray[0] = value[0];
30398 nextValueArray[1] = newValue;
30399 }
30400
30401 _this.props.onSelect(nextValueArray, panelType);
30402 } else {
30403 _this.props.onSelect(newValue, 'panel');
30404 }
30405 }, _this.getDisabledItems = function () {
30406 var _this$props2 = _this.props,
30407 disabledHours = _this$props2.disabledHours,
30408 disabledMinutes = _this$props2.disabledMinutes,
30409 disabledSeconds = _this$props2.disabledSeconds,
30410 value = _this$props2.value,
30411 isRange = _this$props2.isRange;
30412
30413 var disableds = {
30414 newDisabledHours: [disabledHours],
30415 newDisabledMinutes: [disabledMinutes],
30416 newDisabledSeconds: [disabledSeconds]
30417 };
30418 if (!isRange) {
30419 return disableds;
30420 }
30421
30422 var dHours = disabledHours() || [];
30423 var dMinutes = disabledMinutes() || [];
30424 var dSeconds = disabledSeconds() || [];
30425
30426 var v0 = value[0];
30427 var v1 = value[1];
30428
30429 var hoursEqual = function hoursEqual() {
30430 return v0 && v1 && v0.hour() === v1.hour();
30431 };
30432 var minutesEqual = function minutesEqual() {
30433 return v0 && v1 && v0.hour() === v1.hour() && v0.minute() === v1.minute();
30434 };
30435
30436 disableds.newDisabledHours[0] = function (h) {
30437 return v1 && h > v1.hour() || dHours.indexOf(h) > -1;
30438 };
30439 disableds.newDisabledMinutes[0] = function (m) {
30440 return v1 && hoursEqual() && m > v1.minute() || dMinutes.indexOf(m) > -1;
30441 };
30442 disableds.newDisabledSeconds[0] = function (s) {
30443 return v1 && minutesEqual() && s > v1.second() || dSeconds.indexOf(s) > -1;
30444 };
30445
30446 disableds.newDisabledHours[1] = function (h) {
30447 return v0 && h < v0.hour() || dHours.indexOf(h) > -1;
30448 };
30449 disableds.newDisabledMinutes[1] = function (m) {
30450 return v0 && m < (hoursEqual() && v0.minute()) || dMinutes.indexOf(m) > -1;
30451 };
30452 disableds.newDisabledSeconds[1] = function (s) {
30453 return v0 && minutesEqual() && s < v0.second() || dSeconds.indexOf(s) > -1;
30454 };
30455
30456 return disableds;
30457 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
30458 }
30459
30460 /**
30461 *
30462 * @param {enum} panelType 'start' | 'end' | 'panel'
30463 * @param {*} index
30464 * @param {*} type 'hour' | 'minute' | 'second'
30465 */
30466
30467 TimePickerPanel.prototype.render = function render() {
30468 var _classnames,
30469 _this2 = this;
30470
30471 var _props = this.props,
30472 prefix = _props.prefix,
30473 value = _props.value,
30474 isRange = _props.isRange,
30475 locale = _props.locale,
30476 className = _props.className,
30477 disabled = _props.disabled,
30478 showHour = _props.showHour,
30479 showMinute = _props.showMinute,
30480 showSecond = _props.showSecond,
30481 hourStep = _props.hourStep,
30482 minuteStep = _props.minuteStep,
30483 secondStep = _props.secondStep,
30484 renderTimeMenuItems = _props.renderTimeMenuItems,
30485 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'value', 'isRange', 'locale', 'className', 'disabled', 'showHour', 'showMinute', 'showSecond', 'hourStep', 'minuteStep', 'secondStep', 'renderTimeMenuItems']);
30486
30487 var colLen = [showHour, showMinute, showSecond].filter(function (v) {
30488 return v;
30489 }).length;
30490 var classNames = (0, _classnames3.default)(this.prefixCls + '-panel', (_classnames = {}, _classnames[this.prefixCls + '-panel-col-' + colLen] = !isRange, _classnames[this.prefixCls + '-panel-range'] = isRange, _classnames), className);
30491
30492 var activeHour = [];
30493 var activeMinute = [];
30494 var activeSecond = [];
30495
30496 var valueArr = Array.isArray(value) ? value : [value];
30497 valueArr.forEach(function (val, i) {
30498 if (val && _util.datejs.isSelf(val)) {
30499 activeHour[i] = val.hour();
30500 activeMinute[i] = val.minute();
30501 activeSecond[i] = val.second();
30502 }
30503 });
30504
30505 var commonProps = {
30506 prefix: prefix,
30507 disabled: disabled,
30508 renderTimeMenuItems: renderTimeMenuItems
30509 };
30510
30511 var _getDisabledItems = this.getDisabledItems(),
30512 newDisabledHours = _getDisabledItems.newDisabledHours,
30513 newDisabledMinutes = _getDisabledItems.newDisabledMinutes,
30514 newDisabledSeconds = _getDisabledItems.newDisabledSeconds;
30515
30516 var generatePanel = function generatePanel(index) {
30517 return _react2.default.createElement(_react2.default.Fragment, null, showHour ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
30518 value: valueArr[index],
30519 activeIndex: activeHour[index],
30520 title: locale.hour,
30521 mode: 'hour',
30522 step: hourStep,
30523 onSelect: _this2.onSelectMenuItem.bind(_this2, '' + (index === 0 ? 'start' : 'end')),
30524 disabledItems: newDisabledHours[index]
30525 })) : null, showMinute ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
30526 value: valueArr[index],
30527 activeIndex: activeMinute[index],
30528 title: locale.minute,
30529 mode: 'minute',
30530 step: minuteStep,
30531 onSelect: _this2.onSelectMenuItem.bind(_this2, '' + (index === 0 ? 'start' : 'end')),
30532 disabledItems: newDisabledMinutes[index]
30533 })) : null, showSecond ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
30534 value: valueArr[index],
30535 activeIndex: activeSecond[index],
30536 title: locale.second,
30537 step: secondStep,
30538 mode: 'second',
30539 onSelect: _this2.onSelectMenuItem.bind(_this2, '' + (index === 0 ? 'start' : 'end')),
30540 disabledItems: newDisabledSeconds[index]
30541 })) : null);
30542 };
30543
30544 var singlePanel = generatePanel(0);
30545
30546 var panelClassNames = (0, _classnames3.default)(this.prefixCls + '-panel-col-' + colLen, this.prefixCls + '-panel-list');
30547
30548 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)));
30549
30550 return _react2.default.createElement('div', (0, _extends3.default)({}, (0, _util.pickAttrs)(others), { className: classNames }), isRange ? doublePanel : singlePanel);
30551 };
30552
30553 return TimePickerPanel;
30554}(_react.Component), _class.propTypes = {
30555 prefix: _propTypes2.default.string,
30556 /**
30557 * 时间值(dayjs 对象)
30558 */
30559 value: _propTypes4.default.value,
30560 /**
30561 * 是否显示小时
30562 */
30563 showHour: _propTypes2.default.bool,
30564 /**
30565 * 是否显示分钟
30566 */
30567 showMinute: _propTypes2.default.bool,
30568 /**
30569 * 是否显示秒
30570 */
30571 showSecond: _propTypes2.default.bool,
30572 /**
30573 * 小时选项步长
30574 */
30575 hourStep: _propTypes2.default.number,
30576 /**
30577 * 分钟选项步长
30578 */
30579 minuteStep: _propTypes2.default.number,
30580 /**
30581 * 秒钟选项步长
30582 */
30583 secondStep: _propTypes2.default.number,
30584 /**
30585 * 禁用小时函数
30586 * @param {Number} index 时 0 - 23
30587 * @return {Boolean} 是否禁用
30588 */
30589 disabledHours: _propTypes2.default.func,
30590 /**
30591 * 禁用分钟函数
30592 * @param {Number} index 分 0 - 59
30593 * @return {Boolean} 是否禁用
30594 */
30595 disabledMinutes: _propTypes2.default.func,
30596 /**
30597 * 禁用秒函数
30598 * @param {Number} index 秒 0 - 59
30599 * @return {Boolean} 是否禁用
30600 */
30601 disabledSeconds: _propTypes2.default.func,
30602 /**
30603 * 渲染的可选择时间列表
30604 * [{
30605 * label: '01',
30606 * value: 1
30607 * }]
30608 * @param {Array} list 默认渲染的列表
30609 * @param {String} mode 渲染的菜单 hour, minute, second
30610 * @param {dayjs} value 当前时间,可能为 null
30611 * @return {Array} 返回需要渲染的数据
30612 */
30613 renderTimeMenuItems: _propTypes2.default.func,
30614 /**
30615 * 选择某个日期值时的回调
30616 * @param {Object} 选中后的日期值
30617 */
30618 onSelect: _propTypes2.default.func,
30619 isRange: _propTypes2.default.bool,
30620 locale: _propTypes2.default.object,
30621 disabled: _propTypes2.default.bool,
30622 className: _propTypes2.default.string
30623}, _class.defaultProps = {
30624 prefix: 'next-',
30625 showHour: true,
30626 showSecond: true,
30627 showMinute: true,
30628 disabledHours: noop,
30629 disabledMinutes: noop,
30630 disabledSeconds: noop,
30631 onSelect: noop,
30632 disabled: false,
30633 isRange: false,
30634 locale: _zhCn2.default.TimePicker
30635}, _temp2);
30636TimePickerPanel.displayName = 'TimePickerPanel';
30637exports.default = TimePickerPanel;
30638module.exports = exports['default'];
30639
30640/***/ }),
30641/* 200 */
30642/***/ (function(module, exports, __webpack_require__) {
30643
30644"use strict";
30645
30646
30647exports.__esModule = true;
30648exports.checkDayjsObj = checkDayjsObj;
30649exports.checkDateValue = checkDateValue;
30650exports.onTimeKeydown = onTimeKeydown;
30651
30652var _util = __webpack_require__(6);
30653
30654// 检查传入值是否为 dayjs 对象
30655function checkDayjsObj(props, propName, componentName) {
30656 if (props[propName] && !_util.datejs.isSelf(props[propName])) {
30657 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a dayjs object.');
30658 }
30659}
30660
30661// 检查传入值是否为 dayjs 对象
30662function checkDateValue(props, propName, componentName) {
30663 if (props[propName] && !_util.datejs.isSelf(props[propName]) && typeof props[propName] !== 'string') {
30664 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a dayjs object or format date string.');
30665 }
30666}
30667
30668/**
30669 * 监听键盘事件,操作时间
30670 * @param {KeyboardEvent} e
30671 * @param {Object} param1
30672 * @param {String} type second hour minute
30673 */
30674function onTimeKeydown(e, _ref, type) {
30675 var format = _ref.format,
30676 timeInputStr = _ref.timeInputStr,
30677 steps = _ref.steps,
30678 value = _ref.value;
30679
30680 if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1) return;
30681 if (e.altKey && [_util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1 || e.controlKey || e.shiftKey) return;
30682
30683 var time = (0, _util.datejs)(timeInputStr, format, true);
30684
30685 if (time.isValid()) {
30686 var stepUnit = e.altKey ? 'hour' : 'minute';
30687 switch (e.keyCode) {
30688 case _util.KEYCODE.UP:
30689 time = time.subtract(steps[type], type);
30690 break;
30691 case _util.KEYCODE.DOWN:
30692 time = time.add(steps[type], type);
30693 break;
30694 case _util.KEYCODE.PAGE_UP:
30695 time = time.subtract(steps[stepUnit], stepUnit);
30696 break;
30697 case _util.KEYCODE.PAGE_DOWN:
30698 time = time.add(steps[stepUnit], stepUnit);
30699 break;
30700 }
30701 } else if (value) {
30702 time = value.clone();
30703 } else {
30704 time = (0, _util.datejs)();
30705 time = time.hour(0).minute(0).second(0);
30706 }
30707
30708 e.preventDefault();
30709 return time.format(format);
30710}
30711
30712/***/ }),
30713/* 201 */
30714/***/ (function(module, exports, __webpack_require__) {
30715
30716"use strict";
30717
30718
30719exports.__esModule = true;
30720
30721var _extends2 = __webpack_require__(1);
30722
30723var _extends3 = _interopRequireDefault(_extends2);
30724
30725var _objectWithoutProperties2 = __webpack_require__(8);
30726
30727var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
30728
30729var _classCallCheck2 = __webpack_require__(2);
30730
30731var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
30732
30733var _possibleConstructorReturn2 = __webpack_require__(3);
30734
30735var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
30736
30737var _inherits2 = __webpack_require__(4);
30738
30739var _inherits3 = _interopRequireDefault(_inherits2);
30740
30741var _class, _temp;
30742
30743var _react = __webpack_require__(0);
30744
30745var _react2 = _interopRequireDefault(_react);
30746
30747var _reactLifecyclesCompat = __webpack_require__(10);
30748
30749var _propTypes = __webpack_require__(5);
30750
30751var PT = _interopRequireWildcard(_propTypes);
30752
30753var _classnames3 = __webpack_require__(7);
30754
30755var _classnames4 = _interopRequireDefault(_classnames3);
30756
30757var _propTypes2 = __webpack_require__(45);
30758
30759var _propTypes3 = _interopRequireDefault(_propTypes2);
30760
30761var _util = __webpack_require__(6);
30762
30763var _zhCn = __webpack_require__(13);
30764
30765var _zhCn2 = _interopRequireDefault(_zhCn);
30766
30767var _button = __webpack_require__(17);
30768
30769var _button2 = _interopRequireDefault(_button);
30770
30771function _interopRequireWildcard(obj) {
30772 if (obj && obj.__esModule) {
30773 return obj;
30774 } else {
30775 var newObj = {};if (obj != null) {
30776 for (var key in obj) {
30777 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
30778 }
30779 }newObj.default = obj;return newObj;
30780 }
30781}
30782
30783function _interopRequireDefault(obj) {
30784 return obj && obj.__esModule ? obj : { default: obj };
30785}
30786
30787var renderNode = _util.func.renderNode;
30788
30789function normalizePreset(preset) {
30790 if (Array.isArray(preset)) {
30791 return preset;
30792 } else {
30793 return Object.keys(preset).map(function (key) {
30794 return {
30795 label: key,
30796 value: preset[key]
30797 };
30798 });
30799 }
30800}
30801
30802var FooterPanel = (_temp = _class = function (_React$PureComponent) {
30803 (0, _inherits3.default)(FooterPanel, _React$PureComponent);
30804
30805 function FooterPanel(props) {
30806 (0, _classCallCheck3.default)(this, FooterPanel);
30807
30808 var _this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call(this, props));
30809
30810 _this.renderRanges = function () {
30811 if (!_this.props.preset) {
30812 return null;
30813 }
30814
30815 var preset = normalizePreset(_this.props.preset);
30816
30817 return preset.map(function (_ref, index) {
30818 var label = _ref.label,
30819 value = _ref.value,
30820 restProps = (0, _objectWithoutProperties3.default)(_ref, ['label', 'value']);
30821
30822 var buttonProps = _util.obj.pickProps(_button2.default.propTypes, restProps);
30823
30824 var handleClick = function handleClick() {
30825 var date = typeof value === 'function' ? value() : value;
30826 _this.props.onChange(date, 'CLICK_PRESET');
30827 };
30828 return _react2.default.createElement(_button2.default, (0, _extends3.default)({
30829 text: preset.length === 1,
30830 size: 'small',
30831 type: preset.length === 1 ? 'primary' : 'secondary',
30832 key: label + '-' + index
30833 // onClick={() =>
30834 // func.invoke(this.props, 'onChange', [
30835 // typeof value === 'function' ? value() : value,
30836 // 'CLICK_PRESET',
30837 // ])
30838 // }
30839 , onClick: handleClick
30840 }, buttonProps), label);
30841 });
30842 };
30843
30844 _this.prefixCls = props.prefix + 'date-picker2-footer';
30845 return _this;
30846 }
30847
30848 FooterPanel.prototype.render = function render() {
30849 var _classnames, _classnames2;
30850
30851 var prefixCls = this.prefixCls;
30852 var _props = this.props,
30853 showOk = _props.showOk,
30854 locale = _props.locale,
30855 onOk = _props.onOk,
30856 oKable = _props.oKable,
30857 extraRender = _props.extraRender,
30858 className = _props.className;
30859
30860 var classNames = (0, _classnames4.default)(prefixCls, className, (_classnames = {}, _classnames[prefixCls + '-with-actions'] = showOk, _classnames));
30861
30862 var extraNode = renderNode(extraRender);
30863 var rangeNode = this.renderRanges();
30864 var actionsNode = _react2.default.createElement(_button2.default, { size: 'small', disabled: !oKable, onClick: onOk, className: prefixCls + '-ok', type: 'primary' }, locale.ok);
30865
30866 var showFooter = showOk || extraNode || rangeNode;
30867 var rangesCls = (0, _classnames4.default)(prefixCls + '-preset', (_classnames2 = {}, _classnames2[prefixCls + '-preset-only'] = !showOk && !extraNode, _classnames2));
30868
30869 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;
30870 };
30871
30872 return FooterPanel;
30873}(_react2.default.PureComponent), _class.propTypes = {
30874 rtl: PT.bool,
30875 className: PT.string,
30876 prefix: PT.string,
30877 locale: PT.object,
30878 showOk: PT.bool,
30879 preset: PT.oneOfType([PT.array, PT.object]),
30880 onOk: PT.func,
30881 oKable: PT.bool,
30882 extraRender: _propTypes3.default.render
30883}, _class.defaultProps = {
30884 locale: _zhCn2.default.DatePicker
30885}, _temp);
30886exports.default = (0, _reactLifecyclesCompat.polyfill)(FooterPanel);
30887module.exports = exports['default'];
30888
30889/***/ }),
30890/* 202 */
30891/***/ (function(module, exports, __webpack_require__) {
30892
30893"use strict";
30894
30895
30896exports.__esModule = true;
30897
30898var _propTypes = __webpack_require__(5);
30899
30900var PT = _interopRequireWildcard(_propTypes);
30901
30902var _constant = __webpack_require__(52);
30903
30904var _util = __webpack_require__(6);
30905
30906function _interopRequireWildcard(obj) {
30907 if (obj && obj.__esModule) {
30908 return obj;
30909 } else {
30910 var newObj = {};if (obj != null) {
30911 for (var key in obj) {
30912 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
30913 }
30914 }newObj.default = obj;return newObj;
30915 }
30916}
30917
30918var error = function error(propName, ComponentName) {
30919 return new Error('Invalid prop ' + propName + ' supplied to ' + ComponentName + '. Validation failed.');
30920};
30921
30922var SharedPT = {
30923 shape: PT.oneOf(Object.values(_constant.CALENDAR_SHAPE)),
30924 mode: PT.oneOf(Object.values(_constant.CALENDAR_MODE)),
30925 panelMode: PT.oneOf(Object.values(_constant.DATE_PANEL_MODE)),
30926 // 日期类型:
30927 // @string: 2020-11-11
30928 // @date: 日期对象
30929 // @moment: moment对象
30930 // @dayjs: dayjs对象
30931 date: function date(props, propName, componentName) {
30932 if (propName in props && !(0, _util.datejs)(props.propName).isValid()) {
30933 throw error(propName, componentName);
30934 }
30935 }
30936};
30937
30938exports.default = SharedPT;
30939module.exports = exports['default'];
30940
30941/***/ }),
30942/* 203 */
30943/***/ (function(module, exports, __webpack_require__) {
30944
30945"use strict";
30946
30947
30948exports.__esModule = true;
30949
30950var _extends2 = __webpack_require__(1);
30951
30952var _extends3 = _interopRequireDefault(_extends2);
30953
30954var _classCallCheck2 = __webpack_require__(2);
30955
30956var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
30957
30958var _possibleConstructorReturn2 = __webpack_require__(3);
30959
30960var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
30961
30962var _inherits2 = __webpack_require__(4);
30963
30964var _inherits3 = _interopRequireDefault(_inherits2);
30965
30966var _class, _temp2;
30967
30968var _react = __webpack_require__(0);
30969
30970var _react2 = _interopRequireDefault(_react);
30971
30972var _reactLifecyclesCompat = __webpack_require__(10);
30973
30974var _propTypes = __webpack_require__(5);
30975
30976var PT = _interopRequireWildcard(_propTypes);
30977
30978var _panel = __webpack_require__(199);
30979
30980var _panel2 = _interopRequireDefault(_panel);
30981
30982var _propTypes2 = __webpack_require__(45);
30983
30984var _propTypes3 = _interopRequireDefault(_propTypes2);
30985
30986var _util = __webpack_require__(6);
30987
30988function _interopRequireWildcard(obj) {
30989 if (obj && obj.__esModule) {
30990 return obj;
30991 } else {
30992 var newObj = {};if (obj != null) {
30993 for (var key in obj) {
30994 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
30995 }
30996 }newObj.default = obj;return newObj;
30997 }
30998}
30999
31000function _interopRequireDefault(obj) {
31001 return obj && obj.__esModule ? obj : { default: obj };
31002}
31003
31004var DECADE_TIME_FORMAT = 'HH:mm:ss';
31005
31006var TimePanel = (_temp2 = _class = function (_React$PureComponent) {
31007 (0, _inherits3.default)(TimePanel, _React$PureComponent);
31008
31009 function TimePanel() {
31010 var _temp, _this, _ret;
31011
31012 (0, _classCallCheck3.default)(this, TimePanel);
31013
31014 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
31015 args[_key] = arguments[_key];
31016 }
31017
31018 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.formater = function (v) {
31019 var _this$props$timePanel = _this.props.timePanelProps,
31020 timePanelProps = _this$props$timePanel === undefined ? {} : _this$props$timePanel;
31021
31022 var _this$getShow = _this.getShow(),
31023 showHour = _this$getShow.showHour,
31024 showMinute = _this$getShow.showMinute,
31025 showSecond = _this$getShow.showSecond;
31026
31027 var fmt = void 0;
31028 if ('format' in timePanelProps) {
31029 fmt = timePanelProps.format;
31030 } else {
31031 var fmtArr = [];
31032
31033 showHour && fmtArr.push('HH');
31034 showMinute && fmtArr.push('mm');
31035 showSecond && fmtArr.push('ss');
31036
31037 fmt = fmtArr.join(':');
31038 }
31039
31040 return typeof fmt === 'function' ? fmt(v) : v.format(fmt);
31041 }, _this.getShow = function () {
31042 var _this$props$timePanel2 = _this.props.timePanelProps,
31043 props = _this$props$timePanel2 === undefined ? {} : _this$props$timePanel2;
31044
31045 var fmt = props.format || DECADE_TIME_FORMAT;
31046
31047 var showHour = void 0;
31048 var showMinute = void 0;
31049 var showSecond = void 0;
31050
31051 if (typeof fmt === 'string') {
31052 showHour = fmt.indexOf('H') > -1;
31053 showSecond = fmt.indexOf('s') > -1;
31054 showMinute = fmt.indexOf('m') > -1;
31055 }
31056
31057 return {
31058 showHour: 'showHour' in props ? props.showHour : showHour,
31059 showMinute: 'showMinute' in props ? props.showMinute : showMinute,
31060 showSecond: 'showSecond' in props ? props.showSecond : showSecond
31061 };
31062 }, _this.onSelect = function (v) {
31063 _util.func.invoke(_this.props, 'onSelect', [v]);
31064 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
31065 }
31066
31067 TimePanel.prototype.render = function render() {
31068 var _props = this.props,
31069 prefix = _props.prefix,
31070 rtl = _props.rtl,
31071 locale = _props.locale,
31072 _props$timePanelProps = _props.timePanelProps,
31073 timePanelProps = _props$timePanelProps === undefined ? {} : _props$timePanelProps,
31074 value = _props.value;
31075
31076 var _getShow = this.getShow(),
31077 showHour = _getShow.showHour,
31078 showMinute = _getShow.showMinute,
31079 showSecond = _getShow.showSecond;
31080
31081 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)({
31082 prefix: prefix,
31083 locale: locale,
31084 onSelect: this.onSelect,
31085 showHour: showHour,
31086 showSecond: showSecond,
31087 showMinute: showMinute
31088 }, timePanelProps, {
31089 value: value
31090 })));
31091 };
31092
31093 return TimePanel;
31094}(_react2.default.PureComponent), _class.propTypes = {
31095 rtl: PT.bool,
31096 prefix: PT.string,
31097 locale: PT.object,
31098 value: _propTypes3.default.date,
31099 timePanelProps: PT.object,
31100 onSelect: PT.func
31101}, _temp2);
31102exports.default = (0, _reactLifecyclesCompat.polyfill)(TimePanel);
31103module.exports = exports['default'];
31104
31105/***/ }),
31106/* 204 */
31107/***/ (function(module, exports, __webpack_require__) {
31108
31109"use strict";
31110
31111
31112var next = __webpack_require__(205);
31113
31114next.version = '1.25.44';
31115
31116module.exports = next;
31117
31118/***/ }),
31119/* 205 */
31120/***/ (function(module, exports, __webpack_require__) {
31121
31122"use strict";
31123
31124
31125exports.__esModule = true;
31126
31127var _affix = __webpack_require__(69);
31128
31129Object.defineProperty(exports, 'Affix', {
31130 enumerable: true,
31131 get: function get() {
31132 return _interopRequireDefault(_affix).default;
31133 }
31134});
31135
31136var _animate = __webpack_require__(20);
31137
31138Object.defineProperty(exports, 'Animate', {
31139 enumerable: true,
31140 get: function get() {
31141 return _interopRequireDefault(_animate).default;
31142 }
31143});
31144
31145var _badge = __webpack_require__(274);
31146
31147Object.defineProperty(exports, 'Badge', {
31148 enumerable: true,
31149 get: function get() {
31150 return _interopRequireDefault(_badge).default;
31151 }
31152});
31153
31154var _balloon = __webpack_require__(59);
31155
31156Object.defineProperty(exports, 'Balloon', {
31157 enumerable: true,
31158 get: function get() {
31159 return _interopRequireDefault(_balloon).default;
31160 }
31161});
31162
31163var _breadcrumb = __webpack_require__(286);
31164
31165Object.defineProperty(exports, 'Breadcrumb', {
31166 enumerable: true,
31167 get: function get() {
31168 return _interopRequireDefault(_breadcrumb).default;
31169 }
31170});
31171
31172var _button = __webpack_require__(17);
31173
31174Object.defineProperty(exports, 'Button', {
31175 enumerable: true,
31176 get: function get() {
31177 return _interopRequireDefault(_button).default;
31178 }
31179});
31180
31181var _calendar = __webpack_require__(39);
31182
31183Object.defineProperty(exports, 'Calendar', {
31184 enumerable: true,
31185 get: function get() {
31186 return _interopRequireDefault(_calendar).default;
31187 }
31188});
31189
31190var _card = __webpack_require__(319);
31191
31192Object.defineProperty(exports, 'Card', {
31193 enumerable: true,
31194 get: function get() {
31195 return _interopRequireDefault(_card).default;
31196 }
31197});
31198
31199var _cascader = __webpack_require__(166);
31200
31201Object.defineProperty(exports, 'Cascader', {
31202 enumerable: true,
31203 get: function get() {
31204 return _interopRequireDefault(_cascader).default;
31205 }
31206});
31207
31208var _cascaderSelect = __webpack_require__(329);
31209
31210Object.defineProperty(exports, 'CascaderSelect', {
31211 enumerable: true,
31212 get: function get() {
31213 return _interopRequireDefault(_cascaderSelect).default;
31214 }
31215});
31216
31217var _checkbox = __webpack_require__(49);
31218
31219Object.defineProperty(exports, 'Checkbox', {
31220 enumerable: true,
31221 get: function get() {
31222 return _interopRequireDefault(_checkbox).default;
31223 }
31224});
31225
31226var _collapse = __webpack_require__(331);
31227
31228Object.defineProperty(exports, 'Collapse', {
31229 enumerable: true,
31230 get: function get() {
31231 return _interopRequireDefault(_collapse).default;
31232 }
31233});
31234
31235var _configProvider = __webpack_require__(9);
31236
31237Object.defineProperty(exports, 'ConfigProvider', {
31238 enumerable: true,
31239 get: function get() {
31240 return _interopRequireDefault(_configProvider).default;
31241 }
31242});
31243
31244var _datePicker = __webpack_require__(333);
31245
31246Object.defineProperty(exports, 'DatePicker', {
31247 enumerable: true,
31248 get: function get() {
31249 return _interopRequireDefault(_datePicker).default;
31250 }
31251});
31252
31253var _dialog = __webpack_require__(340);
31254
31255Object.defineProperty(exports, 'Dialog', {
31256 enumerable: true,
31257 get: function get() {
31258 return _interopRequireDefault(_dialog).default;
31259 }
31260});
31261
31262var _dropdown = __webpack_require__(48);
31263
31264Object.defineProperty(exports, 'Dropdown', {
31265 enumerable: true,
31266 get: function get() {
31267 return _interopRequireDefault(_dropdown).default;
31268 }
31269});
31270
31271var _drawer = __webpack_require__(345);
31272
31273Object.defineProperty(exports, 'Drawer', {
31274 enumerable: true,
31275 get: function get() {
31276 return _interopRequireDefault(_drawer).default;
31277 }
31278});
31279
31280var _field = __webpack_require__(173);
31281
31282Object.defineProperty(exports, 'Field', {
31283 enumerable: true,
31284 get: function get() {
31285 return _interopRequireDefault(_field).default;
31286 }
31287});
31288
31289var _form = __webpack_require__(367);
31290
31291Object.defineProperty(exports, 'Form', {
31292 enumerable: true,
31293 get: function get() {
31294 return _interopRequireDefault(_form).default;
31295 }
31296});
31297
31298var _grid = __webpack_require__(178);
31299
31300Object.defineProperty(exports, 'Grid', {
31301 enumerable: true,
31302 get: function get() {
31303 return _interopRequireDefault(_grid).default;
31304 }
31305});
31306
31307var _icon = __webpack_require__(11);
31308
31309Object.defineProperty(exports, 'Icon', {
31310 enumerable: true,
31311 get: function get() {
31312 return _interopRequireDefault(_icon).default;
31313 }
31314});
31315
31316var _input = __webpack_require__(18);
31317
31318Object.defineProperty(exports, 'Input', {
31319 enumerable: true,
31320 get: function get() {
31321 return _interopRequireDefault(_input).default;
31322 }
31323});
31324
31325var _loading = __webpack_require__(100);
31326
31327Object.defineProperty(exports, 'Loading', {
31328 enumerable: true,
31329 get: function get() {
31330 return _interopRequireDefault(_loading).default;
31331 }
31332});
31333
31334var _menu = __webpack_require__(16);
31335
31336Object.defineProperty(exports, 'Menu', {
31337 enumerable: true,
31338 get: function get() {
31339 return _interopRequireDefault(_menu).default;
31340 }
31341});
31342
31343var _menuButton = __webpack_require__(377);
31344
31345Object.defineProperty(exports, 'MenuButton', {
31346 enumerable: true,
31347 get: function get() {
31348 return _interopRequireDefault(_menuButton).default;
31349 }
31350});
31351
31352var _message = __webpack_require__(94);
31353
31354Object.defineProperty(exports, 'Message', {
31355 enumerable: true,
31356 get: function get() {
31357 return _interopRequireDefault(_message).default;
31358 }
31359});
31360
31361var _nav = __webpack_require__(378);
31362
31363Object.defineProperty(exports, 'Nav', {
31364 enumerable: true,
31365 get: function get() {
31366 return _interopRequireDefault(_nav).default;
31367 }
31368});
31369
31370var _numberPicker = __webpack_require__(384);
31371
31372Object.defineProperty(exports, 'NumberPicker', {
31373 enumerable: true,
31374 get: function get() {
31375 return _interopRequireDefault(_numberPicker).default;
31376 }
31377});
31378
31379var _overlay = __webpack_require__(15);
31380
31381Object.defineProperty(exports, 'Overlay', {
31382 enumerable: true,
31383 get: function get() {
31384 return _interopRequireDefault(_overlay).default;
31385 }
31386});
31387
31388var _pagination = __webpack_require__(387);
31389
31390Object.defineProperty(exports, 'Pagination', {
31391 enumerable: true,
31392 get: function get() {
31393 return _interopRequireDefault(_pagination).default;
31394 }
31395});
31396
31397var _paragraph = __webpack_require__(389);
31398
31399Object.defineProperty(exports, 'Paragraph', {
31400 enumerable: true,
31401 get: function get() {
31402 return _interopRequireDefault(_paragraph).default;
31403 }
31404});
31405
31406var _progress = __webpack_require__(101);
31407
31408Object.defineProperty(exports, 'Progress', {
31409 enumerable: true,
31410 get: function get() {
31411 return _interopRequireDefault(_progress).default;
31412 }
31413});
31414
31415var _radio = __webpack_require__(50);
31416
31417Object.defineProperty(exports, 'Radio', {
31418 enumerable: true,
31419 get: function get() {
31420 return _interopRequireDefault(_radio).default;
31421 }
31422});
31423
31424var _range = __webpack_require__(393);
31425
31426Object.defineProperty(exports, 'Range', {
31427 enumerable: true,
31428 get: function get() {
31429 return _interopRequireDefault(_range).default;
31430 }
31431});
31432
31433var _rating = __webpack_require__(401);
31434
31435Object.defineProperty(exports, 'Rating', {
31436 enumerable: true,
31437 get: function get() {
31438 return _interopRequireDefault(_rating).default;
31439 }
31440});
31441
31442var _search = __webpack_require__(180);
31443
31444Object.defineProperty(exports, 'Search', {
31445 enumerable: true,
31446 get: function get() {
31447 return _interopRequireDefault(_search).default;
31448 }
31449});
31450
31451var _select = __webpack_require__(29);
31452
31453Object.defineProperty(exports, 'Select', {
31454 enumerable: true,
31455 get: function get() {
31456 return _interopRequireDefault(_select).default;
31457 }
31458});
31459
31460var _shell = __webpack_require__(404);
31461
31462Object.defineProperty(exports, 'Shell', {
31463 enumerable: true,
31464 get: function get() {
31465 return _interopRequireDefault(_shell).default;
31466 }
31467});
31468
31469var _slider = __webpack_require__(408);
31470
31471Object.defineProperty(exports, 'Slider', {
31472 enumerable: true,
31473 get: function get() {
31474 return _interopRequireDefault(_slider).default;
31475 }
31476});
31477
31478var _splitButton = __webpack_require__(416);
31479
31480Object.defineProperty(exports, 'SplitButton', {
31481 enumerable: true,
31482 get: function get() {
31483 return _interopRequireDefault(_splitButton).default;
31484 }
31485});
31486
31487var _step = __webpack_require__(417);
31488
31489Object.defineProperty(exports, 'Step', {
31490 enumerable: true,
31491 get: function get() {
31492 return _interopRequireDefault(_step).default;
31493 }
31494});
31495
31496var _switch = __webpack_require__(420);
31497
31498Object.defineProperty(exports, 'Switch', {
31499 enumerable: true,
31500 get: function get() {
31501 return _interopRequireDefault(_switch).default;
31502 }
31503});
31504
31505var _tab = __webpack_require__(421);
31506
31507Object.defineProperty(exports, 'Tab', {
31508 enumerable: true,
31509 get: function get() {
31510 return _interopRequireDefault(_tab).default;
31511 }
31512});
31513
31514var _table = __webpack_require__(426);
31515
31516Object.defineProperty(exports, 'Table', {
31517 enumerable: true,
31518 get: function get() {
31519 return _interopRequireDefault(_table).default;
31520 }
31521});
31522
31523var _tag = __webpack_require__(150);
31524
31525Object.defineProperty(exports, 'Tag', {
31526 enumerable: true,
31527 get: function get() {
31528 return _interopRequireDefault(_tag).default;
31529 }
31530});
31531
31532var _timePicker = __webpack_require__(447);
31533
31534Object.defineProperty(exports, 'TimePicker', {
31535 enumerable: true,
31536 get: function get() {
31537 return _interopRequireDefault(_timePicker).default;
31538 }
31539});
31540
31541var _timeline = __webpack_require__(449);
31542
31543Object.defineProperty(exports, 'Timeline', {
31544 enumerable: true,
31545 get: function get() {
31546 return _interopRequireDefault(_timeline).default;
31547 }
31548});
31549
31550var _transfer = __webpack_require__(452);
31551
31552Object.defineProperty(exports, 'Transfer', {
31553 enumerable: true,
31554 get: function get() {
31555 return _interopRequireDefault(_transfer).default;
31556 }
31557});
31558
31559var _tree = __webpack_require__(193);
31560
31561Object.defineProperty(exports, 'Tree', {
31562 enumerable: true,
31563 get: function get() {
31564 return _interopRequireDefault(_tree).default;
31565 }
31566});
31567
31568var _treeSelect = __webpack_require__(459);
31569
31570Object.defineProperty(exports, 'TreeSelect', {
31571 enumerable: true,
31572 get: function get() {
31573 return _interopRequireDefault(_treeSelect).default;
31574 }
31575});
31576
31577var _typography = __webpack_require__(461);
31578
31579Object.defineProperty(exports, 'Typography', {
31580 enumerable: true,
31581 get: function get() {
31582 return _interopRequireDefault(_typography).default;
31583 }
31584});
31585
31586var _upload = __webpack_require__(465);
31587
31588Object.defineProperty(exports, 'Upload', {
31589 enumerable: true,
31590 get: function get() {
31591 return _interopRequireDefault(_upload).default;
31592 }
31593});
31594
31595var _virtualList = __webpack_require__(51);
31596
31597Object.defineProperty(exports, 'VirtualList', {
31598 enumerable: true,
31599 get: function get() {
31600 return _interopRequireDefault(_virtualList).default;
31601 }
31602});
31603
31604var _notification = __webpack_require__(471);
31605
31606Object.defineProperty(exports, 'Notification', {
31607 enumerable: true,
31608 get: function get() {
31609 return _interopRequireDefault(_notification).default;
31610 }
31611});
31612
31613var _divider = __webpack_require__(473);
31614
31615Object.defineProperty(exports, 'Divider', {
31616 enumerable: true,
31617 get: function get() {
31618 return _interopRequireDefault(_divider).default;
31619 }
31620});
31621
31622var _avatar = __webpack_require__(474);
31623
31624Object.defineProperty(exports, 'Avatar', {
31625 enumerable: true,
31626 get: function get() {
31627 return _interopRequireDefault(_avatar).default;
31628 }
31629});
31630
31631var _responsiveGrid = __webpack_require__(99);
31632
31633Object.defineProperty(exports, 'ResponsiveGrid', {
31634 enumerable: true,
31635 get: function get() {
31636 return _interopRequireDefault(_responsiveGrid).default;
31637 }
31638});
31639
31640var _box = __webpack_require__(176);
31641
31642Object.defineProperty(exports, 'Box', {
31643 enumerable: true,
31644 get: function get() {
31645 return _interopRequireDefault(_box).default;
31646 }
31647});
31648
31649var _list = __webpack_require__(475);
31650
31651Object.defineProperty(exports, 'List', {
31652 enumerable: true,
31653 get: function get() {
31654 return _interopRequireDefault(_list).default;
31655 }
31656});
31657
31658var _timePicker2 = __webpack_require__(478);
31659
31660Object.defineProperty(exports, 'TimePicker2', {
31661 enumerable: true,
31662 get: function get() {
31663 return _interopRequireDefault(_timePicker2).default;
31664 }
31665});
31666
31667var _datePicker2 = __webpack_require__(482);
31668
31669Object.defineProperty(exports, 'DatePicker2', {
31670 enumerable: true,
31671 get: function get() {
31672 return _interopRequireDefault(_datePicker2).default;
31673 }
31674});
31675
31676var _calendar2 = __webpack_require__(111);
31677
31678Object.defineProperty(exports, 'Calendar2', {
31679 enumerable: true,
31680 get: function get() {
31681 return _interopRequireDefault(_calendar2).default;
31682 }
31683});
31684
31685function _interopRequireDefault(obj) {
31686 return obj && obj.__esModule ? obj : { default: obj };
31687}
31688
31689/***/ }),
31690/* 206 */
31691/***/ (function(module, exports, __webpack_require__) {
31692
31693module.exports = { "default": __webpack_require__(207), __esModule: true };
31694
31695/***/ }),
31696/* 207 */
31697/***/ (function(module, exports, __webpack_require__) {
31698
31699__webpack_require__(208);
31700module.exports = __webpack_require__(24).Object.assign;
31701
31702
31703/***/ }),
31704/* 208 */
31705/***/ (function(module, exports, __webpack_require__) {
31706
31707// 19.1.3.1 Object.assign(target, source)
31708var $export = __webpack_require__(32);
31709
31710$export($export.S + $export.F, 'Object', { assign: __webpack_require__(210) });
31711
31712
31713/***/ }),
31714/* 209 */
31715/***/ (function(module, exports) {
31716
31717module.exports = function (it) {
31718 if (typeof it != 'function') throw TypeError(it + ' is not a function!');
31719 return it;
31720};
31721
31722
31723/***/ }),
31724/* 210 */
31725/***/ (function(module, exports, __webpack_require__) {
31726
31727"use strict";
31728
31729// 19.1.2.1 Object.assign(target, source, ...)
31730var DESCRIPTORS = __webpack_require__(25);
31731var getKeys = __webpack_require__(54);
31732var gOPS = __webpack_require__(76);
31733var pIE = __webpack_require__(57);
31734var toObject = __webpack_require__(77);
31735var IObject = __webpack_require__(116);
31736var $assign = Object.assign;
31737
31738// should work with symbols and should have deterministic property order (V8 bug)
31739module.exports = !$assign || __webpack_require__(47)(function () {
31740 var A = {};
31741 var B = {};
31742 // eslint-disable-next-line no-undef
31743 var S = Symbol();
31744 var K = 'abcdefghijklmnopqrst';
31745 A[S] = 7;
31746 K.split('').forEach(function (k) { B[k] = k; });
31747 return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
31748}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
31749 var T = toObject(target);
31750 var aLen = arguments.length;
31751 var index = 1;
31752 var getSymbols = gOPS.f;
31753 var isEnum = pIE.f;
31754 while (aLen > index) {
31755 var S = IObject(arguments[index++]);
31756 var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
31757 var length = keys.length;
31758 var j = 0;
31759 var key;
31760 while (length > j) {
31761 key = keys[j++];
31762 if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
31763 }
31764 } return T;
31765} : $assign;
31766
31767
31768/***/ }),
31769/* 211 */
31770/***/ (function(module, exports, __webpack_require__) {
31771
31772// false -> Array#indexOf
31773// true -> Array#includes
31774var toIObject = __webpack_require__(35);
31775var toLength = __webpack_require__(212);
31776var toAbsoluteIndex = __webpack_require__(213);
31777module.exports = function (IS_INCLUDES) {
31778 return function ($this, el, fromIndex) {
31779 var O = toIObject($this);
31780 var length = toLength(O.length);
31781 var index = toAbsoluteIndex(fromIndex, length);
31782 var value;
31783 // Array#includes uses SameValueZero equality algorithm
31784 // eslint-disable-next-line no-self-compare
31785 if (IS_INCLUDES && el != el) while (length > index) {
31786 value = O[index++];
31787 // eslint-disable-next-line no-self-compare
31788 if (value != value) return true;
31789 // Array#indexOf ignores holes, Array#includes - not
31790 } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
31791 if (O[index] === el) return IS_INCLUDES || index || 0;
31792 } return !IS_INCLUDES && -1;
31793 };
31794};
31795
31796
31797/***/ }),
31798/* 212 */
31799/***/ (function(module, exports, __webpack_require__) {
31800
31801// 7.1.15 ToLength
31802var toInteger = __webpack_require__(72);
31803var min = Math.min;
31804module.exports = function (it) {
31805 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
31806};
31807
31808
31809/***/ }),
31810/* 213 */
31811/***/ (function(module, exports, __webpack_require__) {
31812
31813var toInteger = __webpack_require__(72);
31814var max = Math.max;
31815var min = Math.min;
31816module.exports = function (index, length) {
31817 index = toInteger(index);
31818 return index < 0 ? max(index + length, 0) : min(index, length);
31819};
31820
31821
31822/***/ }),
31823/* 214 */
31824/***/ (function(module, exports, __webpack_require__) {
31825
31826module.exports = { "default": __webpack_require__(215), __esModule: true };
31827
31828/***/ }),
31829/* 215 */
31830/***/ (function(module, exports, __webpack_require__) {
31831
31832__webpack_require__(216);
31833__webpack_require__(222);
31834module.exports = __webpack_require__(81).f('iterator');
31835
31836
31837/***/ }),
31838/* 216 */
31839/***/ (function(module, exports, __webpack_require__) {
31840
31841"use strict";
31842
31843var $at = __webpack_require__(217)(true);
31844
31845// 21.1.3.27 String.prototype[@@iterator]()
31846__webpack_require__(118)(String, 'String', function (iterated) {
31847 this._t = String(iterated); // target
31848 this._i = 0; // next index
31849// 21.1.5.2.1 %StringIteratorPrototype%.next()
31850}, function () {
31851 var O = this._t;
31852 var index = this._i;
31853 var point;
31854 if (index >= O.length) return { value: undefined, done: true };
31855 point = $at(O, index);
31856 this._i += point.length;
31857 return { value: point, done: false };
31858});
31859
31860
31861/***/ }),
31862/* 217 */
31863/***/ (function(module, exports, __webpack_require__) {
31864
31865var toInteger = __webpack_require__(72);
31866var defined = __webpack_require__(71);
31867// true -> String#at
31868// false -> String#codePointAt
31869module.exports = function (TO_STRING) {
31870 return function (that, pos) {
31871 var s = String(defined(that));
31872 var i = toInteger(pos);
31873 var l = s.length;
31874 var a, b;
31875 if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
31876 a = s.charCodeAt(i);
31877 return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
31878 ? TO_STRING ? s.charAt(i) : a
31879 : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
31880 };
31881};
31882
31883
31884/***/ }),
31885/* 218 */
31886/***/ (function(module, exports, __webpack_require__) {
31887
31888"use strict";
31889
31890var create = __webpack_require__(79);
31891var descriptor = __webpack_require__(53);
31892var setToStringTag = __webpack_require__(80);
31893var IteratorPrototype = {};
31894
31895// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
31896__webpack_require__(33)(IteratorPrototype, __webpack_require__(36)('iterator'), function () { return this; });
31897
31898module.exports = function (Constructor, NAME, next) {
31899 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
31900 setToStringTag(Constructor, NAME + ' Iterator');
31901};
31902
31903
31904/***/ }),
31905/* 219 */
31906/***/ (function(module, exports, __webpack_require__) {
31907
31908var dP = __webpack_require__(26);
31909var anObject = __webpack_require__(46);
31910var getKeys = __webpack_require__(54);
31911
31912module.exports = __webpack_require__(25) ? Object.defineProperties : function defineProperties(O, Properties) {
31913 anObject(O);
31914 var keys = getKeys(Properties);
31915 var length = keys.length;
31916 var i = 0;
31917 var P;
31918 while (length > i) dP.f(O, P = keys[i++], Properties[P]);
31919 return O;
31920};
31921
31922
31923/***/ }),
31924/* 220 */
31925/***/ (function(module, exports, __webpack_require__) {
31926
31927var document = __webpack_require__(23).document;
31928module.exports = document && document.documentElement;
31929
31930
31931/***/ }),
31932/* 221 */
31933/***/ (function(module, exports, __webpack_require__) {
31934
31935// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
31936var has = __webpack_require__(27);
31937var toObject = __webpack_require__(77);
31938var IE_PROTO = __webpack_require__(73)('IE_PROTO');
31939var ObjectProto = Object.prototype;
31940
31941module.exports = Object.getPrototypeOf || function (O) {
31942 O = toObject(O);
31943 if (has(O, IE_PROTO)) return O[IE_PROTO];
31944 if (typeof O.constructor == 'function' && O instanceof O.constructor) {
31945 return O.constructor.prototype;
31946 } return O instanceof Object ? ObjectProto : null;
31947};
31948
31949
31950/***/ }),
31951/* 222 */
31952/***/ (function(module, exports, __webpack_require__) {
31953
31954__webpack_require__(223);
31955var global = __webpack_require__(23);
31956var hide = __webpack_require__(33);
31957var Iterators = __webpack_require__(78);
31958var TO_STRING_TAG = __webpack_require__(36)('toStringTag');
31959
31960var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
31961 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
31962 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
31963 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
31964 'TextTrackList,TouchList').split(',');
31965
31966for (var i = 0; i < DOMIterables.length; i++) {
31967 var NAME = DOMIterables[i];
31968 var Collection = global[NAME];
31969 var proto = Collection && Collection.prototype;
31970 if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
31971 Iterators[NAME] = Iterators.Array;
31972}
31973
31974
31975/***/ }),
31976/* 223 */
31977/***/ (function(module, exports, __webpack_require__) {
31978
31979"use strict";
31980
31981var addToUnscopables = __webpack_require__(224);
31982var step = __webpack_require__(225);
31983var Iterators = __webpack_require__(78);
31984var toIObject = __webpack_require__(35);
31985
31986// 22.1.3.4 Array.prototype.entries()
31987// 22.1.3.13 Array.prototype.keys()
31988// 22.1.3.29 Array.prototype.values()
31989// 22.1.3.30 Array.prototype[@@iterator]()
31990module.exports = __webpack_require__(118)(Array, 'Array', function (iterated, kind) {
31991 this._t = toIObject(iterated); // target
31992 this._i = 0; // next index
31993 this._k = kind; // kind
31994// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
31995}, function () {
31996 var O = this._t;
31997 var kind = this._k;
31998 var index = this._i++;
31999 if (!O || index >= O.length) {
32000 this._t = undefined;
32001 return step(1);
32002 }
32003 if (kind == 'keys') return step(0, index);
32004 if (kind == 'values') return step(0, O[index]);
32005 return step(0, [index, O[index]]);
32006}, 'values');
32007
32008// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
32009Iterators.Arguments = Iterators.Array;
32010
32011addToUnscopables('keys');
32012addToUnscopables('values');
32013addToUnscopables('entries');
32014
32015
32016/***/ }),
32017/* 224 */
32018/***/ (function(module, exports) {
32019
32020module.exports = function () { /* empty */ };
32021
32022
32023/***/ }),
32024/* 225 */
32025/***/ (function(module, exports) {
32026
32027module.exports = function (done, value) {
32028 return { value: value, done: !!done };
32029};
32030
32031
32032/***/ }),
32033/* 226 */
32034/***/ (function(module, exports, __webpack_require__) {
32035
32036module.exports = { "default": __webpack_require__(227), __esModule: true };
32037
32038/***/ }),
32039/* 227 */
32040/***/ (function(module, exports, __webpack_require__) {
32041
32042__webpack_require__(228);
32043__webpack_require__(233);
32044__webpack_require__(234);
32045__webpack_require__(235);
32046module.exports = __webpack_require__(24).Symbol;
32047
32048
32049/***/ }),
32050/* 228 */
32051/***/ (function(module, exports, __webpack_require__) {
32052
32053"use strict";
32054
32055// ECMAScript 6 symbols shim
32056var global = __webpack_require__(23);
32057var has = __webpack_require__(27);
32058var DESCRIPTORS = __webpack_require__(25);
32059var $export = __webpack_require__(32);
32060var redefine = __webpack_require__(119);
32061var META = __webpack_require__(229).KEY;
32062var $fails = __webpack_require__(47);
32063var shared = __webpack_require__(74);
32064var setToStringTag = __webpack_require__(80);
32065var uid = __webpack_require__(56);
32066var wks = __webpack_require__(36);
32067var wksExt = __webpack_require__(81);
32068var wksDefine = __webpack_require__(82);
32069var enumKeys = __webpack_require__(230);
32070var isArray = __webpack_require__(231);
32071var anObject = __webpack_require__(46);
32072var isObject = __webpack_require__(34);
32073var toObject = __webpack_require__(77);
32074var toIObject = __webpack_require__(35);
32075var toPrimitive = __webpack_require__(70);
32076var createDesc = __webpack_require__(53);
32077var _create = __webpack_require__(79);
32078var gOPNExt = __webpack_require__(232);
32079var $GOPD = __webpack_require__(121);
32080var $GOPS = __webpack_require__(76);
32081var $DP = __webpack_require__(26);
32082var $keys = __webpack_require__(54);
32083var gOPD = $GOPD.f;
32084var dP = $DP.f;
32085var gOPN = gOPNExt.f;
32086var $Symbol = global.Symbol;
32087var $JSON = global.JSON;
32088var _stringify = $JSON && $JSON.stringify;
32089var PROTOTYPE = 'prototype';
32090var HIDDEN = wks('_hidden');
32091var TO_PRIMITIVE = wks('toPrimitive');
32092var isEnum = {}.propertyIsEnumerable;
32093var SymbolRegistry = shared('symbol-registry');
32094var AllSymbols = shared('symbols');
32095var OPSymbols = shared('op-symbols');
32096var ObjectProto = Object[PROTOTYPE];
32097var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
32098var QObject = global.QObject;
32099// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
32100var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
32101
32102// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
32103var setSymbolDesc = DESCRIPTORS && $fails(function () {
32104 return _create(dP({}, 'a', {
32105 get: function () { return dP(this, 'a', { value: 7 }).a; }
32106 })).a != 7;
32107}) ? function (it, key, D) {
32108 var protoDesc = gOPD(ObjectProto, key);
32109 if (protoDesc) delete ObjectProto[key];
32110 dP(it, key, D);
32111 if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
32112} : dP;
32113
32114var wrap = function (tag) {
32115 var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
32116 sym._k = tag;
32117 return sym;
32118};
32119
32120var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
32121 return typeof it == 'symbol';
32122} : function (it) {
32123 return it instanceof $Symbol;
32124};
32125
32126var $defineProperty = function defineProperty(it, key, D) {
32127 if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
32128 anObject(it);
32129 key = toPrimitive(key, true);
32130 anObject(D);
32131 if (has(AllSymbols, key)) {
32132 if (!D.enumerable) {
32133 if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
32134 it[HIDDEN][key] = true;
32135 } else {
32136 if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
32137 D = _create(D, { enumerable: createDesc(0, false) });
32138 } return setSymbolDesc(it, key, D);
32139 } return dP(it, key, D);
32140};
32141var $defineProperties = function defineProperties(it, P) {
32142 anObject(it);
32143 var keys = enumKeys(P = toIObject(P));
32144 var i = 0;
32145 var l = keys.length;
32146 var key;
32147 while (l > i) $defineProperty(it, key = keys[i++], P[key]);
32148 return it;
32149};
32150var $create = function create(it, P) {
32151 return P === undefined ? _create(it) : $defineProperties(_create(it), P);
32152};
32153var $propertyIsEnumerable = function propertyIsEnumerable(key) {
32154 var E = isEnum.call(this, key = toPrimitive(key, true));
32155 if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
32156 return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
32157};
32158var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
32159 it = toIObject(it);
32160 key = toPrimitive(key, true);
32161 if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
32162 var D = gOPD(it, key);
32163 if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
32164 return D;
32165};
32166var $getOwnPropertyNames = function getOwnPropertyNames(it) {
32167 var names = gOPN(toIObject(it));
32168 var result = [];
32169 var i = 0;
32170 var key;
32171 while (names.length > i) {
32172 if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
32173 } return result;
32174};
32175var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
32176 var IS_OP = it === ObjectProto;
32177 var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
32178 var result = [];
32179 var i = 0;
32180 var key;
32181 while (names.length > i) {
32182 if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
32183 } return result;
32184};
32185
32186// 19.4.1.1 Symbol([description])
32187if (!USE_NATIVE) {
32188 $Symbol = function Symbol() {
32189 if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
32190 var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
32191 var $set = function (value) {
32192 if (this === ObjectProto) $set.call(OPSymbols, value);
32193 if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
32194 setSymbolDesc(this, tag, createDesc(1, value));
32195 };
32196 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
32197 return wrap(tag);
32198 };
32199 redefine($Symbol[PROTOTYPE], 'toString', function toString() {
32200 return this._k;
32201 });
32202
32203 $GOPD.f = $getOwnPropertyDescriptor;
32204 $DP.f = $defineProperty;
32205 __webpack_require__(120).f = gOPNExt.f = $getOwnPropertyNames;
32206 __webpack_require__(57).f = $propertyIsEnumerable;
32207 $GOPS.f = $getOwnPropertySymbols;
32208
32209 if (DESCRIPTORS && !__webpack_require__(55)) {
32210 redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
32211 }
32212
32213 wksExt.f = function (name) {
32214 return wrap(wks(name));
32215 };
32216}
32217
32218$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
32219
32220for (var es6Symbols = (
32221 // 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
32222 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
32223).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
32224
32225for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
32226
32227$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
32228 // 19.4.2.1 Symbol.for(key)
32229 'for': function (key) {
32230 return has(SymbolRegistry, key += '')
32231 ? SymbolRegistry[key]
32232 : SymbolRegistry[key] = $Symbol(key);
32233 },
32234 // 19.4.2.5 Symbol.keyFor(sym)
32235 keyFor: function keyFor(sym) {
32236 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
32237 for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
32238 },
32239 useSetter: function () { setter = true; },
32240 useSimple: function () { setter = false; }
32241});
32242
32243$export($export.S + $export.F * !USE_NATIVE, 'Object', {
32244 // 19.1.2.2 Object.create(O [, Properties])
32245 create: $create,
32246 // 19.1.2.4 Object.defineProperty(O, P, Attributes)
32247 defineProperty: $defineProperty,
32248 // 19.1.2.3 Object.defineProperties(O, Properties)
32249 defineProperties: $defineProperties,
32250 // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
32251 getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
32252 // 19.1.2.7 Object.getOwnPropertyNames(O)
32253 getOwnPropertyNames: $getOwnPropertyNames,
32254 // 19.1.2.8 Object.getOwnPropertySymbols(O)
32255 getOwnPropertySymbols: $getOwnPropertySymbols
32256});
32257
32258// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
32259// https://bugs.chromium.org/p/v8/issues/detail?id=3443
32260var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });
32261
32262$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
32263 getOwnPropertySymbols: function getOwnPropertySymbols(it) {
32264 return $GOPS.f(toObject(it));
32265 }
32266});
32267
32268// 24.3.2 JSON.stringify(value [, replacer [, space]])
32269$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
32270 var S = $Symbol();
32271 // MS Edge converts symbol values to JSON as {}
32272 // WebKit converts symbol values to JSON as null
32273 // V8 throws on boxed symbols
32274 return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
32275})), 'JSON', {
32276 stringify: function stringify(it) {
32277 var args = [it];
32278 var i = 1;
32279 var replacer, $replacer;
32280 while (arguments.length > i) args.push(arguments[i++]);
32281 $replacer = replacer = args[1];
32282 if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
32283 if (!isArray(replacer)) replacer = function (key, value) {
32284 if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
32285 if (!isSymbol(value)) return value;
32286 };
32287 args[1] = replacer;
32288 return _stringify.apply($JSON, args);
32289 }
32290});
32291
32292// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
32293$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(33)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
32294// 19.4.3.5 Symbol.prototype[@@toStringTag]
32295setToStringTag($Symbol, 'Symbol');
32296// 20.2.1.9 Math[@@toStringTag]
32297setToStringTag(Math, 'Math', true);
32298// 24.3.3 JSON[@@toStringTag]
32299setToStringTag(global.JSON, 'JSON', true);
32300
32301
32302/***/ }),
32303/* 229 */
32304/***/ (function(module, exports, __webpack_require__) {
32305
32306var META = __webpack_require__(56)('meta');
32307var isObject = __webpack_require__(34);
32308var has = __webpack_require__(27);
32309var setDesc = __webpack_require__(26).f;
32310var id = 0;
32311var isExtensible = Object.isExtensible || function () {
32312 return true;
32313};
32314var FREEZE = !__webpack_require__(47)(function () {
32315 return isExtensible(Object.preventExtensions({}));
32316});
32317var setMeta = function (it) {
32318 setDesc(it, META, { value: {
32319 i: 'O' + ++id, // object ID
32320 w: {} // weak collections IDs
32321 } });
32322};
32323var fastKey = function (it, create) {
32324 // return primitive with prefix
32325 if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
32326 if (!has(it, META)) {
32327 // can't set metadata to uncaught frozen object
32328 if (!isExtensible(it)) return 'F';
32329 // not necessary to add metadata
32330 if (!create) return 'E';
32331 // add missing metadata
32332 setMeta(it);
32333 // return object ID
32334 } return it[META].i;
32335};
32336var getWeak = function (it, create) {
32337 if (!has(it, META)) {
32338 // can't set metadata to uncaught frozen object
32339 if (!isExtensible(it)) return true;
32340 // not necessary to add metadata
32341 if (!create) return false;
32342 // add missing metadata
32343 setMeta(it);
32344 // return hash weak collections IDs
32345 } return it[META].w;
32346};
32347// add metadata on freeze-family methods calling
32348var onFreeze = function (it) {
32349 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
32350 return it;
32351};
32352var meta = module.exports = {
32353 KEY: META,
32354 NEED: false,
32355 fastKey: fastKey,
32356 getWeak: getWeak,
32357 onFreeze: onFreeze
32358};
32359
32360
32361/***/ }),
32362/* 230 */
32363/***/ (function(module, exports, __webpack_require__) {
32364
32365// all enumerable object keys, includes symbols
32366var getKeys = __webpack_require__(54);
32367var gOPS = __webpack_require__(76);
32368var pIE = __webpack_require__(57);
32369module.exports = function (it) {
32370 var result = getKeys(it);
32371 var getSymbols = gOPS.f;
32372 if (getSymbols) {
32373 var symbols = getSymbols(it);
32374 var isEnum = pIE.f;
32375 var i = 0;
32376 var key;
32377 while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
32378 } return result;
32379};
32380
32381
32382/***/ }),
32383/* 231 */
32384/***/ (function(module, exports, __webpack_require__) {
32385
32386// 7.2.2 IsArray(argument)
32387var cof = __webpack_require__(117);
32388module.exports = Array.isArray || function isArray(arg) {
32389 return cof(arg) == 'Array';
32390};
32391
32392
32393/***/ }),
32394/* 232 */
32395/***/ (function(module, exports, __webpack_require__) {
32396
32397// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
32398var toIObject = __webpack_require__(35);
32399var gOPN = __webpack_require__(120).f;
32400var toString = {}.toString;
32401
32402var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
32403 ? Object.getOwnPropertyNames(window) : [];
32404
32405var getWindowNames = function (it) {
32406 try {
32407 return gOPN(it);
32408 } catch (e) {
32409 return windowNames.slice();
32410 }
32411};
32412
32413module.exports.f = function getOwnPropertyNames(it) {
32414 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
32415};
32416
32417
32418/***/ }),
32419/* 233 */
32420/***/ (function(module, exports) {
32421
32422
32423
32424/***/ }),
32425/* 234 */
32426/***/ (function(module, exports, __webpack_require__) {
32427
32428__webpack_require__(82)('asyncIterator');
32429
32430
32431/***/ }),
32432/* 235 */
32433/***/ (function(module, exports, __webpack_require__) {
32434
32435__webpack_require__(82)('observable');
32436
32437
32438/***/ }),
32439/* 236 */
32440/***/ (function(module, exports, __webpack_require__) {
32441
32442module.exports = { "default": __webpack_require__(237), __esModule: true };
32443
32444/***/ }),
32445/* 237 */
32446/***/ (function(module, exports, __webpack_require__) {
32447
32448__webpack_require__(238);
32449module.exports = __webpack_require__(24).Object.setPrototypeOf;
32450
32451
32452/***/ }),
32453/* 238 */
32454/***/ (function(module, exports, __webpack_require__) {
32455
32456// 19.1.3.19 Object.setPrototypeOf(O, proto)
32457var $export = __webpack_require__(32);
32458$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(239).set });
32459
32460
32461/***/ }),
32462/* 239 */
32463/***/ (function(module, exports, __webpack_require__) {
32464
32465// Works with __proto__ only. Old v8 can't work with null proto objects.
32466/* eslint-disable no-proto */
32467var isObject = __webpack_require__(34);
32468var anObject = __webpack_require__(46);
32469var check = function (O, proto) {
32470 anObject(O);
32471 if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
32472};
32473module.exports = {
32474 set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
32475 function (test, buggy, set) {
32476 try {
32477 set = __webpack_require__(112)(Function.call, __webpack_require__(121).f(Object.prototype, '__proto__').set, 2);
32478 set(test, []);
32479 buggy = !(test instanceof Array);
32480 } catch (e) { buggy = true; }
32481 return function setPrototypeOf(O, proto) {
32482 check(O, proto);
32483 if (buggy) O.__proto__ = proto;
32484 else set(O, proto);
32485 return O;
32486 };
32487 }({}, false) : undefined),
32488 check: check
32489};
32490
32491
32492/***/ }),
32493/* 240 */
32494/***/ (function(module, exports, __webpack_require__) {
32495
32496module.exports = { "default": __webpack_require__(241), __esModule: true };
32497
32498/***/ }),
32499/* 241 */
32500/***/ (function(module, exports, __webpack_require__) {
32501
32502__webpack_require__(242);
32503var $Object = __webpack_require__(24).Object;
32504module.exports = function create(P, D) {
32505 return $Object.create(P, D);
32506};
32507
32508
32509/***/ }),
32510/* 242 */
32511/***/ (function(module, exports, __webpack_require__) {
32512
32513var $export = __webpack_require__(32);
32514// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
32515$export($export.S, 'Object', { create: __webpack_require__(79) });
32516
32517
32518/***/ }),
32519/* 243 */
32520/***/ (function(module, exports, __webpack_require__) {
32521
32522"use strict";
32523/**
32524 * Copyright (c) 2013-present, Facebook, Inc.
32525 *
32526 * This source code is licensed under the MIT license found in the
32527 * LICENSE file in the root directory of this source tree.
32528 */
32529
32530
32531
32532var ReactPropTypesSecret = __webpack_require__(244);
32533
32534function emptyFunction() {}
32535function emptyFunctionWithReset() {}
32536emptyFunctionWithReset.resetWarningCache = emptyFunction;
32537
32538module.exports = function() {
32539 function shim(props, propName, componentName, location, propFullName, secret) {
32540 if (secret === ReactPropTypesSecret) {
32541 // It is still safe when called from React.
32542 return;
32543 }
32544 var err = new Error(
32545 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
32546 'Use PropTypes.checkPropTypes() to call them. ' +
32547 'Read more at http://fb.me/use-check-prop-types'
32548 );
32549 err.name = 'Invariant Violation';
32550 throw err;
32551 };
32552 shim.isRequired = shim;
32553 function getShim() {
32554 return shim;
32555 };
32556 // Important!
32557 // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
32558 var ReactPropTypes = {
32559 array: shim,
32560 bigint: shim,
32561 bool: shim,
32562 func: shim,
32563 number: shim,
32564 object: shim,
32565 string: shim,
32566 symbol: shim,
32567
32568 any: shim,
32569 arrayOf: getShim,
32570 element: shim,
32571 elementType: shim,
32572 instanceOf: getShim,
32573 node: shim,
32574 objectOf: getShim,
32575 oneOf: getShim,
32576 oneOfType: getShim,
32577 shape: getShim,
32578 exact: getShim,
32579
32580 checkPropTypes: emptyFunctionWithReset,
32581 resetWarningCache: emptyFunction
32582 };
32583
32584 ReactPropTypes.PropTypes = ReactPropTypes;
32585
32586 return ReactPropTypes;
32587};
32588
32589
32590/***/ }),
32591/* 244 */
32592/***/ (function(module, exports, __webpack_require__) {
32593
32594"use strict";
32595/**
32596 * Copyright (c) 2013-present, Facebook, Inc.
32597 *
32598 * This source code is licensed under the MIT license found in the
32599 * LICENSE file in the root directory of this source tree.
32600 */
32601
32602
32603
32604var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
32605
32606module.exports = ReactPropTypesSecret;
32607
32608
32609/***/ }),
32610/* 245 */
32611/***/ (function(module, exports, __webpack_require__) {
32612
32613"use strict";
32614
32615
32616exports.__esModule = true;
32617exports.on = on;
32618exports.once = once;
32619/**
32620 * 取消事件绑定
32621 * @param {*} node DOM节点或任何可以绑定事件的对象
32622 * @param {String} eventName 事件名
32623 * @param {Function} callback 回调方法
32624 * @param {Boolean} [useCapture=false] 是否开启事件捕获优先
32625 */
32626function _off(node, eventName, callback, useCapture) {
32627 /* istanbul ignore else */
32628 if (node.removeEventListener) {
32629 node.removeEventListener(eventName, callback, useCapture || false);
32630 }
32631}
32632
32633/**
32634 * 绑定事件
32635 * @param {*} node DOM节点或任何可以绑定事件的对象
32636 * @param {String} eventName 事件名
32637 * @param {Function} callback 回调方法
32638 * @param {Boolean} useCapture 是否开启事件捕获优先
32639 * @return {Object} 返回的object中包含一个off方法,用于取消事件监听
32640 *
32641 * @example
32642 * const handler = events.on(document.body, 'click', e => {
32643 * // handle click ...
32644 * });
32645 * // 取消事件绑定
32646 * handler.off();
32647 */
32648exports.off = _off;
32649function on(node, eventName, callback, useCapture) {
32650 /* istanbul ignore else */
32651 if (node.addEventListener) {
32652 node.addEventListener(eventName, callback, useCapture || false);
32653 }
32654
32655 return {
32656 off: function off() {
32657 return _off(node, eventName, callback, useCapture);
32658 }
32659 };
32660}
32661
32662/**
32663 * 绑定事件,只执行一次后销毁
32664 * @param {*} node DOM节点或任何可以绑定事件的对象
32665 * @param {String} eventName 事件名
32666 * @param {Function} callback 回调方法
32667 * @param {Boolean} useCapture 是否开启事件捕获优先
32668 * @return {Function} 返回的object中包含一个off方法,用于取消事件监听
32669 */
32670function once(node, eventName, callback, useCapture) {
32671 return on(node, eventName, function __fn() {
32672 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
32673 args[_key] = arguments[_key];
32674 }
32675
32676 callback.apply(this, args);
32677
32678 // 由于addEventListener中的参数options只在Chrome 55、Firefox(Gecko)以上版本支持,故还是用传统的方法实现once
32679 _off(node, eventName, __fn, useCapture);
32680 }, useCapture);
32681}
32682
32683/***/ }),
32684/* 246 */
32685/***/ (function(module, exports, __webpack_require__) {
32686
32687"use strict";
32688
32689
32690exports.__esModule = true;
32691exports.prevent = exports.noop = undefined;
32692exports.makeChain = makeChain;
32693exports.bindCtx = bindCtx;
32694exports.promiseCall = promiseCall;
32695exports.invoke = invoke;
32696exports.renderNode = renderNode;
32697exports.checkDate = checkDate;
32698exports.checkRangeDate = checkRangeDate;
32699
32700var _object = __webpack_require__(37);
32701
32702var _date = __webpack_require__(83);
32703
32704var _date2 = _interopRequireDefault(_date);
32705
32706function _interopRequireDefault(obj) {
32707 return obj && obj.__esModule ? obj : { default: obj };
32708}
32709
32710/**
32711 * 一个空方法,返回入参本身或空对象
32712 */
32713var noop = exports.noop = function noop() {};
32714
32715/**
32716 * 一个空方法,返回false
32717 */
32718var prevent = exports.prevent = function prevent() {
32719 return false;
32720};
32721
32722/**
32723 * 将N个方法合并为一个链式调用的方法
32724 * @return {Function} 合并后的方法
32725 * 参考 https://github.com/react-component/util/
32726 *
32727 * @example
32728 * func.makeChain(this.handleChange, this.props.onChange);
32729 */
32730function makeChain() {
32731 for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {
32732 fns[_key] = arguments[_key];
32733 }
32734
32735 if (fns.length === 1) {
32736 return fns[0];
32737 }
32738
32739 return function chainedFunction() {
32740 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
32741 args[_key2] = arguments[_key2];
32742 }
32743
32744 for (var i = 0, j = fns.length; i < j; i++) {
32745 if (fns[i] && fns[i].apply) {
32746 fns[i].apply(this, args);
32747 }
32748 }
32749 };
32750}
32751
32752/**
32753 * 批量改变方法的上下文
32754 * 此方法在react组件中很有用,在constructor中批量将组件上的方法执行上下文绑定到组件本身
32755 * 注意:用bind改变函数运行的上下文只会生效一次
32756 * @param {Object} ctx 方法挂载的对象以及执行的上下文
32757 * @param {Array<String>} fns 方法名列表
32758 *
32759 * @example
32760 * func.bindCtx(this, ['handleClick', 'handleChange']);
32761 */
32762function bindCtx(ctx, fns, ns) {
32763 if (typeof fns === 'string') {
32764 fns = [fns];
32765 }
32766
32767 // 方法的挂载空间,如果不传,默认与ctx相同
32768 ns = ns || ctx;
32769
32770 fns.forEach(function (fnName) {
32771 // 这里不要添加空方法判断,由调用者保证正确性,否则出了问题无法排查
32772 ns[fnName] = ns[fnName].bind(ctx);
32773 });
32774}
32775
32776/**
32777 * 用于执行回调方法后的逻辑
32778 * @param {*} ret 回调方法执行结果
32779 * @param {Function} success 执行结果返回非false的回调
32780 * @param {Function} [failure=noop] 执行结果返回false的回调
32781 */
32782function promiseCall(ret, success) {
32783 var failure = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : noop;
32784
32785 if ((0, _object.isPromise)(ret)) {
32786 return ret.then(function (result) {
32787 success(result);
32788 return result;
32789 }).catch(function (e) {
32790 failure(e);
32791 // throw e;
32792 });
32793 }
32794
32795 return ret !== false ? success(ret) : failure(ret);
32796}
32797
32798/**
32799 * 方法调用,如果obj对象中存在名为method的方法则调用该方法
32800 * @param {Object} target 目标对象
32801 * @param {string} method 方法名
32802 * @param {Array} args 函数参数列表
32803 * @returns {*} 函数返回值 如果不存在返回undefined
32804 */
32805function invoke(target, method, args) {
32806 var func = target && method in target ? target[method] : undefined;
32807 return func && func.apply(undefined, args);
32808}
32809
32810function renderNode(render, defaultRender) {
32811 var renderProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
32812
32813 var r = render !== undefined ? render : defaultRender;
32814
32815 if (renderProps && !Array.isArray(renderProps)) {
32816 renderProps = [renderProps];
32817 }
32818 return typeof r === 'function' ? r.apply(undefined, renderProps) : r;
32819}
32820
32821/**
32822 * 日期检验:无效值返回 null
32823 * @param {dayjs.ConfigType} value
32824 * @returns {Dayjs | null}
32825 */
32826function checkDate(value) {
32827 /**
32828 * 因为 datejs(undefined) 表示当前时间
32829 * 但是这里期望的是一个空值,即用户不输入值的时候显示为空
32830 */
32831 if (value === undefined) {
32832 value = null;
32833 }
32834
32835 value = (0, _date2.default)(value);
32836 return value.isValid() ? value : null;
32837}
32838
32839/**
32840 * Range 日期检验
32841 * @param {dayjs.ConfigType[]} value 日期值
32842 * @param {number} inputType 输入框类型:开始时间输入框/结束时间输入框
32843 * @param {boolean} disabled 是否禁用
32844 * @param {boolean} strictly 是否严格校验:严格模式下不允许开始时间大于结束时间,在显示确认按键的,用户输入过程可不严格校验
32845 * @returns {Dayjs[] | null[]}
32846 */
32847function checkRangeDate(value, inputType, disabled) {
32848 var strictly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
32849
32850 var _ref = Array.isArray(value) ? [0, 1].map(function (i) {
32851 return checkDate(value[i]);
32852 }) : [null, null],
32853 begin = _ref[0],
32854 end = _ref[1];
32855
32856 var _ref2 = Array.isArray(disabled) ? disabled : [disabled, disabled],
32857 disabledBegin = _ref2[0],
32858 disabledEnd = _ref2[1];
32859
32860 /**
32861 * 需要清除其中一个时间,优先清除结束时间,下面情况清除开始时间:
32862 * 1. 结束时间被 disabled 而开始时间没有被 disabled
32863 * 2. 开始时间和结束时间都没被 disabled 且当前正在输入是结束时间
32864 */
32865
32866 if (strictly && begin && end && begin.isAfter(end)) {
32867 if (!disabledBegin && disabledEnd ||
32868 // 本来是 (!disabledBegin && !disabledBegin && inputType === DATE_INPUT_TYPE.END)
32869 !disabledBegin && !disabledBegin && inputType === 1) {
32870 return [null, end];
32871 }
32872
32873 return [begin, null];
32874 }
32875
32876 return [begin, end];
32877}
32878
32879/***/ }),
32880/* 247 */
32881/***/ (function(module, exports, __webpack_require__) {
32882
32883!function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){"use strict";var e={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"},t=/(\[[^[]*\])|([-_:/.,()\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(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?"pm":"PM");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],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(e){var t=o.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],M:[r,a("month")],MM:[n,a("month")],MMM:[i,function(e){var t=h("months"),n=(h("monthsShort")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,a("year")],YY:[n,function(e){this.year=s(e)}],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(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f<a;f+=1){var h=s[f],u=d[h],c=u&&u[0],l=u&&u[1];s[f]=l?{regex:c,parser:l}:h.replace(/^\[|\]$/g,"")}return function(e){for(var t={},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,h=e.slice(r),u=o.exec(h)[0];f.call(t,u),e=e.replace(u,"")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,s=e.args;this.$u=r;var a=s[1];if("string"==typeof a){var f=!0===s[2],h=!0===s[3],u=f||h,d=s[2];h&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if(["x","X"].indexOf(t)>-1)return new Date(("X"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=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=h||0,g=u||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(e){return new Date("")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=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,e)}}}));
32884
32885/***/ }),
32886/* 248 */
32887/***/ (function(module, exports, __webpack_require__) {
32888
32889!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}}}));
32890
32891/***/ }),
32892/* 249 */
32893/***/ (function(module, exports, __webpack_require__) {
32894
32895!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.slice(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)}}}));
32896
32897/***/ }),
32898/* 250 */
32899/***/ (function(module, exports, __webpack_require__) {
32900
32901!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)}}}));
32902
32903/***/ }),
32904/* 251 */
32905/***/ (function(module, exports, __webpack_require__) {
32906
32907!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)}}}));
32908
32909/***/ }),
32910/* 252 */
32911/***/ (function(module, exports, __webpack_require__) {
32912
32913!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)}}}));
32914
32915/***/ }),
32916/* 253 */
32917/***/ (function(module, exports, __webpack_require__) {
32918
32919!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}));
32920
32921/***/ }),
32922/* 254 */
32923/***/ (function(module, exports, __webpack_require__) {
32924
32925"use strict";
32926
32927
32928exports.__esModule = true;
32929exports.flex = exports.transition = exports.animation = undefined;
32930
32931var _dom = __webpack_require__(123);
32932
32933var _object = __webpack_require__(37);
32934
32935var animationEndEventNames = {
32936 WebkitAnimation: 'webkitAnimationEnd',
32937 OAnimation: 'oAnimationEnd',
32938 animation: 'animationend'
32939};
32940
32941var transitionEventNames = {
32942 WebkitTransition: 'webkitTransitionEnd',
32943 OTransition: 'oTransitionEnd',
32944 transition: 'transitionend'
32945};
32946
32947/**
32948 * 是否支持某些动效事件,如果支持,返回相应的end事件名
32949 * @private
32950 * @param {Object<String>} names
32951 * @return {Object|false}
32952 */
32953function _supportEnd(names) {
32954 /* istanbul ignore if */
32955 if (!_dom.hasDOM) {
32956 return false;
32957 }
32958
32959 var el = document.createElement('div');
32960 var ret = false;
32961
32962 (0, _object.each)(names, function (val, key) {
32963 /* istanbul ignore else */
32964 if (el.style[key] !== undefined) {
32965 ret = { end: val };
32966 return false;
32967 }
32968 });
32969
32970 return ret;
32971}
32972
32973/**
32974 * 是否支持某些CSS属性
32975 * @private
32976 * @param {Object<Array<String>>} names
32977 * @return {Boolean} is support
32978 */
32979function _supportCSS(names) {
32980 /* istanbul ignore if */
32981 if (!_dom.hasDOM) {
32982 return false;
32983 }
32984
32985 var el = document.createElement('div');
32986 var ret = false;
32987
32988 (0, _object.each)(names, function (val, key) {
32989 (0, _object.each)(val, function (item) {
32990 try {
32991 el.style[key] = item;
32992 ret = ret || el.style[key] === item;
32993 } catch (e) {
32994 // It will be throw error when set unknown property under IE8
32995 }
32996 return !ret; // 如果有一个支持就返回false,后面不需要再判断
32997 });
32998
32999 return !ret;
33000 });
33001
33002 return ret;
33003}
33004
33005/**
33006 * 是否支持animation以及动画结束事件名
33007 * @type {Object|false}
33008 * @property {String} end 动画结束事件名
33009 */
33010var animation = exports.animation = _supportEnd(animationEndEventNames);
33011
33012/**
33013 * 是否支持transition以及过滤效果结束事件名
33014 * @type {Object|false}
33015 * @property {String} end 过渡效果结束事件名
33016 */
33017var transition = exports.transition = _supportEnd(transitionEventNames);
33018
33019/**
33020 * 是否支持flex属性
33021 * @type {Boolean}
33022 */
33023var flex = exports.flex = _supportCSS({
33024 display: ['flex', '-webkit-flex', '-moz-flex', '-ms-flexbox']
33025});
33026
33027/***/ }),
33028/* 255 */
33029/***/ (function(module, exports, __webpack_require__) {
33030
33031"use strict";
33032
33033
33034exports.__esModule = true;
33035exports.getFocusNodeList = getFocusNodeList;
33036exports.saveLastFocusNode = saveLastFocusNode;
33037exports.clearLastFocusNode = clearLastFocusNode;
33038exports.backLastFocusNode = backLastFocusNode;
33039exports.limitTabRange = limitTabRange;
33040
33041var _keycode = __webpack_require__(128);
33042
33043var _keycode2 = _interopRequireDefault(_keycode);
33044
33045var _object = __webpack_require__(37);
33046
33047function _interopRequireDefault(obj) {
33048 return obj && obj.__esModule ? obj : { default: obj };
33049}
33050
33051/**
33052 * 用于切换页面元素的焦点
33053 */
33054
33055/**
33056 * 元素是否可见
33057 * @private
33058 * @param {Element} node
33059 * @return {Boolean}
33060 */
33061function _isVisible(node) {
33062 while (node) {
33063 var _node = node,
33064 nodeName = _node.nodeName;
33065
33066 if (nodeName === 'BODY' || nodeName === 'HTML') {
33067 break;
33068 }
33069 if (node.style.display === 'none' || node.style.visibility === 'hidden') {
33070 return false;
33071 }
33072 node = node.parentNode;
33073 }
33074 return true;
33075}
33076
33077/**
33078 * 元素是否可以获取焦点
33079 * @private
33080 * @param {Element} node
33081 * @return {Boolean}
33082 */
33083function _isFocusable(node) {
33084 var nodeName = node.nodeName.toLowerCase();
33085 var tabIndex = parseInt(node.getAttribute('tabindex'), 10);
33086 var hasTabIndex = !isNaN(tabIndex) && tabIndex > -1;
33087
33088 if (_isVisible(node)) {
33089 if (nodeName === 'input') {
33090 return !node.disabled && node.type !== 'hidden';
33091 } else if (['select', 'textarea', 'button'].indexOf(nodeName) > -1) {
33092 return !node.disabled;
33093 } else if (nodeName === 'a') {
33094 return node.getAttribute('href') || hasTabIndex;
33095 } else {
33096 return hasTabIndex;
33097 }
33098 }
33099 return false;
33100}
33101
33102/**
33103 * 列出能获取焦点的子节点
33104 * @param {Element} node 容器节点
33105 * @return {Array<Element>}
33106 */
33107function getFocusNodeList(node) {
33108 var res = [];
33109 var nodeList = node.querySelectorAll('*');
33110
33111 (0, _object.each)(nodeList, function (item) {
33112 if (_isFocusable(item)) {
33113 var method = item.getAttribute('data-auto-focus') ? 'unshift' : 'push';
33114 res[method](item);
33115 }
33116 });
33117
33118 if (_isFocusable(node)) {
33119 res.unshift(node);
33120 }
33121
33122 return res;
33123}
33124
33125// 用于记录上一次获得焦点的无素
33126var lastFocusElement = null;
33127
33128/**
33129 * 保存最近一次获得焦点的无素
33130 */
33131function saveLastFocusNode() {
33132 lastFocusElement = document.activeElement;
33133}
33134
33135/**
33136 * 清除焦点记录
33137 */
33138function clearLastFocusNode() {
33139 lastFocusElement = null;
33140}
33141
33142/**
33143 * 尝试将焦点切换到上一个元素
33144 */
33145function backLastFocusNode() {
33146 if (lastFocusElement) {
33147 try {
33148 // 元素可能已经被移动了
33149 lastFocusElement.focus();
33150 } catch (e) {
33151 // ignore ...
33152 }
33153 }
33154}
33155
33156/**
33157 * 在限制的范围内切换焦点
33158 * @param {Element} node 容器节点
33159 * @param {Event} e 键盘事件
33160 */
33161function limitTabRange(node, e) {
33162 if (e.keyCode === _keycode2.default.TAB) {
33163 var tabNodeList = getFocusNodeList(node);
33164 var maxIndex = tabNodeList.length - 1;
33165 var index = tabNodeList.indexOf(document.activeElement);
33166
33167 if (index > -1) {
33168 var targetIndex = index + (e.shiftKey ? -1 : 1);
33169 targetIndex < 0 && (targetIndex = maxIndex);
33170 targetIndex > maxIndex && (targetIndex = 0);
33171 tabNodeList[targetIndex].focus();
33172 e.preventDefault();
33173 }
33174 }
33175}
33176
33177/***/ }),
33178/* 256 */
33179/***/ (function(module, exports, __webpack_require__) {
33180
33181"use strict";
33182
33183
33184exports.__esModule = true;
33185
33186var _typeof2 = __webpack_require__(14);
33187
33188var _typeof3 = _interopRequireDefault(_typeof2);
33189
33190exports.randomId = randomId;
33191exports.escapeForId = escapeForId;
33192
33193function _interopRequireDefault(obj) {
33194 return obj && obj.__esModule ? obj : { default: obj };
33195}
33196
33197/**
33198 * Generate a string to be used for HTML id attributes
33199 *
33200 * @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
33201 * @param {Number} max - range for the random number generator. Defaults to 1,000,000, but can be set higher if necessary.
33202 * @returns {String}
33203 */
33204function randomId(prefix) {
33205 var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000000;
33206
33207 var rand = Math.ceil(Math.random() * max);
33208
33209 return prefix ? escapeForId(prefix) + '-' + rand : rand.toString(10);
33210}
33211
33212/**
33213 * Replace characters not allowed for HTML id attributes
33214 *
33215 * @param {String} text
33216 * @returns {String}
33217 */
33218function escapeForId(text) {
33219 if (!text) {
33220 return '';
33221 }
33222
33223 if ((typeof text === 'undefined' ? 'undefined' : (0, _typeof3.default)(text)) === 'object') {
33224 text = JSON.stringify(text);
33225 } else if (typeof text !== 'string') {
33226 text = String(text);
33227 }
33228
33229 return text.replace(/['"]/gm, '').replace(/[\s'"]/gm, '-');
33230}
33231
33232/***/ }),
33233/* 257 */
33234/***/ (function(module, exports, __webpack_require__) {
33235
33236"use strict";
33237
33238
33239exports.__esModule = true;
33240var 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(' ');
33241
33242var 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(' ');
33243
33244var attrsPrefix = ['data-', 'aria-'];
33245/**
33246 * 过滤掉无效的透传到 DOM 属性
33247 */
33248
33249exports.default = function (props) {
33250 var attrs = {};
33251
33252 var _loop = function _loop(key) {
33253 if (attributes.indexOf(key) > -1 || eventsName.indexOf(key) > -1) {
33254 attrs[key] = props[key];
33255 } else if (attrsPrefix.map(function (prefix) {
33256 return new RegExp('^' + prefix);
33257 }).some(function (reg) {
33258 return key.replace(reg, '') !== key;
33259 })) {
33260 attrs[key] = props[key];
33261 }
33262 };
33263
33264 for (var key in props) {
33265 _loop(key);
33266 }
33267 return attrs;
33268};
33269
33270module.exports = exports['default'];
33271
33272/***/ }),
33273/* 258 */
33274/***/ (function(module, exports, __webpack_require__) {
33275
33276"use strict";
33277
33278
33279exports.__esModule = true;
33280
33281var _objectWithoutProperties2 = __webpack_require__(8);
33282
33283var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
33284
33285var _classCallCheck2 = __webpack_require__(2);
33286
33287var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
33288
33289var _possibleConstructorReturn2 = __webpack_require__(3);
33290
33291var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
33292
33293var _inherits2 = __webpack_require__(4);
33294
33295var _inherits3 = _interopRequireDefault(_inherits2);
33296
33297var _extends2 = __webpack_require__(1);
33298
33299var _extends3 = _interopRequireDefault(_extends2);
33300
33301exports.initLocales = initLocales;
33302exports.setLanguage = setLanguage;
33303exports.setLocale = setLocale;
33304exports.setDirection = setDirection;
33305exports.getLocale = getLocale;
33306exports.getLanguage = getLanguage;
33307exports.getDirection = getDirection;
33308exports.config = config;
33309
33310var _react = __webpack_require__(0);
33311
33312var _react2 = _interopRequireDefault(_react);
33313
33314var _propTypes = __webpack_require__(5);
33315
33316var _propTypes2 = _interopRequireDefault(_propTypes);
33317
33318var _hoistNonReactStatics = __webpack_require__(259);
33319
33320var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);
33321
33322var _util = __webpack_require__(6);
33323
33324var _getContextProps = __webpack_require__(130);
33325
33326var _getContextProps2 = _interopRequireDefault(_getContextProps);
33327
33328var _errorBoundary = __webpack_require__(131);
33329
33330var _errorBoundary2 = _interopRequireDefault(_errorBoundary);
33331
33332function _interopRequireDefault(obj) {
33333 return obj && obj.__esModule ? obj : { default: obj };
33334}
33335
33336var shallowEqual = _util.obj.shallowEqual;
33337
33338function getDisplayName(Component) {
33339 return Component.displayName || Component.name || 'Component';
33340}
33341
33342var globalLocales = void 0;
33343var currentGlobalLanguage = 'zh-cn';
33344var currentGlobalLocale = {};
33345var currentGlobalRtl = void 0;
33346
33347function initLocales(locales) {
33348 globalLocales = locales;
33349
33350 if (locales) {
33351 currentGlobalLocale = locales[currentGlobalLanguage];
33352
33353 if (typeof currentGlobalRtl !== 'boolean') {
33354 currentGlobalRtl = currentGlobalLocale && currentGlobalLocale.rtl;
33355 }
33356 }
33357}
33358
33359function setLanguage(language) {
33360 if (globalLocales) {
33361 currentGlobalLanguage = language;
33362 currentGlobalLocale = globalLocales[language];
33363
33364 if (typeof currentGlobalRtl !== 'boolean') {
33365 currentGlobalRtl = currentGlobalLocale && currentGlobalLocale.rtl;
33366 }
33367 }
33368}
33369
33370function setLocale(locale) {
33371 currentGlobalLocale = (0, _extends3.default)({}, globalLocales ? globalLocales[currentGlobalLanguage] : {}, locale);
33372
33373 if (typeof currentGlobalRtl !== 'boolean') {
33374 currentGlobalRtl = currentGlobalLocale && currentGlobalLocale.rtl;
33375 }
33376}
33377
33378function setDirection(dir) {
33379 currentGlobalRtl = dir === 'rtl';
33380}
33381
33382function getLocale() {
33383 return currentGlobalLocale;
33384}
33385
33386function getLanguage() {
33387 return currentGlobalLanguage;
33388}
33389
33390function getDirection() {
33391 return currentGlobalRtl;
33392}
33393
33394function config(Component) {
33395 var _class, _temp;
33396
33397 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
33398
33399 // 非 forwardRef 创建的 class component
33400 if (_util.obj.isClassComponent(Component) && Component.prototype.shouldComponentUpdate === undefined) {
33401 // class component: 通过定义 shouldComponentUpdate 改写成 pure component, 有refs
33402 Component.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {
33403 if (this.props.pure) {
33404 return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState);
33405 }
33406
33407 return true;
33408 };
33409 }
33410
33411 var ConfigedComponent = (_temp = _class = function (_React$Component) {
33412 (0, _inherits3.default)(ConfigedComponent, _React$Component);
33413
33414 function ConfigedComponent(props, context) {
33415 (0, _classCallCheck3.default)(this, ConfigedComponent);
33416
33417 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
33418
33419 _this._getInstance = _this._getInstance.bind(_this);
33420 _this._deprecated = _this._deprecated.bind(_this);
33421 return _this;
33422 }
33423
33424 ConfigedComponent.prototype._getInstance = function _getInstance(ref) {
33425 var _this2 = this;
33426
33427 this._instance = ref;
33428
33429 if (this._instance && options.exportNames) {
33430 options.exportNames.forEach(function (name) {
33431 var field = _this2._instance[name];
33432 if (typeof field === 'function') {
33433 _this2[name] = field.bind(_this2._instance);
33434 } else {
33435 _this2[name] = field;
33436 }
33437 });
33438 }
33439 };
33440
33441 ConfigedComponent.prototype._deprecated = function _deprecated() {
33442 if (this.context.nextWarning !== false) {
33443 _util.log.deprecated.apply(_util.log, arguments);
33444 }
33445 };
33446
33447 ConfigedComponent.prototype.getInstance = function getInstance() {
33448 return this._instance;
33449 };
33450
33451 ConfigedComponent.prototype.render = function render() {
33452 var _props = this.props,
33453 prefix = _props.prefix,
33454 locale = _props.locale,
33455 defaultPropsConfig = _props.defaultPropsConfig,
33456 pure = _props.pure,
33457 rtl = _props.rtl,
33458 device = _props.device,
33459 popupContainer = _props.popupContainer,
33460 errorBoundary = _props.errorBoundary,
33461 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'locale', 'defaultPropsConfig', 'pure', 'rtl', 'device', 'popupContainer', 'errorBoundary']);
33462 var _context = this.context,
33463 nextPrefix = _context.nextPrefix,
33464 _context$nextLocale = _context.nextLocale,
33465 nextLocale = _context$nextLocale === undefined ? {} : _context$nextLocale,
33466 _context$nextDefaultP = _context.nextDefaultPropsConfig,
33467 nextDefaultPropsConfig = _context$nextDefaultP === undefined ? {} : _context$nextDefaultP,
33468 nextPure = _context.nextPure,
33469 nextRtl = _context.nextRtl,
33470 nextDevice = _context.nextDevice,
33471 nextPopupContainer = _context.nextPopupContainer,
33472 nextErrorBoundary = _context.nextErrorBoundary;
33473
33474 var displayName = options.componentName || getDisplayName(Component);
33475 var contextProps = (0, _getContextProps2.default)({
33476 prefix: prefix,
33477 locale: locale,
33478 defaultPropsConfig: defaultPropsConfig,
33479 pure: pure,
33480 device: device,
33481 popupContainer: popupContainer,
33482 rtl: rtl,
33483 errorBoundary: errorBoundary
33484 }, {
33485 nextPrefix: nextPrefix,
33486 nextLocale: (0, _extends3.default)({}, currentGlobalLocale, nextLocale),
33487 nextDefaultPropsConfig: nextDefaultPropsConfig,
33488 nextPure: nextPure,
33489 nextDevice: nextDevice,
33490 nextPopupContainer: nextPopupContainer,
33491 nextRtl: typeof nextRtl === 'boolean' ? nextRtl : currentGlobalRtl === true ? true : undefined,
33492 nextErrorBoundary: nextErrorBoundary
33493 }, displayName);
33494
33495 // errorBoundary is only for <ErrorBoundary>
33496 var newContextProps = ['prefix', 'locale', 'pure', 'rtl', 'device', 'popupContainer'].reduce(function (ret, name) {
33497 if (typeof contextProps[name] !== 'undefined') {
33498 ret[name] = contextProps[name];
33499 }
33500 return ret;
33501 }, {});
33502
33503 if ('pure' in newContextProps && newContextProps.pure) {
33504 _util.log.warning('pure of ConfigProvider is deprecated, use Function Component or React.PureComponent');
33505 }
33506
33507 // 对于两个真正消费 popupContainer 的组件来说,正确的名字是 container,
33508 if ('popupContainer' in newContextProps && this.props.container === undefined && ['Overlay', 'Popup'].indexOf(displayName) > -1) {
33509 newContextProps.container = newContextProps.popupContainer;
33510 delete newContextProps.popupContainer;
33511 }
33512
33513 var newOthers = options.transform ? options.transform(others, this._deprecated) : others;
33514
33515 var content = _react2.default.createElement(Component, (0, _extends3.default)({}, contextProps.defaultPropsConfig[displayName], newOthers, newContextProps, {
33516 ref: _util.obj.isClassComponent(Component) ? this._getInstance : null
33517 }));
33518
33519 var _contextProps$errorBo = contextProps.errorBoundary,
33520 open = _contextProps$errorBo.open,
33521 othersBoundary = (0, _objectWithoutProperties3.default)(_contextProps$errorBo, ['open']);
33522
33523 return open ? _react2.default.createElement(_errorBoundary2.default, othersBoundary, content) : content;
33524 };
33525
33526 return ConfigedComponent;
33527 }(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, Component.propTypes || {}, {
33528 prefix: _propTypes2.default.string,
33529 locale: _propTypes2.default.object,
33530 defaultPropsConfig: _propTypes2.default.object,
33531 pure: _propTypes2.default.bool,
33532 rtl: _propTypes2.default.bool,
33533 device: _propTypes2.default.oneOf(['tablet', 'desktop', 'phone']),
33534 popupContainer: _propTypes2.default.any,
33535 errorBoundary: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object])
33536 }), _class.contextTypes = (0, _extends3.default)({}, Component.contextTypes || {}, {
33537 nextPrefix: _propTypes2.default.string,
33538 nextLocale: _propTypes2.default.object,
33539 nextDefaultPropsConfig: _propTypes2.default.object,
33540 nextPure: _propTypes2.default.bool,
33541 nextRtl: _propTypes2.default.bool,
33542 nextWarning: _propTypes2.default.bool,
33543 nextDevice: _propTypes2.default.oneOf(['tablet', 'desktop', 'phone']),
33544 nextPopupContainer: _propTypes2.default.any,
33545 nextErrorBoundary: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object])
33546 }), _temp);
33547 ConfigedComponent.displayName = 'ConfigedComponent';
33548
33549 ConfigedComponent.displayName = 'Config(' + getDisplayName(Component) + ')';
33550
33551 (0, _hoistNonReactStatics2.default)(ConfigedComponent, Component);
33552
33553 return ConfigedComponent;
33554}
33555
33556/***/ }),
33557/* 259 */
33558/***/ (function(module, exports, __webpack_require__) {
33559
33560"use strict";
33561
33562
33563var reactIs = __webpack_require__(260);
33564
33565/**
33566 * Copyright 2015, Yahoo! Inc.
33567 * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
33568 */
33569var REACT_STATICS = {
33570 childContextTypes: true,
33571 contextType: true,
33572 contextTypes: true,
33573 defaultProps: true,
33574 displayName: true,
33575 getDefaultProps: true,
33576 getDerivedStateFromError: true,
33577 getDerivedStateFromProps: true,
33578 mixins: true,
33579 propTypes: true,
33580 type: true
33581};
33582var KNOWN_STATICS = {
33583 name: true,
33584 length: true,
33585 prototype: true,
33586 caller: true,
33587 callee: true,
33588 arguments: true,
33589 arity: true
33590};
33591var FORWARD_REF_STATICS = {
33592 '$$typeof': true,
33593 render: true,
33594 defaultProps: true,
33595 displayName: true,
33596 propTypes: true
33597};
33598var MEMO_STATICS = {
33599 '$$typeof': true,
33600 compare: true,
33601 defaultProps: true,
33602 displayName: true,
33603 propTypes: true,
33604 type: true
33605};
33606var TYPE_STATICS = {};
33607TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
33608TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
33609
33610function getStatics(component) {
33611 // React v16.11 and below
33612 if (reactIs.isMemo(component)) {
33613 return MEMO_STATICS;
33614 } // React v16.12 and above
33615
33616
33617 return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
33618}
33619
33620var defineProperty = Object.defineProperty;
33621var getOwnPropertyNames = Object.getOwnPropertyNames;
33622var getOwnPropertySymbols = Object.getOwnPropertySymbols;
33623var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
33624var getPrototypeOf = Object.getPrototypeOf;
33625var objectPrototype = Object.prototype;
33626function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
33627 if (typeof sourceComponent !== 'string') {
33628 // don't hoist over string (html) components
33629 if (objectPrototype) {
33630 var inheritedComponent = getPrototypeOf(sourceComponent);
33631
33632 if (inheritedComponent && inheritedComponent !== objectPrototype) {
33633 hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
33634 }
33635 }
33636
33637 var keys = getOwnPropertyNames(sourceComponent);
33638
33639 if (getOwnPropertySymbols) {
33640 keys = keys.concat(getOwnPropertySymbols(sourceComponent));
33641 }
33642
33643 var targetStatics = getStatics(targetComponent);
33644 var sourceStatics = getStatics(sourceComponent);
33645
33646 for (var i = 0; i < keys.length; ++i) {
33647 var key = keys[i];
33648
33649 if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
33650 var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
33651
33652 try {
33653 // Avoid failures from read-only properties
33654 defineProperty(targetComponent, key, descriptor);
33655 } catch (e) {}
33656 }
33657 }
33658 }
33659
33660 return targetComponent;
33661}
33662
33663module.exports = hoistNonReactStatics;
33664
33665
33666/***/ }),
33667/* 260 */
33668/***/ (function(module, exports, __webpack_require__) {
33669
33670"use strict";
33671
33672
33673if (true) {
33674 module.exports = __webpack_require__(261);
33675} else {
33676 module.exports = require('./cjs/react-is.development.js');
33677}
33678
33679
33680/***/ }),
33681/* 261 */
33682/***/ (function(module, exports, __webpack_require__) {
33683
33684"use strict";
33685/** @license React v16.13.1
33686 * react-is.production.min.js
33687 *
33688 * Copyright (c) Facebook, Inc. and its affiliates.
33689 *
33690 * This source code is licensed under the MIT license found in the
33691 * LICENSE file in the root directory of this source tree.
33692 */
33693
33694var 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?
33695Symbol.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;
33696function 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;
33697exports.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};
33698exports.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};
33699exports.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;
33700
33701
33702/***/ }),
33703/* 262 */
33704/***/ (function(module, exports, __webpack_require__) {
33705
33706"use strict";
33707
33708
33709exports.__esModule = true;
33710
33711var _propTypes = __webpack_require__(5);
33712
33713var _propTypes2 = _interopRequireDefault(_propTypes);
33714
33715function _interopRequireDefault(obj) {
33716 return obj && obj.__esModule ? obj : { default: obj };
33717}
33718
33719/**
33720 * Creates an object with the same values as object and keys
33721 * generated by running each own enumerable string keyed property
33722 * of object thru iteratee.
33723 * @param {Object} obj
33724 * @param {Function} fn
33725 * @return {Object}
33726 */
33727var mapKeys = function mapKeys(obj, fn) {
33728 var result = {};
33729 for (var key in obj) {
33730 if (Object.prototype.hasOwnProperty.call(obj, key)) {
33731 var value = obj[key];
33732 var newKey = fn(key, value);
33733 result[newKey] = value;
33734 }
33735 }
33736
33737 return result;
33738};
33739
33740/**
33741 * Replace specific key with prefix `next`
33742 * and lowercase first character of the result.
33743 * @param {String} key
33744 * @return {String}
33745 */
33746var replaceKey = function replaceKey(key) {
33747 return key.replace(/^(next)([A-Z])/, function (match, p1, p2) {
33748 return p2.toLowerCase();
33749 });
33750};
33751
33752/**
33753 * @param {Object} source
33754 * @return {Object}
33755 */
33756var transformContext = function transformContext(source) {
33757 return mapKeys(source, replaceKey);
33758};
33759
33760/**
33761 * Consumer
33762 * @param {Object} prop
33763 * @param {Object} context
33764 */
33765var Consumer = function Consumer(_ref, context) {
33766 var children = _ref.children;
33767 return typeof children === 'function' ? children(transformContext(context)) : null;
33768};
33769
33770/**
33771 * PropTypes
33772 * @type {Object}
33773 * @static
33774 */
33775Consumer.propTypes = {
33776 // Render context as function
33777 // Function(context: object): ReactElement
33778 children: _propTypes2.default.func
33779};
33780
33781/**
33782 * ContextTypes (legacy context)
33783 * @type {Object}
33784 * @static
33785 */
33786Consumer.contextTypes = {
33787 nextPrefix: _propTypes2.default.string,
33788 nextLocale: _propTypes2.default.object,
33789 nextPure: _propTypes2.default.bool,
33790 newRtl: _propTypes2.default.bool,
33791 nextWarning: _propTypes2.default.bool,
33792 nextDevice: _propTypes2.default.oneOf(['tablet', 'desktop', 'phone']),
33793 nextPopupContainer: _propTypes2.default.any
33794};
33795
33796exports.default = Consumer;
33797module.exports = exports['default'];
33798
33799/***/ }),
33800/* 263 */
33801/***/ (function(module, exports, __webpack_require__) {
33802
33803"use strict";
33804
33805
33806exports.__esModule = true;
33807
33808var _classCallCheck2 = __webpack_require__(2);
33809
33810var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
33811
33812function _interopRequireDefault(obj) {
33813 return obj && obj.__esModule ? obj : { default: obj };
33814}
33815
33816var Cache = function () {
33817 function Cache() {
33818 (0, _classCallCheck3.default)(this, Cache);
33819
33820 this._root = null;
33821 this._store = new Map();
33822 }
33823
33824 Cache.prototype.empty = function empty() {
33825 return this._store.size === 0;
33826 };
33827
33828 Cache.prototype.has = function has(key) {
33829 return this._store.has(key);
33830 };
33831
33832 Cache.prototype.get = function get(key, defaultValue) {
33833 var res = this.has(key) ? this._store.get(key) : this.root();
33834 return typeof res === 'undefined' || res === null ? defaultValue : res;
33835 };
33836
33837 Cache.prototype.add = function add(key, value) {
33838 if (this.empty()) {
33839 this._root = key;
33840 }
33841 this._store.set(key, value);
33842 };
33843
33844 Cache.prototype.update = function update(key, value) {
33845 if (this.has(key)) {
33846 this._store.set(key, value);
33847 }
33848 };
33849
33850 Cache.prototype.remove = function remove(key) {
33851 this._store.delete(key);
33852
33853 if (key === this._root) {
33854 var maps = this._store.keys();
33855 // 如果当前销毁的实例刚好是root,那么从map中取下一个加入的节点当作root
33856 var nextkey = maps.next().value;
33857 this._root = nextkey;
33858 }
33859 };
33860
33861 Cache.prototype.clear = function clear() {
33862 this._store.clear();
33863 };
33864
33865 Cache.prototype.root = function root() {
33866 return this._store.get(this._root);
33867 };
33868
33869 return Cache;
33870}();
33871
33872exports.default = Cache;
33873module.exports = exports['default'];
33874
33875/***/ }),
33876/* 264 */
33877/***/ (function(module, exports, __webpack_require__) {
33878
33879"use strict";
33880
33881
33882exports.__esModule = true;
33883exports.getScroll = getScroll;
33884exports.getRect = getRect;
33885exports.getNodeHeight = getNodeHeight;
33886function getScroll(node, isVertical) {
33887 if (typeof window === 'undefined') {
33888 return 0;
33889 }
33890 var windowProp = isVertical ? 'pageYOffset' : 'pageXOffset';
33891 var elementProp = isVertical ? 'scrollTop' : 'scrollLeft';
33892 return node === window ? node[windowProp] : node[elementProp];
33893}
33894
33895function getRect(node) {
33896 return node !== window ? node.getBoundingClientRect() : { top: 0, left: 0, bottom: 0 };
33897}
33898
33899function getNodeHeight(node) {
33900 if (!node) {
33901 return 0;
33902 }
33903 if (node === window) {
33904 return window.innerHeight;
33905 }
33906 return node.clientHeight;
33907}
33908
33909/***/ }),
33910/* 265 */
33911/***/ (function(module, exports, __webpack_require__) {
33912
33913"use strict";
33914
33915
33916exports.__esModule = true;
33917exports.default = void 0;
33918
33919var PropTypes = _interopRequireWildcard(__webpack_require__(5));
33920
33921var _addClass = _interopRequireDefault(__webpack_require__(266));
33922
33923var _removeClass = _interopRequireDefault(__webpack_require__(268));
33924
33925var _react = _interopRequireDefault(__webpack_require__(0));
33926
33927var _Transition = _interopRequireDefault(__webpack_require__(133));
33928
33929var _PropTypes = __webpack_require__(134);
33930
33931function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33932
33933function _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; } }
33934
33935function _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); }
33936
33937function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
33938
33939var addClass = function addClass(node, classes) {
33940 return node && classes && classes.split(' ').forEach(function (c) {
33941 return (0, _addClass.default)(node, c);
33942 });
33943};
33944
33945var removeClass = function removeClass(node, classes) {
33946 return node && classes && classes.split(' ').forEach(function (c) {
33947 return (0, _removeClass.default)(node, c);
33948 });
33949};
33950/**
33951 * A transition component inspired by the excellent
33952 * [ng-animate](http://www.nganimate.org/) library, you should use it if you're
33953 * using CSS transitions or animations. It's built upon the
33954 * [`Transition`](https://reactcommunity.org/react-transition-group/transition)
33955 * component, so it inherits all of its props.
33956 *
33957 * `CSSTransition` applies a pair of class names during the `appear`, `enter`,
33958 * and `exit` states of the transition. The first class is applied and then a
33959 * second `*-active` class in order to activate the CSSS transition. After the
33960 * transition, matching `*-done` class names are applied to persist the
33961 * transition state.
33962 *
33963 * ```jsx
33964 * function App() {
33965 * const [inProp, setInProp] = useState(false);
33966 * return (
33967 * <div>
33968 * <CSSTransition in={inProp} timeout={200} classNames="my-node">
33969 * <div>
33970 * {"I'll receive my-node-* classes"}
33971 * </div>
33972 * </CSSTransition>
33973 * <button type="button" onClick={() => setInProp(true)}>
33974 * Click to Enter
33975 * </button>
33976 * </div>
33977 * );
33978 * }
33979 * ```
33980 *
33981 * When the `in` prop is set to `true`, the child component will first receive
33982 * the class `example-enter`, then the `example-enter-active` will be added in
33983 * the next tick. `CSSTransition` [forces a
33984 * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)
33985 * between before adding the `example-enter-active`. This is an important trick
33986 * because it allows us to transition between `example-enter` and
33987 * `example-enter-active` even though they were added immediately one after
33988 * another. Most notably, this is what makes it possible for us to animate
33989 * _appearance_.
33990 *
33991 * ```css
33992 * .my-node-enter {
33993 * opacity: 0;
33994 * }
33995 * .my-node-enter-active {
33996 * opacity: 1;
33997 * transition: opacity 200ms;
33998 * }
33999 * .my-node-exit {
34000 * opacity: 1;
34001 * }
34002 * .my-node-exit-active {
34003 * opacity: 0;
34004 * transition: opacity: 200ms;
34005 * }
34006 * ```
34007 *
34008 * `*-active` classes represent which styles you want to animate **to**.
34009 */
34010
34011
34012var CSSTransition =
34013/*#__PURE__*/
34014function (_React$Component) {
34015 _inheritsLoose(CSSTransition, _React$Component);
34016
34017 function CSSTransition() {
34018 var _this;
34019
34020 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
34021 args[_key] = arguments[_key];
34022 }
34023
34024 _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
34025
34026 _this.onEnter = function (node, appearing) {
34027 var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),
34028 className = _this$getClassNames.className;
34029
34030 _this.removeClasses(node, 'exit');
34031
34032 addClass(node, className);
34033
34034 if (_this.props.onEnter) {
34035 _this.props.onEnter(node, appearing);
34036 }
34037 };
34038
34039 _this.onEntering = function (node, appearing) {
34040 var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),
34041 activeClassName = _this$getClassNames2.activeClassName;
34042
34043 _this.reflowAndAddClass(node, activeClassName);
34044
34045 if (_this.props.onEntering) {
34046 _this.props.onEntering(node, appearing);
34047 }
34048 };
34049
34050 _this.onEntered = function (node, appearing) {
34051 var appearClassName = _this.getClassNames('appear').doneClassName;
34052
34053 var enterClassName = _this.getClassNames('enter').doneClassName;
34054
34055 var doneClassName = appearing ? appearClassName + " " + enterClassName : enterClassName;
34056
34057 _this.removeClasses(node, appearing ? 'appear' : 'enter');
34058
34059 addClass(node, doneClassName);
34060
34061 if (_this.props.onEntered) {
34062 _this.props.onEntered(node, appearing);
34063 }
34064 };
34065
34066 _this.onExit = function (node) {
34067 var _this$getClassNames3 = _this.getClassNames('exit'),
34068 className = _this$getClassNames3.className;
34069
34070 _this.removeClasses(node, 'appear');
34071
34072 _this.removeClasses(node, 'enter');
34073
34074 addClass(node, className);
34075
34076 if (_this.props.onExit) {
34077 _this.props.onExit(node);
34078 }
34079 };
34080
34081 _this.onExiting = function (node) {
34082 var _this$getClassNames4 = _this.getClassNames('exit'),
34083 activeClassName = _this$getClassNames4.activeClassName;
34084
34085 _this.reflowAndAddClass(node, activeClassName);
34086
34087 if (_this.props.onExiting) {
34088 _this.props.onExiting(node);
34089 }
34090 };
34091
34092 _this.onExited = function (node) {
34093 var _this$getClassNames5 = _this.getClassNames('exit'),
34094 doneClassName = _this$getClassNames5.doneClassName;
34095
34096 _this.removeClasses(node, 'exit');
34097
34098 addClass(node, doneClassName);
34099
34100 if (_this.props.onExited) {
34101 _this.props.onExited(node);
34102 }
34103 };
34104
34105 _this.getClassNames = function (type) {
34106 var classNames = _this.props.classNames;
34107 var isStringClassNames = typeof classNames === 'string';
34108 var prefix = isStringClassNames && classNames ? classNames + '-' : '';
34109 var className = isStringClassNames ? prefix + type : classNames[type];
34110 var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];
34111 var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];
34112 return {
34113 className: className,
34114 activeClassName: activeClassName,
34115 doneClassName: doneClassName
34116 };
34117 };
34118
34119 return _this;
34120 }
34121
34122 var _proto = CSSTransition.prototype;
34123
34124 _proto.removeClasses = function removeClasses(node, type) {
34125 var _this$getClassNames6 = this.getClassNames(type),
34126 className = _this$getClassNames6.className,
34127 activeClassName = _this$getClassNames6.activeClassName,
34128 doneClassName = _this$getClassNames6.doneClassName;
34129
34130 className && removeClass(node, className);
34131 activeClassName && removeClass(node, activeClassName);
34132 doneClassName && removeClass(node, doneClassName);
34133 };
34134
34135 _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {
34136 // This is for to force a repaint,
34137 // which is necessary in order to transition styles when adding a class name.
34138 if (className) {
34139 /* eslint-disable no-unused-expressions */
34140 node && node.scrollTop;
34141 /* eslint-enable no-unused-expressions */
34142
34143 addClass(node, className);
34144 }
34145 };
34146
34147 _proto.render = function render() {
34148 var props = _extends({}, this.props);
34149
34150 delete props.classNames;
34151 return _react.default.createElement(_Transition.default, _extends({}, props, {
34152 onEnter: this.onEnter,
34153 onEntered: this.onEntered,
34154 onEntering: this.onEntering,
34155 onExit: this.onExit,
34156 onExiting: this.onExiting,
34157 onExited: this.onExited
34158 }));
34159 };
34160
34161 return CSSTransition;
34162}(_react.default.Component);
34163
34164CSSTransition.defaultProps = {
34165 classNames: ''
34166};
34167CSSTransition.propTypes = false ? _extends({}, _Transition.default.propTypes, {
34168 /**
34169 * The animation classNames applied to the component as it enters, exits or
34170 * has finished the transition. A single name can be provided and it will be
34171 * suffixed for each stage: e.g.
34172 *
34173 * `classNames="fade"` applies `fade-enter`, `fade-enter-active`,
34174 * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,
34175 * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.
34176 *
34177 * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.
34178 * This allows you to define different behavior for when appearing is done and
34179 * when regular entering is done, using selectors like
34180 * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an
34181 * epic entrance animation when element first appears in the DOM using
34182 * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can
34183 * simply use `fade-enter-done` for defining both cases.
34184 *
34185 * Each individual classNames can also be specified independently like:
34186 *
34187 * ```js
34188 * classNames={{
34189 * appear: 'my-appear',
34190 * appearActive: 'my-active-appear',
34191 * appearDone: 'my-done-appear',
34192 * enter: 'my-enter',
34193 * enterActive: 'my-active-enter',
34194 * enterDone: 'my-done-enter',
34195 * exit: 'my-exit',
34196 * exitActive: 'my-active-exit',
34197 * exitDone: 'my-done-exit',
34198 * }}
34199 * ```
34200 *
34201 * If you want to set these classes using CSS Modules:
34202 *
34203 * ```js
34204 * import styles from './styles.css';
34205 * ```
34206 *
34207 * you might want to use camelCase in your CSS file, that way could simply
34208 * spread them instead of listing them one by one:
34209 *
34210 * ```js
34211 * classNames={{ ...styles }}
34212 * ```
34213 *
34214 * @type {string | {
34215 * appear?: string,
34216 * appearActive?: string,
34217 * appearDone?: string,
34218 * enter?: string,
34219 * enterActive?: string,
34220 * enterDone?: string,
34221 * exit?: string,
34222 * exitActive?: string,
34223 * exitDone?: string,
34224 * }}
34225 */
34226 classNames: _PropTypes.classNamesShape,
34227
34228 /**
34229 * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is
34230 * applied.
34231 *
34232 * @type Function(node: HtmlElement, isAppearing: bool)
34233 */
34234 onEnter: PropTypes.func,
34235
34236 /**
34237 * A `<Transition>` callback fired immediately after the 'enter-active' or
34238 * 'appear-active' class is applied.
34239 *
34240 * @type Function(node: HtmlElement, isAppearing: bool)
34241 */
34242 onEntering: PropTypes.func,
34243
34244 /**
34245 * A `<Transition>` callback fired immediately after the 'enter' or
34246 * 'appear' classes are **removed** and the `done` class is added to the DOM node.
34247 *
34248 * @type Function(node: HtmlElement, isAppearing: bool)
34249 */
34250 onEntered: PropTypes.func,
34251
34252 /**
34253 * A `<Transition>` callback fired immediately after the 'exit' class is
34254 * applied.
34255 *
34256 * @type Function(node: HtmlElement)
34257 */
34258 onExit: PropTypes.func,
34259
34260 /**
34261 * A `<Transition>` callback fired immediately after the 'exit-active' is applied.
34262 *
34263 * @type Function(node: HtmlElement)
34264 */
34265 onExiting: PropTypes.func,
34266
34267 /**
34268 * A `<Transition>` callback fired immediately after the 'exit' classes
34269 * are **removed** and the `exit-done` class is added to the DOM node.
34270 *
34271 * @type Function(node: HtmlElement)
34272 */
34273 onExited: PropTypes.func
34274}) : {};
34275var _default = CSSTransition;
34276exports.default = _default;
34277module.exports = exports["default"];
34278
34279/***/ }),
34280/* 266 */
34281/***/ (function(module, exports, __webpack_require__) {
34282
34283"use strict";
34284
34285
34286var _interopRequireDefault = __webpack_require__(28);
34287
34288exports.__esModule = true;
34289exports.default = addClass;
34290
34291var _hasClass = _interopRequireDefault(__webpack_require__(267));
34292
34293function addClass(element, className) {
34294 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);
34295}
34296
34297module.exports = exports["default"];
34298
34299/***/ }),
34300/* 267 */
34301/***/ (function(module, exports, __webpack_require__) {
34302
34303"use strict";
34304
34305
34306exports.__esModule = true;
34307exports.default = hasClass;
34308
34309function hasClass(element, className) {
34310 if (element.classList) return !!className && element.classList.contains(className);else return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1;
34311}
34312
34313module.exports = exports["default"];
34314
34315/***/ }),
34316/* 268 */
34317/***/ (function(module, exports, __webpack_require__) {
34318
34319"use strict";
34320
34321
34322function replaceClassName(origClass, classToRemove) {
34323 return origClass.replace(new RegExp('(^|\\s)' + classToRemove + '(?:\\s|$)', 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, '');
34324}
34325
34326module.exports = function removeClass(element, className) {
34327 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));
34328};
34329
34330/***/ }),
34331/* 269 */
34332/***/ (function(module, exports, __webpack_require__) {
34333
34334"use strict";
34335
34336
34337exports.__esModule = true;
34338exports.default = void 0;
34339
34340var _propTypes = _interopRequireDefault(__webpack_require__(5));
34341
34342var _react = _interopRequireDefault(__webpack_require__(0));
34343
34344var _reactDom = __webpack_require__(12);
34345
34346var _TransitionGroup = _interopRequireDefault(__webpack_require__(135));
34347
34348function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34349
34350function _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; }
34351
34352function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
34353
34354/**
34355 * The `<ReplaceTransition>` component is a specialized `Transition` component
34356 * that animates between two children.
34357 *
34358 * ```jsx
34359 * <ReplaceTransition in>
34360 * <Fade><div>I appear first</div></Fade>
34361 * <Fade><div>I replace the above</div></Fade>
34362 * </ReplaceTransition>
34363 * ```
34364 */
34365var ReplaceTransition =
34366/*#__PURE__*/
34367function (_React$Component) {
34368 _inheritsLoose(ReplaceTransition, _React$Component);
34369
34370 function ReplaceTransition() {
34371 var _this;
34372
34373 for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
34374 _args[_key] = arguments[_key];
34375 }
34376
34377 _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;
34378
34379 _this.handleEnter = function () {
34380 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
34381 args[_key2] = arguments[_key2];
34382 }
34383
34384 return _this.handleLifecycle('onEnter', 0, args);
34385 };
34386
34387 _this.handleEntering = function () {
34388 for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
34389 args[_key3] = arguments[_key3];
34390 }
34391
34392 return _this.handleLifecycle('onEntering', 0, args);
34393 };
34394
34395 _this.handleEntered = function () {
34396 for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
34397 args[_key4] = arguments[_key4];
34398 }
34399
34400 return _this.handleLifecycle('onEntered', 0, args);
34401 };
34402
34403 _this.handleExit = function () {
34404 for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
34405 args[_key5] = arguments[_key5];
34406 }
34407
34408 return _this.handleLifecycle('onExit', 1, args);
34409 };
34410
34411 _this.handleExiting = function () {
34412 for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
34413 args[_key6] = arguments[_key6];
34414 }
34415
34416 return _this.handleLifecycle('onExiting', 1, args);
34417 };
34418
34419 _this.handleExited = function () {
34420 for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
34421 args[_key7] = arguments[_key7];
34422 }
34423
34424 return _this.handleLifecycle('onExited', 1, args);
34425 };
34426
34427 return _this;
34428 }
34429
34430 var _proto = ReplaceTransition.prototype;
34431
34432 _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {
34433 var _child$props;
34434
34435 var children = this.props.children;
34436
34437 var child = _react.default.Children.toArray(children)[idx];
34438
34439 if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);
34440 if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));
34441 };
34442
34443 _proto.render = function render() {
34444 var _this$props = this.props,
34445 children = _this$props.children,
34446 inProp = _this$props.in,
34447 props = _objectWithoutPropertiesLoose(_this$props, ["children", "in"]);
34448
34449 var _React$Children$toArr = _react.default.Children.toArray(children),
34450 first = _React$Children$toArr[0],
34451 second = _React$Children$toArr[1];
34452
34453 delete props.onEnter;
34454 delete props.onEntering;
34455 delete props.onEntered;
34456 delete props.onExit;
34457 delete props.onExiting;
34458 delete props.onExited;
34459 return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {
34460 key: 'first',
34461 onEnter: this.handleEnter,
34462 onEntering: this.handleEntering,
34463 onEntered: this.handleEntered
34464 }) : _react.default.cloneElement(second, {
34465 key: 'second',
34466 onEnter: this.handleExit,
34467 onEntering: this.handleExiting,
34468 onEntered: this.handleExited
34469 }));
34470 };
34471
34472 return ReplaceTransition;
34473}(_react.default.Component);
34474
34475ReplaceTransition.propTypes = false ? {
34476 in: _propTypes.default.bool.isRequired,
34477 children: function children(props, propName) {
34478 if (_react.default.Children.count(props[propName]) !== 2) return new Error("\"" + propName + "\" must be exactly two transition components.");
34479 return null;
34480 }
34481} : {};
34482var _default = ReplaceTransition;
34483exports.default = _default;
34484module.exports = exports["default"];
34485
34486/***/ }),
34487/* 270 */
34488/***/ (function(module, exports, __webpack_require__) {
34489
34490"use strict";
34491
34492
34493exports.__esModule = true;
34494exports.getChildMapping = getChildMapping;
34495exports.mergeChildMappings = mergeChildMappings;
34496exports.getInitialChildMapping = getInitialChildMapping;
34497exports.getNextChildMapping = getNextChildMapping;
34498
34499var _react = __webpack_require__(0);
34500
34501/**
34502 * Given `this.props.children`, return an object mapping key to child.
34503 *
34504 * @param {*} children `this.props.children`
34505 * @return {object} Mapping of key to child
34506 */
34507function getChildMapping(children, mapFn) {
34508 var mapper = function mapper(child) {
34509 return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;
34510 };
34511
34512 var result = Object.create(null);
34513 if (children) _react.Children.map(children, function (c) {
34514 return c;
34515 }).forEach(function (child) {
34516 // run the map function here instead so that the key is the computed one
34517 result[child.key] = mapper(child);
34518 });
34519 return result;
34520}
34521/**
34522 * When you're adding or removing children some may be added or removed in the
34523 * same render pass. We want to show *both* since we want to simultaneously
34524 * animate elements in and out. This function takes a previous set of keys
34525 * and a new set of keys and merges them with its best guess of the correct
34526 * ordering. In the future we may expose some of the utilities in
34527 * ReactMultiChild to make this easy, but for now React itself does not
34528 * directly have this concept of the union of prevChildren and nextChildren
34529 * so we implement it here.
34530 *
34531 * @param {object} prev prev children as returned from
34532 * `ReactTransitionChildMapping.getChildMapping()`.
34533 * @param {object} next next children as returned from
34534 * `ReactTransitionChildMapping.getChildMapping()`.
34535 * @return {object} a key set that contains all keys in `prev` and all keys
34536 * in `next` in a reasonable order.
34537 */
34538
34539
34540function mergeChildMappings(prev, next) {
34541 prev = prev || {};
34542 next = next || {};
34543
34544 function getValueForKey(key) {
34545 return key in next ? next[key] : prev[key];
34546 } // For each key of `next`, the list of keys to insert before that key in
34547 // the combined list
34548
34549
34550 var nextKeysPending = Object.create(null);
34551 var pendingKeys = [];
34552
34553 for (var prevKey in prev) {
34554 if (prevKey in next) {
34555 if (pendingKeys.length) {
34556 nextKeysPending[prevKey] = pendingKeys;
34557 pendingKeys = [];
34558 }
34559 } else {
34560 pendingKeys.push(prevKey);
34561 }
34562 }
34563
34564 var i;
34565 var childMapping = {};
34566
34567 for (var nextKey in next) {
34568 if (nextKeysPending[nextKey]) {
34569 for (i = 0; i < nextKeysPending[nextKey].length; i++) {
34570 var pendingNextKey = nextKeysPending[nextKey][i];
34571 childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
34572 }
34573 }
34574
34575 childMapping[nextKey] = getValueForKey(nextKey);
34576 } // Finally, add the keys which didn't appear before any key in `next`
34577
34578
34579 for (i = 0; i < pendingKeys.length; i++) {
34580 childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
34581 }
34582
34583 return childMapping;
34584}
34585
34586function getProp(child, prop, props) {
34587 return props[prop] != null ? props[prop] : child.props[prop];
34588}
34589
34590function getInitialChildMapping(props, onExited) {
34591 return getChildMapping(props.children, function (child) {
34592 return (0, _react.cloneElement)(child, {
34593 onExited: onExited.bind(null, child),
34594 in: true,
34595 appear: getProp(child, 'appear', props),
34596 enter: getProp(child, 'enter', props),
34597 exit: getProp(child, 'exit', props)
34598 });
34599 });
34600}
34601
34602function getNextChildMapping(nextProps, prevChildMapping, onExited) {
34603 var nextChildMapping = getChildMapping(nextProps.children);
34604 var children = mergeChildMappings(prevChildMapping, nextChildMapping);
34605 Object.keys(children).forEach(function (key) {
34606 var child = children[key];
34607 if (!(0, _react.isValidElement)(child)) return;
34608 var hasPrev = key in prevChildMapping;
34609 var hasNext = key in nextChildMapping;
34610 var prevChild = prevChildMapping[key];
34611 var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)
34612
34613 if (hasNext && (!hasPrev || isLeaving)) {
34614 // console.log('entering', key)
34615 children[key] = (0, _react.cloneElement)(child, {
34616 onExited: onExited.bind(null, child),
34617 in: true,
34618 exit: getProp(child, 'exit', nextProps),
34619 enter: getProp(child, 'enter', nextProps)
34620 });
34621 } else if (!hasNext && hasPrev && !isLeaving) {
34622 // item is old (exiting)
34623 // console.log('leaving', key)
34624 children[key] = (0, _react.cloneElement)(child, {
34625 in: false
34626 });
34627 } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {
34628 // item hasn't changed transition states
34629 // copy over the last transition props;
34630 // console.log('unchanged', key)
34631 children[key] = (0, _react.cloneElement)(child, {
34632 onExited: onExited.bind(null, child),
34633 in: prevChild.props.in,
34634 exit: getProp(child, 'exit', nextProps),
34635 enter: getProp(child, 'enter', nextProps)
34636 });
34637 }
34638 });
34639 return children;
34640}
34641
34642/***/ }),
34643/* 271 */
34644/***/ (function(module, exports, __webpack_require__) {
34645
34646"use strict";
34647
34648
34649exports.__esModule = true;
34650exports.default = undefined;
34651
34652var _extends2 = __webpack_require__(1);
34653
34654var _extends3 = _interopRequireDefault(_extends2);
34655
34656var _objectWithoutProperties2 = __webpack_require__(8);
34657
34658var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
34659
34660var _classCallCheck2 = __webpack_require__(2);
34661
34662var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
34663
34664var _possibleConstructorReturn2 = __webpack_require__(3);
34665
34666var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
34667
34668var _inherits2 = __webpack_require__(4);
34669
34670var _inherits3 = _interopRequireDefault(_inherits2);
34671
34672var _class, _temp;
34673
34674var _react = __webpack_require__(0);
34675
34676var _react2 = _interopRequireDefault(_react);
34677
34678var _propTypes = __webpack_require__(5);
34679
34680var _propTypes2 = _interopRequireDefault(_propTypes);
34681
34682var _reactTransitionGroup = __webpack_require__(84);
34683
34684var _util = __webpack_require__(6);
34685
34686function _interopRequireDefault(obj) {
34687 return obj && obj.__esModule ? obj : { default: obj };
34688}
34689
34690var noop = function noop() {};
34691var on = _util.events.on,
34692 off = _util.events.off;
34693var addClass = _util.dom.addClass,
34694 removeClass = _util.dom.removeClass;
34695
34696var prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];
34697
34698function getStyleProperty(node, name) {
34699 var style = window.getComputedStyle(node);
34700 var ret = '';
34701 for (var i = 0; i < prefixes.length; i++) {
34702 ret = style.getPropertyValue(prefixes[i] + name);
34703 if (ret) {
34704 break;
34705 }
34706 }
34707 return ret;
34708}
34709
34710var AnimateChild = (_temp = _class = function (_Component) {
34711 (0, _inherits3.default)(AnimateChild, _Component);
34712
34713 function AnimateChild(props) {
34714 (0, _classCallCheck3.default)(this, AnimateChild);
34715
34716 var _this2 = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
34717
34718 _util.func.bindCtx(_this2, ['handleEnter', 'handleEntering', 'handleEntered', 'handleExit', 'handleExiting', 'handleExited', 'addEndListener']);
34719 _this2.endListeners = {
34720 transitionend: [],
34721 animationend: []
34722 };
34723 _this2.timeoutMap = {};
34724 return _this2;
34725 }
34726
34727 AnimateChild.prototype.componentWillUnmount = function componentWillUnmount() {
34728 var _this3 = this;
34729
34730 Object.keys(this.endListeners).forEach(function (eventName) {
34731 _this3.endListeners[eventName].forEach(function (listener) {
34732 off(_this3.node, eventName, listener);
34733 });
34734 });
34735 this.endListeners = {
34736 transitionend: [],
34737 animationend: []
34738 };
34739 };
34740
34741 AnimateChild.prototype.generateEndListener = function generateEndListener(node, done, eventName, id) {
34742 var _this = this;
34743 return function endListener(e) {
34744 if (e && e.target === node) {
34745 if (_this.timeoutMap[id]) {
34746 clearTimeout(_this.timeoutMap[id]);
34747 delete _this.timeoutMap[id];
34748 }
34749
34750 done();
34751 off(node, eventName, endListener);
34752 var listeners = _this.endListeners[eventName];
34753 var index = listeners.indexOf(endListener);
34754 index > -1 && listeners.splice(index, 1);
34755 }
34756 };
34757 };
34758
34759 AnimateChild.prototype.addEndListener = function addEndListener(node, done) {
34760 var _this4 = this;
34761
34762 if (_util.support.transition || _util.support.animation) {
34763 var id = (0, _util.guid)();
34764
34765 this.node = node;
34766 if (_util.support.transition) {
34767 var transitionEndListener = this.generateEndListener(node, done, 'transitionend', id);
34768 on(node, 'transitionend', transitionEndListener);
34769 this.endListeners.transitionend.push(transitionEndListener);
34770 }
34771 if (_util.support.animation) {
34772 var animationEndListener = this.generateEndListener(node, done, 'animationend', id);
34773 on(node, 'animationend', animationEndListener);
34774 this.endListeners.animationend.push(animationEndListener);
34775 }
34776
34777 setTimeout(function () {
34778 var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;
34779 var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;
34780 var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;
34781 var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;
34782 var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);
34783 if (time) {
34784 _this4.timeoutMap[id] = setTimeout(function () {
34785 done();
34786 }, time * 1000 + 200);
34787 }
34788 }, 15);
34789 } else {
34790 done();
34791 }
34792 };
34793
34794 AnimateChild.prototype.removeEndtListener = function removeEndtListener() {
34795 this.transitionOff && this.transitionOff();
34796 this.animationOff && this.animationOff();
34797 };
34798
34799 AnimateChild.prototype.removeClassNames = function removeClassNames(node, names) {
34800 Object.keys(names).forEach(function (key) {
34801 removeClass(node, names[key]);
34802 });
34803 };
34804
34805 AnimateChild.prototype.handleEnter = function handleEnter(node, isAppearing) {
34806 var names = this.props.names;
34807
34808 if (names) {
34809 this.removeClassNames(node, names);
34810 var className = isAppearing ? 'appear' : 'enter';
34811 addClass(node, names[className]);
34812 }
34813
34814 var hook = isAppearing ? this.props.onAppear : this.props.onEnter;
34815 hook(node);
34816 };
34817
34818 AnimateChild.prototype.handleEntering = function handleEntering(node, isAppearing) {
34819 var _this5 = this;
34820
34821 setTimeout(function () {
34822 var names = _this5.props.names;
34823
34824 if (names) {
34825 var className = isAppearing ? 'appearActive' : 'enterActive';
34826 addClass(node, names[className]);
34827 }
34828
34829 var hook = isAppearing ? _this5.props.onAppearing : _this5.props.onEntering;
34830 hook(node);
34831 }, 10);
34832 };
34833
34834 AnimateChild.prototype.handleEntered = function handleEntered(node, isAppearing) {
34835 var names = this.props.names;
34836
34837 if (names) {
34838 var classNames = isAppearing ? [names.appear, names.appearActive] : [names.enter, names.enterActive];
34839 classNames.forEach(function (className) {
34840 removeClass(node, className);
34841 });
34842 }
34843
34844 var hook = isAppearing ? this.props.onAppeared : this.props.onEntered;
34845 hook(node);
34846 };
34847
34848 AnimateChild.prototype.handleExit = function handleExit(node) {
34849 var names = this.props.names;
34850
34851 if (names) {
34852 this.removeClassNames(node, names);
34853 addClass(node, names.leave);
34854 }
34855
34856 this.props.onExit(node);
34857 };
34858
34859 AnimateChild.prototype.handleExiting = function handleExiting(node) {
34860 var _this6 = this;
34861
34862 setTimeout(function () {
34863 var names = _this6.props.names;
34864
34865 if (names) {
34866 addClass(node, names.leaveActive);
34867 }
34868 _this6.props.onExiting(node);
34869 }, 10);
34870 };
34871
34872 AnimateChild.prototype.handleExited = function handleExited(node) {
34873 var names = this.props.names;
34874
34875 if (names) {
34876 [names.leave, names.leaveActive].forEach(function (className) {
34877 removeClass(node, className);
34878 });
34879 }
34880
34881 this.props.onExited(node);
34882 };
34883
34884 AnimateChild.prototype.render = function render() {
34885 /* eslint-disable no-unused-vars */
34886 var _props = this.props,
34887 names = _props.names,
34888 onAppear = _props.onAppear,
34889 onAppeared = _props.onAppeared,
34890 onAppearing = _props.onAppearing,
34891 onEnter = _props.onEnter,
34892 onEntering = _props.onEntering,
34893 onEntered = _props.onEntered,
34894 onExit = _props.onExit,
34895 onExiting = _props.onExiting,
34896 onExited = _props.onExited,
34897 others = (0, _objectWithoutProperties3.default)(_props, ['names', 'onAppear', 'onAppeared', 'onAppearing', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited']);
34898 /* eslint-enable no-unused-vars */
34899
34900 return _react2.default.createElement(_reactTransitionGroup.Transition, (0, _extends3.default)({}, others, {
34901 onEnter: this.handleEnter,
34902 onEntering: this.handleEntering,
34903 onEntered: this.handleEntered,
34904 onExit: this.handleExit,
34905 onExiting: this.handleExiting,
34906 onExited: this.handleExited,
34907 addEndListener: this.addEndListener
34908 }));
34909 };
34910
34911 return AnimateChild;
34912}(_react.Component), _class.propTypes = {
34913 names: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),
34914 onAppear: _propTypes2.default.func,
34915 onAppearing: _propTypes2.default.func,
34916 onAppeared: _propTypes2.default.func,
34917 onEnter: _propTypes2.default.func,
34918 onEntering: _propTypes2.default.func,
34919 onEntered: _propTypes2.default.func,
34920 onExit: _propTypes2.default.func,
34921 onExiting: _propTypes2.default.func,
34922 onExited: _propTypes2.default.func
34923}, _class.defaultProps = {
34924 onAppear: noop,
34925 onAppearing: noop,
34926 onAppeared: noop,
34927 onEnter: noop,
34928 onEntering: noop,
34929 onEntered: noop,
34930 onExit: noop,
34931 onExiting: noop,
34932 onExited: noop
34933}, _temp);
34934AnimateChild.displayName = 'AnimateChild';
34935exports.default = AnimateChild;
34936module.exports = exports['default'];
34937
34938/***/ }),
34939/* 272 */
34940/***/ (function(module, exports, __webpack_require__) {
34941
34942"use strict";
34943
34944
34945exports.__esModule = true;
34946exports.default = undefined;
34947
34948var _extends2 = __webpack_require__(1);
34949
34950var _extends3 = _interopRequireDefault(_extends2);
34951
34952var _objectWithoutProperties2 = __webpack_require__(8);
34953
34954var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
34955
34956var _classCallCheck2 = __webpack_require__(2);
34957
34958var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
34959
34960var _possibleConstructorReturn2 = __webpack_require__(3);
34961
34962var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
34963
34964var _inherits2 = __webpack_require__(4);
34965
34966var _inherits3 = _interopRequireDefault(_inherits2);
34967
34968var _class, _temp;
34969
34970var _react = __webpack_require__(0);
34971
34972var _react2 = _interopRequireDefault(_react);
34973
34974var _propTypes = __webpack_require__(5);
34975
34976var _propTypes2 = _interopRequireDefault(_propTypes);
34977
34978var _util = __webpack_require__(6);
34979
34980var _animate = __webpack_require__(132);
34981
34982var _animate2 = _interopRequireDefault(_animate);
34983
34984function _interopRequireDefault(obj) {
34985 return obj && obj.__esModule ? obj : { default: obj };
34986}
34987
34988var noop = function noop() {};
34989var getStyle = _util.dom.getStyle;
34990var Expand = (_temp = _class = function (_Component) {
34991 (0, _inherits3.default)(Expand, _Component);
34992
34993 function Expand(props) {
34994 (0, _classCallCheck3.default)(this, Expand);
34995
34996 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
34997
34998 _util.func.bindCtx(_this, ['beforeEnter', 'onEnter', 'afterEnter', 'beforeLeave', 'onLeave', 'afterLeave']);
34999 return _this;
35000 }
35001
35002 Expand.prototype.beforeEnter = function beforeEnter(node) {
35003 if (this.leaving) {
35004 this.afterLeave(node);
35005 }
35006
35007 this.cacheCurrentStyle(node);
35008 this.cacheComputedStyle(node);
35009 this.setCurrentStyleToZero(node);
35010
35011 this.props.beforeEnter(node);
35012 };
35013
35014 Expand.prototype.onEnter = function onEnter(node) {
35015 this.setCurrentStyleToComputedStyle(node);
35016
35017 this.props.onEnter(node);
35018 };
35019
35020 Expand.prototype.afterEnter = function afterEnter(node) {
35021 this.restoreCurrentStyle(node);
35022
35023 this.props.afterEnter(node);
35024 };
35025
35026 Expand.prototype.beforeLeave = function beforeLeave(node) {
35027 this.leaving = true;
35028
35029 this.cacheCurrentStyle(node);
35030 this.cacheComputedStyle(node);
35031 this.setCurrentStyleToComputedStyle(node);
35032
35033 this.props.beforeLeave(node);
35034 };
35035
35036 Expand.prototype.onLeave = function onLeave(node) {
35037 this.setCurrentStyleToZero(node);
35038
35039 this.props.onLeave(node);
35040 };
35041
35042 Expand.prototype.afterLeave = function afterLeave(node) {
35043 this.leaving = false;
35044
35045 this.restoreCurrentStyle(node);
35046
35047 this.props.afterLeave(node);
35048 };
35049
35050 Expand.prototype.cacheCurrentStyle = function cacheCurrentStyle(node) {
35051 this.styleBorderTopWidth = node.style.borderTopWidth;
35052 this.stylePaddingTop = node.style.paddingTop;
35053 this.styleHeight = node.style.height;
35054 this.stylePaddingBottom = node.style.paddingBottom;
35055 this.styleBorderBottomWidth = node.style.borderBottomWidth;
35056 };
35057
35058 Expand.prototype.cacheComputedStyle = function cacheComputedStyle(node) {
35059 this.borderTopWidth = getStyle(node, 'borderTopWidth');
35060 this.paddingTop = getStyle(node, 'paddingTop');
35061 this.height = node.offsetHeight;
35062 this.paddingBottom = getStyle(node, 'paddingBottom');
35063 this.borderBottomWidth = getStyle(node, 'borderBottomWidth');
35064 };
35065
35066 Expand.prototype.setCurrentStyleToZero = function setCurrentStyleToZero(node) {
35067 node.style.borderTopWidth = '0px';
35068 node.style.paddingTop = '0px';
35069 node.style.height = '0px';
35070 node.style.paddingBottom = '0px';
35071 node.style.borderBottomWidth = '0px';
35072 };
35073
35074 Expand.prototype.setCurrentStyleToComputedStyle = function setCurrentStyleToComputedStyle(node) {
35075 node.style.borderTopWidth = this.borderTopWidth + 'px';
35076 node.style.paddingTop = this.paddingTop + 'px';
35077 node.style.height = this.height + 'px';
35078 node.style.paddingBottom = this.paddingBottom + 'px';
35079 node.style.borderBottomWidth = this.borderBottomWidth + 'px';
35080 };
35081
35082 Expand.prototype.restoreCurrentStyle = function restoreCurrentStyle(node) {
35083 node.style.borderTopWidth = this.styleBorderTopWidth;
35084 node.style.paddingTop = this.stylePaddingTop;
35085 node.style.height = this.styleHeight;
35086 node.style.paddingBottom = this.stylePaddingBottom;
35087 node.style.borderBottomWidth = this.styleBorderBottomWidth;
35088 };
35089
35090 Expand.prototype.render = function render() {
35091 var _props = this.props,
35092 animation = _props.animation,
35093 others = (0, _objectWithoutProperties3.default)(_props, ['animation']);
35094
35095 var newAnimation = animation || 'expand';
35096
35097 return _react2.default.createElement(_animate2.default, (0, _extends3.default)({}, others, {
35098 animation: newAnimation,
35099 beforeEnter: this.beforeEnter,
35100 onEnter: this.onEnter,
35101 afterEnter: this.afterEnter,
35102 beforeLeave: this.beforeLeave,
35103 onLeave: this.onLeave,
35104 afterLeave: this.afterLeave
35105 }));
35106 };
35107
35108 return Expand;
35109}(_react.Component), _class.propTypes = {
35110 animation: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),
35111 beforeEnter: _propTypes2.default.func,
35112 onEnter: _propTypes2.default.func,
35113 afterEnter: _propTypes2.default.func,
35114 beforeLeave: _propTypes2.default.func,
35115 onLeave: _propTypes2.default.func,
35116 afterLeave: _propTypes2.default.func
35117}, _class.defaultProps = {
35118 beforeEnter: noop,
35119 onEnter: noop,
35120 afterEnter: noop,
35121 beforeLeave: noop,
35122 onLeave: noop,
35123 afterLeave: noop
35124}, _temp);
35125Expand.displayName = 'Expand';
35126exports.default = Expand;
35127module.exports = exports['default'];
35128
35129/***/ }),
35130/* 273 */
35131/***/ (function(module, exports, __webpack_require__) {
35132
35133"use strict";
35134
35135
35136exports.__esModule = true;
35137
35138var _extends2 = __webpack_require__(1);
35139
35140var _extends3 = _interopRequireDefault(_extends2);
35141
35142var _objectWithoutProperties2 = __webpack_require__(8);
35143
35144var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
35145
35146var _react = __webpack_require__(0);
35147
35148var _react2 = _interopRequireDefault(_react);
35149
35150var _reactTransitionGroup = __webpack_require__(84);
35151
35152var _classnames = __webpack_require__(7);
35153
35154var _classnames2 = _interopRequireDefault(_classnames);
35155
35156function _interopRequireDefault(obj) {
35157 return obj && obj.__esModule ? obj : { default: obj };
35158}
35159
35160var OverlayAnimate = function OverlayAnimate(props) {
35161 var animation = props.animation,
35162 visible = props.visible,
35163 children = props.children,
35164 _props$timeout = props.timeout,
35165 timeout = _props$timeout === undefined ? 300 : _props$timeout,
35166 style = props.style,
35167 mountOnEnter = props.mountOnEnter,
35168 unmountOnExit = props.unmountOnExit,
35169 appear = props.appear,
35170 enter = props.enter,
35171 exit = props.exit,
35172 onEnter = props.onEnter,
35173 onEntering = props.onEntering,
35174 onEntered = props.onEntered,
35175 onExit = props.onExit,
35176 onExiting = props.onExiting,
35177 onExited = props.onExited,
35178 others = (0, _objectWithoutProperties3.default)(props, ['animation', 'visible', 'children', 'timeout', 'style', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited']);
35179
35180 var animateProps = {
35181 mountOnEnter: mountOnEnter,
35182 unmountOnExit: unmountOnExit,
35183 appear: appear,
35184 enter: enter,
35185 exit: exit,
35186 onEnter: onEnter,
35187 onEntering: onEntering,
35188 onEntered: onEntered,
35189 onExit: onExit,
35190 onExiting: onExiting,
35191 onExited: onExited
35192 };
35193
35194 Object.keys(animateProps).forEach(function (k) {
35195 if (!(k in props) || typeof props[k] === 'undefined') {
35196 delete animateProps[k];
35197 }
35198 });
35199
35200 var animationMap = typeof animation === 'string' ? { in: animation, out: animation } : animation;
35201
35202 var animateClsMap = animation ? {
35203 entering: animationMap.in,
35204 exiting: animationMap.out
35205 } : {};
35206
35207 if (animation === false) {
35208 animateClsMap.entering = '';
35209 animateClsMap.exiting = '';
35210 }
35211
35212 return _react2.default.createElement(_reactTransitionGroup.Transition, (0, _extends3.default)({}, animateProps, { 'in': visible, timeout: animation ? timeout : 0, appear: true }), function (state) {
35213 var _classNames;
35214
35215 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[children.props.className] = !!children.props.className, _classNames[animateClsMap[state]] = state in animateClsMap && animateClsMap[state], _classNames));
35216
35217 var childProps = (0, _extends3.default)({}, others, {
35218 className: cls
35219 });
35220
35221 if (style && children.props && children.props.style) {
35222 childProps.style = (0, _extends3.default)({}, children.props.style, style);
35223 }
35224
35225 return _react2.default.cloneElement(children, childProps);
35226 });
35227}; /* istanbul ignore file */
35228exports.default = OverlayAnimate;
35229module.exports = exports['default'];
35230
35231/***/ }),
35232/* 274 */
35233/***/ (function(module, exports, __webpack_require__) {
35234
35235"use strict";
35236
35237
35238exports.__esModule = true;
35239
35240var _extends2 = __webpack_require__(1);
35241
35242var _extends3 = _interopRequireDefault(_extends2);
35243
35244var _classCallCheck2 = __webpack_require__(2);
35245
35246var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
35247
35248var _possibleConstructorReturn2 = __webpack_require__(3);
35249
35250var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
35251
35252var _inherits2 = __webpack_require__(4);
35253
35254var _inherits3 = _interopRequireDefault(_inherits2);
35255
35256var _class, _temp;
35257
35258var _react = __webpack_require__(0);
35259
35260var _react2 = _interopRequireDefault(_react);
35261
35262var _propTypes = __webpack_require__(5);
35263
35264var _propTypes2 = _interopRequireDefault(_propTypes);
35265
35266var _classnames = __webpack_require__(7);
35267
35268var _classnames2 = _interopRequireDefault(_classnames);
35269
35270var _configProvider = __webpack_require__(9);
35271
35272var _configProvider2 = _interopRequireDefault(_configProvider);
35273
35274var _util = __webpack_require__(6);
35275
35276var _sup = __webpack_require__(275);
35277
35278var _sup2 = _interopRequireDefault(_sup);
35279
35280function _interopRequireDefault(obj) {
35281 return obj && obj.__esModule ? obj : { default: obj };
35282}
35283
35284/**
35285 * Badge
35286 */
35287var Badge = (_temp = _class = function (_Component) {
35288 (0, _inherits3.default)(Badge, _Component);
35289
35290 function Badge() {
35291 (0, _classCallCheck3.default)(this, Badge);
35292 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
35293 }
35294
35295 Badge.prototype.render = function render() {
35296 var _classNames;
35297
35298 var _props = this.props,
35299 prefix = _props.prefix,
35300 dot = _props.dot,
35301 className = _props.className,
35302 children = _props.children,
35303 content = _props.content,
35304 style = _props.style,
35305 rtl = _props.rtl,
35306 originCount = _props.count,
35307 showZero = _props.showZero,
35308 originOverflowCount = _props.overflowCount;
35309
35310 var count = parseInt(originCount, 10);
35311 var overflowCount = parseInt(originOverflowCount, 10);
35312 var others = _util.obj.pickOthers(Badge.propTypes, this.props);
35313
35314 // 如果是数字,则添加默认的 title
35315 if (count || count === 0 && showZero) {
35316 others.title = others.title || '' + count;
35317 }
35318
35319 var classes = (0, _classnames2.default)(prefix + 'badge', (_classNames = {}, _classNames[prefix + 'badge-not-a-wrapper'] = !children, _classNames), className);
35320
35321 return _react2.default.createElement('span', (0, _extends3.default)({ dir: rtl ? 'rtl' : undefined, className: classes }, others), children, _react2.default.createElement(_sup2.default, {
35322 prefix: prefix,
35323 content: content,
35324 count: count,
35325 showZero: showZero,
35326 overflowCount: overflowCount,
35327 dot: dot,
35328 style: style
35329 }));
35330 };
35331
35332 return Badge;
35333}(_react.Component), _class.propTypes = {
35334 // 样式类名的品牌前缀
35335 prefix: _propTypes2.default.string,
35336 rtl: _propTypes2.default.bool,
35337 // 自定义类名
35338 className: _propTypes2.default.string,
35339 // 自定义内联样式
35340 style: _propTypes2.default.object,
35341 /**
35342 * 徽标依托的内容,一般显示在其右上方
35343 */
35344 children: _propTypes2.default.node,
35345 /**
35346 * 展示的数字,大于 `overflowCount` 时显示为 `${overflowCount}+`,为 `0` 时默认隐藏
35347 */
35348 count: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
35349 /**
35350 * 当`count`为`0`时,是否显示count
35351 * @version 1.16
35352 */
35353 showZero: _propTypes2.default.bool,
35354 /**
35355 * 自定义徽标中的内容
35356 */
35357 content: _propTypes2.default.node,
35358 /**
35359 * 展示的封顶的数字
35360 */
35361 overflowCount: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
35362 /**
35363 * 不展示数字,只展示一个小红点
35364 */
35365 dot: _propTypes2.default.bool
35366}, _class.defaultProps = {
35367 prefix: 'next-',
35368 count: 0,
35369 showZero: false,
35370 overflowCount: 99,
35371 dot: false
35372}, _temp);
35373Badge.displayName = 'Badge';
35374exports.default = _configProvider2.default.config(Badge);
35375module.exports = exports['default'];
35376
35377/***/ }),
35378/* 275 */
35379/***/ (function(module, exports, __webpack_require__) {
35380
35381"use strict";
35382
35383
35384exports.__esModule = true;
35385
35386var _classCallCheck2 = __webpack_require__(2);
35387
35388var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
35389
35390var _possibleConstructorReturn2 = __webpack_require__(3);
35391
35392var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
35393
35394var _inherits2 = __webpack_require__(4);
35395
35396var _inherits3 = _interopRequireDefault(_inherits2);
35397
35398var _class, _temp;
35399
35400var _react = __webpack_require__(0);
35401
35402var _react2 = _interopRequireDefault(_react);
35403
35404var _propTypes = __webpack_require__(5);
35405
35406var _propTypes2 = _interopRequireDefault(_propTypes);
35407
35408var _reactLifecyclesCompat = __webpack_require__(10);
35409
35410var _classnames = __webpack_require__(7);
35411
35412var _classnames2 = _interopRequireDefault(_classnames);
35413
35414var _animate = __webpack_require__(20);
35415
35416var _animate2 = _interopRequireDefault(_animate);
35417
35418var _util = __webpack_require__(6);
35419
35420function _interopRequireDefault(obj) {
35421 return obj && obj.__esModule ? obj : { default: obj };
35422}
35423
35424/**
35425 * badge sup component
35426 */
35427
35428// util::getDigitArray
35429var getDigitArray = function getDigitArray(num) {
35430 return num.toString().split('').reverse().map(function (i) {
35431 return parseInt(i, 10);
35432 });
35433};
35434
35435var Sup = (_temp = _class = function (_Component) {
35436 (0, _inherits3.default)(Sup, _Component);
35437
35438 // 单排可滚动的数字列表
35439 Sup.renderDigit = function renderDigit(prefix, digit, key) {
35440 var children = [];
35441 for (var i = 0; i < 30; i++) {
35442 children.push(_react2.default.createElement('span', { key: i }, i % 10));
35443 }
35444
35445 return _react2.default.createElement('span', { className: prefix + 'badge-scroll-number-only', key: key }, children);
35446 };
35447
35448 // 可滚动数字组
35449
35450
35451 Sup.renderNumber = function renderNumber(prefix, count) {
35452 return getDigitArray(count).map(function (digit, i) {
35453 return Sup.renderDigit(prefix, digit, i);
35454 }).reverse();
35455 };
35456
35457 function Sup(props) {
35458 (0, _classCallCheck3.default)(this, Sup);
35459
35460 // render 时, 上一次的渲染数字 和 当前渲染的数字
35461 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
35462
35463 _this.saveRef = function (ref) {
35464 _this.supEl = ref;
35465 };
35466
35467 _this.state = {
35468 lastCount: 0,
35469 currentCount: props.count
35470 };
35471 return _this;
35472 }
35473
35474 Sup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
35475 if ('count' in nextProps) {
35476 return {
35477 lastCount: prevState.currentCount,
35478 currentCount: nextProps.count
35479 };
35480 }
35481
35482 return null;
35483 };
35484
35485 Sup.prototype.componentDidMount = function componentDidMount() {
35486 this.computeStyle(true);
35487 };
35488
35489 Sup.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
35490 var _this2 = this;
35491
35492 if (prevProps.count !== this.props.count) {
35493 this.computeStyle(false);
35494
35495 // NOTE why called `computeStyle` again after 300ms ?
35496 setTimeout(function () {
35497 _this2.computeStyle(true, true);
35498 }, 300);
35499 }
35500 };
35501
35502 Sup.prototype.computeStyle = function computeStyle(removeTransition, revert) {
35503 var _this3 = this;
35504
35505 var _props = this.props,
35506 prefix = _props.prefix,
35507 count = _props.count,
35508 overflowCount = _props.overflowCount;
35509 var lastCount = this.state.lastCount;
35510
35511 if (count < 0) {
35512 return;
35513 }
35514 var supNode = this.supEl;
35515
35516 if (supNode && _util.dom.hasClass(supNode, prefix + 'badge-count')) {
35517 var scrollNums = supNode.querySelectorAll('.' + prefix + 'badge-scroll-number-only');
35518
35519 if (scrollNums.length) {
35520 var height = window.getComputedStyle(supNode).height;
35521
35522 scrollNums = [].slice.call(scrollNums, 0).reverse();
35523
35524 getDigitArray(count).forEach(function (digit, i) {
35525 var position = _this3.getPositionByDigit(digit, i, revert);
35526 var transformTo = -position * parseFloat(height);
35527
35528 removeTransition = removeTransition || typeof getDigitArray(lastCount)[i] === 'undefined' || lastCount > overflowCount || lastCount <= 0;
35529
35530 var scrollStyle = _util.support.animation ? {
35531 transition: removeTransition ? 'none' : 'transform .3s cubic-bezier(.645, .045, .355, 1), -webkit-transform .3s cubic-bezier(.645, .045, .355, 1)',
35532 WebkitTransform: 'translateY(' + transformTo + 'px)',
35533 transform: 'translateY(' + transformTo + 'px)',
35534 height: height,
35535 lineHeight: height
35536 } : {
35537 top: transformTo + 'px',
35538 height: height,
35539 lineHeight: height
35540 };
35541
35542 Object.keys(scrollStyle).forEach(function (key) {
35543 scrollNums[i].style[key] = scrollStyle[key];
35544 });
35545 });
35546 }
35547 }
35548 };
35549
35550 Sup.prototype.getPositionByDigit = function getPositionByDigit(digit, i, revert) {
35551 var lastCount = this.state.lastCount;
35552
35553 if (revert) {
35554 return 10 + digit;
35555 }
35556 var lastDigit = getDigitArray(lastCount)[i] || 0;
35557
35558 if (this.props.count > lastCount) {
35559 return (digit >= lastDigit ? 10 : 20) + digit;
35560 }
35561
35562 if (digit <= lastDigit) {
35563 return 10 + digit;
35564 }
35565
35566 return digit;
35567 };
35568
35569 Sup.prototype.render = function render() {
35570 var _classNames;
35571
35572 var _props2 = this.props,
35573 prefix = _props2.prefix,
35574 count = _props2.count,
35575 showZero = _props2.showZero,
35576 overflowCount = _props2.overflowCount,
35577 dot = _props2.dot,
35578 style = _props2.style,
35579 content = _props2.content;
35580
35581 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));
35582
35583 var children = null;
35584 var show = dot || count > 0 || count === 0 && showZero || content;
35585
35586 if (count > 0 || count === 0 && showZero) {
35587 var realCount = overflowCount > 0 && count > overflowCount ? overflowCount + '+' : count;
35588
35589 children = isNaN(realCount) ? realCount : Sup.renderNumber(prefix, count);
35590 } else if (content) {
35591 children = content;
35592 }
35593
35594 var animation = {
35595 appear: 'zoomIn',
35596 enter: 'zoomIn',
35597 leave: 'zoomOut'
35598 };
35599
35600 var wrapper = _util.support.animation ? _react2.default.createElement(_animate2.default, { animation: animation }) : _react2.default.createElement('span', null);
35601 var element = show ? _react2.default.createElement('sup', { ref: this.saveRef, className: supClasses, style: style }, children) : null;
35602
35603 return _react2.default.cloneElement(wrapper, {}, element);
35604 };
35605
35606 return Sup;
35607}(_react.Component), _class.propTypes = {
35608 prefix: _propTypes2.default.string,
35609 count: _propTypes2.default.number,
35610 showZero: _propTypes2.default.bool,
35611 overflowCount: _propTypes2.default.number,
35612 content: _propTypes2.default.node,
35613 dot: _propTypes2.default.bool,
35614 style: _propTypes2.default.object
35615}, _class.defaultProps = {
35616 prefix: 'next-',
35617 count: 0,
35618 showZero: false,
35619 overflowCount: 99,
35620 dot: false
35621}, _temp);
35622Sup.displayName = 'Sup';
35623exports.default = (0, _reactLifecyclesCompat.polyfill)(Sup);
35624module.exports = exports['default'];
35625
35626/***/ }),
35627/* 276 */
35628/***/ (function(module, exports, __webpack_require__) {
35629
35630"use strict";
35631
35632
35633exports.__esModule = true;
35634
35635var _extends2 = __webpack_require__(1);
35636
35637var _extends3 = _interopRequireDefault(_extends2);
35638
35639var _objectWithoutProperties2 = __webpack_require__(8);
35640
35641var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
35642
35643var _classCallCheck2 = __webpack_require__(2);
35644
35645var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
35646
35647var _possibleConstructorReturn2 = __webpack_require__(3);
35648
35649var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
35650
35651var _inherits2 = __webpack_require__(4);
35652
35653var _inherits3 = _interopRequireDefault(_inherits2);
35654
35655var _class, _temp;
35656
35657var _react = __webpack_require__(0);
35658
35659var _react2 = _interopRequireDefault(_react);
35660
35661var _propTypes = __webpack_require__(5);
35662
35663var _propTypes2 = _interopRequireDefault(_propTypes);
35664
35665var _reactLifecyclesCompat = __webpack_require__(10);
35666
35667var _overlay = __webpack_require__(15);
35668
35669var _overlay2 = _interopRequireDefault(_overlay);
35670
35671var _util = __webpack_require__(6);
35672
35673var _inner = __webpack_require__(86);
35674
35675var _inner2 = _interopRequireDefault(_inner);
35676
35677var _alignMap = __webpack_require__(87);
35678
35679var _util2 = __webpack_require__(141);
35680
35681function _interopRequireDefault(obj) {
35682 return obj && obj.__esModule ? obj : { default: obj };
35683}
35684
35685var noop = _util.func.noop;
35686var Popup = _overlay2.default.Popup;
35687
35688var alignList = ['t', 'r', 'b', 'l', 'tl', 'tr', 'bl', 'br', 'lt', 'lb', 'rt', 'rb'];
35689
35690var alignMap = _alignMap.normalMap;
35691
35692/** Balloon */
35693var Balloon = (_temp = _class = function (_React$Component) {
35694 (0, _inherits3.default)(Balloon, _React$Component);
35695
35696 function Balloon(props, context) {
35697 (0, _classCallCheck3.default)(this, Balloon);
35698
35699 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
35700
35701 _this.beforePosition = function (result, obj) {
35702 var placement = result.config.placement;
35703
35704 if (placement !== _this.state.align) {
35705 _this.setState({
35706 align: placement,
35707 innerAlign: true
35708 });
35709 }
35710
35711 if (_this.props.arrowPointToCenter) {
35712 var _obj$target = obj.target,
35713 width = _obj$target.width,
35714 height = _obj$target.height;
35715
35716 if (placement.length === 2) {
35717 var offset = _alignMap.normalMap[placement].offset;
35718 switch (placement[0]) {
35719 case 'b':
35720 case 't':
35721 {
35722 var plus = offset[0] > 0 ? 1 : -1;
35723 result.style.left = result.style.left + plus * width / 2 - offset[0];
35724 }
35725 break;
35726 case 'l':
35727 case 'r':
35728 {
35729 var _plus = offset[0] > 0 ? 1 : -1;
35730 result.style.top = result.style.top + _plus * height / 2 - offset[1];
35731 }
35732 break;
35733 }
35734 }
35735 }
35736
35737 return result;
35738 };
35739
35740 _this.state = {
35741 align: alignList.includes(props.align) ? props.align : 'b',
35742 visible: 'visible' in props ? props.visible : props.defaultVisible
35743 };
35744 _this._onClose = _this._onClose.bind(_this);
35745 _this._onPosition = _this._onPosition.bind(_this);
35746 _this._onVisibleChange = _this._onVisibleChange.bind(_this);
35747 return _this;
35748 }
35749
35750 Balloon.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
35751 var nextState = {};
35752 if ('visible' in nextProps) {
35753 nextState.visible = nextProps.visible;
35754 }
35755
35756 if (!prevState.innerAlign && 'align' in nextProps && alignList.includes(nextProps.align) && nextProps.align !== prevState.align) {
35757 nextState.align = nextProps.align;
35758 nextState.innerAlign = false;
35759 }
35760
35761 return nextState;
35762 };
35763
35764 Balloon.prototype._onVisibleChange = function _onVisibleChange(visible, trigger) {
35765 // Not Controlled
35766 if (!('visible' in this.props)) {
35767 this.setState({
35768 visible: visible
35769 });
35770 }
35771
35772 this.props.onVisibleChange(visible, trigger);
35773
35774 if (!visible) {
35775 this.props.onClose();
35776 }
35777 };
35778
35779 Balloon.prototype._onClose = function _onClose(e) {
35780 this._onVisibleChange(false, 'closeClick');
35781
35782 //必须加上preventDefault,否则单测IE下报错,出现full page reload 异常
35783 e.preventDefault();
35784 };
35785
35786 Balloon.prototype._onPosition = function _onPosition(res) {
35787 var rtl = this.props.rtl;
35788
35789 alignMap = this.props.alignEdge ? _alignMap.edgeMap : _alignMap.normalMap;
35790 var newAlign = res.align.join(' ');
35791 var resAlign = void 0;
35792
35793 var alignKey = 'align';
35794 if (rtl) {
35795 alignKey = 'rtlAlign';
35796 }
35797
35798 for (var key in alignMap) {
35799 if (alignMap[key][alignKey] === newAlign) {
35800 resAlign = key;
35801
35802 break;
35803 }
35804 }
35805
35806 resAlign = resAlign || this.state.align;
35807 if (resAlign !== this.state.align) {
35808 this.setState({
35809 align: resAlign,
35810 innerAlign: true
35811 });
35812 }
35813 };
35814
35815 Balloon.prototype.render = function render() {
35816 var _props = this.props,
35817 id = _props.id,
35818 type = _props.type,
35819 prefix = _props.prefix,
35820 className = _props.className,
35821 title = _props.title,
35822 alignEdge = _props.alignEdge,
35823 trigger = _props.trigger,
35824 triggerType = _props.triggerType,
35825 children = _props.children,
35826 closable = _props.closable,
35827 shouldUpdatePosition = _props.shouldUpdatePosition,
35828 delay = _props.delay,
35829 needAdjust = _props.needAdjust,
35830 autoAdjust = _props.autoAdjust,
35831 safeId = _props.safeId,
35832 autoFocus = _props.autoFocus,
35833 safeNode = _props.safeNode,
35834 onClick = _props.onClick,
35835 onHover = _props.onHover,
35836 animation = _props.animation,
35837 offset = _props.offset,
35838 style = _props.style,
35839 container = _props.container,
35840 popupContainer = _props.popupContainer,
35841 cache = _props.cache,
35842 popupStyle = _props.popupStyle,
35843 popupClassName = _props.popupClassName,
35844 popupProps = _props.popupProps,
35845 followTrigger = _props.followTrigger,
35846 rtl = _props.rtl,
35847 v2 = _props.v2,
35848 arrowPointToCenter = _props.arrowPointToCenter,
35849 _props$placementOffse = _props.placementOffset,
35850 placementOffset = _props$placementOffse === undefined ? 0 : _props$placementOffse,
35851 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']);
35852
35853 if (container) {
35854 _util.log.deprecated('container', 'popupContainer', 'Balloon');
35855 }
35856
35857 var align = this.state.align;
35858
35859 alignMap = alignEdge || v2 ? _alignMap.edgeMap : _alignMap.normalMap;
35860 var _prefix = this.context.prefix || prefix;
35861
35862 var trOrigin = 'trOrigin';
35863 if (rtl) {
35864 trOrigin = 'rtlTrOrigin';
35865 }
35866
35867 var _offset = [alignMap[align].offset[0] + offset[0], alignMap[align].offset[1] + offset[1]];
35868 var transformOrigin = alignMap[align][trOrigin];
35869 var _style = (0, _extends3.default)({ transformOrigin: transformOrigin }, style);
35870
35871 var content = _react2.default.createElement(_inner2.default, (0, _extends3.default)({}, _util.obj.pickOthers(Object.keys(Balloon.propTypes), others), {
35872 id: id,
35873 title: title,
35874 prefix: _prefix,
35875 closable: closable,
35876 onClose: this._onClose,
35877 className: className,
35878 style: _style,
35879 align: align,
35880 type: type,
35881 rtl: rtl,
35882 alignEdge: alignEdge,
35883 v2: v2
35884 }), children);
35885
35886 var triggerProps = {};
35887 triggerProps['aria-describedby'] = id;
35888 triggerProps.tabIndex = '0';
35889
35890 var ariaTrigger = id ? _react2.default.cloneElement(trigger, triggerProps) : trigger;
35891
35892 var newTrigger = (0, _util2.getDisabledCompatibleTrigger)(_react2.default.isValidElement(ariaTrigger) ? ariaTrigger : _react2.default.createElement('span', null, ariaTrigger));
35893
35894 var otherProps = {
35895 delay: delay,
35896 shouldUpdatePosition: shouldUpdatePosition,
35897 needAdjust: needAdjust,
35898 align: alignMap[align].align,
35899 offset: _offset,
35900 safeId: safeId,
35901 onHover: onHover,
35902 onPosition: this._onPosition
35903 };
35904
35905 if (v2) {
35906 delete otherProps.align;
35907 delete otherProps.shouldUpdatePosition;
35908 delete otherProps.needAdjust;
35909 delete otherProps.offset;
35910 delete otherProps.safeId;
35911 delete otherProps.onHover;
35912 delete otherProps.onPosition;
35913
35914 (0, _extends3.default)(otherProps, {
35915 placement: align,
35916 placementOffset: placementOffset + 12,
35917 v2: true,
35918 beforePosition: this.beforePosition,
35919 autoAdjust: autoAdjust
35920 });
35921 }
35922
35923 return _react2.default.createElement(Popup, (0, _extends3.default)({}, popupProps, {
35924 followTrigger: followTrigger,
35925 trigger: newTrigger,
35926 cache: cache,
35927 triggerType: triggerType,
35928 visible: this.state.visible,
35929 onClick: onClick,
35930 afterClose: this.props.afterClose,
35931 onVisibleChange: this._onVisibleChange,
35932 animation: animation,
35933 autoFocus: triggerType === 'focus' ? false : autoFocus,
35934 safeNode: safeNode,
35935 container: popupContainer || container,
35936 className: popupClassName,
35937 style: popupStyle,
35938 rtl: rtl
35939 }, otherProps), content);
35940 };
35941
35942 return Balloon;
35943}(_react2.default.Component), _class.contextTypes = {
35944 prefix: _propTypes2.default.string
35945}, _class.propTypes = {
35946 prefix: _propTypes2.default.string,
35947 pure: _propTypes2.default.bool,
35948 rtl: _propTypes2.default.bool,
35949 /**
35950 * 自定义类名
35951 */
35952 className: _propTypes2.default.string,
35953 /**
35954 * 自定义内敛样式
35955 */
35956 style: _propTypes2.default.object,
35957 /**
35958 * 浮层的内容
35959 */
35960 children: _propTypes2.default.any,
35961 size: _propTypes2.default.string,
35962 /**
35963 * 样式类型
35964 */
35965 type: _propTypes2.default.oneOf(['normal', 'primary']),
35966 /**
35967 * 标题
35968 * @version 1.23
35969 */
35970 title: _propTypes2.default.node,
35971 /**
35972 * 弹层当前显示的状态
35973 */
35974 visible: _propTypes2.default.bool,
35975 /**
35976 * 弹层默认显示的状态
35977 */
35978 defaultVisible: _propTypes2.default.bool,
35979 /**
35980 * 弹层在显示和隐藏触发的事件
35981 * @param {Boolean} visible 弹层是否隐藏和显示
35982 * @param {String} type 触发弹层显示或隐藏的来源, closeClick 表示由自带的关闭按钮触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
35983 */
35984 onVisibleChange: _propTypes2.default.func,
35985 alignEdge: _propTypes2.default.bool,
35986 /**
35987 * 开启 v2 版本
35988 * @version 1.25
35989 */
35990 v2: _propTypes2.default.bool,
35991 /**
35992 * [v2] 箭头是否指向目标元素的中心
35993 * @version 1.25
35994 */
35995 arrowPointToCenter: _propTypes2.default.bool,
35996 /**
35997 * [v2] 弹层偏离触发元素的像素值
35998 */
35999 placementOffset: _propTypes2.default.number,
36000 /**
36001 * 是否显示关闭按钮
36002 */
36003 closable: _propTypes2.default.bool,
36004 /**
36005 * 弹出层位置
36006 * @enumdesc 上, 右, 下, 左, 上左, 上右, 下左, 下右, 左上, 左下, 右上, 右下
36007 */
36008 align: _propTypes2.default.oneOf(alignList),
36009 /**
36010 * 弹层相对于trigger的定位的微调, 接收数组[hoz, ver], 表示弹层在 left / top 上的增量
36011 * e.g. [100, 100] 表示往右(RTL 模式下是往左) 、下分布偏移100px
36012 */
36013 offset: _propTypes2.default.array,
36014 /**
36015 * 触发元素
36016 */
36017 trigger: _propTypes2.default.any,
36018 /**
36019 * 触发行为
36020 * 鼠标悬浮, 鼠标点击('hover','click')或者它们组成的数组,如 ['hover', 'click'], 强烈不建议使用'focus',若弹窗内容有复杂交互请使用click
36021 */
36022 triggerType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
36023
36024 onClick: _propTypes2.default.func,
36025 /**
36026 * 任何visible为false时会触发的事件
36027 */
36028 onClose: _propTypes2.default.func,
36029 onHover: _propTypes2.default.func,
36030 /**
36031 * [v2] 是否进行自动位置调整,默认自动开启。
36032 * @version 1.25
36033 */
36034 autoAdjust: _propTypes2.default.bool,
36035 needAdjust: _propTypes2.default.bool,
36036 /**
36037 * 弹层在触发以后的延时显示, 单位毫秒 ms
36038 */
36039 delay: _propTypes2.default.number,
36040 /**
36041 * 浮层关闭后触发的事件, 如果有动画,则在动画结束后触发
36042 */
36043 afterClose: _propTypes2.default.func,
36044 shouldUpdatePosition: _propTypes2.default.bool,
36045 /**
36046 * 弹层出现后是否自动focus到内部第一个元素
36047 */
36048 autoFocus: _propTypes2.default.bool,
36049 /**
36050 * 安全节点:对于triggetType为click的浮层,会在点击除了浮层外的其它区域时关闭浮层.safeNode用于添加不触发关闭的节点, 值可以是dom节点的id或者是节点的dom对象
36051 */
36052 safeNode: _propTypes2.default.string,
36053 /**
36054 * 用来指定safeNode节点的id,和safeNode配合使用
36055 */
36056 safeId: _propTypes2.default.string,
36057 /**
36058 * 配置动画的播放方式,格式是{in: '', out: ''}, 常用的动画class请查看Animate组件文档
36059 * @param {String} in 进场动画
36060 * @param {String} out 出场动画
36061 */
36062 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
36063
36064 /**
36065 * 弹层的dom节点关闭时是否删除
36066 */
36067 cache: _propTypes2.default.bool,
36068 /**
36069 * 指定浮层渲染的父节点, 可以为节点id的字符串,也可以返回节点的函数。
36070 */
36071 popupContainer: _propTypes2.default.any,
36072 container: _propTypes2.default.any,
36073 /**
36074 * 弹层组件style,透传给Popup
36075 */
36076 popupStyle: _propTypes2.default.object,
36077 /**
36078 * 弹层组件className,透传给Popup
36079 */
36080 popupClassName: _propTypes2.default.string,
36081 /**
36082 * 弹层组件属性,透传给Popup
36083 */
36084 popupProps: _propTypes2.default.object,
36085 /**
36086 * 是否跟随滚动
36087 */
36088 followTrigger: _propTypes2.default.bool,
36089 /**
36090 * 弹层id, 传入值才会支持无障碍
36091 */
36092 id: _propTypes2.default.string
36093}, _class.defaultProps = {
36094 prefix: 'next-',
36095 pure: false,
36096 type: 'normal',
36097 closable: true,
36098 defaultVisible: false,
36099 size: 'medium',
36100 alignEdge: false,
36101 arrowPointToCenter: false,
36102 align: 'b',
36103 offset: [0, 0],
36104 trigger: _react2.default.createElement('span', null),
36105 onClose: noop,
36106 afterClose: noop,
36107 onVisibleChange: noop,
36108 needAdjust: false,
36109 triggerType: 'hover',
36110 safeNode: undefined,
36111 safeId: null,
36112 autoFocus: true,
36113 animation: {
36114 in: 'zoomIn zoomInBig',
36115 out: 'zoomOut zoomOutBig'
36116 },
36117 cache: false,
36118 popupStyle: {},
36119 popupClassName: '',
36120 popupProps: {}
36121}, _temp);
36122Balloon.displayName = 'Balloon';
36123exports.default = (0, _reactLifecyclesCompat.polyfill)(Balloon);
36124module.exports = exports['default'];
36125
36126/***/ }),
36127/* 277 */
36128/***/ (function(module, exports, __webpack_require__) {
36129
36130"use strict";
36131
36132
36133exports.__esModule = true;
36134var overlayManager = {
36135 allOverlays: [],
36136
36137 addOverlay: function addOverlay(overlay) {
36138 this.removeOverlay(overlay);
36139 this.allOverlays.unshift(overlay);
36140 },
36141 isCurrentOverlay: function isCurrentOverlay(overlay) {
36142 return overlay && this.allOverlays[0] === overlay;
36143 },
36144 removeOverlay: function removeOverlay(overlay) {
36145 var i = this.allOverlays.indexOf(overlay);
36146 if (i > -1) {
36147 this.allOverlays.splice(i, 1);
36148 }
36149 }
36150};
36151
36152exports.default = overlayManager;
36153module.exports = exports["default"];
36154
36155/***/ }),
36156/* 278 */
36157/***/ (function(module, exports, __webpack_require__) {
36158
36159"use strict";
36160
36161
36162exports.__esModule = true;
36163exports.default = undefined;
36164
36165var _classCallCheck2 = __webpack_require__(2);
36166
36167var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
36168
36169var _typeof2 = __webpack_require__(14);
36170
36171var _typeof3 = _interopRequireDefault(_typeof2);
36172
36173var _class, _temp, _initialiseProps;
36174
36175var _util = __webpack_require__(6);
36176
36177var _findNode = __webpack_require__(60);
36178
36179var _findNode2 = _interopRequireDefault(_findNode);
36180
36181function _interopRequireDefault(obj) {
36182 return obj && obj.__esModule ? obj : { default: obj };
36183}
36184
36185var VIEWPORT = 'viewport';
36186
36187// IE8 not support pageXOffset
36188var getPageX = function getPageX() {
36189 return window.pageXOffset || document.documentElement.scrollLeft;
36190};
36191var getPageY = function getPageY() {
36192 return window.pageYOffset || document.documentElement.scrollTop;
36193};
36194
36195/**
36196 * @private get element size
36197 * @param {Element} element
36198 * @return {Object}
36199 */
36200function _getSize(element) {
36201 // element like `svg` do not have offsetWidth and offsetHeight prop
36202 // then getBoundingClientRect
36203 if ('offsetWidth' in element && 'offsetHeight' in element) {
36204 return {
36205 width: element.offsetWidth,
36206 height: element.offsetHeight
36207 };
36208 } else {
36209 var _element$getBoundingC = element.getBoundingClientRect(),
36210 width = _element$getBoundingC.width,
36211 height = _element$getBoundingC.height;
36212
36213 return {
36214 width: width,
36215 height: height
36216 };
36217 }
36218}
36219
36220/**
36221 * @private get element rect
36222 * @param {Element} elem
36223 * @return {Object}
36224 */
36225function _getElementRect(elem, container) {
36226 var offsetTop = 0,
36227 offsetLeft = 0,
36228 scrollTop = 0,
36229 scrollLeft = 0;
36230
36231 var _getSize2 = _getSize(elem),
36232 width = _getSize2.width,
36233 height = _getSize2.height;
36234
36235 do {
36236 if (!isNaN(elem.offsetTop)) {
36237 offsetTop += elem.offsetTop;
36238 }
36239 if (!isNaN(elem.offsetLeft)) {
36240 offsetLeft += elem.offsetLeft;
36241 }
36242 if (elem && elem.offsetParent) {
36243 if (!isNaN(elem.offsetParent.scrollLeft) && elem.offsetParent !== document.body) {
36244 scrollLeft += elem.offsetParent.scrollLeft;
36245 }
36246
36247 if (!isNaN(elem.offsetParent.scrollTop) && elem.offsetParent !== document.body) {
36248 scrollTop += elem.offsetParent.scrollTop;
36249 }
36250 }
36251
36252 elem = elem.offsetParent;
36253 } while (elem !== null && elem !== container);
36254
36255 // if container is body or invalid, treat as window, use client width & height
36256 var treatAsWindow = !container || container === document.body;
36257
36258 return {
36259 top: offsetTop - scrollTop - (treatAsWindow ? document.documentElement.scrollTop || document.body.scrollTop : 0),
36260 left: offsetLeft - scrollLeft - (treatAsWindow ? document.documentElement.scrollLeft || document.body.scrollLeft : 0),
36261 width: width,
36262 height: height
36263 };
36264}
36265
36266/**
36267 * @private get viewport size
36268 * @return {Object}
36269 */
36270function _getViewportSize(container) {
36271 if (!container || container === document.body) {
36272 return {
36273 width: document.documentElement.clientWidth,
36274 height: document.documentElement.clientHeight
36275 };
36276 }
36277
36278 var _container$getBoundin = container.getBoundingClientRect(),
36279 width = _container$getBoundin.width,
36280 height = _container$getBoundin.height;
36281
36282 return {
36283 width: width,
36284 height: height
36285 };
36286}
36287
36288var getContainer = function getContainer(_ref) {
36289 var container = _ref.container,
36290 baseElement = _ref.baseElement;
36291
36292 // SSR下会有副作用
36293 if ((typeof document === 'undefined' ? 'undefined' : (0, _typeof3.default)(document)) === undefined) {
36294 return container;
36295 }
36296
36297 var calcContainer = (0, _findNode2.default)(container, baseElement);
36298
36299 if (!calcContainer) {
36300 calcContainer = document.body;
36301 }
36302
36303 while (_util.dom.getStyle(calcContainer, 'position') === 'static') {
36304 if (!calcContainer || calcContainer === document.body) {
36305 return document.body;
36306 }
36307 calcContainer = calcContainer.parentNode;
36308 }
36309
36310 return calcContainer;
36311};
36312
36313var Position = (_temp = _class = function () {
36314 function Position(props) {
36315 (0, _classCallCheck3.default)(this, Position);
36316
36317 _initialiseProps.call(this);
36318
36319 this.pinElement = props.pinElement;
36320 this.baseElement = props.baseElement;
36321 this.pinFollowBaseElementWhenFixed = props.pinFollowBaseElementWhenFixed;
36322 this.container = getContainer(props);
36323 this.autoFit = props.autoFit || false;
36324 this.align = props.align || 'tl tl';
36325 this.offset = props.offset || [0, 0];
36326 this.needAdjust = props.needAdjust || false;
36327 this.isRtl = props.isRtl || false;
36328 }
36329
36330 /**
36331 * @public static place method
36332 * @param {Object} props
36333 * @param {DOM} props.pinElement
36334 * @param {DOM} props.baseElement
36335 * @param {String} props.align
36336 * @param {Number} props.offset
36337 * @param {Boolean} props.needAdjust
36338 * @param {Boolean} props.isRtl
36339 * @return {Position}
36340 */
36341
36342 Position.prototype.setPosition = function setPosition() {
36343 var pinElement = this.pinElement;
36344 var baseElement = this.baseElement;
36345 var pinFollowBaseElementWhenFixed = this.pinFollowBaseElementWhenFixed;
36346 var expectedAlign = this._getExpectedAlign();
36347 var isPinFixed = void 0,
36348 isBaseFixed = void 0,
36349 firstPositionResult = void 0;
36350 if (pinElement === VIEWPORT) {
36351 return;
36352 }
36353 if (_util.dom.getStyle(pinElement, 'position') !== 'fixed') {
36354 _util.dom.setStyle(pinElement, 'position', 'absolute');
36355 isPinFixed = false;
36356 } else {
36357 isPinFixed = true;
36358 }
36359 if (baseElement === VIEWPORT || _util.dom.getStyle(baseElement, 'position') !== 'fixed') {
36360 isBaseFixed = false;
36361 } else {
36362 isBaseFixed = true;
36363 }
36364
36365 // 根据期望的定位
36366 for (var i = 0; i < expectedAlign.length; i++) {
36367 var align = expectedAlign[i];
36368 var pinElementPoints = this._normalizePosition(pinElement, align.split(' ')[0], isPinFixed);
36369 var baseElementPoints = this._normalizePosition(baseElement, align.split(' ')[1],
36370 // 忽略元素位置,发生在类似dialog的场景下
36371 isPinFixed && !pinFollowBaseElementWhenFixed);
36372
36373 var pinElementParentOffset = this._getParentOffset(pinElement);
36374 var pinElementParentScrollOffset = this._getParentScrollOffset(pinElement);
36375
36376 var baseElementOffset = isPinFixed && isBaseFixed ? this._getLeftTop(baseElement) : // 在 pin 是 fixed 布局,并且又需要根据 base 计算位置时,计算 base 的 offset 需要忽略页面滚动
36377 baseElementPoints.offset(isPinFixed && pinFollowBaseElementWhenFixed);
36378 var top = baseElementOffset.top + baseElementPoints.y - pinElementParentOffset.top - pinElementPoints.y + pinElementParentScrollOffset.top;
36379 var left = baseElementOffset.left + baseElementPoints.x - pinElementParentOffset.left - pinElementPoints.x + pinElementParentScrollOffset.left;
36380
36381 this._setPinElementPostion(pinElement, { left: left, top: top }, this.offset);
36382
36383 if (this._isInViewport(pinElement, align)) {
36384 return align;
36385 } else if (!firstPositionResult) {
36386 if (this.needAdjust && !this.autoFit) {
36387 var _getViewportOffset2 = this._getViewportOffset(pinElement, align),
36388 right = _getViewportOffset2.right;
36389
36390 firstPositionResult = {
36391 left: right < 0 ? left + right : left,
36392 top: top
36393 };
36394 } else {
36395 firstPositionResult = { left: left, top: top };
36396 }
36397 }
36398 }
36399
36400 // This will only execute if `pinElement` could not be placed entirely in the Viewport
36401 var inViewportLeft = this._makeElementInViewport(pinElement, firstPositionResult.left, 'Left', isPinFixed);
36402 var inViewportTop = this._makeElementInViewport(pinElement, firstPositionResult.top, 'Top', isPinFixed);
36403
36404 this._setPinElementPostion(pinElement, { left: inViewportLeft, top: inViewportTop }, this._calPinOffset(expectedAlign[0]));
36405
36406 return expectedAlign[0];
36407 };
36408
36409 Position.prototype._getParentOffset = function _getParentOffset(element) {
36410 var parent = element.offsetParent || document.documentElement;
36411 var offset = void 0;
36412 if (parent === document.body && _util.dom.getStyle(parent, 'position') === 'static') {
36413 offset = {
36414 top: 0,
36415 left: 0
36416 };
36417 } else {
36418 offset = this._getElementOffset(parent);
36419 }
36420
36421 offset.top += parseFloat(_util.dom.getStyle(parent, 'border-top-width'), 10);
36422 offset.left += parseFloat(_util.dom.getStyle(parent, 'border-left-width'), 10);
36423 offset.offsetParent = parent;
36424 return offset;
36425 };
36426
36427 Position.prototype._makeElementInViewport = function _makeElementInViewport(pinElement, number, type, isPinFixed) {
36428 // pinElement.offsetParent is never body because wrapper has position: absolute
36429 // refactored to make code clearer. Revert if wrapper style changes.
36430 var result = number;
36431 var docElement = document.documentElement;
36432 var offsetParent = pinElement.offsetParent || document.documentElement;
36433
36434 if (result < 0) {
36435 if (isPinFixed) {
36436 result = 0;
36437 } else if (offsetParent === document.body && _util.dom.getStyle(offsetParent, 'position') === 'static') {
36438 // Only when div's offsetParent is document.body, we set new position result.
36439 result = Math.max(docElement['scroll' + type], document.body['scroll' + type]);
36440 }
36441 }
36442 return result;
36443 };
36444
36445 // 这里的第三个参数真实含义为:是否为fixed布局,并且像dialog一样,不跟随trigger元素
36446
36447
36448 Position.prototype._normalizePosition = function _normalizePosition(element, align, ignoreElementOffset) {
36449 var points = this._normalizeElement(element, ignoreElementOffset);
36450 this._normalizeXY(points, align);
36451
36452 return points;
36453 };
36454
36455 Position.prototype._normalizeXY = function _normalizeXY(points, align) {
36456 var x = align.split('')[1];
36457 var y = align.split('')[0];
36458
36459 points.x = this._xyConverter(x, points, 'width');
36460 points.y = this._xyConverter(y, points, 'height');
36461
36462 return points;
36463 };
36464
36465 Position.prototype._xyConverter = function _xyConverter(align, points, type) {
36466 var res = align.replace(/t|l/gi, '0%').replace(/c/gi, '50%').replace(/b|r/gi, '100%').replace(/(\d+)%/gi, function (m, d) {
36467 return points.size()[type] * (d / 100);
36468 });
36469
36470 return parseFloat(res, 10) || 0;
36471 };
36472
36473 Position.prototype._getLeftTop = function _getLeftTop(element) {
36474 return {
36475 left: parseFloat(_util.dom.getStyle(element, 'left')) || 0,
36476 top: parseFloat(_util.dom.getStyle(element, 'top')) || 0
36477 };
36478 };
36479
36480 Position.prototype._normalizeElement = function _normalizeElement(element, ignoreElementOffset) {
36481 var _this = this;
36482
36483 var result = {
36484 element: element,
36485 x: 0,
36486 y: 0
36487 },
36488 isViewport = element === VIEWPORT,
36489 docElement = document.documentElement;
36490
36491 result.offset = function (ignoreScroll) {
36492 // 这里是关键,第二个参数的含义以ing该是:是否为 fixed 布局,并且像 dialog 一样,不跟随 trigger 元素
36493 if (ignoreElementOffset) {
36494 return {
36495 left: 0,
36496 top: 0
36497 };
36498 } else if (isViewport) {
36499 return {
36500 left: getPageX(),
36501 top: getPageY()
36502 };
36503 } else {
36504 return _this._getElementOffset(element, ignoreScroll);
36505 }
36506 };
36507
36508 result.size = function () {
36509 if (isViewport) {
36510 return {
36511 width: docElement.clientWidth,
36512 height: docElement.clientHeight
36513 };
36514 } else {
36515 return _getSize(element);
36516 }
36517 };
36518
36519 return result;
36520 };
36521
36522 // ignoreScroll 在 pin 元素为 fixed 的时候生效,此时需要忽略页面滚动
36523 // 对 fixed 模式下 subNav 弹层的计算很重要,只有在这种情况下,才同时需要元素的相对位置,又不关心页面滚动
36524
36525
36526 Position.prototype._getElementOffset = function _getElementOffset(element, ignoreScroll) {
36527 var rect = element.getBoundingClientRect();
36528 var docElement = document.documentElement;
36529 var body = document.body;
36530 var docClientLeft = docElement.clientLeft || body.clientLeft || 0;
36531 var docClientTop = docElement.clientTop || body.clientTop || 0;
36532
36533 return {
36534 left: rect.left + (ignoreScroll ? 0 : getPageX()) - docClientLeft,
36535 top: rect.top + (ignoreScroll ? 0 : getPageY()) - docClientTop
36536 };
36537 };
36538
36539 // According to the location of the overflow to calculate the desired positioning
36540
36541
36542 Position.prototype._getExpectedAlign = function _getExpectedAlign() {
36543 var align = this.isRtl ? this._replaceAlignDir(this.align, /l|r/g, { l: 'r', r: 'l' }) : this.align;
36544 var expectedAlign = [align];
36545 if (this.needAdjust) {
36546 if (/t|b/g.test(align)) {
36547 expectedAlign.push(this._replaceAlignDir(align, /t|b/g, { t: 'b', b: 't' }));
36548 }
36549 if (/l|r/g.test(align)) {
36550 expectedAlign.push(this._replaceAlignDir(align, /l|r/g, { l: 'r', r: 'l' }));
36551 }
36552 if (/c/g.test(align)) {
36553 expectedAlign.push(this._replaceAlignDir(align, /c(?= |$)/g, { c: 'l' }));
36554 expectedAlign.push(this._replaceAlignDir(align, /c(?= |$)/g, { c: 'r' }));
36555 }
36556 expectedAlign.push(this._replaceAlignDir(align, /l|r|t|b/g, {
36557 l: 'r',
36558 r: 'l',
36559 t: 'b',
36560 b: 't'
36561 }));
36562 }
36563 return expectedAlign;
36564 };
36565
36566 // Transform align order.
36567
36568
36569 Position.prototype._replaceAlignDir = function _replaceAlignDir(align, regExp, map) {
36570 return align.replace(regExp, function (res) {
36571 return map[res];
36572 });
36573 };
36574
36575 // Are the right sides of the pin and base aligned?
36576
36577
36578 Position.prototype._isRightAligned = function _isRightAligned(align) {
36579 var _align$split = align.split(' '),
36580 pinAlign = _align$split[0],
36581 baseAlign = _align$split[1];
36582
36583 return pinAlign[1] === 'r' && pinAlign[1] === baseAlign[1];
36584 };
36585
36586 // Are the bottoms of the pin and base aligned?
36587
36588
36589 Position.prototype._isBottomAligned = function _isBottomAligned(align) {
36590 var _align$split2 = align.split(' '),
36591 pinAlign = _align$split2[0],
36592 baseAlign = _align$split2[1];
36593
36594 return pinAlign[0] === 'b' && pinAlign[0] === baseAlign[0];
36595 };
36596
36597 // Detecting element is in the window, we want to adjust position later.
36598
36599
36600 Position.prototype._isInViewport = function _isInViewport(element, align) {
36601 var viewportSize = _getViewportSize(this.container);
36602 var elementRect = _getElementRect(element, this.container);
36603 var elementSize = _getSize(element);
36604
36605 // https://github.com/alibaba-fusion/next/issues/853
36606 // Equality causes issues in Chrome when pin element is off screen to right or bottom.
36607 // If it is not supposed to align with the bottom or right, then subtract 1 to use strict less than.
36608 var viewportWidth = this._isRightAligned(align) ? viewportSize.width : viewportSize.width - 1;
36609 var viewportHeight = this._isBottomAligned(align) ? viewportSize.height : viewportSize.height - 1;
36610
36611 // 临时方案,在 select + table 的场景下,不需要关注横向上是否在可视区域内
36612 // 在 balloon 场景下需要关注
36613 if (this.autoFit) {
36614 return elementRect.top >= 0 && elementRect.top + element.offsetHeight <= viewportHeight;
36615 }
36616
36617 // Avoid animate problem that use offsetWidth instead of getBoundingClientRect.
36618 return elementRect.left >= 0 && elementRect.left + elementSize.width <= viewportWidth && elementRect.top >= 0 && elementRect.top + elementSize.height <= viewportHeight;
36619 };
36620
36621 Position.prototype._getViewportOffset = function _getViewportOffset(element, align) {
36622 var viewportSize = _getViewportSize(this.container);
36623 var elementRect = _getElementRect(element, this.container);
36624 var elementSize = _getSize(element);
36625
36626 var viewportWidth = this._isRightAligned(align) ? viewportSize.width : viewportSize.width - 1;
36627 var viewportHeight = this._isBottomAligned(align) ? viewportSize.height : viewportSize.height - 1;
36628
36629 return {
36630 top: elementRect.top,
36631 right: viewportWidth - (elementRect.left + elementSize.width),
36632 bottom: viewportHeight - (elementRect.top + elementSize.height),
36633 left: elementRect.left
36634 };
36635 };
36636
36637 // 在这里做RTL判断 top-left 定位转化为等效的 top-right定位
36638
36639
36640 Position.prototype._setPinElementPostion = function _setPinElementPostion(pinElement, postion) {
36641 var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [0, 0];
36642 var top = postion.top,
36643 left = postion.left;
36644
36645 if (!this.isRtl) {
36646 _util.dom.setStyle(pinElement, {
36647 left: left + offset[0] + 'px',
36648 top: top + offset[1] + 'px'
36649 });
36650 return;
36651 }
36652
36653 // transfer {left,top} equaly to {right,top}
36654 var pinElementParentOffset = this._getParentOffset(pinElement);
36655
36656 var _getElementRect2 = _getElementRect(pinElementParentOffset.offsetParent),
36657 offsetParentWidth = _getElementRect2.width;
36658
36659 var _getElementRect3 = _getElementRect(pinElement),
36660 width = _getElementRect3.width;
36661
36662 var right = offsetParentWidth - (left + width);
36663 _util.dom.setStyle(pinElement, {
36664 left: 'auto',
36665 right: right + offset[0] + 'px',
36666 top: top + offset[1] + 'px'
36667 });
36668 };
36669
36670 return Position;
36671}(), _class.VIEWPORT = VIEWPORT, _class.place = function (props) {
36672 return new Position(props).setPosition();
36673}, _initialiseProps = function _initialiseProps() {
36674 var _this2 = this;
36675
36676 this._calPinOffset = function (align) {
36677 var offset = [].concat(_this2.offset);
36678
36679 if (_this2.autoFit && align && _this2.container && _this2.container !== document.body) {
36680 var baseElementRect = _getElementRect(_this2.baseElement, _this2.container);
36681 var pinElementRect = _getElementRect(_this2.pinElement, _this2.container);
36682 var viewportSize = _getViewportSize(_this2.container);
36683 var pinAlign = align.split(' ')[0];
36684 var x = pinAlign.charAt(1);
36685 var y = pinAlign.charAt(0);
36686
36687 if (pinElementRect.top < 0 || pinElementRect.top + pinElementRect.height > viewportSize.height) {
36688 offset[1] = -baseElementRect.top - (y === 't' ? baseElementRect.height : 0);
36689 }
36690 }
36691 return offset;
36692 };
36693
36694 this._getParentScrollOffset = function (elem) {
36695 var top = 0;
36696 var left = 0;
36697
36698 if (elem && elem.offsetParent && elem.offsetParent !== document.body) {
36699 if (!isNaN(elem.offsetParent.scrollTop)) {
36700 top += elem.offsetParent.scrollTop;
36701 }
36702 if (!isNaN(elem.offsetParent.scrollLeft)) {
36703 left += elem.offsetParent.scrollLeft;
36704 }
36705 }
36706
36707 return {
36708 top: top,
36709 left: left
36710 };
36711 };
36712}, _temp);
36713exports.default = Position;
36714module.exports = exports['default'];
36715
36716/***/ }),
36717/* 279 */
36718/***/ (function(module, exports, __webpack_require__) {
36719
36720"use strict";
36721
36722
36723exports.__esModule = true;
36724
36725var _extends2 = __webpack_require__(1);
36726
36727var _extends3 = _interopRequireDefault(_extends2);
36728
36729var _objectWithoutProperties2 = __webpack_require__(8);
36730
36731var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
36732
36733var _react = __webpack_require__(0);
36734
36735var _react2 = _interopRequireDefault(_react);
36736
36737var _classnames = __webpack_require__(7);
36738
36739var _classnames2 = _interopRequireDefault(_classnames);
36740
36741var _overlay = __webpack_require__(85);
36742
36743var _overlay2 = _interopRequireDefault(_overlay);
36744
36745var _animate = __webpack_require__(20);
36746
36747var _animate2 = _interopRequireDefault(_animate);
36748
36749var _util = __webpack_require__(6);
36750
36751function _interopRequireDefault(obj) {
36752 return obj && obj.__esModule ? obj : { default: obj };
36753}
36754
36755var Overlay2 = function Overlay2(props) {
36756 var _classNames;
36757
36758 if (!_react.useState || !_react.useRef || !_react.useEffect) {
36759 _util.log.warning('need react version > 16.8.0');
36760 return null;
36761 }
36762
36763 var _props$prefix = props.prefix,
36764 prefix = _props$prefix === undefined ? 'next-' : _props$prefix,
36765 _props$animation = props.animation,
36766 animation = _props$animation === undefined ? { in: 'expandInDown', out: 'expandOutUp' } : _props$animation,
36767 visible = props.visible,
36768 hasMask = props.hasMask,
36769 align = props.align,
36770 _props$points = props.points,
36771 points = _props$points === undefined ? align ? align.split(' ') : undefined : _props$points,
36772 onPosition = props.onPosition,
36773 children = props.children,
36774 className = props.className,
36775 style = props.style,
36776 wrapperClassName = props.wrapperClassName,
36777 beforeOpen = props.beforeOpen,
36778 onOpen = props.onOpen,
36779 afterOpen = props.afterOpen,
36780 beforeClose = props.beforeClose,
36781 onClose = props.onClose,
36782 afterClose = props.afterClose,
36783 others = (0, _objectWithoutProperties3.default)(props, ['prefix', 'animation', 'visible', 'hasMask', 'align', 'points', 'onPosition', 'children', 'className', 'style', 'wrapperClassName', 'beforeOpen', 'onOpen', 'afterOpen', 'beforeClose', 'onClose', 'afterClose']);
36784
36785 var _useState = (0, _react.useState)(true),
36786 isAnimationEnd = _useState[0],
36787 markAnimationEnd = _useState[1];
36788
36789 var overlayRef = (0, _react.useRef)(null);
36790
36791 var handleEnter = function handleEnter() {
36792 markAnimationEnd(false);
36793 typeof beforeOpen === 'function' && beforeOpen(overlayRef.current);
36794 };
36795 var handleEntering = function handleEntering() {
36796 typeof onOpen === 'function' && onOpen(overlayRef.current);
36797 };
36798 var handleEntered = function handleEntered() {
36799 typeof afterOpen === 'function' && afterOpen(overlayRef.current);
36800 };
36801 var handleExit = function handleExit() {
36802 typeof beforeClose === 'function' && beforeClose(overlayRef.current);
36803 };
36804 var handleExiting = function handleExiting() {
36805 typeof onClose === 'function' && onClose(overlayRef.current);
36806 };
36807 var handleExited = function handleExited() {
36808 markAnimationEnd(true);
36809 typeof afterClose === 'function' && afterClose(overlayRef.current);
36810 };
36811
36812 var childrenNode = _react2.default.createElement(_animate2.default.OverlayAnimate, {
36813 visible: visible,
36814 animation: animation,
36815 onEnter: handleEnter,
36816 onEntering: handleEntering,
36817 onEntered: handleEntered,
36818 onExit: handleExit,
36819 onExiting: handleExiting,
36820 onExited: handleExited,
36821 timeout: 300,
36822 style: style
36823 }, children ? (0, _react.cloneElement)(children, {
36824 className: (0, _classnames2.default)([prefix + 'overlay-inner', className, children && children.props && children.props.className])
36825 }) : _react2.default.createElement('span', null));
36826
36827 var wraperCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'overlay-wrapper v2'] = true, _classNames[wrapperClassName] = wrapperClassName, _classNames.opened = visible, _classNames));
36828
36829 var handlePosition = function handlePosition(result) {
36830 // 兼容 1.x, 2.x 可去除这段逻辑
36831 (0, _extends3.default)(result, { align: result.config.points });
36832
36833 typeof onPosition === 'function' && onPosition(result);
36834 };
36835
36836 var maskRender = function maskRender(node) {
36837 return _react2.default.createElement(_animate2.default.OverlayAnimate, {
36838 visible: visible,
36839 animation: animation ? { in: 'fadeIn', out: 'fadeOut' } : false,
36840 timeout: 300,
36841 unmountOnExit: true
36842 }, node);
36843 };
36844
36845 return _react2.default.createElement(_overlay2.default, (0, _extends3.default)({}, others, {
36846 visible: visible,
36847 isAnimationEnd: isAnimationEnd,
36848 hasMask: hasMask,
36849 wrapperClassName: wraperCls,
36850 maskClassName: prefix + 'overlay-backdrop',
36851 maskRender: maskRender,
36852 points: points,
36853 onPosition: handlePosition,
36854 ref: overlayRef
36855 }), childrenNode);
36856}; /* istanbul ignore file */
36857exports.default = Overlay2;
36858module.exports = exports['default'];
36859
36860/***/ }),
36861/* 280 */
36862/***/ (function(module, exports, __webpack_require__) {
36863
36864var setPrototypeOf = __webpack_require__(281);
36865
36866function _inheritsLoose(subClass, superClass) {
36867 subClass.prototype = Object.create(superClass.prototype);
36868 subClass.prototype.constructor = subClass;
36869 setPrototypeOf(subClass, superClass);
36870}
36871
36872module.exports = _inheritsLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
36873
36874/***/ }),
36875/* 281 */
36876/***/ (function(module, exports) {
36877
36878function _setPrototypeOf(o, p) {
36879 module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
36880 o.__proto__ = p;
36881 return o;
36882 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
36883 return _setPrototypeOf(o, p);
36884}
36885
36886module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
36887
36888/***/ }),
36889/* 282 */
36890/***/ (function(module, exports, __webpack_require__) {
36891
36892"use strict";
36893
36894
36895exports.__esModule = true;
36896
36897var _objectWithoutProperties2 = __webpack_require__(8);
36898
36899var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
36900
36901var _extends2 = __webpack_require__(1);
36902
36903var _extends3 = _interopRequireDefault(_extends2);
36904
36905var _classCallCheck2 = __webpack_require__(2);
36906
36907var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
36908
36909var _possibleConstructorReturn2 = __webpack_require__(3);
36910
36911var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
36912
36913var _inherits2 = __webpack_require__(4);
36914
36915var _inherits3 = _interopRequireDefault(_inherits2);
36916
36917var _class, _temp;
36918
36919var _react = __webpack_require__(0);
36920
36921var _react2 = _interopRequireDefault(_react);
36922
36923var _reactDom = __webpack_require__(12);
36924
36925var _reactLifecyclesCompat = __webpack_require__(10);
36926
36927var _propTypes = __webpack_require__(5);
36928
36929var _propTypes2 = _interopRequireDefault(_propTypes);
36930
36931var _util = __webpack_require__(6);
36932
36933var _overlay = __webpack_require__(136);
36934
36935var _overlay2 = _interopRequireDefault(_overlay);
36936
36937function _interopRequireDefault(obj) {
36938 return obj && obj.__esModule ? obj : { default: obj };
36939}
36940
36941var noop = _util.func.noop,
36942 makeChain = _util.func.makeChain,
36943 bindCtx = _util.func.bindCtx;
36944
36945/**
36946 * Overlay.Popup
36947 * @description 继承 Overlay 的 API,除非特别说明
36948 * */
36949
36950var Popup = (_temp = _class = function (_Component) {
36951 (0, _inherits3.default)(Popup, _Component);
36952
36953 function Popup(props) {
36954 (0, _classCallCheck3.default)(this, Popup);
36955
36956 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
36957
36958 _this.state = {
36959 visible: typeof props.visible === 'undefined' ? props.defaultVisible : props.visible
36960 };
36961
36962 bindCtx(_this, ['handleTriggerClick', 'handleTriggerKeyDown', 'handleTriggerMouseEnter', 'handleTriggerMouseLeave', 'handleTriggerFocus', 'handleTriggerBlur', 'handleContentMouseEnter', 'handleContentMouseLeave', 'handleContentMouseDown', 'handleRequestClose', 'handleMaskMouseEnter', 'handleMaskMouseLeave']);
36963 return _this;
36964 }
36965
36966 Popup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
36967 if ('visible' in nextProps) {
36968 return (0, _extends3.default)({}, prevState, {
36969 visible: nextProps.visible
36970 });
36971 }
36972
36973 return null;
36974 };
36975
36976 Popup.prototype.componentWillUnmount = function componentWillUnmount() {
36977 var _this2 = this;
36978
36979 ['_timer', '_hideTimer', '_showTimer'].forEach(function (time) {
36980 _this2[time] && clearTimeout(_this2[time]);
36981 });
36982 };
36983
36984 Popup.prototype.handleVisibleChange = function handleVisibleChange(visible, type, e) {
36985 if (!('visible' in this.props)) {
36986 this.setState({
36987 visible: visible
36988 });
36989 }
36990
36991 this.props.onVisibleChange(visible, type, e);
36992 };
36993
36994 Popup.prototype.handleTriggerClick = function handleTriggerClick(e) {
36995 if (this.state.visible && !this.props.canCloseByTrigger) {
36996 return;
36997 }
36998
36999 this.handleVisibleChange(!this.state.visible, 'fromTrigger', e);
37000 };
37001
37002 Popup.prototype.handleTriggerKeyDown = function handleTriggerKeyDown(e) {
37003 var triggerClickKeycode = this.props.triggerClickKeycode;
37004
37005 var keycodes = Array.isArray(triggerClickKeycode) ? triggerClickKeycode : [triggerClickKeycode];
37006 if (keycodes.includes(e.keyCode)) {
37007 e.preventDefault();
37008 this.handleTriggerClick(e);
37009 }
37010 };
37011
37012 Popup.prototype.handleTriggerMouseEnter = function handleTriggerMouseEnter(e) {
37013 var _this3 = this;
37014
37015 this._mouseNotFirstOnMask = false;
37016
37017 if (this._hideTimer) {
37018 clearTimeout(this._hideTimer);
37019 this._hideTimer = null;
37020 }
37021 if (this._showTimer) {
37022 clearTimeout(this._showTimer);
37023 this._showTimer = null;
37024 }
37025 if (!this.state.visible) {
37026 this._showTimer = setTimeout(function () {
37027 _this3.handleVisibleChange(true, 'fromTrigger', e);
37028 }, this.props.delay);
37029 }
37030 };
37031
37032 Popup.prototype.handleTriggerMouseLeave = function handleTriggerMouseLeave(e, type) {
37033 var _this4 = this;
37034
37035 if (this._showTimer) {
37036 clearTimeout(this._showTimer);
37037 this._showTimer = null;
37038 }
37039 if (this.state.visible) {
37040 this._hideTimer = setTimeout(function () {
37041 _this4.handleVisibleChange(false, type || 'fromTrigger', e);
37042 }, this.props.delay);
37043 }
37044 };
37045
37046 Popup.prototype.handleTriggerFocus = function handleTriggerFocus(e) {
37047 this.handleVisibleChange(true, 'fromTrigger', e);
37048 };
37049
37050 Popup.prototype.handleTriggerBlur = function handleTriggerBlur(e) {
37051 if (!this._isForwardContent) {
37052 this.handleVisibleChange(false, 'fromTrigger', e);
37053 }
37054 this._isForwardContent = false;
37055 };
37056
37057 Popup.prototype.handleContentMouseDown = function handleContentMouseDown() {
37058 this._isForwardContent = true;
37059 };
37060
37061 Popup.prototype.handleContentMouseEnter = function handleContentMouseEnter() {
37062 clearTimeout(this._hideTimer);
37063 };
37064
37065 Popup.prototype.handleContentMouseLeave = function handleContentMouseLeave(e) {
37066 this.handleTriggerMouseLeave(e, 'fromContent');
37067 };
37068
37069 Popup.prototype.handleMaskMouseEnter = function handleMaskMouseEnter() {
37070 if (!this._mouseNotFirstOnMask) {
37071 clearTimeout(this._hideTimer);
37072 this._hideTimer = null;
37073 this._mouseNotFirstOnMask = false;
37074 }
37075 };
37076
37077 Popup.prototype.handleMaskMouseLeave = function handleMaskMouseLeave() {
37078 this._mouseNotFirstOnMask = true;
37079 };
37080
37081 Popup.prototype.handleRequestClose = function handleRequestClose(type, e) {
37082 this.handleVisibleChange(false, type, e);
37083 };
37084
37085 Popup.prototype.renderTrigger = function renderTrigger() {
37086 var _this5 = this;
37087
37088 var _props = this.props,
37089 trigger = _props.trigger,
37090 disabled = _props.disabled;
37091
37092 var props = {
37093 key: 'trigger',
37094 'aria-haspopup': true,
37095 'aria-expanded': this.state.visible
37096 };
37097
37098 if (!this.state.visible) {
37099 props['aria-describedby'] = undefined;
37100 }
37101
37102 if (!disabled) {
37103 var triggerType = this.props.triggerType;
37104
37105 var triggerTypes = Array.isArray(triggerType) ? triggerType : [triggerType];
37106
37107 var _ref = trigger && trigger.props || {},
37108 onClick = _ref.onClick,
37109 onKeyDown = _ref.onKeyDown,
37110 onMouseEnter = _ref.onMouseEnter,
37111 onMouseLeave = _ref.onMouseLeave,
37112 onFocus = _ref.onFocus,
37113 onBlur = _ref.onBlur;
37114
37115 triggerTypes.forEach(function (triggerType) {
37116 switch (triggerType) {
37117 case 'click':
37118 props.onClick = makeChain(_this5.handleTriggerClick, onClick);
37119 props.onKeyDown = makeChain(_this5.handleTriggerKeyDown, onKeyDown);
37120 break;
37121 case 'hover':
37122 props.onMouseEnter = makeChain(_this5.handleTriggerMouseEnter, onMouseEnter);
37123 props.onMouseLeave = makeChain(_this5.handleTriggerMouseLeave, onMouseLeave);
37124 break;
37125 case 'focus':
37126 props.onFocus = makeChain(_this5.handleTriggerFocus, onFocus);
37127 props.onBlur = makeChain(_this5.handleTriggerBlur, onBlur);
37128 break;
37129 default:
37130 break;
37131 }
37132 });
37133 }
37134
37135 return trigger && _react2.default.cloneElement(trigger, props);
37136 };
37137
37138 Popup.prototype.renderContent = function renderContent() {
37139 var _this6 = this;
37140
37141 var _props2 = this.props,
37142 children = _props2.children,
37143 triggerType = _props2.triggerType;
37144
37145 var triggerTypes = Array.isArray(triggerType) ? triggerType : [triggerType];
37146 var content = _react.Children.only(children);
37147 var _content$props = content.props,
37148 onMouseDown = _content$props.onMouseDown,
37149 onMouseEnter = _content$props.onMouseEnter,
37150 onMouseLeave = _content$props.onMouseLeave;
37151
37152 var props = {
37153 key: 'portal'
37154 };
37155
37156 triggerTypes.forEach(function (triggerType) {
37157 switch (triggerType) {
37158 case 'focus':
37159 props.onMouseDown = makeChain(_this6.handleContentMouseDown, onMouseDown);
37160 break;
37161 case 'hover':
37162 props.onMouseEnter = makeChain(_this6.handleContentMouseEnter, onMouseEnter);
37163 props.onMouseLeave = makeChain(_this6.handleContentMouseLeave, onMouseLeave);
37164 break;
37165 default:
37166 break;
37167 }
37168 });
37169
37170 return _react2.default.cloneElement(content, props);
37171 };
37172
37173 Popup.prototype.renderPortal = function renderPortal() {
37174 var _this7 = this;
37175
37176 var _props3 = this.props,
37177 target = _props3.target,
37178 safeNode = _props3.safeNode,
37179 followTrigger = _props3.followTrigger,
37180 triggerType = _props3.triggerType,
37181 hasMask = _props3.hasMask,
37182 wrapperStyle = _props3.wrapperStyle,
37183 others = (0, _objectWithoutProperties3.default)(_props3, ['target', 'safeNode', 'followTrigger', 'triggerType', 'hasMask', 'wrapperStyle']);
37184 var container = this.props.container;
37185
37186 var findTriggerNode = function findTriggerNode() {
37187 return (0, _reactDom.findDOMNode)(_this7);
37188 };
37189 var safeNodes = Array.isArray(safeNode) ? [].concat(safeNode) : [safeNode];
37190 safeNodes.unshift(findTriggerNode);
37191
37192 var newWrapperStyle = wrapperStyle || {};
37193
37194 if (followTrigger) {
37195 container = function container(trigger) {
37196 return trigger && trigger.parentNode || trigger;
37197 };
37198 newWrapperStyle.position = 'relative';
37199 }
37200
37201 if (triggerType === 'hover' && hasMask) {
37202 others.onMaskMouseEnter = this.handleMaskMouseEnter;
37203 others.onMaskMouseLeave = this.handleMaskMouseLeave;
37204 }
37205
37206 return _react2.default.createElement(_overlay2.default, (0, _extends3.default)({}, others, {
37207 key: 'overlay',
37208 ref: function ref(overlay) {
37209 return _this7.overlay = overlay;
37210 },
37211 visible: this.state.visible,
37212 target: target || findTriggerNode,
37213 container: container,
37214 safeNode: safeNodes,
37215 wrapperStyle: newWrapperStyle,
37216 triggerType: triggerType,
37217 hasMask: hasMask,
37218 onRequestClose: this.handleRequestClose
37219 }), this.props.children && this.renderContent());
37220 };
37221
37222 Popup.prototype.render = function render() {
37223 return [this.renderTrigger(), this.renderPortal()];
37224 };
37225
37226 return Popup;
37227}(_react.Component), _class.propTypes = {
37228 /**
37229 * 弹层内容
37230 */
37231 children: _propTypes2.default.node,
37232 /**
37233 * 触发弹层显示或隐藏的元素
37234 */
37235 trigger: _propTypes2.default.element,
37236 /**
37237 * 触发弹层显示或隐藏的操作类型,可以是 'click','hover','focus',或者它们组成的数组,如 ['hover', 'focus']
37238 */
37239 triggerType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
37240 /**
37241 * 当 triggerType 为 click 时才生效,可自定义触发弹层显示的键盘码
37242 */
37243 triggerClickKeycode: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.array]),
37244 /**
37245 * 弹层当前是否显示
37246 */
37247 visible: _propTypes2.default.bool,
37248 /**
37249 * 弹层默认是否显示
37250 */
37251 defaultVisible: _propTypes2.default.bool,
37252 /**
37253 * 弹层显示或隐藏时触发的回调函数
37254 * @param {Boolean} visible 弹层是否显示
37255 * @param {String} type 触发弹层显示或隐藏的来源 fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
37256 * @param {Object} e DOM事件
37257 */
37258 onVisibleChange: _propTypes2.default.func,
37259 /**
37260 * 设置此属性,弹层无法显示或隐藏
37261 */
37262 disabled: _propTypes2.default.bool,
37263 autoFit: _propTypes2.default.bool,
37264 /**
37265 * 弹层显示或隐藏的延时时间(以毫秒为单位),在 triggerType 被设置为 hover 时生效
37266 */
37267 delay: _propTypes2.default.number,
37268 /**
37269 * trigger 是否可以关闭弹层
37270 */
37271 canCloseByTrigger: _propTypes2.default.bool,
37272 /**
37273 * 弹层定位的参照元素
37274 * @default target 属性,即触发元素
37275 */
37276 target: _propTypes2.default.any,
37277 safeNode: _propTypes2.default.any,
37278 /**
37279 * 是否跟随trigger滚动
37280 */
37281 followTrigger: _propTypes2.default.bool,
37282 container: _propTypes2.default.any,
37283 hasMask: _propTypes2.default.bool,
37284 wrapperStyle: _propTypes2.default.object,
37285 rtl: _propTypes2.default.bool,
37286 /**
37287 * 开启 v2 版本
37288 */
37289 v2: _propTypes2.default.bool,
37290 /**
37291 * [v2] 快捷位置,包含 'tl' | 't' | 'tr' | 'rt' | 'r' | 'rb' | 'bl' | 'b' | 'br' | 'lt' | 'l' | 'lb'
37292 */
37293 placement: _propTypes2.default.string,
37294 /**
37295 * [v2] 弹层偏离触发元素的像素值
37296 */
37297 placementOffset: _propTypes2.default.number
37298}, _class.defaultProps = {
37299 triggerType: 'hover',
37300 triggerClickKeycode: [_util.KEYCODE.SPACE, _util.KEYCODE.ENTER],
37301 defaultVisible: false,
37302 onVisibleChange: noop,
37303 disabled: false,
37304 autoFit: false,
37305 delay: 200,
37306 canCloseByTrigger: true,
37307 followTrigger: false,
37308 container: function container() {
37309 return document.body;
37310 },
37311 rtl: false
37312}, _temp);
37313Popup.displayName = 'Popup';
37314exports.default = (0, _reactLifecyclesCompat.polyfill)(Popup);
37315module.exports = exports['default'];
37316
37317/***/ }),
37318/* 283 */
37319/***/ (function(module, exports, __webpack_require__) {
37320
37321"use strict";
37322
37323
37324exports.__esModule = true;
37325
37326var _extends2 = __webpack_require__(1);
37327
37328var _extends3 = _interopRequireDefault(_extends2);
37329
37330var _objectWithoutProperties2 = __webpack_require__(8);
37331
37332var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
37333
37334var _react = __webpack_require__(0);
37335
37336var _react2 = _interopRequireDefault(_react);
37337
37338var _classnames = __webpack_require__(7);
37339
37340var _classnames2 = _interopRequireDefault(_classnames);
37341
37342var _overlay = __webpack_require__(85);
37343
37344var _overlay2 = _interopRequireDefault(_overlay);
37345
37346var _animate = __webpack_require__(20);
37347
37348var _animate2 = _interopRequireDefault(_animate);
37349
37350var _util = __webpack_require__(6);
37351
37352function _interopRequireDefault(obj) {
37353 return obj && obj.__esModule ? obj : { default: obj };
37354}
37355
37356var Popup = function Popup(props) {
37357 var _classNames;
37358
37359 if (!_react.useState || !_react.useRef || !_react.useEffect) {
37360 _util.log.warning('need react version > 16.8.0');
37361 return null;
37362 }
37363
37364 var _props$prefix = props.prefix,
37365 prefix = _props$prefix === undefined ? 'next-' : _props$prefix,
37366 _props$animation = props.animation,
37367 panimation = _props$animation === undefined ? { in: 'expandInDown', out: 'expandOutUp' } : _props$animation,
37368 defaultVisible = props.defaultVisible,
37369 _props$onVisibleChang = props.onVisibleChange,
37370 onVisibleChange = _props$onVisibleChang === undefined ? function () {} : _props$onVisibleChang,
37371 trigger = props.trigger,
37372 _props$triggerType = props.triggerType,
37373 triggerType = _props$triggerType === undefined ? 'hover' : _props$triggerType,
37374 overlay = props.overlay,
37375 onPosition = props.onPosition,
37376 children = props.children,
37377 className = props.className,
37378 style = props.style,
37379 wrapperClassName = props.wrapperClassName,
37380 triggerClickKeycode = props.triggerClickKeycode,
37381 align = props.align,
37382 beforeOpen = props.beforeOpen,
37383 onOpen = props.onOpen,
37384 afterOpen = props.afterOpen,
37385 beforeClose = props.beforeClose,
37386 onClose = props.onClose,
37387 afterClose = props.afterClose,
37388 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']);
37389
37390 var _useState = (0, _react.useState)(defaultVisible),
37391 visible = _useState[0],
37392 setVisible = _useState[1];
37393
37394 var _useState2 = (0, _react.useState)(panimation),
37395 animation = _useState2[0],
37396 setAnimation = _useState2[1];
37397
37398 var _useState3 = (0, _react.useState)(true),
37399 isAnimationEnd = _useState3[0],
37400 markAnimationEnd = _useState3[1];
37401
37402 var overlayRef = (0, _react.useRef)(null);
37403
37404 (0, _react.useEffect)(function () {
37405 if ('visible' in props) {
37406 setVisible(props.visible);
37407 }
37408 }, [props.visible]);
37409
37410 (0, _react.useEffect)(function () {
37411 if ('animation' in props && animation !== panimation) {
37412 setAnimation(panimation);
37413 }
37414 }, [panimation]);
37415
37416 var handleVisibleChange = function handleVisibleChange(visible) {
37417 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
37418 args[_key - 1] = arguments[_key];
37419 }
37420
37421 if (!('visible' in props)) {
37422 setVisible(visible);
37423 }
37424
37425 onVisibleChange.apply(undefined, [visible].concat(args));
37426 };
37427
37428 var triggerNode = overlay ? children : trigger;
37429 var overlayNode = overlay ? overlay : children;
37430
37431 var handleEnter = function handleEnter() {
37432 markAnimationEnd(false);
37433 typeof beforeOpen === 'function' && beforeOpen(overlayRef.current);
37434 };
37435 var handleEntering = function handleEntering() {
37436 typeof onOpen === 'function' && onOpen(overlayRef.current);
37437 };
37438 var handleEntered = function handleEntered() {
37439 typeof afterOpen === 'function' && afterOpen(overlayRef.current);
37440 };
37441 var handleExit = function handleExit() {
37442 typeof beforeClose === 'function' && beforeClose(overlayRef.current);
37443 };
37444 var handleExiting = function handleExiting() {
37445 typeof onClose === 'function' && onClose(overlayRef.current);
37446 };
37447 var handleExited = function handleExited() {
37448 markAnimationEnd(true);
37449 typeof afterClose === 'function' && afterClose(overlayRef.current);
37450 };
37451
37452 overlayNode = _react2.default.createElement(_animate2.default.OverlayAnimate, {
37453 visible: visible,
37454 animation: animation,
37455 timeout: 200,
37456 onEnter: handleEnter,
37457 onEntering: handleEntering,
37458 onEntered: handleEntered,
37459 onExit: handleExit,
37460 onExiting: handleExiting,
37461 onExited: handleExited,
37462 style: style
37463 }, overlayNode ? (0, _react.cloneElement)(overlayNode, {
37464 className: (0, _classnames2.default)([prefix + 'overlay-inner', className, overlayNode && overlayNode.props && overlayNode.props.className])
37465 }) : _react2.default.createElement('span', null));
37466
37467 var handlePosition = function handlePosition(result) {
37468 // 兼容 1.x, 2.x 可去除这段逻辑
37469 (0, _extends3.default)(result, { align: result.config.points });
37470
37471 var placement = result.config.placement;
37472 if (placement && typeof placement === 'string') {
37473 if (animation.in === 'expandInDown' && animation.out === 'expandOutUp' && placement.match(/t/)) {
37474 setAnimation({
37475 in: 'expandInUp',
37476 out: 'expandOutDown'
37477 });
37478 } else if (animation.in === 'expandInUp' && animation.out === 'expandOutDown' && placement.match(/b/)) {
37479 setAnimation({
37480 in: 'expandInDown',
37481 out: 'expandOutUp'
37482 });
37483 }
37484 }
37485
37486 typeof onPosition === 'function' && onPosition(result);
37487 };
37488
37489 var wraperCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'overlay-wrapper v2'] = true, _classNames[wrapperClassName] = wrapperClassName, _classNames.opened = visible, _classNames));
37490
37491 // 兼容
37492 var v1Props = {};
37493 if (align) {
37494 v1Props.points = align.split(' ');
37495 }
37496
37497 var maskRender = function maskRender(node) {
37498 return _react2.default.createElement(_animate2.default.OverlayAnimate, {
37499 visible: visible,
37500 animation: animation ? { in: 'fadeIn', out: 'fadeOut' } : false,
37501 timeout: 200,
37502 unmountOnExit: true
37503 }, node);
37504 };
37505
37506 return _react2.default.createElement(_overlay2.default.Popup, (0, _extends3.default)({}, others, v1Props, {
37507 wrapperClassName: wraperCls,
37508 overlay: overlayNode,
37509 visible: visible,
37510 isAnimationEnd: isAnimationEnd,
37511 triggerType: triggerType,
37512 onVisibleChange: handleVisibleChange,
37513 onPosition: handlePosition,
37514 triggerClickKeyCode: triggerClickKeycode,
37515 maskRender: maskRender,
37516 ref: overlayRef
37517 }), triggerNode);
37518}; /* istanbul ignore file */
37519exports.default = Popup;
37520module.exports = exports['default'];
37521
37522/***/ }),
37523/* 284 */
37524/***/ (function(module, exports, __webpack_require__) {
37525
37526"use strict";
37527
37528
37529exports.__esModule = true;
37530
37531var _extends2 = __webpack_require__(1);
37532
37533var _extends3 = _interopRequireDefault(_extends2);
37534
37535var _objectWithoutProperties2 = __webpack_require__(8);
37536
37537var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
37538
37539exports.default = createFromIconfontCN;
37540
37541var _react = __webpack_require__(0);
37542
37543var _react2 = _interopRequireDefault(_react);
37544
37545var _classnames = __webpack_require__(7);
37546
37547var _classnames2 = _interopRequireDefault(_classnames);
37548
37549var _configProvider = __webpack_require__(9);
37550
37551var _configProvider2 = _interopRequireDefault(_configProvider);
37552
37553var _icon = __webpack_require__(140);
37554
37555var _icon2 = _interopRequireDefault(_icon);
37556
37557function _interopRequireDefault(obj) {
37558 return obj && obj.__esModule ? obj : { default: obj };
37559}
37560
37561var customCache = new Set();
37562
37563var ConfigIcon = _configProvider2.default.config(_icon2.default);
37564
37565/** Icon.createFromIconfontCN
37566 * @description 通过自定义 iconfont源来使用使用svg格式的图片
37567 * @order 1
37568 */
37569function createFromIconfontCN() {
37570 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
37571 var scriptUrl = options.scriptUrl,
37572 _options$extraCommonP = options.extraCommonProps,
37573 extraCommonProps = _options$extraCommonP === undefined ? {} : _options$extraCommonP;
37574
37575 var hasExist = customCache.has(scriptUrl);
37576
37577 if (document.querySelector('script[data-namespace="' + scriptUrl + '"]')) {
37578 hasExist = true;
37579 }
37580
37581 /**
37582 * DOM API required.
37583 * Make sure in browser environment.
37584 * The Custom Icon will create a <script/>
37585 * that loads SVG symbols and insert the SVG Element into the document body.
37586 */
37587 if (typeof document !== 'undefined' && typeof window !== 'undefined' && typeof document.createElement === 'function' && typeof scriptUrl === 'string' && scriptUrl.length && !hasExist) {
37588 var script = document.createElement('script');
37589 script.setAttribute('src', scriptUrl);
37590 script.setAttribute('data-namespace', scriptUrl);
37591 customCache.add(scriptUrl);
37592 document.body.appendChild(script);
37593 }
37594
37595 var Iconfont = function Iconfont(props) {
37596 var _cx;
37597
37598 var type = props.type,
37599 size = props.size,
37600 children = props.children,
37601 className = props.className,
37602 _props$prefix = props.prefix,
37603 prefix = _props$prefix === undefined ? 'next-' : _props$prefix,
37604 others = (0, _objectWithoutProperties3.default)(props, ['type', 'size', 'children', 'className', 'prefix']);
37605
37606 // component > children > type
37607
37608 var content = null;
37609 if (props.type) {
37610 content = _react2.default.createElement('use', { xlinkHref: '#' + type });
37611 }
37612 if (children) {
37613 content = children;
37614 }
37615
37616 var classes = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'icon-remote'] = true, _cx), className);
37617
37618 return (
37619 // FIXME: 这里理论上优先级是 props 中的 prefix 优先级更高,不过之前的行为一直是取上层 ConfigProvider 中的 prefix,
37620 // 先兼容之前的表现,will be fixed in 2.x
37621 // https://github.com/alibaba-fusion/next/issues/3906
37622 _react2.default.createElement(ConfigIcon, { size: size }, _react2.default.createElement('svg', (0, _extends3.default)({ className: classes, focusable: false }, others, extraCommonProps), content))
37623 );
37624 };
37625
37626 Iconfont.displayName = 'Iconfont';
37627
37628 return _configProvider2.default.config(Iconfont);
37629}
37630module.exports = exports['default'];
37631
37632/***/ }),
37633/* 285 */
37634/***/ (function(module, exports, __webpack_require__) {
37635
37636"use strict";
37637
37638
37639exports.__esModule = true;
37640exports.default = undefined;
37641
37642var _extends2 = __webpack_require__(1);
37643
37644var _extends3 = _interopRequireDefault(_extends2);
37645
37646var _objectWithoutProperties2 = __webpack_require__(8);
37647
37648var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
37649
37650var _classCallCheck2 = __webpack_require__(2);
37651
37652var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
37653
37654var _possibleConstructorReturn2 = __webpack_require__(3);
37655
37656var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
37657
37658var _inherits2 = __webpack_require__(4);
37659
37660var _inherits3 = _interopRequireDefault(_inherits2);
37661
37662var _class, _temp;
37663
37664var _react = __webpack_require__(0);
37665
37666var _react2 = _interopRequireDefault(_react);
37667
37668var _propTypes = __webpack_require__(5);
37669
37670var _propTypes2 = _interopRequireDefault(_propTypes);
37671
37672var _overlay = __webpack_require__(15);
37673
37674var _overlay2 = _interopRequireDefault(_overlay);
37675
37676var _inner = __webpack_require__(86);
37677
37678var _inner2 = _interopRequireDefault(_inner);
37679
37680var _alignMap = __webpack_require__(87);
37681
37682var _util = __webpack_require__(141);
37683
37684function _interopRequireDefault(obj) {
37685 return obj && obj.__esModule ? obj : { default: obj };
37686}
37687
37688var Popup = _overlay2.default.Popup;
37689
37690var alignMap = _alignMap.normalMap;
37691/** Balloon.Tooltip */
37692var Tooltip = (_temp = _class = function (_React$Component) {
37693 (0, _inherits3.default)(Tooltip, _React$Component);
37694
37695 function Tooltip(props) {
37696 (0, _classCallCheck3.default)(this, Tooltip);
37697
37698 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
37699
37700 _this.beforePosition = function (result, obj) {
37701 var placement = result.config.placement;
37702
37703 if (placement !== _this.state.align) {
37704 _this.setState({
37705 align: placement,
37706 innerAlign: true
37707 });
37708 }
37709
37710 if (_this.props.arrowPointToCenter) {
37711 var _obj$target = obj.target,
37712 width = _obj$target.width,
37713 height = _obj$target.height;
37714
37715 if (placement.length === 2) {
37716 var offset = _alignMap.normalMap[placement].offset;
37717 switch (placement[0]) {
37718 case 'b':
37719 case 't':
37720 {
37721 var plus = offset[0] > 0 ? 1 : -1;
37722 result.style.left = result.style.left + plus * width / 2 - offset[0];
37723 }
37724 break;
37725 case 'l':
37726 case 'r':
37727 {
37728 var _plus = offset[0] > 0 ? 1 : -1;
37729 result.style.top = result.style.top + _plus * height / 2 - offset[1];
37730 }
37731 break;
37732 }
37733 }
37734 }
37735
37736 return result;
37737 };
37738
37739 _this.state = {
37740 align: props.placement || props.align,
37741 innerAlign: false
37742 };
37743 return _this;
37744 }
37745
37746 Tooltip.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
37747 if (nextProps.v2 && !prevState.innerAlign && 'align' in nextProps && nextProps.align !== prevState.align) {
37748 return {
37749 align: nextProps.align,
37750 innerAlign: false
37751 };
37752 }
37753
37754 return null;
37755 };
37756
37757 Tooltip.prototype.render = function render() {
37758 var _props = this.props,
37759 id = _props.id,
37760 className = _props.className,
37761 palign = _props.align,
37762 style = _props.style,
37763 prefix = _props.prefix,
37764 trigger = _props.trigger,
37765 children = _props.children,
37766 popupContainer = _props.popupContainer,
37767 popupProps = _props.popupProps,
37768 popupClassName = _props.popupClassName,
37769 popupStyle = _props.popupStyle,
37770 followTrigger = _props.followTrigger,
37771 triggerType = _props.triggerType,
37772 autoFocus = _props.autoFocus,
37773 alignEdge = _props.alignEdge,
37774 autoAdjust = _props.autoAdjust,
37775 rtl = _props.rtl,
37776 delay = _props.delay,
37777 v2 = _props.v2,
37778 arrowPointToCenter = _props.arrowPointToCenter,
37779 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']);
37780
37781 var trOrigin = 'trOrigin';
37782 if (rtl) {
37783 others.rtl = true;
37784 trOrigin = 'rtlTrOrigin';
37785 }
37786
37787 alignMap = alignEdge || v2 ? _alignMap.edgeMap : _alignMap.normalMap;
37788 var align = v2 ? this.state.align : palign;
37789
37790 var transformOrigin = alignMap[align][trOrigin];
37791 var _offset = alignMap[align].offset;
37792 var _style = (0, _extends3.default)({ transformOrigin: transformOrigin }, style);
37793
37794 var content = _react2.default.createElement(_inner2.default, (0, _extends3.default)({}, others, {
37795 id: id,
37796 prefix: prefix,
37797 closable: false,
37798 isTooltip: true,
37799 className: className,
37800 style: _style,
37801 align: align,
37802 rtl: rtl,
37803 alignEdge: alignEdge,
37804 v2: v2
37805 }), children);
37806
37807 var triggerProps = {};
37808 triggerProps['aria-describedby'] = id;
37809 triggerProps.tabIndex = '0';
37810
37811 var newTriggerType = triggerType;
37812
37813 if (triggerType === 'hover' && id) {
37814 newTriggerType = ['focus', 'hover'];
37815 }
37816
37817 var ariaTrigger = id ? _react2.default.cloneElement(trigger, triggerProps) : trigger;
37818
37819 var newTrigger = (0, _util.getDisabledCompatibleTrigger)(_react2.default.isValidElement(ariaTrigger) ? ariaTrigger : _react2.default.createElement('span', null, ariaTrigger));
37820
37821 var otherProps = {
37822 delay: delay,
37823 shouldUpdatePosition: true,
37824 needAdjust: false,
37825 align: alignMap[align].align,
37826 offset: _offset
37827 };
37828
37829 if (v2) {
37830 delete otherProps.align;
37831 delete otherProps.shouldUpdatePosition;
37832 delete otherProps.needAdjust;
37833 delete otherProps.offset;
37834
37835 (0, _extends3.default)(otherProps, {
37836 placement: align,
37837 placementOffset: 12,
37838 v2: true,
37839 beforePosition: this.beforePosition,
37840 autoAdjust: autoAdjust
37841 });
37842 }
37843
37844 return _react2.default.createElement(Popup, (0, _extends3.default)({
37845 role: 'tooltip',
37846 animation: {
37847 in: 'zoomIn',
37848 out: 'zoomOut'
37849 },
37850 className: popupClassName,
37851 container: popupContainer,
37852 followTrigger: followTrigger,
37853 trigger: newTrigger,
37854 triggerType: newTriggerType,
37855 style: popupStyle,
37856 rtl: rtl,
37857 autoFocus: triggerType === 'focus' ? false : autoFocus
37858 }, otherProps, popupProps), content);
37859 };
37860
37861 return Tooltip;
37862}(_react2.default.Component), _class.propTypes = {
37863 /**
37864 * 样式类名的品牌前缀
37865 */
37866 prefix: _propTypes2.default.string,
37867 /**
37868 * 自定义类名
37869 */
37870 className: _propTypes2.default.string,
37871 /**
37872 * 自定义内联样式
37873 */
37874 style: _propTypes2.default.object,
37875 /**
37876 * tooltip的内容
37877 */
37878 children: _propTypes2.default.any,
37879 /**
37880 * 弹出层位置
37881 * @enumdesc 上, 右, 下, 左, 上左, 上右, 下左, 下右, 左上, 左下, 右上, 右下
37882 */
37883 align: _propTypes2.default.oneOf(['t', 'r', 'b', 'l', 'tl', 'tr', 'bl', 'br', 'lt', 'lb', 'rt', 'rb']),
37884 /**
37885 * 触发元素
37886 */
37887 trigger: _propTypes2.default.any,
37888 /**
37889 * 触发行为
37890 * 鼠标悬浮, 鼠标点击('hover', 'click')或者它们组成的数组,如 ['hover', 'click'], 强烈不建议使用'focus',若有复杂交互,推荐使用triggerType为click的Balloon组件
37891 */
37892 triggerType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
37893 /**
37894 * 弹层组件style,透传给Popup
37895 */
37896 popupStyle: _propTypes2.default.object,
37897 /**
37898 * 弹层组件className,透传给Popup
37899 */
37900 popupClassName: _propTypes2.default.string,
37901 /**
37902 * 弹层组件属性,透传给Popup
37903 */
37904 popupProps: _propTypes2.default.object,
37905 /**
37906 * 是否pure render
37907 */
37908 pure: _propTypes2.default.bool,
37909 /**
37910 * 指定浮层渲染的父节点, 可以为节点id的字符串,也可以返回节点的函数。
37911 */
37912 popupContainer: _propTypes2.default.any,
37913 /**
37914 * 是否跟随滚动
37915 */
37916 followTrigger: _propTypes2.default.bool,
37917 /**
37918 * 弹层id, 传入值才会支持无障碍
37919 */
37920 id: _propTypes2.default.string,
37921 /**
37922 * 如果需要让 Tooltip 内容可被点击,可以设置这个参数,例如 100
37923 */
37924 delay: _propTypes2.default.number,
37925 /**
37926 * 开启 v2 版本
37927 */
37928 v2: _propTypes2.default.bool,
37929 /**
37930 * [v2] 箭头是否指向目标元素的中心
37931 */
37932 arrowPointToCenter: _propTypes2.default.bool
37933}, _class.defaultProps = {
37934 triggerType: 'hover',
37935 prefix: 'next-',
37936 align: 'b',
37937 delay: 50,
37938 trigger: _react2.default.createElement('span', null),
37939 arrowPointToCenter: false
37940}, _temp);
37941Tooltip.displayName = 'Tooltip';
37942exports.default = Tooltip;
37943module.exports = exports['default'];
37944
37945/***/ }),
37946/* 286 */
37947/***/ (function(module, exports, __webpack_require__) {
37948
37949"use strict";
37950
37951
37952exports.__esModule = true;
37953
37954var _typeof2 = __webpack_require__(14);
37955
37956var _typeof3 = _interopRequireDefault(_typeof2);
37957
37958var _objectWithoutProperties2 = __webpack_require__(8);
37959
37960var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
37961
37962var _extends2 = __webpack_require__(1);
37963
37964var _extends3 = _interopRequireDefault(_extends2);
37965
37966var _classCallCheck2 = __webpack_require__(2);
37967
37968var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
37969
37970var _possibleConstructorReturn2 = __webpack_require__(3);
37971
37972var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
37973
37974var _inherits2 = __webpack_require__(4);
37975
37976var _inherits3 = _interopRequireDefault(_inherits2);
37977
37978var _class, _temp, _initialiseProps;
37979
37980var _react = __webpack_require__(0);
37981
37982var _react2 = _interopRequireDefault(_react);
37983
37984var _propTypes = __webpack_require__(5);
37985
37986var _propTypes2 = _interopRequireDefault(_propTypes);
37987
37988var _reactLifecyclesCompat = __webpack_require__(10);
37989
37990var _icon = __webpack_require__(11);
37991
37992var _icon2 = _interopRequireDefault(_icon);
37993
37994var _configProvider = __webpack_require__(9);
37995
37996var _configProvider2 = _interopRequireDefault(_configProvider);
37997
37998var _dropdown = __webpack_require__(48);
37999
38000var _dropdown2 = _interopRequireDefault(_dropdown);
38001
38002var _menu = __webpack_require__(16);
38003
38004var _menu2 = _interopRequireDefault(_menu);
38005
38006var _item = __webpack_require__(300);
38007
38008var _item2 = _interopRequireDefault(_item);
38009
38010var _util = __webpack_require__(6);
38011
38012function _interopRequireDefault(obj) {
38013 return obj && obj.__esModule ? obj : { default: obj };
38014}
38015
38016/**
38017 * Breadcrumb
38018 */
38019var Breadcrumb = (_temp = _class = function (_Component) {
38020 (0, _inherits3.default)(Breadcrumb, _Component);
38021
38022 function Breadcrumb(props) {
38023 (0, _classCallCheck3.default)(this, Breadcrumb);
38024
38025 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
38026
38027 _initialiseProps.call(_this);
38028
38029 _this.state = {
38030 maxNode: props.maxNode === 'auto' ? 100 : props.maxNode
38031 };
38032 return _this;
38033 }
38034
38035 Breadcrumb.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
38036 if (state.prevMaxNode === props.maxNode) {
38037 return {};
38038 }
38039
38040 return {
38041 prevMaxNode: props.maxNode,
38042 maxNode: props.maxNode === 'auto' ? 100 : props.maxNode
38043 };
38044 };
38045
38046 Breadcrumb.prototype.componentDidMount = function componentDidMount() {
38047 this.computeMaxNode();
38048 _util.events.on(window, 'resize', this.computeMaxNode);
38049 };
38050
38051 Breadcrumb.prototype.componentDidUpdate = function componentDidUpdate() {
38052 this.computeMaxNode();
38053 };
38054
38055 Breadcrumb.prototype.componentWillUnmount = function componentWillUnmount() {
38056 _util.events.off(window, 'resize', this.computeMaxNode);
38057 };
38058
38059 Breadcrumb.prototype.renderEllipsisNodeWithMenu = function renderEllipsisNodeWithMenu(children, breakpointer) {
38060 // 拿到被隐藏的项
38061 var hiddenItems = [];
38062 _react.Children.forEach(children, function (item, i) {
38063 var _item$props = item.props,
38064 link = _item$props.link,
38065 itemChildren = _item$props.children;
38066
38067 if (i > 0 && i <= breakpointer) {
38068 hiddenItems.push(_react2.default.createElement(_menu2.default.Item, { key: i }, link ? _react2.default.createElement('a', { href: link }, itemChildren) : itemChildren));
38069 }
38070 });
38071
38072 var _props = this.props,
38073 prefix = _props.prefix,
38074 followTrigger = _props.followTrigger,
38075 popupContainer = _props.popupContainer,
38076 popupProps = _props.popupProps;
38077
38078 return _react2.default.createElement(_dropdown2.default, (0, _extends3.default)({
38079 trigger: _react2.default.createElement('span', null, '...')
38080 }, popupProps, {
38081 container: popupContainer,
38082 followTrigger: followTrigger
38083 }), _react2.default.createElement('div', { className: prefix + 'breadcrumb-dropdown-wrapper' }, _react2.default.createElement(_menu2.default, null, hiddenItems)));
38084 };
38085
38086 Breadcrumb.prototype.render = function render() {
38087 var _this2 = this;
38088
38089 var _props2 = this.props,
38090 prefix = _props2.prefix,
38091 rtl = _props2.rtl,
38092 className = _props2.className,
38093 children = _props2.children,
38094 component = _props2.component,
38095 showHiddenItems = _props2.showHiddenItems,
38096 maxNodeProp = _props2.maxNode,
38097 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'rtl', 'className', 'children', 'component', 'showHiddenItems', 'maxNode']);
38098
38099 var separator = this.props.separator || _react2.default.createElement(_icon2.default, { type: 'arrow-right', className: prefix + 'breadcrumb-icon-sep' });
38100
38101 var maxNode = this.state.maxNode;
38102
38103 var items = void 0;
38104 var length = _react.Children.count(children);
38105
38106 if (maxNode > 1 && length > maxNode) {
38107 var breakpointer = length - maxNode + 1;
38108 items = [];
38109
38110 _react.Children.forEach(children, function (item, i) {
38111 var ariaProps = {};
38112
38113 // 增加空值判断
38114 if (!item) {
38115 return;
38116 }
38117 if (i === length - 1) {
38118 ariaProps['aria-current'] = 'page';
38119 }
38120
38121 if (i && i === breakpointer) {
38122 items.push(_react2.default.cloneElement(item, (0, _extends3.default)({
38123 separator: separator,
38124 prefix: prefix,
38125 key: i,
38126 activated: i === length - 1
38127 }, ariaProps, {
38128 className: showHiddenItems ? prefix + 'breadcrumb-text-ellipsis-clickable' : prefix + 'breadcrumb-text-ellipsis'
38129 }), showHiddenItems ? _this2.renderEllipsisNodeWithMenu(children, breakpointer) : '...'));
38130 } else if (!i || i > breakpointer) {
38131 items.push(_react2.default.cloneElement(item, (0, _extends3.default)({
38132 separator: separator,
38133 prefix: prefix,
38134 key: i
38135 }, ariaProps, {
38136 activated: i === length - 1
38137 })));
38138 }
38139 });
38140 } else {
38141 items = _react.Children.map(children, function (item, i) {
38142 var ariaProps = {};
38143 // 增加空值判断
38144 if (!item) {
38145 return;
38146 }
38147 if (i === length - 1) {
38148 ariaProps['aria-current'] = 'page';
38149 }
38150
38151 return _react2.default.cloneElement(item, (0, _extends3.default)({
38152 separator: separator,
38153 prefix: prefix,
38154 activated: i === length - 1
38155 }, ariaProps, {
38156 key: i
38157 }));
38158 });
38159 }
38160
38161 if (rtl) {
38162 others.dir = 'rtl';
38163 }
38164
38165 var BreadcrumbComponent = component;
38166
38167 delete others.maxNode;
38168
38169 return _react2.default.createElement(BreadcrumbComponent, (0, _extends3.default)({
38170 'aria-label': 'Breadcrumb',
38171 className: className
38172 }, others, {
38173 style: (0, _extends3.default)({ position: 'relative' }, others.style || {})
38174 }), _react2.default.createElement('ul', { className: prefix + 'breadcrumb' }, items), maxNodeProp === 'auto' ? _react2.default.createElement('ul', {
38175 style: {
38176 position: 'absolute',
38177 left: 0,
38178 right: 0,
38179 top: 0,
38180 visibility: 'hidden'
38181 },
38182 ref: this.saveBreadcrumbRef,
38183 className: prefix + 'breadcrumb'
38184 }, _react.Children.map(children, function (item, i) {
38185 return _react2.default.cloneElement(item, {
38186 separator: separator,
38187 prefix: prefix,
38188 activated: i === length - 1,
38189 key: i
38190 });
38191 })) : null);
38192 };
38193
38194 return Breadcrumb;
38195}(_react.Component), _class.Item = _item2.default, _class.propTypes = {
38196 /**
38197 * 样式类名的品牌前缀
38198 */
38199 prefix: _propTypes2.default.string,
38200 rtl: _propTypes2.default.bool,
38201 /*eslint-disable*/
38202 /**
38203 * 面包屑子节点,需传入 Breadcrumb.Item
38204 */
38205 children: function children(props, propName) {
38206 _react.Children.forEach(props[propName], function (child) {
38207 if (!(child && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && child.type._typeMark === 'breadcrumb_item')) {
38208 throw new Error("Breadcrumb's children must be Breadcrumb.Item!");
38209 }
38210 });
38211 },
38212 /*eslint-enable*/
38213 /**
38214 * 面包屑最多显示个数,超出部分会被隐藏, 设置为 auto 会自动根据父元素的宽度适配。
38215 */
38216 maxNode: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['auto'])]),
38217 /**
38218 * 当超过的项被隐藏时,是否可通过点击省略号展示菜单(包含被隐藏的项)
38219 * @version 1.23
38220 */
38221 showHiddenItems: _propTypes2.default.bool,
38222 /**
38223 * 弹层挂载的容器节点(在showHiddenItems为true时才有意义)
38224 * @version 1.23
38225 */
38226 popupContainer: _propTypes2.default.any,
38227 /**
38228 * 是否跟随trigger滚动(在showHiddenItems为true时才有意义)
38229 * @version 1.23
38230 */
38231 followTrigger: _propTypes2.default.bool,
38232 /**
38233 * 添加到弹层上的属性(在showHiddenItems为true时才有意义)
38234 * @version 1.23
38235 */
38236 popupProps: _propTypes2.default.object,
38237 /**
38238 * 分隔符,可以是文本或 Icon
38239 */
38240 separator: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string]),
38241 /**
38242 * 设置标签类型
38243 */
38244 component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),
38245 className: _propTypes2.default.any
38246}, _class.defaultProps = {
38247 prefix: 'next-',
38248 maxNode: 100,
38249 showHiddenItems: false,
38250 component: 'nav'
38251}, _initialiseProps = function _initialiseProps() {
38252 var _this3 = this;
38253
38254 this.computeMaxNode = function () {
38255 // 计算最大node节点,无法获取到 ... 节点的宽度,目前会有 nodeWidth - ellipsisNodeWidth 的误差
38256 if (_this3.props.maxNode !== 'auto' || !_this3.breadcrumbEl) return;
38257 var scrollWidth = _this3.breadcrumbEl.scrollWidth;
38258 var rect = _this3.breadcrumbEl.getBoundingClientRect();
38259
38260 if (scrollWidth <= rect.width) return;
38261 var maxNode = _this3.breadcrumbEl.children.length;
38262 var index = 1;
38263 var fullWidth = scrollWidth;
38264
38265 while (index < _this3.breadcrumbEl.children.length - 1) {
38266 var el = _this3.breadcrumbEl.children[index];
38267 maxNode--;
38268 fullWidth -= el.getBoundingClientRect().width;
38269 if (fullWidth <= rect.width) {
38270 break;
38271 }
38272 index++;
38273 }
38274
38275 maxNode = Math.max(3, maxNode);
38276
38277 if (maxNode !== _this3.state.maxNode) {
38278 _this3.setState({
38279 maxNode: maxNode
38280 });
38281 }
38282 };
38283
38284 this.saveBreadcrumbRef = function (ref) {
38285 _this3.breadcrumbEl = ref;
38286 };
38287}, _temp);
38288Breadcrumb.displayName = 'Breadcrumb';
38289exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Breadcrumb));
38290module.exports = exports['default'];
38291
38292/***/ }),
38293/* 287 */
38294/***/ (function(module, exports, __webpack_require__) {
38295
38296"use strict";
38297
38298
38299exports.__esModule = true;
38300exports.default = undefined;
38301
38302var _extends2 = __webpack_require__(1);
38303
38304var _extends3 = _interopRequireDefault(_extends2);
38305
38306var _classCallCheck2 = __webpack_require__(2);
38307
38308var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
38309
38310var _possibleConstructorReturn2 = __webpack_require__(3);
38311
38312var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
38313
38314var _inherits2 = __webpack_require__(4);
38315
38316var _inherits3 = _interopRequireDefault(_inherits2);
38317
38318var _class, _temp;
38319
38320var _react = __webpack_require__(0);
38321
38322var _react2 = _interopRequireDefault(_react);
38323
38324var _propTypes = __webpack_require__(5);
38325
38326var _propTypes2 = _interopRequireDefault(_propTypes);
38327
38328var _overlay = __webpack_require__(15);
38329
38330var _overlay2 = _interopRequireDefault(_overlay);
38331
38332var _util = __webpack_require__(6);
38333
38334function _interopRequireDefault(obj) {
38335 return obj && obj.__esModule ? obj : { default: obj };
38336}
38337
38338var noop = _util.func.noop,
38339 makeChain = _util.func.makeChain,
38340 bindCtx = _util.func.bindCtx;
38341
38342var Popup = _overlay2.default.Popup;
38343
38344/**
38345 * Dropdown
38346 * @description 继承 Popup 的 API,除非特别说明
38347 */
38348var Dropdown = (_temp = _class = function (_Component) {
38349 (0, _inherits3.default)(Dropdown, _Component);
38350
38351 function Dropdown(props) {
38352 (0, _classCallCheck3.default)(this, Dropdown);
38353
38354 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
38355
38356 _this.state = {
38357 visible: 'visible' in props ? props.visible : props.defaultVisible || false,
38358 autoFocus: 'autoFocus' in props ? props.autoFocus : false
38359 };
38360
38361 bindCtx(_this, ['onTriggerKeyDown', 'onMenuClick', 'onVisibleChange']);
38362 return _this;
38363 }
38364
38365 Dropdown.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
38366 var state = {};
38367
38368 if ('visible' in nextProps) {
38369 state.visible = nextProps.visible;
38370 }
38371
38372 return state;
38373 };
38374
38375 Dropdown.prototype.getVisible = function getVisible() {
38376 var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
38377
38378 return 'visible' in props ? props.visible : this.state.visible;
38379 };
38380
38381 Dropdown.prototype.onMenuClick = function onMenuClick() {
38382 var autoClose = this.props.autoClose;
38383
38384 if (!('visible' in this.props) && autoClose) {
38385 this.setState({
38386 visible: false
38387 });
38388 }
38389 this.onVisibleChange(false, 'fromContent');
38390 };
38391
38392 Dropdown.prototype.onVisibleChange = function onVisibleChange(visible, from) {
38393 this.setState({ visible: visible });
38394
38395 this.props.onVisibleChange(visible, from);
38396 };
38397
38398 Dropdown.prototype.onTriggerKeyDown = function onTriggerKeyDown() {
38399 var autoFocus = true;
38400
38401 if ('autoFocus' in this.props) {
38402 autoFocus = this.props.autoFocus;
38403 }
38404
38405 this.setState({
38406 autoFocus: autoFocus
38407 });
38408 };
38409
38410 Dropdown.prototype.render = function render() {
38411 var _props = this.props,
38412 trigger = _props.trigger,
38413 rtl = _props.rtl,
38414 autoClose = _props.autoClose;
38415
38416 var child = _react.Children.only(this.props.children);
38417 var content = child;
38418 if (typeof child.type === 'function' && child.type.isNextMenu) {
38419 content = _react2.default.cloneElement(child, {
38420 onItemClick: makeChain(this.onMenuClick, child.props.onItemClick)
38421 });
38422 } else if (autoClose) {
38423 content = _react2.default.cloneElement(child, {
38424 onClick: makeChain(this.onMenuClick, child.props.onClick)
38425 });
38426 }
38427
38428 var newTrigger = _react2.default.cloneElement(trigger, {
38429 onKeyDown: makeChain(this.onTriggerKeyDown, trigger.props.onKeyDown)
38430 });
38431
38432 return _react2.default.createElement(Popup, (0, _extends3.default)({}, this.props, {
38433 rtl: rtl,
38434 autoFocus: this.state.autoFocus,
38435 trigger: newTrigger,
38436 visible: this.getVisible(),
38437 onVisibleChange: this.onVisibleChange,
38438 canCloseByOutSideClick: true
38439 }), content);
38440 };
38441
38442 return Dropdown;
38443}(_react.Component), _class.propTypes = {
38444 prefix: _propTypes2.default.string,
38445 pure: _propTypes2.default.bool,
38446 rtl: _propTypes2.default.bool,
38447 className: _propTypes2.default.string,
38448 /**
38449 * 弹层内容
38450 */
38451 children: _propTypes2.default.node,
38452 /**
38453 * 弹层当前是否显示
38454 */
38455 visible: _propTypes2.default.bool,
38456 /**
38457 * 弹层默认是否显示
38458 */
38459 defaultVisible: _propTypes2.default.bool,
38460 /**
38461 * 弹层显示或隐藏时触发的回调函数
38462 * @param {Boolean} visible 弹层是否显示
38463 * @param {String} type 触发弹层显示或隐藏的来源 fromContent 表示由Dropdown内容触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
38464 */
38465 onVisibleChange: _propTypes2.default.func,
38466 /**
38467 * 触发弹层显示或者隐藏的元素
38468 */
38469 trigger: _propTypes2.default.node,
38470 /**
38471 * 触发弹层显示或隐藏的操作类型,可以是 'click','hover',或者它们组成的数组,如 ['hover', 'click']
38472 */
38473 triggerType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
38474 /**
38475 * 设置此属性,弹层无法显示或隐藏
38476 */
38477 disabled: _propTypes2.default.bool,
38478 /**
38479 * 弹层相对于触发元素的定位, 详见 Overlay 的定位部分
38480 */
38481 align: _propTypes2.default.string,
38482 /**
38483 * 弹层相对于trigger的定位的微调, 接收数组[hoz, ver], 表示弹层在 left / top 上的增量
38484 * e.g. [100, 100] 表示往右(RTL 模式下是往左) 、下分布偏移100px
38485 */
38486 offset: _propTypes2.default.array,
38487 /**
38488 * 弹层显示或隐藏的延时时间(以毫秒为单位),在 triggerType 被设置为 hover 时生效
38489 */
38490 delay: _propTypes2.default.number,
38491 /**
38492 * 弹层打开时是否让其中的元素自动获取焦点
38493 */
38494 autoFocus: _propTypes2.default.bool,
38495 /**
38496 * 是否显示遮罩
38497 */
38498 hasMask: _propTypes2.default.bool,
38499 /**
38500 * 开启后,children 不管是不是Menu,点击后都默认关掉弹层(2.x默认设置为true)
38501 * @version 1.23
38502 */
38503 autoClose: _propTypes2.default.bool,
38504 /**
38505 * 隐藏时是否保留子节点
38506 */
38507 cache: _propTypes2.default.bool,
38508 /**
38509 * 配置动画的播放方式,支持 { in: 'enter-class', out: 'leave-class' } 的对象参数,如果设置为 false,则不播放动画
38510 * @default { in: 'expandInDown', out: 'expandOutUp' }
38511 */
38512 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool])
38513}, _class.defaultProps = {
38514 prefix: 'next-',
38515 pure: false,
38516 defaultVisible: false,
38517 autoClose: false,
38518 onVisibleChange: noop,
38519 triggerType: 'hover',
38520 disabled: false,
38521 align: 'tl bl',
38522 offset: [0, 0],
38523 delay: 200,
38524 hasMask: false,
38525 cache: false,
38526 onPosition: noop
38527}, _temp);
38528Dropdown.displayName = 'Dropdown';
38529exports.default = Dropdown;
38530module.exports = exports['default'];
38531
38532/***/ }),
38533/* 288 */
38534/***/ (function(module, exports, __webpack_require__) {
38535
38536"use strict";
38537
38538
38539exports.__esModule = true;
38540exports.default = undefined;
38541
38542var _extends2 = __webpack_require__(1);
38543
38544var _extends3 = _interopRequireDefault(_extends2);
38545
38546var _objectWithoutProperties2 = __webpack_require__(8);
38547
38548var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
38549
38550var _classCallCheck2 = __webpack_require__(2);
38551
38552var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
38553
38554var _possibleConstructorReturn2 = __webpack_require__(3);
38555
38556var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
38557
38558var _inherits2 = __webpack_require__(4);
38559
38560var _inherits3 = _interopRequireDefault(_inherits2);
38561
38562var _class, _temp;
38563
38564var _react = __webpack_require__(0);
38565
38566var _react2 = _interopRequireDefault(_react);
38567
38568var _propTypes = __webpack_require__(5);
38569
38570var _propTypes2 = _interopRequireDefault(_propTypes);
38571
38572var _checkableItem = __webpack_require__(145);
38573
38574var _checkableItem2 = _interopRequireDefault(_checkableItem);
38575
38576function _interopRequireDefault(obj) {
38577 return obj && obj.__esModule ? obj : { default: obj };
38578}
38579
38580/**
38581 * Menu.CheckboxItem
38582 * @order 3
38583 * @description 该子组件选中情况不受 defaultSelectedKeys/selectedKeys 控制,请自行控制选中逻辑
38584 */
38585var CheckboxItem = (_temp = _class = function (_Component) {
38586 (0, _inherits3.default)(CheckboxItem, _Component);
38587
38588 function CheckboxItem() {
38589 (0, _classCallCheck3.default)(this, CheckboxItem);
38590 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
38591 }
38592
38593 CheckboxItem.prototype.render = function render() {
38594 var _props = this.props,
38595 checkboxDisabled = _props.checkboxDisabled,
38596 others = (0, _objectWithoutProperties3.default)(_props, ['checkboxDisabled']);
38597
38598 return _react2.default.createElement(_checkableItem2.default, (0, _extends3.default)({
38599 role: 'menuitemcheckbox',
38600 checkType: 'checkbox',
38601 checkDisabled: checkboxDisabled
38602 }, others));
38603 };
38604
38605 return CheckboxItem;
38606}(_react.Component), _class.menuChildType = 'item', _class.propTypes = {
38607 /**
38608 * 是否选中
38609 */
38610 checked: _propTypes2.default.bool,
38611 /**
38612 * 是否半选中
38613 */
38614 indeterminate: _propTypes2.default.bool,
38615 /**
38616 * 是否禁用
38617 */
38618 disabled: _propTypes2.default.bool,
38619 /**
38620 * 选中或取消选中触发的回调函数
38621 * @param {Boolean} checked 是否选中
38622 * @param {Object} event 选中事件对象
38623 */
38624 onChange: _propTypes2.default.func,
38625 /**
38626 * 帮助文本
38627 */
38628 helper: _propTypes2.default.node,
38629 /**
38630 * 标签内容
38631 */
38632 children: _propTypes2.default.node,
38633 checkboxDisabled: _propTypes2.default.bool
38634}, _class.defaultProps = {
38635 checked: false,
38636 indeterminate: false,
38637 disabled: false,
38638 onChange: function onChange() {},
38639 checkboxDisabled: false
38640}, _temp);
38641CheckboxItem.displayName = 'CheckboxItem';
38642exports.default = CheckboxItem;
38643module.exports = exports['default'];
38644
38645/***/ }),
38646/* 289 */
38647/***/ (function(module, exports, __webpack_require__) {
38648
38649module.exports = { "default": __webpack_require__(290), __esModule: true };
38650
38651/***/ }),
38652/* 290 */
38653/***/ (function(module, exports, __webpack_require__) {
38654
38655__webpack_require__(291);
38656var $Object = __webpack_require__(24).Object;
38657module.exports = function defineProperty(it, key, desc) {
38658 return $Object.defineProperty(it, key, desc);
38659};
38660
38661
38662/***/ }),
38663/* 291 */
38664/***/ (function(module, exports, __webpack_require__) {
38665
38666var $export = __webpack_require__(32);
38667// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
38668$export($export.S + $export.F * !__webpack_require__(25), 'Object', { defineProperty: __webpack_require__(26).f });
38669
38670
38671/***/ }),
38672/* 292 */
38673/***/ (function(module, exports, __webpack_require__) {
38674
38675"use strict";
38676
38677
38678exports.__esModule = true;
38679
38680var _extends2 = __webpack_require__(1);
38681
38682var _extends3 = _interopRequireDefault(_extends2);
38683
38684var _classCallCheck2 = __webpack_require__(2);
38685
38686var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
38687
38688var _possibleConstructorReturn2 = __webpack_require__(3);
38689
38690var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
38691
38692var _inherits2 = __webpack_require__(4);
38693
38694var _inherits3 = _interopRequireDefault(_inherits2);
38695
38696exports.default = withContext;
38697
38698var _react = __webpack_require__(0);
38699
38700var _react2 = _interopRequireDefault(_react);
38701
38702var _propTypes = __webpack_require__(5);
38703
38704var _propTypes2 = _interopRequireDefault(_propTypes);
38705
38706function _interopRequireDefault(obj) {
38707 return obj && obj.__esModule ? obj : { default: obj };
38708}
38709
38710function withContext(Checkbox) {
38711 var _class, _temp;
38712
38713 return _temp = _class = function (_React$Component) {
38714 (0, _inherits3.default)(WrappedComp, _React$Component);
38715
38716 function WrappedComp() {
38717 (0, _classCallCheck3.default)(this, WrappedComp);
38718 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
38719 }
38720
38721 WrappedComp.prototype.render = function render() {
38722 return _react2.default.createElement(Checkbox, (0, _extends3.default)({}, this.props, { context: this.context }));
38723 };
38724
38725 return WrappedComp;
38726 }(_react2.default.Component), _class.displayName = 'Checkbox', _class.contextTypes = {
38727 onChange: _propTypes2.default.func,
38728 __group__: _propTypes2.default.bool,
38729 selectedValue: _propTypes2.default.array,
38730 disabled: _propTypes2.default.bool,
38731 prefix: _propTypes2.default.string
38732 }, _temp;
38733}
38734module.exports = exports['default'];
38735
38736/***/ }),
38737/* 293 */
38738/***/ (function(module, exports, __webpack_require__) {
38739
38740"use strict";
38741
38742
38743exports.__esModule = true;
38744
38745var _extends2 = __webpack_require__(1);
38746
38747var _extends3 = _interopRequireDefault(_extends2);
38748
38749var _typeof2 = __webpack_require__(14);
38750
38751var _typeof3 = _interopRequireDefault(_typeof2);
38752
38753var _classCallCheck2 = __webpack_require__(2);
38754
38755var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
38756
38757var _possibleConstructorReturn2 = __webpack_require__(3);
38758
38759var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
38760
38761var _inherits2 = __webpack_require__(4);
38762
38763var _inherits3 = _interopRequireDefault(_inherits2);
38764
38765var _class, _temp;
38766
38767var _react = __webpack_require__(0);
38768
38769var _react2 = _interopRequireDefault(_react);
38770
38771var _propTypes = __webpack_require__(5);
38772
38773var _propTypes2 = _interopRequireDefault(_propTypes);
38774
38775var _classnames2 = __webpack_require__(7);
38776
38777var _classnames3 = _interopRequireDefault(_classnames2);
38778
38779var _reactLifecyclesCompat = __webpack_require__(10);
38780
38781var _util = __webpack_require__(6);
38782
38783var _checkbox = __webpack_require__(146);
38784
38785var _checkbox2 = _interopRequireDefault(_checkbox);
38786
38787function _interopRequireDefault(obj) {
38788 return obj && obj.__esModule ? obj : { default: obj };
38789}
38790
38791var pickOthers = _util.obj.pickOthers;
38792
38793/** Checkbox.Group */
38794
38795var CheckboxGroup = (_temp = _class = function (_Component) {
38796 (0, _inherits3.default)(CheckboxGroup, _Component);
38797
38798 function CheckboxGroup(props) {
38799 (0, _classCallCheck3.default)(this, CheckboxGroup);
38800
38801 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
38802
38803 var value = [];
38804 if ('value' in props) {
38805 value = props.value;
38806 } else if ('defaultValue' in props) {
38807 value = props.defaultValue;
38808 }
38809 if (!Array.isArray(value)) {
38810 if (value === null || value === undefined) {
38811 value = [];
38812 } else {
38813 value = [value];
38814 }
38815 }
38816 _this.state = {
38817 value: [].concat(value)
38818 };
38819
38820 _this.onChange = _this.onChange.bind(_this);
38821 return _this;
38822 }
38823
38824 CheckboxGroup.prototype.getChildContext = function getChildContext() {
38825 return {
38826 __group__: true,
38827 onChange: this.onChange,
38828 selectedValue: this.state.value,
38829 disabled: this.props.disabled
38830 };
38831 };
38832
38833 CheckboxGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
38834 if ('value' in nextProps) {
38835 var value = nextProps.value;
38836
38837 if (!Array.isArray(value)) {
38838 if (value === null || value === undefined) {
38839 value = [];
38840 } else {
38841 value = [value];
38842 }
38843 }
38844
38845 return { value: value };
38846 }
38847
38848 return null;
38849 };
38850
38851 CheckboxGroup.prototype.onChange = function onChange(currentValue, e) {
38852 var value = this.state.value;
38853
38854 var index = value.indexOf(currentValue);
38855 var valTemp = [].concat(value);
38856
38857 if (index === -1) {
38858 valTemp.push(currentValue);
38859 } else {
38860 valTemp.splice(index, 1);
38861 }
38862
38863 if (!('value' in this.props)) {
38864 this.setState({ value: valTemp });
38865 }
38866 this.props.onChange(valTemp, e);
38867 };
38868
38869 CheckboxGroup.prototype.render = function render() {
38870 var _this2 = this,
38871 _classnames;
38872
38873 var _props = this.props,
38874 className = _props.className,
38875 style = _props.style,
38876 prefix = _props.prefix,
38877 disabled = _props.disabled,
38878 direction = _props.direction,
38879 rtl = _props.rtl,
38880 isPreview = _props.isPreview,
38881 renderPreview = _props.renderPreview;
38882
38883 var others = pickOthers(CheckboxGroup.propTypes, this.props);
38884
38885 // 如果内嵌标签跟dataSource同时存在,以内嵌标签为主
38886 var children = void 0;
38887 var previewed = [];
38888 if (this.props.children) {
38889 children = _react2.default.Children.map(this.props.children, function (child) {
38890 if (!_react2.default.isValidElement(child)) {
38891 return child;
38892 }
38893 var checked = _this2.state.value && _this2.state.value.indexOf(child.props.value) > -1;
38894
38895 if (checked) {
38896 previewed.push({
38897 label: child.props.children,
38898 value: child.props.value
38899 });
38900 }
38901
38902 return _react2.default.cloneElement(child, child.props.rtl === undefined ? { rtl: rtl } : null);
38903 });
38904 } else {
38905 children = this.props.dataSource.map(function (item, index) {
38906 var option = item;
38907 if ((typeof item === 'undefined' ? 'undefined' : (0, _typeof3.default)(item)) !== 'object') {
38908 option = {
38909 label: item,
38910 value: item,
38911 disabled: disabled
38912 };
38913 }
38914 var checked = _this2.state.value && _this2.state.value.indexOf(option.value) > -1;
38915
38916 if (checked) {
38917 previewed.push({
38918 label: option.label,
38919 value: option.value
38920 });
38921 }
38922
38923 return _react2.default.createElement(_checkbox2.default, {
38924 key: index,
38925 value: option.value,
38926 checked: checked,
38927 rtl: rtl,
38928 disabled: disabled || option.disabled,
38929 label: option.label
38930 });
38931 });
38932 }
38933
38934 if (isPreview) {
38935 var previewCls = (0, _classnames3.default)(className, prefix + 'form-preview');
38936
38937 if ('renderPreview' in this.props) {
38938 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { dir: rtl ? 'rtl' : undefined, className: previewCls }), renderPreview(previewed, this.props));
38939 }
38940
38941 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { dir: rtl ? 'rtl' : undefined, className: previewCls }), previewed.map(function (item) {
38942 return item.label;
38943 }).join(', '));
38944 }
38945
38946 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'checkbox-group'] = true, _classnames[prefix + 'checkbox-group-' + direction] = true, _classnames[className] = !!className, _classnames.disabled = disabled, _classnames));
38947
38948 return _react2.default.createElement('span', (0, _extends3.default)({ dir: rtl ? 'rtl' : undefined }, others, { className: cls, style: style }), children);
38949 };
38950
38951 return CheckboxGroup;
38952}(_react.Component), _class.propTypes = {
38953 prefix: _propTypes2.default.string,
38954 rtl: _propTypes2.default.bool,
38955 /**
38956 * 自定义类名
38957 */
38958 className: _propTypes2.default.string,
38959 /**
38960 * 自定义内敛样式
38961 */
38962 style: _propTypes2.default.object,
38963 /**
38964 * 整体禁用
38965 */
38966 disabled: _propTypes2.default.bool,
38967 /**
38968 * 可选项列表, 数据项可为 String 或者 Object, 如 `['apple', 'pear', 'orange']` 或者 `[{value: 'apple', label: '苹果',}, {value: 'pear', label: '梨'}, {value: 'orange', label: '橙子'}]`
38969 */
38970 dataSource: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.string), _propTypes2.default.arrayOf(_propTypes2.default.object)]),
38971 /**
38972 * 被选中的值列表
38973 */
38974 value: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.string, _propTypes2.default.number]),
38975 /**
38976 * 默认被选中的值列表
38977 */
38978 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.string, _propTypes2.default.number]),
38979 /**
38980 * 通过子元素方式设置内部 checkbox
38981 */
38982 children: _propTypes2.default.arrayOf(_propTypes2.default.element),
38983 /**
38984 * 选中值改变时的事件
38985 * @param {Array} value 选中项列表
38986 * @param {Event} e Dom 事件对象
38987 */
38988 onChange: _propTypes2.default.func,
38989
38990 /**
38991 * 子项目的排列方式
38992 * - hoz: 水平排列 (default)
38993 * - ver: 垂直排列
38994 */
38995 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
38996 /**
38997 * 是否为预览态
38998 * @version 1.19
38999 */
39000 isPreview: _propTypes2.default.bool,
39001 /**
39002 * 预览态模式下渲染的内容
39003 * @param {Array} previewed 预览值 [{label: '', value:''},...]
39004 * @param {Object} props 所有传入的参数
39005 * @returns {reactNode} Element 渲染内容
39006 * @version 1.19
39007 */
39008 renderPreview: _propTypes2.default.func
39009}, _class.defaultProps = {
39010 dataSource: [],
39011 onChange: function onChange() {},
39012 prefix: 'next-',
39013 direction: 'hoz',
39014 isPreview: false
39015}, _class.childContextTypes = {
39016 onChange: _propTypes2.default.func,
39017 __group__: _propTypes2.default.bool,
39018 selectedValue: _propTypes2.default.array,
39019 disabled: _propTypes2.default.bool
39020}, _temp);
39021CheckboxGroup.displayName = 'CheckboxGroup';
39022exports.default = (0, _reactLifecyclesCompat.polyfill)(CheckboxGroup);
39023module.exports = exports['default'];
39024
39025/***/ }),
39026/* 294 */
39027/***/ (function(module, exports, __webpack_require__) {
39028
39029"use strict";
39030
39031
39032exports.__esModule = true;
39033
39034var _extends2 = __webpack_require__(1);
39035
39036var _extends3 = _interopRequireDefault(_extends2);
39037
39038var _classCallCheck2 = __webpack_require__(2);
39039
39040var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39041
39042var _possibleConstructorReturn2 = __webpack_require__(3);
39043
39044var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39045
39046var _inherits2 = __webpack_require__(4);
39047
39048var _inherits3 = _interopRequireDefault(_inherits2);
39049
39050exports.default = withContext;
39051
39052var _react = __webpack_require__(0);
39053
39054var _react2 = _interopRequireDefault(_react);
39055
39056var _propTypes = __webpack_require__(5);
39057
39058var _propTypes2 = _interopRequireDefault(_propTypes);
39059
39060function _interopRequireDefault(obj) {
39061 return obj && obj.__esModule ? obj : { default: obj };
39062}
39063
39064function withContext(Radio) {
39065 var _class, _temp;
39066
39067 return _temp = _class = function (_React$Component) {
39068 (0, _inherits3.default)(WrappedComp, _React$Component);
39069
39070 function WrappedComp() {
39071 (0, _classCallCheck3.default)(this, WrappedComp);
39072 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
39073 }
39074
39075 WrappedComp.prototype.render = function render() {
39076 return _react2.default.createElement(Radio, (0, _extends3.default)({}, this.props, { context: this.context }));
39077 };
39078
39079 return WrappedComp;
39080 }(_react2.default.Component), _class.displayName = 'Radio', _class.contextTypes = {
39081 onChange: _propTypes2.default.func,
39082 __group__: _propTypes2.default.bool,
39083 isButton: _propTypes2.default.bool,
39084 selectedValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
39085 disabled: _propTypes2.default.bool
39086 }, _temp;
39087}
39088module.exports = exports['default'];
39089
39090/***/ }),
39091/* 295 */
39092/***/ (function(module, exports, __webpack_require__) {
39093
39094"use strict";
39095
39096
39097exports.__esModule = true;
39098
39099var _extends2 = __webpack_require__(1);
39100
39101var _extends3 = _interopRequireDefault(_extends2);
39102
39103var _typeof2 = __webpack_require__(14);
39104
39105var _typeof3 = _interopRequireDefault(_typeof2);
39106
39107var _classCallCheck2 = __webpack_require__(2);
39108
39109var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39110
39111var _possibleConstructorReturn2 = __webpack_require__(3);
39112
39113var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39114
39115var _inherits2 = __webpack_require__(4);
39116
39117var _inherits3 = _interopRequireDefault(_inherits2);
39118
39119var _class, _temp;
39120
39121var _react = __webpack_require__(0);
39122
39123var _react2 = _interopRequireDefault(_react);
39124
39125var _propTypes = __webpack_require__(5);
39126
39127var _propTypes2 = _interopRequireDefault(_propTypes);
39128
39129var _classnames2 = __webpack_require__(7);
39130
39131var _classnames3 = _interopRequireDefault(_classnames2);
39132
39133var _reactLifecyclesCompat = __webpack_require__(10);
39134
39135var _configProvider = __webpack_require__(9);
39136
39137var _configProvider2 = _interopRequireDefault(_configProvider);
39138
39139var _util = __webpack_require__(6);
39140
39141var _radio = __webpack_require__(149);
39142
39143var _radio2 = _interopRequireDefault(_radio);
39144
39145function _interopRequireDefault(obj) {
39146 return obj && obj.__esModule ? obj : { default: obj };
39147}
39148
39149var pickOthers = _util.obj.pickOthers;
39150
39151/**
39152 * Radio.Group
39153 * @order 2
39154 */
39155
39156var RadioGroup = (_temp = _class = function (_Component) {
39157 (0, _inherits3.default)(RadioGroup, _Component);
39158
39159 function RadioGroup(props) {
39160 (0, _classCallCheck3.default)(this, RadioGroup);
39161
39162 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
39163
39164 var value = '';
39165 if ('value' in props) {
39166 value = props.value;
39167 } else if ('defaultValue' in props) {
39168 value = props.defaultValue;
39169 }
39170
39171 _this.state = { value: value };
39172 _this.onChange = _this.onChange.bind(_this);
39173 return _this;
39174 }
39175
39176 RadioGroup.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
39177 if ('value' in props && props.value !== state.value) {
39178 return {
39179 value: props.value
39180 };
39181 }
39182
39183 return null;
39184 };
39185
39186 RadioGroup.prototype.getChildContext = function getChildContext() {
39187 var disabled = this.props.disabled;
39188
39189 return {
39190 __group__: true,
39191 isButton: this.props.shape === 'button',
39192 onChange: this.onChange,
39193 selectedValue: this.state.value,
39194 disabled: disabled
39195 };
39196 };
39197
39198 RadioGroup.prototype.onChange = function onChange(currentValue, e) {
39199 if (!('value' in this.props)) {
39200 this.setState({ value: currentValue });
39201 }
39202 if (currentValue !== this.state.value) {
39203 this.props.onChange(currentValue, e);
39204 }
39205 };
39206
39207 RadioGroup.prototype.render = function render() {
39208 var _this2 = this,
39209 _classnames;
39210
39211 var _props = this.props,
39212 rtl = _props.rtl,
39213 className = _props.className,
39214 disabled = _props.disabled,
39215 shape = _props.shape,
39216 size = _props.size,
39217 style = _props.style,
39218 prefix = _props.prefix,
39219 direction = _props.direction,
39220 component = _props.component,
39221 isPreview = _props.isPreview,
39222 renderPreview = _props.renderPreview;
39223
39224 var others = pickOthers(Object.keys(RadioGroup.propTypes), this.props);
39225
39226 if (rtl) {
39227 others.dir = 'rtl';
39228 }
39229
39230 var children = void 0;
39231 var previewed = {};
39232 if (this.props.children) {
39233 children = _react2.default.Children.map(this.props.children, function (child, index) {
39234 if (!_react2.default.isValidElement(child)) {
39235 return child;
39236 }
39237 var checked = _this2.state.value === child.props.value;
39238 if (checked) {
39239 previewed.label = child.props.children;
39240 previewed.value = child.props.value;
39241 }
39242 var tabIndex = index === 0 && !_this2.state.value || checked ? 0 : -1;
39243 var childrtl = child.props.rtl === undefined ? rtl : child.props.rtl;
39244 if (child.type && child.type.displayName === 'Config(Radio)') {
39245 return _react2.default.cloneElement(child, {
39246 checked: checked,
39247 tabIndex: tabIndex,
39248 rtl: childrtl
39249 });
39250 }
39251 return _react2.default.cloneElement(child, {
39252 checked: checked,
39253 rtl: childrtl
39254 });
39255 });
39256 } else {
39257 children = this.props.dataSource.map(function (item, index) {
39258 var option = item;
39259 if ((typeof item === 'undefined' ? 'undefined' : (0, _typeof3.default)(item)) !== 'object') {
39260 option = {
39261 label: item,
39262 value: item,
39263 disabled: disabled
39264 };
39265 }
39266 var checked = _this2.state.value === option.value;
39267 if (checked) {
39268 previewed.label = option.label;
39269 previewed.value = option.value;
39270 }
39271 return _react2.default.createElement(_radio2.default, {
39272 key: index,
39273 tabIndex: index === 0 && !_this2.state.value || checked ? 0 : -1,
39274 value: option.value,
39275 checked: checked,
39276 label: option.label,
39277 disabled: disabled || option.disabled
39278 });
39279 });
39280 }
39281 if (isPreview) {
39282 var previewCls = (0, _classnames3.default)(className, prefix + 'form-preview');
39283
39284 if ('renderPreview' in this.props) {
39285 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(previewed, this.props));
39286 }
39287
39288 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), previewed.label);
39289 }
39290
39291 var isButtonShape = shape === 'button';
39292
39293 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));
39294
39295 var TagName = component;
39296 return _react2.default.createElement(TagName, (0, _extends3.default)({}, others, { 'aria-disabled': disabled, role: 'radiogroup', className: cls, style: style }), children);
39297 };
39298
39299 return RadioGroup;
39300}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
39301 /**
39302 * 样式类名的品牌前缀
39303 */
39304 prefix: _propTypes2.default.string,
39305 /**
39306 * 自定义类名
39307 */
39308 className: _propTypes2.default.string,
39309 /**
39310 * 自定义内敛样式
39311 */
39312 style: _propTypes2.default.object,
39313 /**
39314 * name
39315 */
39316 name: _propTypes2.default.string,
39317 /**
39318 * radio group的选中项的值
39319 */
39320 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
39321 /**
39322 * radio group的默认值
39323 */
39324 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
39325 /**
39326 * 设置标签类型
39327 */
39328 component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),
39329 /**
39330 * 选中值改变时的事件
39331 * @param {String/Number} value 选中项的值
39332 * @param {Event} e Dom 事件对象
39333 */
39334 onChange: _propTypes2.default.func,
39335 /**
39336 * 表示radio被禁用
39337 */
39338 disabled: _propTypes2.default.bool,
39339 /**
39340 * 可以设置成 button 展示形状
39341 * @enumdesc 按钮状
39342 */
39343 shape: _propTypes2.default.oneOf(['normal', 'button']),
39344 /**
39345 * 与 `shape` 属性配套使用,shape设为button时有效
39346 * @enumdesc 大, 中, 小
39347 */
39348 size: _propTypes2.default.oneOf(['large', 'medium', 'small']),
39349 /**
39350 * 可选项列表, 数据项可为 String 或者 Object, 如 `['apple', 'pear', 'orange']` `[{label: 'apply', value: 'apple'}]`
39351 */
39352 dataSource: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.string), _propTypes2.default.arrayOf(_propTypes2.default.object)]),
39353 /**
39354 * 通过子元素方式设置内部radio
39355 */
39356 children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.element), _propTypes2.default.element]),
39357
39358 /**
39359 * 子项目的排列方式
39360 * - hoz: 水平排列 (default)
39361 * - ver: 垂直排列
39362 */
39363 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
39364 /**
39365 * 是否为预览态
39366 */
39367 isPreview: _propTypes2.default.bool,
39368 /**
39369 * 预览态模式下渲染的内容
39370 * @param {Object} previewed 预览值:{label: "", value: ""}
39371 * @param {Object} props 所有传入的参数
39372 * @returns {reactNode} Element 渲染内容
39373 */
39374 renderPreview: _propTypes2.default.func
39375}), _class.defaultProps = {
39376 dataSource: [],
39377 size: 'medium',
39378 onChange: function onChange() {},
39379 prefix: 'next-',
39380 component: 'div',
39381 direction: 'hoz',
39382 isPreview: false
39383}, _class.childContextTypes = {
39384 onChange: _propTypes2.default.func,
39385 __group__: _propTypes2.default.bool,
39386 isButton: _propTypes2.default.bool,
39387 selectedValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
39388 disabled: _propTypes2.default.bool
39389}, _temp);
39390RadioGroup.displayName = 'RadioGroup';
39391exports.default = (0, _reactLifecyclesCompat.polyfill)(RadioGroup);
39392module.exports = exports['default'];
39393
39394/***/ }),
39395/* 296 */
39396/***/ (function(module, exports, __webpack_require__) {
39397
39398"use strict";
39399
39400
39401exports.__esModule = true;
39402exports.default = undefined;
39403
39404var _extends2 = __webpack_require__(1);
39405
39406var _extends3 = _interopRequireDefault(_extends2);
39407
39408var _classCallCheck2 = __webpack_require__(2);
39409
39410var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39411
39412var _possibleConstructorReturn2 = __webpack_require__(3);
39413
39414var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39415
39416var _inherits2 = __webpack_require__(4);
39417
39418var _inherits3 = _interopRequireDefault(_inherits2);
39419
39420var _class, _temp;
39421
39422var _react = __webpack_require__(0);
39423
39424var _react2 = _interopRequireDefault(_react);
39425
39426var _propTypes = __webpack_require__(5);
39427
39428var _propTypes2 = _interopRequireDefault(_propTypes);
39429
39430var _checkableItem = __webpack_require__(145);
39431
39432var _checkableItem2 = _interopRequireDefault(_checkableItem);
39433
39434function _interopRequireDefault(obj) {
39435 return obj && obj.__esModule ? obj : { default: obj };
39436}
39437
39438/**
39439 * Menu.RadioItem
39440 * @order 4
39441 * @description 该子组件选中情况不受 defaultSelectedKeys/selectedKeys 控制,请自行控制选中逻辑
39442 */
39443var RadioItem = (_temp = _class = function (_Component) {
39444 (0, _inherits3.default)(RadioItem, _Component);
39445
39446 function RadioItem() {
39447 (0, _classCallCheck3.default)(this, RadioItem);
39448 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
39449 }
39450
39451 RadioItem.prototype.render = function render() {
39452 return _react2.default.createElement(_checkableItem2.default, (0, _extends3.default)({
39453 role: 'menuitemradio',
39454 checkType: 'radio'
39455 }, this.props));
39456 };
39457
39458 return RadioItem;
39459}(_react.Component), _class.menuChildType = 'item', _class.propTypes = {
39460 /**
39461 * 是否选中
39462 */
39463 checked: _propTypes2.default.bool,
39464 /**
39465 * 是否禁用
39466 */
39467 disabled: _propTypes2.default.bool,
39468 /**
39469 * 选中或取消选中触发的回调函数
39470 * @param {Boolean} checked 是否选中
39471 * @param {Object} event 选中事件对象
39472 */
39473 onChange: _propTypes2.default.func,
39474 /**
39475 * 帮助文本
39476 */
39477 helper: _propTypes2.default.node,
39478 /**
39479 * 标签内容
39480 */
39481 children: _propTypes2.default.node
39482}, _class.defaultProps = {
39483 checked: false,
39484 disabled: false,
39485 onChange: function onChange() {}
39486}, _temp);
39487RadioItem.displayName = 'RadioItem';
39488exports.default = RadioItem;
39489module.exports = exports['default'];
39490
39491/***/ }),
39492/* 297 */
39493/***/ (function(module, exports, __webpack_require__) {
39494
39495"use strict";
39496
39497
39498exports.__esModule = true;
39499exports.default = undefined;
39500
39501var _extends2 = __webpack_require__(1);
39502
39503var _extends3 = _interopRequireDefault(_extends2);
39504
39505var _typeof2 = __webpack_require__(14);
39506
39507var _typeof3 = _interopRequireDefault(_typeof2);
39508
39509var _objectWithoutProperties2 = __webpack_require__(8);
39510
39511var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
39512
39513var _classCallCheck2 = __webpack_require__(2);
39514
39515var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39516
39517var _possibleConstructorReturn2 = __webpack_require__(3);
39518
39519var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39520
39521var _inherits2 = __webpack_require__(4);
39522
39523var _inherits3 = _interopRequireDefault(_inherits2);
39524
39525var _class, _temp;
39526
39527var _react = __webpack_require__(0);
39528
39529var _react2 = _interopRequireDefault(_react);
39530
39531var _propTypes = __webpack_require__(5);
39532
39533var _propTypes2 = _interopRequireDefault(_propTypes);
39534
39535var _classnames = __webpack_require__(7);
39536
39537var _classnames2 = _interopRequireDefault(_classnames);
39538
39539var _item = __webpack_require__(38);
39540
39541var _item2 = _interopRequireDefault(_item);
39542
39543function _interopRequireDefault(obj) {
39544 return obj && obj.__esModule ? obj : { default: obj };
39545}
39546
39547/**
39548 * Menu.Group
39549 * @order 5
39550 */
39551var Group = (_temp = _class = function (_Component) {
39552 (0, _inherits3.default)(Group, _Component);
39553
39554 function Group() {
39555 (0, _classCallCheck3.default)(this, Group);
39556 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
39557 }
39558
39559 Group.prototype.render = function render() {
39560 var _cx;
39561
39562 var _props = this.props,
39563 root = _props.root,
39564 className = _props.className,
39565 label = _props.label,
39566 children = _props.children,
39567 parentMode = _props.parentMode,
39568 others = (0, _objectWithoutProperties3.default)(_props, ['root', 'className', 'label', 'children', 'parentMode']);
39569 var prefix = root.props.prefix;
39570
39571 var newClassName = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'menu-group-label'] = true, _cx[className] = !!className, _cx));
39572
39573 var newChildren = children.map(function (child) {
39574 var _cx2;
39575
39576 // to fix https://github.com/alibaba-fusion/next/issues/952
39577 if (typeof child !== 'function' && (typeof child === 'undefined' ? 'undefined' : (0, _typeof3.default)(child)) !== 'object') {
39578 return child;
39579 }
39580 var className = child.props.className;
39581
39582 var newChildClassName = (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'menu-group-item'] = true, _cx2[className] = !!className, _cx2));
39583
39584 return (0, _react.cloneElement)(child, {
39585 parentMode: parentMode,
39586 className: newChildClassName
39587 });
39588 });
39589
39590 return [_react2.default.createElement(_item2.default, (0, _extends3.default)({
39591 key: 'menu-group-label',
39592 className: newClassName,
39593 replaceClassName: true,
39594 root: root,
39595 parentMode: parentMode
39596 }, others), label)].concat(newChildren);
39597 };
39598
39599 return Group;
39600}(_react.Component), _class.menuChildType = 'group', _class.propTypes = {
39601 root: _propTypes2.default.object,
39602 className: _propTypes2.default.string,
39603 /**
39604 * 标签内容
39605 */
39606 label: _propTypes2.default.node,
39607 /**
39608 * 菜单项
39609 */
39610 children: _propTypes2.default.node,
39611 parentMode: _propTypes2.default.oneOf(['inline', 'popup'])
39612}, _temp);
39613Group.displayName = 'Group';
39614exports.default = Group;
39615module.exports = exports['default'];
39616
39617/***/ }),
39618/* 298 */
39619/***/ (function(module, exports, __webpack_require__) {
39620
39621"use strict";
39622
39623
39624exports.__esModule = true;
39625exports.default = undefined;
39626
39627var _extends2 = __webpack_require__(1);
39628
39629var _extends3 = _interopRequireDefault(_extends2);
39630
39631var _objectWithoutProperties2 = __webpack_require__(8);
39632
39633var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
39634
39635var _classCallCheck2 = __webpack_require__(2);
39636
39637var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39638
39639var _possibleConstructorReturn2 = __webpack_require__(3);
39640
39641var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39642
39643var _inherits2 = __webpack_require__(4);
39644
39645var _inherits3 = _interopRequireDefault(_inherits2);
39646
39647var _class, _temp;
39648
39649var _react = __webpack_require__(0);
39650
39651var _react2 = _interopRequireDefault(_react);
39652
39653var _propTypes = __webpack_require__(5);
39654
39655var _propTypes2 = _interopRequireDefault(_propTypes);
39656
39657var _classnames = __webpack_require__(7);
39658
39659var _classnames2 = _interopRequireDefault(_classnames);
39660
39661function _interopRequireDefault(obj) {
39662 return obj && obj.__esModule ? obj : { default: obj };
39663}
39664
39665/**
39666 * Menu.Divider
39667 * @order 6
39668 */
39669var Divider = (_temp = _class = function (_Component) {
39670 (0, _inherits3.default)(Divider, _Component);
39671
39672 function Divider() {
39673 (0, _classCallCheck3.default)(this, Divider);
39674 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
39675 }
39676
39677 Divider.prototype.render = function render() {
39678 var _cx;
39679
39680 var _props = this.props,
39681 root = _props.root,
39682 className = _props.className,
39683 parentMode = _props.parentMode,
39684 parent = _props.parent,
39685 others = (0, _objectWithoutProperties3.default)(_props, ['root', 'className', 'parentMode', 'parent']);
39686 var prefix = root.props.prefix;
39687
39688 var newClassName = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'menu-divider'] = true, _cx[className] = !!className, _cx));
39689
39690 return _react2.default.createElement('li', (0, _extends3.default)({ role: 'separator', className: newClassName }, others));
39691 };
39692
39693 return Divider;
39694}(_react.Component), _class.menuChildType = 'divider', _class.propTypes = {
39695 root: _propTypes2.default.object,
39696 className: _propTypes2.default.string
39697}, _temp);
39698Divider.displayName = 'Divider';
39699exports.default = Divider;
39700module.exports = exports['default'];
39701
39702/***/ }),
39703/* 299 */
39704/***/ (function(module, exports, __webpack_require__) {
39705
39706"use strict";
39707
39708
39709exports.__esModule = true;
39710
39711var _extends2 = __webpack_require__(1);
39712
39713var _extends3 = _interopRequireDefault(_extends2);
39714
39715var _objectWithoutProperties2 = __webpack_require__(8);
39716
39717var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
39718
39719var _classCallCheck2 = __webpack_require__(2);
39720
39721var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39722
39723var _possibleConstructorReturn2 = __webpack_require__(3);
39724
39725var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39726
39727var _inherits2 = __webpack_require__(4);
39728
39729var _inherits3 = _interopRequireDefault(_inherits2);
39730
39731var _class, _temp;
39732
39733exports.default = create;
39734
39735var _react = __webpack_require__(0);
39736
39737var _react2 = _interopRequireDefault(_react);
39738
39739var _reactDom = __webpack_require__(12);
39740
39741var _propTypes = __webpack_require__(5);
39742
39743var _propTypes2 = _interopRequireDefault(_propTypes);
39744
39745var _classnames = __webpack_require__(7);
39746
39747var _classnames2 = _interopRequireDefault(_classnames);
39748
39749var _overlay = __webpack_require__(15);
39750
39751var _overlay2 = _interopRequireDefault(_overlay);
39752
39753var _util = __webpack_require__(6);
39754
39755var _configProvider = __webpack_require__(9);
39756
39757var _configProvider2 = _interopRequireDefault(_configProvider);
39758
39759var _menu = __webpack_require__(142);
39760
39761var _menu2 = _interopRequireDefault(_menu);
39762
39763function _interopRequireDefault(obj) {
39764 return obj && obj.__esModule ? obj : { default: obj };
39765}
39766
39767var bindCtx = _util.func.bindCtx;
39768var getContextProps = _configProvider2.default.getContextProps;
39769
39770var Menu = _configProvider2.default.config(_menu2.default);
39771
39772var menuInstance = void 0;
39773
39774var ContextMenu = (_temp = _class = function (_Component) {
39775 (0, _inherits3.default)(ContextMenu, _Component);
39776
39777 function ContextMenu(props) {
39778 (0, _classCallCheck3.default)(this, ContextMenu);
39779
39780 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
39781
39782 _this.state = {
39783 visible: true
39784 };
39785
39786 bindCtx(_this, ['handleOverlayClose', 'handleOverlayOpen', 'handleItemClick', 'getOverlay']);
39787 return _this;
39788 }
39789
39790 ContextMenu.prototype.getOverlay = function getOverlay(ref) {
39791 this.overlay = ref;
39792 };
39793
39794 ContextMenu.prototype.close = function close() {
39795 this.setState({
39796 visible: false
39797 });
39798 menuInstance = null;
39799 };
39800
39801 ContextMenu.prototype.handleOverlayClose = function handleOverlayClose(triggerType, e) {
39802 var clickedPopupMenu = triggerType === 'docClick' && this.popupNodes.some(function (node) {
39803 return node.contains(e.target);
39804 });
39805 if (!clickedPopupMenu) {
39806 this.close();
39807 var overlayProps = this.props.overlayProps;
39808
39809 if (overlayProps && overlayProps.onRequestClose) {
39810 for (var _len = arguments.length, others = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
39811 others[_key - 2] = arguments[_key];
39812 }
39813
39814 overlayProps.onRequestClose.apply(overlayProps, [triggerType, e].concat(others));
39815 }
39816 }
39817 };
39818
39819 ContextMenu.prototype.handleOverlayOpen = function handleOverlayOpen() {
39820 this.popupNodes = this.overlay.getInstance().getContent().getInstance().popupNodes;
39821 var overlayProps = this.props.overlayProps;
39822
39823 if (overlayProps && overlayProps.onOpen) {
39824 overlayProps.onOpen();
39825 }
39826 };
39827
39828 ContextMenu.prototype.handleItemClick = function handleItemClick() {
39829 var _props;
39830
39831 this.close();
39832
39833 this.props.onItemClick && (_props = this.props).onItemClick.apply(_props, arguments);
39834 };
39835
39836 ContextMenu.prototype.render = function render() {
39837 var _cx, _cx2;
39838
39839 var _props2 = this.props,
39840 className = _props2.className,
39841 popupClassName = _props2.popupClassName,
39842 target = _props2.target,
39843 align = _props2.align,
39844 offset = _props2.offset,
39845 afterClose = _props2.afterClose,
39846 _props2$overlayProps = _props2.overlayProps,
39847 overlayProps = _props2$overlayProps === undefined ? {} : _props2$overlayProps,
39848 others = (0, _objectWithoutProperties3.default)(_props2, ['className', 'popupClassName', 'target', 'align', 'offset', 'afterClose', 'overlayProps']);
39849
39850 var contextProps = getContextProps(this.props);
39851 var prefix = contextProps.prefix;
39852 var visible = this.state.visible;
39853
39854 var newOverlayProps = (0, _extends3.default)({}, contextProps, overlayProps, {
39855 target: target,
39856 align: align,
39857 offset: offset,
39858 afterClose: afterClose,
39859 visible: visible,
39860 onRequestClose: this.handleOverlayClose,
39861 onOpen: this.handleOverlayOpen,
39862 ref: this.getOverlay
39863 });
39864 var menuProps = (0, _extends3.default)({}, contextProps, {
39865 triggerType: 'hover'
39866 }, others, {
39867 className: (0, _classnames2.default)((_cx = {}, _cx[prefix + 'context'] = true, _cx[className] = !!className, _cx)),
39868 popupClassName: (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'context'] = true, _cx2[popupClassName] = !!popupClassName, _cx2)),
39869 onItemClick: this.handleItemClick
39870 });
39871
39872 newOverlayProps.rtl = false;
39873
39874 return _react2.default.createElement(_overlay2.default, newOverlayProps, _react2.default.createElement(Menu, menuProps));
39875 };
39876
39877 return ContextMenu;
39878}(_react.Component), _class.propTypes = {
39879 className: _propTypes2.default.string,
39880 popupClassName: _propTypes2.default.string,
39881 target: _propTypes2.default.any,
39882 align: _propTypes2.default.string,
39883 offset: _propTypes2.default.array,
39884 overlayProps: _propTypes2.default.object,
39885 afterClose: _propTypes2.default.func,
39886 mode: _propTypes2.default.oneOf(['inline', 'popup']),
39887 onOpen: _propTypes2.default.func,
39888 onItemClick: _propTypes2.default.func
39889}, _class.defaultProps = {
39890 prefix: 'next-',
39891 align: 'tl tl',
39892 mode: 'popup'
39893}, _temp);
39894
39895/**
39896 * 创建上下文菜单
39897 * @exportName create
39898 * @param {Object} props 属性对象
39899 */
39900
39901ContextMenu.displayName = 'ContextMenu';
39902function create(props) {
39903 if (menuInstance) {
39904 menuInstance.destroy();
39905 }
39906
39907 /* eslint-disable no-unused-vars */
39908 var afterClose = props.afterClose,
39909 others = (0, _objectWithoutProperties3.default)(props, ['afterClose']);
39910 /* eslint-enable no-unused-vars */
39911
39912 var div = document.createElement('div');
39913 document.body.appendChild(div);
39914
39915 var closeChain = function closeChain() {
39916 (0, _reactDom.unmountComponentAtNode)(div);
39917 document.body.removeChild(div);
39918
39919 afterClose && afterClose();
39920 };
39921
39922 var newContext = _configProvider2.default.getContext();
39923
39924 var menu = void 0;
39925 (0, _reactDom.render)(_react2.default.createElement(_configProvider2.default, newContext, _react2.default.createElement(ContextMenu, (0, _extends3.default)({
39926 ref: function ref(_ref) {
39927 menu = _ref;
39928 },
39929 afterClose: closeChain
39930 }, others))), div);
39931
39932 menuInstance = {
39933 destroy: function destroy() {
39934 if (menu) {
39935 menu.close();
39936 }
39937 }
39938 };
39939
39940 return menuInstance;
39941}
39942module.exports = exports['default'];
39943
39944/***/ }),
39945/* 300 */
39946/***/ (function(module, exports, __webpack_require__) {
39947
39948"use strict";
39949
39950
39951exports.__esModule = true;
39952
39953var _extends2 = __webpack_require__(1);
39954
39955var _extends3 = _interopRequireDefault(_extends2);
39956
39957var _objectWithoutProperties2 = __webpack_require__(8);
39958
39959var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
39960
39961var _classCallCheck2 = __webpack_require__(2);
39962
39963var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39964
39965var _possibleConstructorReturn2 = __webpack_require__(3);
39966
39967var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39968
39969var _inherits2 = __webpack_require__(4);
39970
39971var _inherits3 = _interopRequireDefault(_inherits2);
39972
39973var _class, _temp;
39974
39975var _react = __webpack_require__(0);
39976
39977var _react2 = _interopRequireDefault(_react);
39978
39979var _propTypes = __webpack_require__(5);
39980
39981var _propTypes2 = _interopRequireDefault(_propTypes);
39982
39983var _classnames = __webpack_require__(7);
39984
39985var _classnames2 = _interopRequireDefault(_classnames);
39986
39987var _configProvider = __webpack_require__(9);
39988
39989var _configProvider2 = _interopRequireDefault(_configProvider);
39990
39991function _interopRequireDefault(obj) {
39992 return obj && obj.__esModule ? obj : { default: obj };
39993}
39994
39995/**
39996 * Breadcrumb.Item
39997 */
39998var Item = (_temp = _class = function (_Component) {
39999 (0, _inherits3.default)(Item, _Component);
40000
40001 function Item() {
40002 (0, _classCallCheck3.default)(this, Item);
40003 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
40004 }
40005
40006 // stateless separator component
40007 Item.Separator = function Separator(_ref) {
40008 var prefix = _ref.prefix,
40009 children = _ref.children;
40010
40011 return _react2.default.createElement('span', { className: prefix + 'breadcrumb-separator' }, children);
40012 };
40013
40014 Item.prototype.render = function render() {
40015 var _props = this.props,
40016 prefix = _props.prefix,
40017 rtl = _props.rtl,
40018 className = _props.className,
40019 children = _props.children,
40020 link = _props.link,
40021 activated = _props.activated,
40022 separator = _props.separator,
40023 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'rtl', 'className', 'children', 'link', 'activated', 'separator']);
40024
40025 var clazz = (0, _classnames2.default)(prefix + 'breadcrumb-text', className, {
40026 activated: activated
40027 });
40028
40029 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 }));
40030 };
40031
40032 return Item;
40033}(_react.Component), _class.propTypes = {
40034 prefix: _propTypes2.default.string,
40035 rtl: _propTypes2.default.bool,
40036 /**
40037 * 面包屑节点链接,如果设置这个属性,则该节点为`<a />` ,否则是`<span />`
40038 */
40039 link: _propTypes2.default.string,
40040 activated: _propTypes2.default.bool,
40041 separator: _propTypes2.default.node,
40042 className: _propTypes2.default.any,
40043 children: _propTypes2.default.node
40044}, _class.defaultProps = {
40045 prefix: 'next-'
40046}, _class._typeMark = 'breadcrumb_item', _temp);
40047Item.displayName = 'Item';
40048exports.default = _configProvider2.default.config(Item);
40049module.exports = exports['default'];
40050
40051/***/ }),
40052/* 301 */
40053/***/ (function(module, exports, __webpack_require__) {
40054
40055"use strict";
40056
40057
40058exports.__esModule = true;
40059exports.default = undefined;
40060
40061var _extends2 = __webpack_require__(1);
40062
40063var _extends3 = _interopRequireDefault(_extends2);
40064
40065var _typeof2 = __webpack_require__(14);
40066
40067var _typeof3 = _interopRequireDefault(_typeof2);
40068
40069var _objectWithoutProperties2 = __webpack_require__(8);
40070
40071var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
40072
40073var _classCallCheck2 = __webpack_require__(2);
40074
40075var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
40076
40077var _possibleConstructorReturn2 = __webpack_require__(3);
40078
40079var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
40080
40081var _inherits2 = __webpack_require__(4);
40082
40083var _inherits3 = _interopRequireDefault(_inherits2);
40084
40085var _class, _temp2;
40086
40087var _react = __webpack_require__(0);
40088
40089var _react2 = _interopRequireDefault(_react);
40090
40091var _propTypes = __webpack_require__(5);
40092
40093var _propTypes2 = _interopRequireDefault(_propTypes);
40094
40095var _classnames = __webpack_require__(7);
40096
40097var _classnames2 = _interopRequireDefault(_classnames);
40098
40099var _configProvider = __webpack_require__(9);
40100
40101var _configProvider2 = _interopRequireDefault(_configProvider);
40102
40103var _util = __webpack_require__(6);
40104
40105function _interopRequireDefault(obj) {
40106 return obj && obj.__esModule ? obj : { default: obj };
40107}
40108
40109function mapIconSize(size) {
40110 return {
40111 large: 'small',
40112 medium: 'xs',
40113 small: 'xs'
40114 }[size];
40115}
40116
40117/** Button */
40118var Button = (_temp2 = _class = function (_Component) {
40119 (0, _inherits3.default)(Button, _Component);
40120
40121 function Button() {
40122 var _temp, _this, _ret;
40123
40124 (0, _classCallCheck3.default)(this, Button);
40125
40126 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
40127 args[_key] = arguments[_key];
40128 }
40129
40130 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.onMouseUp = function (e) {
40131 _this.button.blur();
40132
40133 if (_this.props.onMouseUp) {
40134 _this.props.onMouseUp(e);
40135 }
40136 }, _this.buttonRefHandler = function (button) {
40137 _this.button = button;
40138 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
40139 }
40140
40141 Button.prototype.render = function render() {
40142 var _btnClsObj;
40143
40144 var _props = this.props,
40145 prefix = _props.prefix,
40146 className = _props.className,
40147 type = _props.type,
40148 size = _props.size,
40149 htmlType = _props.htmlType,
40150 loading = _props.loading,
40151 text = _props.text,
40152 warning = _props.warning,
40153 ghost = _props.ghost,
40154 component = _props.component,
40155 iconSize = _props.iconSize,
40156 icons = _props.icons,
40157 disabled = _props.disabled,
40158 onClick = _props.onClick,
40159 children = _props.children,
40160 rtl = _props.rtl,
40161 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'type', 'size', 'htmlType', 'loading', 'text', 'warning', 'ghost', 'component', 'iconSize', 'icons', 'disabled', 'onClick', 'children', 'rtl']);
40162
40163 var ghostType = ['light', 'dark'].indexOf(ghost) >= 0 ? ghost : 'dark';
40164
40165 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);
40166
40167 var loadingIcon = null;
40168
40169 // 如果传入了 loading 的 icons,使用该节点来渲染
40170 if (icons && icons.loading && (0, _react.isValidElement)(icons.loading)) {
40171 var _classNames;
40172
40173 if (loading) {
40174 delete btnClsObj[prefix + 'btn-loading'];
40175 btnClsObj[prefix + 'btn-custom-loading'] = true;
40176 }
40177
40178 var loadingSize = iconSize || mapIconSize(size);
40179 loadingIcon = _react2.default.cloneElement(icons.loading, {
40180 className: (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'btn-custom-loading-icon'] = true, _classNames.show = loading, _classNames)),
40181 size: loadingSize
40182 });
40183 }
40184
40185 var count = _react.Children.count(children);
40186 var clonedChildren = _react.Children.map(children, function (child, index) {
40187 if (child && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && child.type._typeMark === 'icon') {
40188 var _classNames2;
40189
40190 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));
40191
40192 if ('size' in child.props) {
40193 _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.');
40194 }
40195 return _react2.default.cloneElement(child, {
40196 className: iconCls,
40197 size: iconSize || mapIconSize(size)
40198 });
40199 }
40200
40201 if (!(0, _react.isValidElement)(child)) {
40202 return _react2.default.createElement('span', { className: prefix + 'btn-helper' }, child);
40203 }
40204
40205 return child;
40206 });
40207
40208 var TagName = component;
40209 var tagAttrs = (0, _extends3.default)({}, _util.obj.pickOthers(Object.keys(Button.propTypes), others), {
40210 type: htmlType,
40211 disabled: disabled,
40212 onClick: onClick,
40213 className: (0, _classnames2.default)(btnClsObj)
40214 });
40215
40216 if (TagName !== 'button') {
40217 delete tagAttrs.type;
40218
40219 if (tagAttrs.disabled) {
40220 delete tagAttrs.onClick; // a 标签的 onClick 浏览器默认不会禁用
40221 tagAttrs.href && delete tagAttrs.href; // a 标签在禁用状态下无跳转
40222 }
40223 }
40224
40225 return _react2.default.createElement(TagName, (0, _extends3.default)({}, tagAttrs, { dir: rtl ? 'rtl' : undefined, onMouseUp: this.onMouseUp, ref: this.buttonRefHandler }), loadingIcon, clonedChildren);
40226 };
40227
40228 return Button;
40229}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
40230 prefix: _propTypes2.default.string,
40231 rtl: _propTypes2.default.bool,
40232 /**
40233 * 按钮的类型
40234 */
40235 type: _propTypes2.default.oneOf(['primary', 'secondary', 'normal']),
40236 /**
40237 * 按钮的尺寸
40238 */
40239 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
40240 /**
40241 * 按钮中可配置的 Icon,格式为 { loading: <Icon type="loading" /> }
40242 */
40243 icons: _propTypes2.default.shape({
40244 loading: _propTypes2.default.node
40245 }),
40246 /**
40247 * 按钮中 Icon 的尺寸,用于替代 Icon 的默认大小
40248 */
40249 iconSize: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['xxs', 'xs', 'small', 'medium', 'large', 'xl', 'xxl', 'xxxl', 'inherit']), _propTypes2.default.number]),
40250 /**
40251 * 当 component = 'button' 时,设置 button 标签的 type 值
40252 */
40253 htmlType: _propTypes2.default.oneOf(['submit', 'reset', 'button']),
40254 /**
40255 * 设置标签类型
40256 */
40257 component: _propTypes2.default.oneOf(['button', 'a', 'div', 'span']),
40258 /**
40259 * 设置按钮的载入状态
40260 */
40261 loading: _propTypes2.default.bool,
40262 /**
40263 * 是否为幽灵按钮
40264 */
40265 ghost: _propTypes2.default.oneOf([true, false, 'light', 'dark']),
40266 /**
40267 * 是否为文本按钮
40268 */
40269 text: _propTypes2.default.bool,
40270 /**
40271 * 是否为警告按钮
40272 */
40273 warning: _propTypes2.default.bool,
40274 /**
40275 * 是否禁用
40276 */
40277 disabled: _propTypes2.default.bool,
40278 /**
40279 * 点击按钮的回调
40280 * @param {Object} e Event Object
40281 */
40282 onClick: _propTypes2.default.func,
40283 className: _propTypes2.default.string,
40284 onMouseUp: _propTypes2.default.func,
40285 children: _propTypes2.default.node
40286}), _class.defaultProps = {
40287 prefix: 'next-',
40288 type: 'normal',
40289 size: 'medium',
40290 icons: {},
40291 htmlType: 'button',
40292 component: 'button',
40293 loading: false,
40294 ghost: false,
40295 text: false,
40296 warning: false,
40297 disabled: false,
40298 onClick: function onClick() {}
40299}, _temp2);
40300Button.displayName = 'Button';
40301exports.default = Button;
40302module.exports = exports['default'];
40303
40304/***/ }),
40305/* 302 */
40306/***/ (function(module, exports, __webpack_require__) {
40307
40308"use strict";
40309
40310
40311exports.__esModule = true;
40312
40313var _extends2 = __webpack_require__(1);
40314
40315var _extends3 = _interopRequireDefault(_extends2);
40316
40317var _objectWithoutProperties2 = __webpack_require__(8);
40318
40319var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
40320
40321var _classCallCheck2 = __webpack_require__(2);
40322
40323var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
40324
40325var _possibleConstructorReturn2 = __webpack_require__(3);
40326
40327var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
40328
40329var _inherits2 = __webpack_require__(4);
40330
40331var _inherits3 = _interopRequireDefault(_inherits2);
40332
40333var _class, _temp;
40334
40335var _react = __webpack_require__(0);
40336
40337var _react2 = _interopRequireDefault(_react);
40338
40339var _propTypes = __webpack_require__(5);
40340
40341var _propTypes2 = _interopRequireDefault(_propTypes);
40342
40343var _classnames = __webpack_require__(7);
40344
40345var _classnames2 = _interopRequireDefault(_classnames);
40346
40347var _configProvider = __webpack_require__(9);
40348
40349var _configProvider2 = _interopRequireDefault(_configProvider);
40350
40351function _interopRequireDefault(obj) {
40352 return obj && obj.__esModule ? obj : { default: obj };
40353}
40354
40355/**
40356 * Button.Group
40357 */
40358var ButtonGroup = (_temp = _class = function (_Component) {
40359 (0, _inherits3.default)(ButtonGroup, _Component);
40360
40361 function ButtonGroup() {
40362 (0, _classCallCheck3.default)(this, ButtonGroup);
40363 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
40364 }
40365
40366 ButtonGroup.prototype.render = function render() {
40367 var _classNames;
40368
40369 var _props = this.props,
40370 prefix = _props.prefix,
40371 className = _props.className,
40372 size = _props.size,
40373 children = _props.children,
40374 rtl = _props.rtl,
40375 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'size', 'children', 'rtl']);
40376
40377 var groupCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'btn-group'] = true, _classNames[className] = className, _classNames));
40378
40379 var cloneChildren = _react.Children.map(children, function (child) {
40380 if (child) {
40381 return _react2.default.cloneElement(child, {
40382 size: size
40383 });
40384 }
40385 });
40386
40387 if (rtl) {
40388 others.dir = 'rtl';
40389 }
40390
40391 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: groupCls }), cloneChildren);
40392 };
40393
40394 return ButtonGroup;
40395}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
40396 rtl: _propTypes2.default.bool,
40397 prefix: _propTypes2.default.string,
40398 /**
40399 * 统一设置 Button 组件的按钮大小
40400 */
40401 size: _propTypes2.default.string,
40402 className: _propTypes2.default.string,
40403 children: _propTypes2.default.node
40404}), _class.defaultProps = {
40405 prefix: 'next-',
40406 size: 'medium'
40407}, _temp);
40408ButtonGroup.displayName = 'ButtonGroup';
40409exports.default = _configProvider2.default.config(ButtonGroup);
40410module.exports = exports['default'];
40411
40412/***/ }),
40413/* 303 */
40414/***/ (function(module, exports, __webpack_require__) {
40415
40416"use strict";
40417
40418
40419exports.__esModule = true;
40420
40421var _extends2 = __webpack_require__(1);
40422
40423var _extends3 = _interopRequireDefault(_extends2);
40424
40425var _objectWithoutProperties2 = __webpack_require__(8);
40426
40427var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
40428
40429var _classCallCheck2 = __webpack_require__(2);
40430
40431var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
40432
40433var _possibleConstructorReturn2 = __webpack_require__(3);
40434
40435var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
40436
40437var _inherits2 = __webpack_require__(4);
40438
40439var _inherits3 = _interopRequireDefault(_inherits2);
40440
40441var _class, _temp, _initialiseProps;
40442
40443var _react = __webpack_require__(0);
40444
40445var _react2 = _interopRequireDefault(_react);
40446
40447var _propTypes = __webpack_require__(5);
40448
40449var _propTypes2 = _interopRequireDefault(_propTypes);
40450
40451var _reactLifecyclesCompat = __webpack_require__(10);
40452
40453var _moment = __webpack_require__(19);
40454
40455var _moment2 = _interopRequireDefault(_moment);
40456
40457var _classnames2 = __webpack_require__(7);
40458
40459var _classnames3 = _interopRequireDefault(_classnames2);
40460
40461var _configProvider = __webpack_require__(9);
40462
40463var _configProvider2 = _interopRequireDefault(_configProvider);
40464
40465var _zhCn = __webpack_require__(13);
40466
40467var _zhCn2 = _interopRequireDefault(_zhCn);
40468
40469var _util = __webpack_require__(6);
40470
40471var _cardHeader = __webpack_require__(304);
40472
40473var _cardHeader2 = _interopRequireDefault(_cardHeader);
40474
40475var _datePanelHeader = __webpack_require__(316);
40476
40477var _datePanelHeader2 = _interopRequireDefault(_datePanelHeader);
40478
40479var _monthPanelHeader = __webpack_require__(156);
40480
40481var _monthPanelHeader2 = _interopRequireDefault(_monthPanelHeader);
40482
40483var _yearPanelHeader = __webpack_require__(157);
40484
40485var _yearPanelHeader2 = _interopRequireDefault(_yearPanelHeader);
40486
40487var _dateTable = __webpack_require__(158);
40488
40489var _dateTable2 = _interopRequireDefault(_dateTable);
40490
40491var _monthTable = __webpack_require__(159);
40492
40493var _monthTable2 = _interopRequireDefault(_monthTable);
40494
40495var _yearTable = __webpack_require__(160);
40496
40497var _yearTable2 = _interopRequireDefault(_yearTable);
40498
40499var _utils = __webpack_require__(22);
40500
40501function _interopRequireDefault(obj) {
40502 return obj && obj.__esModule ? obj : { default: obj };
40503}
40504
40505var isValueChanged = function isValueChanged(value, oldVlaue) {
40506 if (value && oldVlaue) {
40507 if (!_moment2.default.isMoment(value)) {
40508 value = (0, _moment2.default)(value);
40509 }
40510 if (!_moment2.default.isMoment(oldVlaue)) {
40511 oldVlaue = (0, _moment2.default)(oldVlaue);
40512 }
40513 return value.valueOf() !== oldVlaue.valueOf();
40514 } else {
40515 return value !== oldVlaue;
40516 }
40517};
40518
40519/** Calendar */
40520var Calendar = (_temp = _class = function (_Component) {
40521 (0, _inherits3.default)(Calendar, _Component);
40522
40523 function Calendar(props, context) {
40524 (0, _classCallCheck3.default)(this, Calendar);
40525
40526 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
40527
40528 _initialiseProps.call(_this);
40529
40530 var value = (0, _utils.formatDateValue)(props.value || props.defaultValue);
40531 var visibleMonth = (0, _utils.getVisibleMonth)(props.defaultVisibleMonth, value);
40532
40533 _this.MODES = props.modes;
40534 _this.today = (0, _moment2.default)();
40535 _this.state = {
40536 value: value,
40537 mode: props.mode || _this.MODES[0],
40538 MODES: _this.MODES,
40539 visibleMonth: visibleMonth
40540 };
40541 return _this;
40542 }
40543
40544 Calendar.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
40545 var st = {};
40546 if ('value' in props) {
40547 var value = (0, _utils.formatDateValue)(props.value);
40548 if (value && isValueChanged(props.value, state.value)) {
40549 st.visibleMonth = value;
40550 }
40551 st.value = value;
40552 }
40553
40554 if (props.mode && state.MODES.indexOf(props.mode) > -1) {
40555 st.mode = props.mode;
40556 }
40557
40558 return st;
40559 };
40560
40561 /**
40562 * 根据日期偏移量设置当前展示的月份
40563 * @param {Number} offset 日期偏移的数量
40564 * @param {String} type 日期偏移的类型 days, months, years
40565 */
40566 Calendar.prototype.changeVisibleMonthByOffset = function changeVisibleMonthByOffset(offset, type) {
40567 var cloneValue = this.state.visibleMonth.clone();
40568 cloneValue.add(offset, type);
40569 this.changeVisibleMonth(cloneValue, 'buttonClick');
40570 };
40571
40572 Calendar.prototype.render = function render() {
40573 var _classnames, _tables, _panelHeaders;
40574
40575 var _props = this.props,
40576 prefix = _props.prefix,
40577 rtl = _props.rtl,
40578 className = _props.className,
40579 shape = _props.shape,
40580 showOtherMonth = _props.showOtherMonth,
40581 format = _props.format,
40582 locale = _props.locale,
40583 dateCellRender = _props.dateCellRender,
40584 monthCellRender = _props.monthCellRender,
40585 yearCellRender = _props.yearCellRender,
40586 disabledDate = _props.disabledDate,
40587 yearRange = _props.yearRange,
40588 disableChangeMode = _props.disableChangeMode,
40589 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'rtl', 'className', 'shape', 'showOtherMonth', 'format', 'locale', 'dateCellRender', 'monthCellRender', 'yearCellRender', 'disabledDate', 'yearRange', 'disableChangeMode']);
40590
40591 var state = this.state;
40592
40593 var classNames = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'calendar'] = true, _classnames[prefix + 'calendar-' + shape] = shape, _classnames), className);
40594
40595 if (rtl) {
40596 others.dir = 'rtl';
40597 }
40598
40599 var visibleMonth = state.visibleMonth;
40600
40601 // reset moment locale
40602 if (locale.momentLocale) {
40603 state.value && state.value.locale(locale.momentLocale);
40604 visibleMonth.locale(locale.momentLocale);
40605 }
40606
40607 var localeData = (0, _utils.getLocaleData)(locale.format || {}, visibleMonth.localeData());
40608
40609 var headerProps = {
40610 prefix: prefix,
40611 value: state.value,
40612 mode: state.mode,
40613 disableChangeMode: disableChangeMode,
40614 yearRange: yearRange,
40615 locale: locale,
40616 rtl: rtl,
40617 visibleMonth: visibleMonth,
40618 momentLocale: localeData,
40619 changeMode: this.changeMode,
40620 changeVisibleMonth: this.changeVisibleMonth,
40621 goNextDecade: this.goNextDecade,
40622 goNextYear: this.goNextYear,
40623 goNextMonth: this.goNextMonth,
40624 goPrevDecade: this.goPrevDecade,
40625 goPrevYear: this.goPrevYear,
40626 goPrevMonth: this.goPrevMonth
40627 };
40628
40629 var tableProps = {
40630 prefix: prefix,
40631 visibleMonth: visibleMonth,
40632 showOtherMonth: showOtherMonth,
40633 value: state.value,
40634 mode: state.mode,
40635 locale: locale,
40636 dateCellRender: dateCellRender,
40637 monthCellRender: monthCellRender,
40638 yearCellRender: yearCellRender,
40639 disabledDate: disabledDate,
40640 momentLocale: localeData,
40641 today: this.today,
40642 goPrevDecade: this.goPrevDecade,
40643 goNextDecade: this.goNextDecade
40644 };
40645
40646 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);
40647
40648 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);
40649
40650 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]);
40651 };
40652
40653 return Calendar;
40654}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
40655 prefix: _propTypes2.default.string,
40656 rtl: _propTypes2.default.bool,
40657 /**
40658 * 默认选中的日期(moment 对象)
40659 */
40660 defaultValue: _utils.checkMomentObj,
40661 /**
40662 * 选中的日期值 (moment 对象)
40663 */
40664 value: _utils.checkMomentObj,
40665 /**
40666 * 面板模式
40667 */
40668 mode: _propTypes2.default.oneOf(_utils.CALENDAR_MODES), // 生成 API 文档需要手动改回 ['date', 'month', 'year']
40669 // 面板可变化的模式列表,仅初始化时接收一次
40670 modes: _propTypes2.default.array,
40671 // 禁用更改面板模式,采用 dropdown 的方式切换显示日期 (暂不正式对外透出)
40672 disableChangeMode: _propTypes2.default.bool,
40673 // 日期值的格式(用于日期title显示的格式)
40674 format: _propTypes2.default.string,
40675 /**
40676 * 是否展示非本月的日期
40677 */
40678 showOtherMonth: _propTypes2.default.bool,
40679 /**
40680 * 默认展示的月份
40681 */
40682 defaultVisibleMonth: _propTypes2.default.func,
40683 /**
40684 * 展现形态
40685 */
40686 shape: _propTypes2.default.oneOf(['card', 'fullscreen', 'panel']),
40687 /**
40688 * 选择日期单元格时的回调
40689 * @param {Object} value 对应的日期值 (moment 对象)
40690 */
40691 onSelect: _propTypes2.default.func,
40692 /**
40693 * 面板模式变化时的回调
40694 * @param {String} mode 对应面板模式 date month year
40695 */
40696 onModeChange: _propTypes2.default.func,
40697 /**
40698 * 展现的月份变化时的回调
40699 * @param {Object} value 显示的月份 (moment 对象)
40700 * @param {String} reason 触发月份改变原因
40701 */
40702 onVisibleMonthChange: _propTypes2.default.func,
40703 /**
40704 * 自定义样式类
40705 */
40706 className: _propTypes2.default.string,
40707 /**
40708 * 自定义日期渲染函数
40709 * @param {Object} value 日期值(moment对象)
40710 * @returns {ReactNode}
40711 */
40712 dateCellRender: _propTypes2.default.func,
40713 /**
40714 * 自定义月份渲染函数
40715 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
40716 * @returns {ReactNode}
40717 */
40718 monthCellRender: _propTypes2.default.func,
40719 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
40720 /**
40721 * 年份范围,[START_YEAR, END_YEAR] (只在shape 为 ‘card’, 'fullscreen' 下生效)
40722 */
40723 yearRange: _propTypes2.default.arrayOf(_propTypes2.default.number),
40724 /**
40725 * 不可选择的日期
40726 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
40727 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
40728 * @returns {Boolean}
40729 */
40730 disabledDate: _propTypes2.default.func,
40731 /**
40732 * 国际化配置
40733 */
40734 locale: _propTypes2.default.object
40735}), _class.defaultProps = {
40736 prefix: 'next-',
40737 rtl: false,
40738 shape: 'fullscreen',
40739 modes: _utils.CALENDAR_MODES,
40740 disableChangeMode: false,
40741 format: 'YYYY-MM-DD',
40742 onSelect: _util.func.noop,
40743 onVisibleMonthChange: _util.func.noop,
40744 onModeChange: _util.func.noop,
40745 dateCellRender: function dateCellRender(value) {
40746 return value.date();
40747 },
40748 locale: _zhCn2.default.Calendar,
40749 showOtherMonth: true
40750}, _initialiseProps = function _initialiseProps() {
40751 var _this2 = this;
40752
40753 this.onSelectCell = function (date, nextMode) {
40754 var visibleMonth = _this2.state.visibleMonth;
40755 var _props2 = _this2.props,
40756 shape = _props2.shape,
40757 showOtherMonth = _props2.showOtherMonth;
40758
40759 // 点击其他月份日期不生效
40760
40761 if (!showOtherMonth && !(0, _utils.isSameYearMonth)(visibleMonth, date)) {
40762 return;
40763 }
40764
40765 _this2.changeVisibleMonth(date, 'cellClick');
40766
40767 // 当用户所在的面板为初始化面板时,则选择动作为触发 onSelect 回调
40768 if (_this2.state.mode === _this2.MODES[0]) {
40769 _this2.props.onSelect(date);
40770 }
40771
40772 if (shape === 'panel') {
40773 _this2.changeMode(nextMode);
40774 }
40775 };
40776
40777 this.changeMode = function (nextMode) {
40778 if (nextMode && _this2.MODES.indexOf(nextMode) > -1 && nextMode !== _this2.state.mode) {
40779 _this2.setState({ mode: nextMode });
40780 _this2.props.onModeChange(nextMode);
40781 }
40782 };
40783
40784 this.changeVisibleMonth = function (date, reason) {
40785 if (!(0, _utils.isSameYearMonth)(date, _this2.state.visibleMonth)) {
40786 _this2.setState({ visibleMonth: date });
40787 _this2.props.onVisibleMonthChange(date, reason);
40788 }
40789 };
40790
40791 this.goPrevDecade = function () {
40792 _this2.changeVisibleMonthByOffset(-10, 'years');
40793 };
40794
40795 this.goNextDecade = function () {
40796 _this2.changeVisibleMonthByOffset(10, 'years');
40797 };
40798
40799 this.goPrevYear = function () {
40800 _this2.changeVisibleMonthByOffset(-1, 'years');
40801 };
40802
40803 this.goNextYear = function () {
40804 _this2.changeVisibleMonthByOffset(1, 'years');
40805 };
40806
40807 this.goPrevMonth = function () {
40808 _this2.changeVisibleMonthByOffset(-1, 'months');
40809 };
40810
40811 this.goNextMonth = function () {
40812 _this2.changeVisibleMonthByOffset(1, 'months');
40813 };
40814}, _temp);
40815Calendar.displayName = 'Calendar';
40816exports.default = (0, _reactLifecyclesCompat.polyfill)(Calendar);
40817module.exports = exports['default'];
40818
40819/***/ }),
40820/* 304 */
40821/***/ (function(module, exports, __webpack_require__) {
40822
40823"use strict";
40824
40825
40826exports.__esModule = true;
40827
40828var _classCallCheck2 = __webpack_require__(2);
40829
40830var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
40831
40832var _possibleConstructorReturn2 = __webpack_require__(3);
40833
40834var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
40835
40836var _inherits2 = __webpack_require__(4);
40837
40838var _inherits3 = _interopRequireDefault(_inherits2);
40839
40840var _class, _temp2;
40841
40842var _react = __webpack_require__(0);
40843
40844var _react2 = _interopRequireDefault(_react);
40845
40846var _propTypes = __webpack_require__(5);
40847
40848var _propTypes2 = _interopRequireDefault(_propTypes);
40849
40850var _select = __webpack_require__(29);
40851
40852var _select2 = _interopRequireDefault(_select);
40853
40854var _radio = __webpack_require__(50);
40855
40856var _radio2 = _interopRequireDefault(_radio);
40857
40858var _configProvider = __webpack_require__(9);
40859
40860var _configProvider2 = _interopRequireDefault(_configProvider);
40861
40862function _interopRequireDefault(obj) {
40863 return obj && obj.__esModule ? obj : { default: obj };
40864}
40865
40866var CardHeader = (_temp2 = _class = function (_React$Component) {
40867 (0, _inherits3.default)(CardHeader, _React$Component);
40868
40869 function CardHeader() {
40870 var _temp, _this, _ret;
40871
40872 (0, _classCallCheck3.default)(this, CardHeader);
40873
40874 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
40875 args[_key] = arguments[_key];
40876 }
40877
40878 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.selectContainerHandler = function (target) {
40879 var device = _this.props.device;
40880
40881 if (device === 'phone') {
40882 return document.body;
40883 }
40884 return target.parentNode;
40885 }, _this.onYearChange = function (year) {
40886 var _this$props = _this.props,
40887 visibleMonth = _this$props.visibleMonth,
40888 changeVisibleMonth = _this$props.changeVisibleMonth;
40889
40890 changeVisibleMonth(visibleMonth.clone().year(year), 'yearSelect');
40891 }, _this.changeVisibleMonth = function (month) {
40892 var _this$props2 = _this.props,
40893 visibleMonth = _this$props2.visibleMonth,
40894 changeVisibleMonth = _this$props2.changeVisibleMonth;
40895
40896 changeVisibleMonth(visibleMonth.clone().month(month), 'monthSelect');
40897 }, _this.onModePanelChange = function (mode) {
40898 _this.props.changeMode(mode);
40899 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
40900 }
40901
40902 CardHeader.prototype.getYearSelect = function getYearSelect(year) {
40903 var _props = this.props,
40904 prefix = _props.prefix,
40905 yearRangeOffset = _props.yearRangeOffset,
40906 _props$yearRange = _props.yearRange,
40907 yearRange = _props$yearRange === undefined ? [] : _props$yearRange,
40908 locale = _props.locale;
40909 var startYear = yearRange[0],
40910 endYear = yearRange[1];
40911
40912 if (!startYear || !endYear) {
40913 startYear = year - yearRangeOffset;
40914 endYear = year + yearRangeOffset;
40915 }
40916
40917 var options = [];
40918 for (var i = startYear; i <= endYear; i++) {
40919 options.push(_react2.default.createElement(_select2.default.Option, { key: i, value: i }, i));
40920 }
40921
40922 return _react2.default.createElement(_select2.default, {
40923 prefix: prefix,
40924 value: year,
40925 'aria-label': locale.yearSelectAriaLabel,
40926 onChange: this.onYearChange,
40927 popupContainer: this.selectContainerHandler
40928 }, options);
40929 };
40930
40931 CardHeader.prototype.getMonthSelect = function getMonthSelect(month) {
40932 var _props2 = this.props,
40933 prefix = _props2.prefix,
40934 momentLocale = _props2.momentLocale,
40935 locale = _props2.locale;
40936
40937 var localeMonths = momentLocale.monthsShort();
40938 var options = [];
40939 for (var i = 0; i < 12; i++) {
40940 options.push(_react2.default.createElement(_select2.default.Option, { key: i, value: i }, localeMonths[i]));
40941 }
40942 return _react2.default.createElement(_select2.default, {
40943 'aria-label': locale.monthSelectAriaLabel,
40944 prefix: prefix,
40945 value: month,
40946 onChange: this.changeVisibleMonth,
40947 popupContainer: this.selectContainerHandler
40948 }, options);
40949 };
40950
40951 CardHeader.prototype.render = function render() {
40952 var _props3 = this.props,
40953 prefix = _props3.prefix,
40954 mode = _props3.mode,
40955 locale = _props3.locale,
40956 visibleMonth = _props3.visibleMonth;
40957
40958 var yearSelect = this.getYearSelect(visibleMonth.year());
40959 var monthSelect = mode === 'month' ? null : this.getMonthSelect(visibleMonth.month());
40960 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));
40961
40962 return _react2.default.createElement('div', { className: prefix + 'calendar-header' }, yearSelect, monthSelect, panelSelect);
40963 };
40964
40965 return CardHeader;
40966}(_react2.default.Component), _class.propTypes = {
40967 yearRange: _propTypes2.default.arrayOf(_propTypes2.default.number),
40968 yearRangeOffset: _propTypes2.default.number,
40969 locale: _propTypes2.default.object
40970}, _class.defaultProps = {
40971 yearRangeOffset: 10
40972}, _temp2);
40973CardHeader.displayName = 'CardHeader';
40974exports.default = _configProvider2.default.config(CardHeader);
40975module.exports = exports['default'];
40976
40977/***/ }),
40978/* 305 */
40979/***/ (function(module, exports, __webpack_require__) {
40980
40981"use strict";
40982
40983
40984exports.__esModule = true;
40985
40986var _typeof2 = __webpack_require__(14);
40987
40988var _typeof3 = _interopRequireDefault(_typeof2);
40989
40990var _extends2 = __webpack_require__(1);
40991
40992var _extends3 = _interopRequireDefault(_extends2);
40993
40994var _classCallCheck2 = __webpack_require__(2);
40995
40996var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
40997
40998var _possibleConstructorReturn2 = __webpack_require__(3);
40999
41000var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
41001
41002var _inherits2 = __webpack_require__(4);
41003
41004var _inherits3 = _interopRequireDefault(_inherits2);
41005
41006var _class, _temp; /* eslint-disable valid-jsdoc */
41007
41008var _react = __webpack_require__(0);
41009
41010var _react2 = _interopRequireDefault(_react);
41011
41012var _propTypes = __webpack_require__(5);
41013
41014var _propTypes2 = _interopRequireDefault(_propTypes);
41015
41016var _classnames = __webpack_require__(7);
41017
41018var _classnames2 = _interopRequireDefault(_classnames);
41019
41020var _reactLifecyclesCompat = __webpack_require__(10);
41021
41022var _util = __webpack_require__(6);
41023
41024var _tag = __webpack_require__(150);
41025
41026var _tag2 = _interopRequireDefault(_tag);
41027
41028var _input = __webpack_require__(18);
41029
41030var _input2 = _interopRequireDefault(_input);
41031
41032var _icon = __webpack_require__(11);
41033
41034var _icon2 = _interopRequireDefault(_icon);
41035
41036var _zhCn = __webpack_require__(13);
41037
41038var _zhCn2 = _interopRequireDefault(_zhCn);
41039
41040var _base = __webpack_require__(154);
41041
41042var _base2 = _interopRequireDefault(_base);
41043
41044var _util2 = __webpack_require__(62);
41045
41046function _interopRequireDefault(obj) {
41047 return obj && obj.__esModule ? obj : { default: obj };
41048}
41049
41050var bindCtx = _util.func.bindCtx,
41051 noop = _util.func.noop;
41052
41053var isIE9 = _util.env.ieVersion === 9;
41054
41055/**
41056 * 无障碍化注意事项:
41057 * 1. Select 无搜索情况下,不应该让 Input 可focus,此时外层wrap必须可focus,并且需要相应focus事件让外边框发生变化
41058 *
41059 * TODO: hightLight 后续改造注意点
41060 * 1. hightLight 跟随点击变化(fixed) 2. 弹窗打开时根据 是否高亮第一个选项的 api开关设置是否hightLight 第一项
41061 */
41062
41063// 自定义弹层:1. 不需要关心Menu的点击事件 2. 不需要关心dataSource变化
41064
41065/**
41066 * Select
41067 */
41068var Select = (_temp = _class = function (_Base) {
41069 (0, _inherits3.default)(Select, _Base);
41070
41071 function Select(props) {
41072 (0, _classCallCheck3.default)(this, Select);
41073
41074 // because dataSource maybe updated while select a item, so we should cache choosen value's item
41075 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
41076
41077 _this.handleWrapClick = function (e) {
41078 // ignore click on input to choose text
41079 if (e.target.nodeName !== 'INPUT') {
41080 e.preventDefault();
41081 }
41082 _this.focusInput();
41083 };
41084
41085 _this.handleArrowClick = function (e) {
41086 e.preventDefault();
41087 _this.focusInput();
41088
41089 // because of can not close Popup by click Input while hasSearch.
41090 // so when Popup open and hasSearch, we should close Popup intentionally
41091 _this.state.visible && _this.hasSearch() && _this.setVisible(false);
41092 };
41093
41094 _this.handleClear = function (e) {
41095 e.stopPropagation();
41096 _this.selectAllYet = false;
41097 _this.handleChange(undefined, 'clear');
41098 };
41099
41100 _this.valueDataSource = {
41101 valueDS: [], // [{value,label}]
41102 mapValueDS: {} // {value: {value,label}}
41103 };
41104
41105 var searchValue = 'searchValue' in props ? props.searchValue : '';
41106
41107 _this.dataStore.setOptions({
41108 key: searchValue,
41109 addonKey: props.mode === 'tag' // tag 模式手动输入的数据
41110 });
41111
41112 (0, _extends3.default)(_this.state, {
41113 searchValue: searchValue,
41114 dataSource: _this.setDataSource(props)
41115 });
41116
41117 // 根据value和计算后的dataSource,更新value对应的详细数据valueDataSource
41118 if (typeof _this.state.value !== 'undefined') {
41119 _this.valueDataSource = (0, _util2.getValueDataSource)(_this.state.value, _this.valueDataSource.mapValueDS, _this.dataStore.getMapDS());
41120 }
41121
41122 bindCtx(_this, ['handleMenuSelect', 'handleItemClick', 'handleSearch', 'handleSearchKeyDown', 'handleSelectAll', 'maxTagPlaceholder']);
41123 return _this;
41124 }
41125
41126 Select.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
41127 var state = {};
41128
41129 if ('value' in nextProps && nextProps.value !== prevState.value) {
41130 (0, _extends3.default)(state, {
41131 value: nextProps.value
41132 });
41133 }
41134
41135 if ('highlightKey' in nextProps && nextProps.highlightKey !== prevState.highlightKey) {
41136 (0, _extends3.default)(state, {
41137 highlightKey: nextProps.highlightKey
41138 });
41139 } else if ('value' in nextProps && nextProps.value !== prevState.value && nextProps.mode === 'single') {
41140 (0, _extends3.default)(state, {
41141 highlightKey: nextProps.value
41142 });
41143 }
41144
41145 if ('searchValue' in nextProps && nextProps.searchValue !== prevState.searchValue) {
41146 var searchValue = nextProps.searchValue;
41147 (0, _extends3.default)(state, {
41148 searchValue: searchValue === undefined || searchValue === null ? '' : searchValue
41149 });
41150 }
41151
41152 if ('visible' in nextProps && nextProps.visible !== prevState.visible) {
41153 (0, _extends3.default)(state, {
41154 visible: nextProps.visible
41155 });
41156 }
41157
41158 if (Object.keys(state).length) {
41159 return state;
41160 }
41161
41162 return null;
41163 };
41164
41165 Select.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
41166 var props = this.props;
41167 if ('searchValue' in props && this.state.searchValue !== prevState.searchValue) {
41168 this.dataStore.setOptions({ key: this.state.searchValue });
41169 }
41170
41171 if (props.mode !== prevProps.mode) {
41172 this.dataStore.setOptions({
41173 addonKey: props.mode === 'tag'
41174 });
41175 }
41176 if (props.mode !== prevProps.mode) {
41177 this.dataStore.setOptions({
41178 addonKey: props.mode === 'tag'
41179 });
41180 }
41181 if (props.filter !== prevProps.filter) {
41182 this.dataStore.setOptions({
41183 filter: props.filter
41184 });
41185 }
41186 if (props.filterLocal !== prevProps.filterLocal) {
41187 this.dataStore.setOptions({
41188 filterLocal: props.filterLocal
41189 });
41190 }
41191
41192 if (prevProps.children !== props.children || prevProps.dataSource !== props.dataSource) {
41193 /* eslint-disable react/no-did-update-set-state */
41194 this.setState({
41195 dataSource: this.setDataSource(props)
41196 });
41197
41198 if (!props.popupContent) {
41199 this.setFirstHightLightKeyForMenu(this.state.searchValue);
41200 }
41201 }
41202
41203 if ('value' in props) {
41204 this.valueDataSource = (0, _util2.getValueDataSource)(props.value, this.valueDataSource.mapValueDS, this.dataStore.getMapDS());
41205 this.updateSelectAllYet(this.valueDataSource.value);
41206 } else if ('defaultValue' in props && props.defaultValue === this.valueDataSource.value && (props.children !== prevProps.children || props.dataSource !== prevProps.dataSource)) {
41207 // has defaultValue and value not changed and dataSource changed
41208 // fix: set defaultValue first, then update dataSource.
41209 this.valueDataSource = (0, _util2.getValueDataSource)(props.defaultValue, this.valueDataSource.mapValueDS, this.dataStore.getMapDS());
41210 }
41211
41212 if (prevProps.label !== this.props.label || prevState.value !== this.state.value || props.searchValue !== this.state.searchValue) {
41213 this.syncWidth();
41214 }
41215 };
41216
41217 Select.prototype.componentDidMount = function componentDidMount() {
41218 if (isIE9) {
41219 this.ie9Hack();
41220 }
41221 _Base.prototype.componentDidMount.call(this);
41222 };
41223
41224 // ie9 下 table-cell 布局不支持宽度超出隐藏
41225
41226
41227 Select.prototype.ie9Hack = function ie9Hack() {
41228 try {
41229 var width = this.selectDOM.currentStyle.width;
41230 this.setState({
41231 fixWidth: width !== 'auto'
41232 });
41233 } catch (e) {
41234 //
41235 }
41236 };
41237
41238 Select.prototype.useDetailValue = function useDetailValue() {
41239 var _props = this.props,
41240 popupContent = _props.popupContent,
41241 useDetailValue = _props.useDetailValue,
41242 dataSource = _props.dataSource;
41243
41244 return useDetailValue || popupContent && !dataSource;
41245 };
41246
41247 Select.prototype.hasSearch = function hasSearch() {
41248 var _props2 = this.props,
41249 showSearch = _props2.showSearch,
41250 mode = _props2.mode;
41251
41252 return showSearch || mode === 'tag';
41253 };
41254
41255 Select.prototype.getTagSize = function getTagSize() {
41256 var _props3 = this.props,
41257 size = _props3.size,
41258 adjustTagSize = _props3.adjustTagSize;
41259
41260 if (adjustTagSize) {
41261 return size;
41262 }
41263 return size === 'large' ? 'medium' : 'small';
41264 };
41265
41266 /**
41267 * Menu.Item onSelect
41268 * @private
41269 * @param {Array<string>} keys
41270 * @
41271 */
41272
41273 Select.prototype.handleMenuSelect = function handleMenuSelect(keys, item) {
41274 var _props4 = this.props,
41275 mode = _props4.mode,
41276 readOnly = _props4.readOnly,
41277 disabled = _props4.disabled;
41278
41279 if (readOnly || disabled) {
41280 return false;
41281 }
41282
41283 var isSingle = mode === 'single';
41284
41285 if (isSingle) {
41286 // 单选
41287 return this.handleSingleSelect(keys[0], 'itemClick');
41288 } else {
41289 // 正常多选
41290 return this.handleMultipleSelect(keys, 'itemClick', item.props && item.props._key);
41291 }
41292 };
41293
41294 Select.prototype.handleItemClick = function handleItemClick(key) {
41295 if (!this.props.popupAutoFocus) {
41296 this.focusInput();
41297 }
41298
41299 if (this.props.mode === 'single' && key === this.state.value) {
41300 this.setVisible(false, 'itemClick');
41301 }
41302 };
41303
41304 /**
41305 * 单选模式
41306 */
41307
41308 Select.prototype.handleSingleSelect = function handleSingleSelect(key, triggerType) {
41309 // TODO: 这里 cacheValue=false 有问题,dataSource 更新的时候就应该处理
41310 var cacheValue = this.props.cacheValue;
41311 // get data only from dataStore while cacheValue=false
41312
41313 var itemObj = (0, _util2.getValueDataSource)(key, cacheValue ? this.valueDataSource.mapValueDS : {}, this.dataStore.getMapDS());
41314 this.valueDataSource = itemObj;
41315
41316 this.setVisible(false, triggerType);
41317
41318 // 应在return之前传出highlightKey
41319 this.setState({
41320 highlightKey: key
41321 });
41322
41323 if (this.useDetailValue()) {
41324 return this.handleChange(itemObj.valueDS, triggerType);
41325 } else {
41326 this.handleChange(itemObj.value, triggerType, itemObj.valueDS);
41327 }
41328
41329 // 清空搜索
41330 if (!('searchValue' in this.props) && this.state.searchValue) {
41331 this.handleSearchClear(triggerType);
41332 }
41333 };
41334
41335 /**
41336 * 多选模式 multiple/tag
41337 */
41338
41339 Select.prototype.handleMultipleSelect = function handleMultipleSelect(keys, triggerType, key, keepSearchValue) {
41340 var _this2 = this;
41341
41342 var itemObj = (0, _util2.getValueDataSource)(keys, this.valueDataSource.mapValueDS, this.dataStore.getMapDS());
41343
41344 var _props5 = this.props,
41345 cacheValue = _props5.cacheValue,
41346 mode = _props5.mode,
41347 hiddenSelected = _props5.hiddenSelected;
41348
41349 // cache those value maybe not exists in dataSource
41350
41351 if (cacheValue || mode === 'tag') {
41352 this.valueDataSource = itemObj;
41353 }
41354
41355 if (hiddenSelected) {
41356 this.setVisible(false, triggerType);
41357 }
41358
41359 // 因为搜索后会设置 hightLight 为第一个item,menu渲染会自动滚动到 hightLight 的元素上面。
41360 // 所以设置 hightLight 为当前选中项避免滚动
41361 key && this.state.visible && this.setState({
41362 highlightKey: key
41363 });
41364
41365 if (this.useDetailValue()) {
41366 this.handleChange(itemObj.valueDS, triggerType);
41367 } else {
41368 this.handleChange(itemObj.value, triggerType, itemObj.valueDS);
41369 }
41370
41371 this.updateSelectAllYet(itemObj.value);
41372
41373 // 清空搜索
41374 if (!('searchValue' in this.props) && this.state.searchValue && !keepSearchValue) {
41375 // 因为 SearchValue 被 clear 后会重新渲染 Menu,所以在 Overlay 检测 safeNode 的时候 e.target 可能会找不到导致弹窗关闭
41376 setTimeout(function () {
41377 _this2.handleSearchClear(triggerType);
41378 });
41379 }
41380 };
41381
41382 Select.prototype.updateSelectAllYet = function updateSelectAllYet(value) {
41383 var _this3 = this;
41384
41385 // multiple mode
41386 // is current state select all or not
41387 this.selectAllYet = false;
41388 if (this.props.hasSelectAll && Array.isArray(value)) {
41389 var selectAllValues = this.dataStore.getEnableDS().map(function (item) {
41390 return item.value;
41391 });
41392
41393 if (selectAllValues.length <= value.length) {
41394 this.selectAllYet = true;
41395
41396 selectAllValues.forEach(function (val) {
41397 if (value.indexOf(val) === -1) {
41398 _this3.selectAllYet = false;
41399 return;
41400 }
41401 });
41402 }
41403 }
41404 };
41405
41406 Select.prototype.handleSearchValue = function handleSearchValue(value) {
41407 if (this.state.searchValue === value) {
41408 return;
41409 }
41410
41411 var filterLocal = this.props.filterLocal;
41412
41413 if (filterLocal) {
41414 if (!('searchValue' in this.props)) {
41415 this.setState({
41416 searchValue: value,
41417 dataSource: this.dataStore.updateByKey(value)
41418 });
41419 this.setFirstHightLightKeyForMenu(value);
41420 }
41421 } else if (!('searchValue' in this.props)) {
41422 this.setState({
41423 searchValue: value
41424 });
41425 }
41426 };
41427
41428 /**
41429 * Handle search input change event
41430 * @param {String} value search text
41431 * @param {Event} e change Event
41432 */
41433
41434 Select.prototype.handleSearch = function handleSearch(value, e) {
41435 this.handleSearchValue(value);
41436
41437 // inputing should trigger popup open
41438 if (!this.state.visible && value) {
41439 this.setVisible(true);
41440 }
41441
41442 this.props.onSearch(value, e);
41443 };
41444
41445 Select.prototype.handleSearchClear = function handleSearchClear(triggerType) {
41446 this.handleSearchValue('');
41447 this.props.onSearchClear(triggerType);
41448 };
41449
41450 // 搜索框 keyDown 事件
41451
41452
41453 Select.prototype.handleSearchKeyDown = function handleSearchKeyDown(e) {
41454 var _props6 = this.props,
41455 popupContent = _props6.popupContent,
41456 onKeyDown = _props6.onKeyDown,
41457 showSearch = _props6.showSearch,
41458 mode = _props6.mode,
41459 hasClear = _props6.hasClear,
41460 onToggleHighlightItem = _props6.onToggleHighlightItem,
41461 readOnly = _props6.readOnly,
41462 disabled = _props6.disabled;
41463
41464 var hasSearch = this.hasSearch();
41465
41466 if (popupContent) {
41467 // 搜索的时候不阻止冒泡会无法输入
41468 if (hasSearch && e.keyCode === _util.KEYCODE.SPACE) {
41469 e.stopPropagation();
41470 }
41471 return onKeyDown(e);
41472 }
41473
41474 var proxy = 'search';
41475
41476 switch (e.keyCode) {
41477 case _util.KEYCODE.UP:
41478 e.preventDefault();
41479 onToggleHighlightItem(this.toggleHighlightItem(-1, e), 'up');
41480 break;
41481 case _util.KEYCODE.DOWN:
41482 e.preventDefault();
41483 onToggleHighlightItem(this.toggleHighlightItem(1, e), 'down');
41484 break;
41485 case _util.KEYCODE.ENTER:
41486 e.preventDefault();
41487 if (readOnly || disabled) {
41488 break;
41489 }
41490 this.chooseHighlightItem(proxy, e);
41491 break;
41492 case _util.KEYCODE.ESC:
41493 e.preventDefault();
41494 this.state.visible && this.setVisible(false, 'keyDown');
41495 break;
41496 case _util.KEYCODE.SPACE:
41497 e.stopPropagation();
41498 !hasSearch && e.preventDefault();
41499 break;
41500 case _util.KEYCODE.BACKSPACE:
41501 if (readOnly || disabled) {
41502 break;
41503 }
41504 if (mode === 'multiple' && showSearch || mode === 'tag') {
41505 // 在多选并且有搜索的情况下,删除最后一个 tag
41506 var valueDS = this.valueDataSource.valueDS;
41507 if (valueDS && valueDS.length && !valueDS[valueDS.length - 1].disabled) {
41508 this.handleDeleteTag(e);
41509 }
41510 } else if (mode === 'single' && hasClear && !this.state.visible) {
41511 // 单选、非展开、并且可清除的情况,允许按删除键清除
41512 this.handleClear(e);
41513 }
41514 break;
41515 default:
41516 break;
41517 }
41518
41519 onKeyDown(e);
41520 };
41521
41522 Select.prototype.chooseMultipleItem = function chooseMultipleItem(key) {
41523 var value = this.state.value || [];
41524 var keys = value.map(function (v) {
41525 return (0, _util2.valueToSelectKey)(v);
41526 });
41527
41528 var keepSearchValue = false;
41529
41530 var index = keys.map(function (v) {
41531 return '' + v;
41532 }).indexOf(key);
41533
41534 if (index > -1) {
41535 // unselect
41536 keys.splice(index, 1);
41537 keepSearchValue = true; // 回车反选保留搜索值
41538 } else {
41539 // select
41540 keys.push(key);
41541 }
41542
41543 this.handleMultipleSelect(keys, 'enter', null, keepSearchValue);
41544 };
41545
41546 // 回车 选择高亮的 item
41547
41548
41549 Select.prototype.chooseHighlightItem = function chooseHighlightItem(proxy, e) {
41550 var mode = this.props.mode;
41551
41552 if (!this.state.visible) {
41553 // input tag by itself
41554 if (mode === 'tag' && this.state.searchValue) {
41555 this.chooseMultipleItem(this.state.searchValue);
41556 }
41557 return false;
41558 }
41559
41560 var highlightKey = this.state.highlightKey;
41561
41562 // 没有高亮选项 或者 没有可选菜单
41563
41564 if (highlightKey === null || !this.dataStore.getMenuDS().length) {
41565 return;
41566 }
41567
41568 if (mode === 'single') {
41569 this.handleSingleSelect(highlightKey, 'enter');
41570 } else {
41571 this.chooseMultipleItem(highlightKey);
41572 // 阻止事件冒泡到最外层,让Popup 监听到触发弹层关闭
41573 e && e.stopPropagation();
41574 }
41575 };
41576
41577 /**
41578 * Handle Tag close event
41579 * @param {Object} item
41580 * @return {Boolean} false return false to prevent auto close
41581 * ----
41582 * It MUST be multiple mode, needn't additional judgement
41583 */
41584
41585 Select.prototype.handleTagClose = function handleTagClose(item) {
41586 var readOnly = this.props.readOnly;
41587
41588 if (readOnly) return false;
41589 if (this.useDetailValue()) {
41590 var value = this.state.value.filter(function (v) {
41591 return item.value !== v.value;
41592 });
41593
41594 this.handleChange(value, 'tag');
41595 } else {
41596 // filter out current item, and then call handleMenuSelect
41597 var _value = this.state.value.filter(function (v) {
41598 return item.value !== v;
41599 });
41600
41601 this.handleMultipleSelect(_value, 'tag');
41602 }
41603
41604 this.props.onRemove(item);
41605
41606 // prevent tag close
41607 return false;
41608 };
41609
41610 // eslint-disable-next-line valid-jsdoc
41611 /**
41612 * Handle BACKSPACE key event
41613 * @param {Event} e keyDown event
41614 * ---
41615 * It MUST be multiple mode
41616 */
41617
41618 Select.prototype.handleDeleteTag = function handleDeleteTag(e) {
41619 var value = this.state.value;
41620 var searchValue = this.state.searchValue;
41621
41622 if (searchValue || !value || !value.length) {
41623 return false;
41624 }
41625
41626 e.preventDefault();
41627
41628 var nextValues = value.slice(0, value.length - 1);
41629 // 手动调用 handleMenuSelect 时直接传入原生的 value,可以减少 toString 的操作
41630
41631 if (this.useDetailValue()) {
41632 this.handleChange(nextValues, 'tag');
41633 } else {
41634 this.handleMultipleSelect(nextValues, 'tag');
41635 }
41636 };
41637
41638 /**
41639 * Handle SelectAll span click event
41640 * @param {Event} e click event
41641 */
41642
41643 Select.prototype.handleSelectAll = function handleSelectAll(e) {
41644 e && e.preventDefault();
41645 var nextValues = void 0;
41646
41647 if (this.selectAllYet) {
41648 nextValues = [];
41649 } else {
41650 nextValues = this.dataStore.getEnableDS().map(function (item) {
41651 return item.value;
41652 });
41653 }
41654
41655 // 直接传 values,减少 toString 操作
41656 this.handleMultipleSelect(nextValues, 'selectAll');
41657 };
41658
41659 Select.prototype.handleVisibleChange = function handleVisibleChange(visible, type) {
41660 this.setVisible(visible, type);
41661 };
41662
41663 Select.prototype.afterClose = function afterClose() {
41664 // 关闭的时候清空搜索值
41665 if (this.hasSearch()) {
41666 this.handleSearchClear('popupClose');
41667 }
41668 };
41669
41670 Select.prototype.maxTagPlaceholder = function maxTagPlaceholder(selectedValues, totalValues) {
41671 var locale = this.props.locale;
41672
41673 return '' + _util.str.template(locale.maxTagPlaceholder, {
41674 selected: selectedValues.length,
41675 total: totalValues.length
41676 });
41677 };
41678
41679 /**
41680 * 如果用户是自定义的弹层,则直接以 value 为准,不再校验 dataSource
41681 * TODO: 2.0 中 value 接受 string/object{value,label} 两种类型的数据,自动做识别,可以避免用户去转换,也和 date-picker 对齐
41682 * 此外 onChange 第一个参数根据 api 来控制类型是 [string] 还是 [object{value,label}]
41683 * @param {object} props
41684 */
41685
41686 Select.prototype.renderValues = function renderValues() {
41687 var _this4 = this;
41688
41689 var _props7 = this.props,
41690 prefix = _props7.prefix,
41691 mode = _props7.mode,
41692 valueRender = _props7.valueRender,
41693 fillProps = _props7.fillProps,
41694 disabled = _props7.disabled,
41695 maxTagCount = _props7.maxTagCount,
41696 maxTagPlaceholder = _props7.maxTagPlaceholder,
41697 tagInline = _props7.tagInline,
41698 tagClosable = _props7.tagClosable;
41699
41700 var tagSize = this.getTagSize();
41701 var value = this.state.value;
41702
41703 if ((0, _util2.isNull)(value)) {
41704 return null;
41705 }
41706
41707 // get detail value
41708 if (!this.useDetailValue()) {
41709 if (value === this.valueDataSource.value) {
41710 value = this.valueDataSource.valueDS;
41711 } else {
41712 value = (0, _util2.getValueDataSource)(value, this.valueDataSource.mapValueDS, this.dataStore.getMapDS()).valueDS;
41713 }
41714 }
41715
41716 if (mode === 'single') {
41717 if (!value) {
41718 return null;
41719 }
41720
41721 var retvalue = fillProps && (typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value)) === 'object' && fillProps in value ? value[fillProps] : valueRender(value);
41722 // 0 => '0'
41723 return typeof retvalue === 'number' ? retvalue.toString() : retvalue;
41724 } else if (value) {
41725 var limitedCountValue = value;
41726 var maxTagPlaceholderEl = void 0;
41727 var totalValue = this.dataStore.getFlattenDS();
41728 var holder = 'maxTagPlaceholder' in this.props ? maxTagPlaceholder : this.maxTagPlaceholder;
41729
41730 if (maxTagCount !== undefined && value.length > maxTagCount && !tagInline) {
41731 limitedCountValue = limitedCountValue.slice(0, maxTagCount);
41732 maxTagPlaceholderEl = _react2.default.createElement(_tag2.default, { key: '_count', type: 'primary', size: tagSize, animation: false }, holder(value, totalValue));
41733 }
41734
41735 if (value.length > 0 && tagInline) {
41736 maxTagPlaceholderEl = _react2.default.createElement('div', { className: prefix + 'select-tag-compact', key: '_count' }, holder(value, totalValue));
41737 }
41738
41739 value = limitedCountValue;
41740 if (!Array.isArray(value)) {
41741 value = [value];
41742 }
41743
41744 var selectedValueNodes = value.map(function (v) {
41745 if (!v) {
41746 return null;
41747 }
41748 var labelNode = fillProps ? v[fillProps] : valueRender(v);
41749
41750 return _react2.default.createElement(_tag2.default, {
41751 key: v.value,
41752 disabled: disabled || v.disabled,
41753 type: 'primary',
41754 size: tagSize,
41755 animation: false,
41756 onClose: _this4.handleTagClose.bind(_this4, v),
41757 closable: tagClosable
41758 }, labelNode);
41759 });
41760
41761 if (maxTagPlaceholderEl) {
41762 if (tagInline) {
41763 selectedValueNodes.unshift(maxTagPlaceholderEl);
41764 } else {
41765 selectedValueNodes.push(maxTagPlaceholderEl);
41766 }
41767 }
41768 return selectedValueNodes;
41769 }
41770
41771 return null;
41772 };
41773 /**
41774 * 1. fix flash while click <label/>
41775 * 2. fix onBlur while has clear
41776 * @returns
41777 */
41778
41779 Select.prototype.hasClear = function hasClear() {
41780 var _props8 = this.props,
41781 hasClear = _props8.hasClear,
41782 readOnly = _props8.readOnly,
41783 disabled = _props8.disabled,
41784 showSearch = _props8.showSearch;
41785 var _state = this.state,
41786 value = _state.value,
41787 visible = _state.visible;
41788
41789 return typeof value !== 'undefined' && value !== null && (Array.isArray(value) ? value.length > 0 : true) && hasClear && !readOnly && !disabled && !(showSearch && visible);
41790 };
41791
41792 /**
41793 * render arrow
41794 * @param {object} props
41795 * @param {function} [clickHandler]
41796 */
41797
41798 Select.prototype.renderExtraNode = function renderExtraNode() {
41799 var _props9 = this.props,
41800 hasArrow = _props9.hasArrow,
41801 hasClear = _props9.hasClear,
41802 prefix = _props9.prefix;
41803
41804 var ret = [];
41805
41806 if (hasArrow) {
41807 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' })));
41808 }
41809
41810 // do not use this.hasClear() here, to make sure clear btn always exists, can not influenced by apis like `disabled` `readOnly`
41811 if (hasClear) {
41812 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' })));
41813 }
41814
41815 return ret;
41816 };
41817
41818 /**
41819 * 选择器
41820 * @override
41821 * @param {object} props
41822 */
41823
41824 Select.prototype.renderSelect = function renderSelect() {
41825 var _classNames,
41826 _this5 = this;
41827
41828 var _props10 = this.props,
41829 prefix = _props10.prefix,
41830 showSearch = _props10.showSearch,
41831 placeholder = _props10.placeholder,
41832 mode = _props10.mode,
41833 size = _props10.size,
41834 className = _props10.className,
41835 style = _props10.style,
41836 readOnly = _props10.readOnly,
41837 disabled = _props10.disabled,
41838 hasBorder = _props10.hasBorder,
41839 label = _props10.label,
41840 locale = _props10.locale,
41841 state = _props10.state,
41842 onBlur = _props10.onBlur,
41843 onFocus = _props10.onFocus,
41844 onMouseEnter = _props10.onMouseEnter,
41845 onMouseLeave = _props10.onMouseLeave,
41846 rtl = _props10.rtl;
41847
41848 var others = _util.obj.pickOthers(Select.propTypes, this.props);
41849 var othersData = _util.obj.pickAttrsWith(others, 'data-');
41850
41851 var visible = this.state.visible;
41852 var isSingle = mode === 'single';
41853 var hasSearch = this.hasSearch();
41854 var valueNodes = this.renderValues();
41855
41856 // compatible with selectPlaceHolder. TODO: removed in 2.0 version
41857 var _placeholder = placeholder || locale.selectPlaceholder || locale.selectPlaceHolder;
41858 if (valueNodes && valueNodes.length) {
41859 _placeholder = null;
41860 }
41861
41862 // 弹窗展开时将当前的值作为 placeholder,这个功能的前提是 valueNode 必须是一个字符串
41863 if (showSearch && visible && isSingle && typeof valueNodes === 'string') {
41864 _placeholder = valueNodes;
41865 }
41866
41867 // 下拉箭头
41868 var extra = this.renderExtraNode();
41869
41870 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));
41871
41872 var valuetext = this.valueDataSource.valueDS ? this.valueDataSource.valueDS.label : '';
41873 return _react2.default.createElement('span', (0, _extends3.default)({}, othersData, {
41874 className: triggerClazz,
41875 style: style,
41876 dir: rtl ? 'rtl' : undefined,
41877 ref: this.saveSelectRef,
41878 onClick: this.handleWrapClick,
41879 onMouseEnter: onMouseEnter,
41880 onMouseLeave: onMouseLeave,
41881 onMouseDown: this.handleWrapClick
41882 }), _react2.default.createElement(_input2.default, (0, _extends3.default)({
41883 'aria-valuetext': valuetext
41884 }, _util.obj.pickOthers(othersData, others), {
41885 role: 'combobox',
41886 tabIndex: 0,
41887 'aria-expanded': this.state.visible,
41888 'aria-disabled': disabled,
41889 state: state,
41890 label: label,
41891 extra: extra,
41892 value: this.state.searchValue,
41893 size: size,
41894 readOnly: !this.hasSearch() || readOnly,
41895 disabled: disabled,
41896 placeholder: _placeholder,
41897 hasBorder: hasBorder,
41898 hasClear: false,
41899 htmlSize: '1',
41900 inputRender: function inputRender(inputEl) {
41901 return _this5.renderSearchInput(valueNodes, _placeholder, inputEl);
41902 },
41903 onChange: this.handleSearch,
41904 onKeyDown: this.handleSearchKeyDown,
41905 onFocus: onFocus,
41906 onBlur: onBlur,
41907 className: prefix + 'select-inner',
41908 ref: this.saveInputRef
41909 })), _react2.default.createElement('span', { className: prefix + 'sr-only', 'aria-live': 'polite' }, this.state.srReader));
41910 };
41911
41912 Select.prototype.renderSearchInput = function renderSearchInput(valueNodes, placeholder, inputEl) {
41913 var _classNames2;
41914
41915 var _props11 = this.props,
41916 prefix = _props11.prefix,
41917 mode = _props11.mode,
41918 tagInline = _props11.tagInline;
41919
41920 var isSingle = mode === 'single';
41921
41922 var mirrorText = this.state.searchValue;
41923
41924 var cls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'select-values'] = true, _classNames2[prefix + 'input-text-field'] = true, _classNames2[prefix + 'select-compact'] = !isSingle && tagInline, _classNames2));
41925 var title = typeof valueNodes === 'string' ? valueNodes : '';
41926 var searchInput = [isSingle && valueNodes ? _react2.default.createElement('em', { title: title, key: 'select-value' }, valueNodes) : valueNodes];
41927 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')));
41928
41929 if (!isSingle && tagInline) {
41930 searchInput.unshift(triggerSearch);
41931 } else {
41932 searchInput.push(triggerSearch);
41933 }
41934
41935 return _react2.default.createElement('span', { className: cls }, searchInput);
41936 };
41937
41938 /**
41939 * 渲染弹层的 header 内容
41940 * @override
41941 * @param {object} props
41942 */
41943
41944 Select.prototype.renderMenuHeader = function renderMenuHeader() {
41945 var _classNames3, _classNames4;
41946
41947 var _props12 = this.props,
41948 prefix = _props12.prefix,
41949 hasSelectAll = _props12.hasSelectAll,
41950 mode = _props12.mode,
41951 locale = _props12.locale,
41952 menuProps = _props12.menuProps;
41953
41954 if (menuProps && 'header' in menuProps) {
41955 return menuProps.header;
41956 }
41957
41958 var sourceCount = this.dataStore.getEnableDS().length;
41959 // 多选模式下才有全选
41960 if (!hasSelectAll || mode === 'single' || !sourceCount) {
41961 return null;
41962 }
41963
41964 var text = typeof hasSelectAll === 'boolean' ? locale.selectAll : hasSelectAll;
41965
41966 var selectAllYet = this.selectAllYet;
41967
41968 var cls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'select-all'] = true, _classNames3[prefix + 'selected'] = selectAllYet, _classNames3));
41969
41970 var clsInner = (0, _classnames2.default)((_classNames4 = {}, _classNames4[prefix + 'select-all-inner'] = true, _classNames4));
41971
41972 // remove style={{'lineHeight': 'unset'}} in next Y
41973 // remove style={{'display': 'none'}} in next Y
41974 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));
41975 };
41976
41977 Select.prototype.render = function render() {
41978 var mode = this.props.mode;
41979
41980 var props = (0, _extends3.default)({}, this.props);
41981
41982 // forbid to close Popup by click Input while hasSearch
41983 if (this.hasSearch()) {
41984 props.canCloseByTrigger = false;
41985 }
41986 if (mode === 'single') {
41987 props.cache = true;
41988 }
41989 return _Base.prototype.render.call(this, props);
41990 };
41991
41992 return Select;
41993}(_base2.default), _class.propTypes = (0, _extends3.default)({}, _base2.default.propTypes, {
41994 /**
41995 * 选择器模式
41996 */
41997 mode: _propTypes2.default.oneOf(['single', 'multiple', 'tag']),
41998 /**
41999 * 当前值,用于受控模式
42000 */
42001 value: _propTypes2.default.any,
42002 /**
42003 * 初始的默认值
42004 */
42005 defaultValue: _propTypes2.default.any,
42006 /**
42007 * Select发生改变时触发的回调
42008 * @param {*} value 选中的值
42009 * @param {String} actionType 触发的方式, 'itemClick', 'enter', 'tag'
42010 * @param {*} item 选中的值的对象数据 (useDetailValue=false有效)
42011 */
42012 onChange: _propTypes2.default.func,
42013 /**
42014 * 传入的数据源,可以动态渲染子项,详见 [dataSource的使用](#dataSource的使用)
42015 */
42016 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.shape({
42017 value: _propTypes2.default.any,
42018 label: _propTypes2.default.any,
42019 disabled: _propTypes2.default.bool,
42020 children: _propTypes2.default.array
42021 }), _propTypes2.default.bool, _propTypes2.default.number, _propTypes2.default.string])),
42022 /**
42023 * 是否有边框
42024 */
42025 hasBorder: _propTypes2.default.bool,
42026 /**
42027 * 是否有下拉箭头
42028 */
42029 hasArrow: _propTypes2.default.bool,
42030 /**
42031 * 展开后是否能搜索(tag 模式下固定为true)
42032 */
42033 showSearch: _propTypes2.default.bool,
42034 /**
42035 * 当搜索框值变化时回调
42036 * @param {String} value 数据
42037 */
42038 onSearch: _propTypes2.default.func,
42039 /**
42040 * 当搜索框值被(选择、弹窗关闭)导致清空时候的回调
42041 * @param {String} actionType 触发的方式, 'select'(选择清空), 'popupClose'(弹窗关闭清空)
42042 */
42043 onSearchClear: _propTypes2.default.func,
42044 /**
42045 * 多选模式下是否有全选功能
42046 */
42047 hasSelectAll: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),
42048 /**
42049 * 填充到选择框里的值的 key
42050 */
42051 fillProps: _propTypes2.default.string,
42052 /**
42053 * value 使用对象类型 `{value, label}`, 同时 onChange 第一个参数返回也修改为 dataSource 中的对象
42054 */
42055 useDetailValue: _propTypes2.default.bool,
42056 /**
42057 * dataSource 变化的时是否保留已选的内容
42058 */
42059 cacheValue: _propTypes2.default.bool,
42060 /**
42061 * 渲染 Select 展现内容的方法
42062 * @param {Object} item 渲染节点的item
42063 * @return {ReactNode} 展现内容
42064 * @default item => `item.label || item.value`
42065 */
42066 valueRender: _propTypes2.default.func,
42067 /**
42068 * 渲染 MenuItem 内容的方法
42069 * @param {Object} item 渲染节点的item
42070 * @param {String} searchValue 搜索关键字(如果开启搜索)
42071 * @return {ReactNode} item node
42072 */
42073 itemRender: _propTypes2.default.func,
42074 /**
42075 * 弹层内容为空的文案
42076 */
42077 notFoundContent: _propTypes2.default.node,
42078 style: _propTypes2.default.object,
42079 /**
42080 * 受控搜索值,一般不需要设置
42081 * @type {[type]}
42082 */
42083 searchValue: _propTypes2.default.string,
42084 /**
42085 * 是否一行显示,仅在 mode 为 multiple 的时候生效
42086 * @version 1.15
42087 */
42088 tagInline: _propTypes2.default.bool,
42089 /**
42090 * tag 是否可关闭
42091 * @version 1.20
42092 */
42093 tagClosable: _propTypes2.default.bool,
42094 /**
42095 * tag 尺寸是否和 select 保持一致(mode=multiple/tag 模式生效),默认false
42096 * @version 1.24
42097 */
42098 adjustTagSize: _propTypes2.default.bool,
42099 /**
42100 * 最多显示多少个 tag
42101 * @version 1.15
42102 */
42103 maxTagCount: _propTypes2.default.number,
42104 /**
42105 * 隐藏多余 tag 时显示的内容,在 maxTagCount 生效时起作用
42106 * @param {object} selectedValues 当前已选中的元素
42107 * @param {object} totalValues 总待选元素
42108 * @version 1.15
42109 */
42110 maxTagPlaceholder: _propTypes2.default.func,
42111 /**
42112 * 选择后是否立即隐藏菜单 (mode=multiple/tag 模式生效)
42113 */
42114 hiddenSelected: _propTypes2.default.bool,
42115 /**
42116 * tag 删除回调
42117 * @param {object} item 渲染节点的item
42118 */
42119 onRemove: _propTypes2.default.func,
42120 /**
42121 * 焦点事件
42122 */
42123 onFocus: _propTypes2.default.func,
42124 /**
42125 * 是否自动高亮第一个选项
42126 */
42127 // highlightFirstItem: PropTypes.bool,
42128 /**
42129 * 失去焦点事件
42130 */
42131 onBlur: _propTypes2.default.func,
42132 onMouseEnter: _propTypes2.default.func,
42133 onMouseLeave: _propTypes2.default.func,
42134 onKeyDown: _propTypes2.default.func,
42135 locale: _propTypes2.default.object,
42136 /**
42137 * 展开下拉菜单时是否自动焦点到弹层
42138 */
42139 popupAutoFocus: _propTypes2.default.bool,
42140 /**
42141 * 是否展示 dataSource 中 children
42142 */
42143 showDataSourceChildren: _propTypes2.default.bool
42144}), _class.defaultProps = (0, _extends3.default)({}, _base2.default.defaultProps, {
42145 locale: _zhCn2.default.Select,
42146 mode: 'single',
42147 showSearch: false,
42148 cacheValue: true,
42149 tagInline: false,
42150 adjustTagSize: false,
42151 onSearch: noop,
42152 onSearchClear: noop,
42153 hasArrow: true,
42154 onRemove: noop,
42155 // highlightFirstItem: true,
42156 valueRender: function valueRender(item) {
42157 return item.label || item.value;
42158 },
42159 onKeyDown: noop,
42160 onFocus: noop,
42161 onBlur: noop,
42162 onMouseEnter: noop,
42163 onMouseLeave: noop,
42164 popupAutoFocus: false,
42165 tagClosable: true
42166}), _class.displayName = 'Select', _temp);
42167exports.default = (0, _reactLifecyclesCompat.polyfill)(Select);
42168module.exports = exports['default'];
42169
42170/***/ }),
42171/* 306 */
42172/***/ (function(module, exports, __webpack_require__) {
42173
42174"use strict";
42175
42176
42177exports.__esModule = true;
42178
42179var _extends2 = __webpack_require__(1);
42180
42181var _extends3 = _interopRequireDefault(_extends2);
42182
42183var _objectWithoutProperties2 = __webpack_require__(8);
42184
42185var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
42186
42187var _classCallCheck2 = __webpack_require__(2);
42188
42189var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42190
42191var _possibleConstructorReturn2 = __webpack_require__(3);
42192
42193var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
42194
42195var _inherits2 = __webpack_require__(4);
42196
42197var _inherits3 = _interopRequireDefault(_inherits2);
42198
42199var _class, _temp;
42200
42201var _react = __webpack_require__(0);
42202
42203var _react2 = _interopRequireDefault(_react);
42204
42205var _propTypes = __webpack_require__(5);
42206
42207var _propTypes2 = _interopRequireDefault(_propTypes);
42208
42209var _classnames = __webpack_require__(7);
42210
42211var _classnames2 = _interopRequireDefault(_classnames);
42212
42213function _interopRequireDefault(obj) {
42214 return obj && obj.__esModule ? obj : { default: obj };
42215}
42216
42217var Group = (_temp = _class = function (_Component) {
42218 (0, _inherits3.default)(Group, _Component);
42219
42220 function Group() {
42221 (0, _classCallCheck3.default)(this, Group);
42222 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
42223 }
42224
42225 Group.prototype.render = function render() {
42226 var _props = this.props,
42227 className = _props.className,
42228 prefix = _props.prefix,
42229 children = _props.children,
42230 rtl = _props.rtl,
42231 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'prefix', 'children', 'rtl']);
42232
42233 var clazz = (0, _classnames2.default)((prefix || 'next-') + 'tag-group', className);
42234
42235 return _react2.default.createElement('div', (0, _extends3.default)({ className: clazz, dir: rtl ? 'rtl' : undefined }, others), children);
42236 };
42237
42238 return Group;
42239}(_react.Component), _class.propTypes = {
42240 prefix: _propTypes2.default.string,
42241 className: _propTypes2.default.any,
42242 children: _propTypes2.default.node,
42243 rtl: _propTypes2.default.bool
42244}, _class.defaultProps = {
42245 prefix: 'next-',
42246 rtl: false
42247}, _temp);
42248Group.displayName = 'Group';
42249exports.default = Group;
42250module.exports = exports['default'];
42251
42252/***/ }),
42253/* 307 */
42254/***/ (function(module, exports, __webpack_require__) {
42255
42256"use strict";
42257
42258
42259exports.__esModule = true;
42260
42261var _extends2 = __webpack_require__(1);
42262
42263var _extends3 = _interopRequireDefault(_extends2);
42264
42265var _classCallCheck2 = __webpack_require__(2);
42266
42267var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42268
42269var _possibleConstructorReturn2 = __webpack_require__(3);
42270
42271var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
42272
42273var _inherits2 = __webpack_require__(4);
42274
42275var _inherits3 = _interopRequireDefault(_inherits2);
42276
42277var _class, _temp;
42278
42279var _react = __webpack_require__(0);
42280
42281var _react2 = _interopRequireDefault(_react);
42282
42283var _propTypes = __webpack_require__(5);
42284
42285var _propTypes2 = _interopRequireDefault(_propTypes);
42286
42287var _classnames = __webpack_require__(7);
42288
42289var _classnames2 = _interopRequireDefault(_classnames);
42290
42291var _reactLifecyclesCompat = __webpack_require__(10);
42292
42293var _util = __webpack_require__(6);
42294
42295var _tag = __webpack_require__(90);
42296
42297var _tag2 = _interopRequireDefault(_tag);
42298
42299function _interopRequireDefault(obj) {
42300 return obj && obj.__esModule ? obj : { default: obj };
42301}
42302
42303var noop = _util.func.noop,
42304 bindCtx = _util.func.bindCtx;
42305
42306/**
42307 * Tag.Selectable
42308 */
42309
42310var Selectable = (_temp = _class = function (_Component) {
42311 (0, _inherits3.default)(Selectable, _Component);
42312
42313 function Selectable(props) {
42314 (0, _classCallCheck3.default)(this, Selectable);
42315
42316 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
42317
42318 _this.state = {
42319 checked: 'checked' in props ? props.checked : props.defaultChecked || false
42320 };
42321
42322 bindCtx(_this, ['handleClick']);
42323 return _this;
42324 }
42325
42326 Selectable.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
42327 if (props.checked !== undefined && props.checked !== state.checked) {
42328 return {
42329 checked: props.checked
42330 };
42331 }
42332
42333 return null;
42334 };
42335
42336 Selectable.prototype.handleClick = function handleClick(e) {
42337 e && e.preventDefault();
42338 // IE9 不支持 pointer-events,还是可能会触发 click 事件
42339 if (this.props.disabled) {
42340 return false;
42341 }
42342
42343 var checked = this.state.checked;
42344
42345 this.setState({
42346 checked: !checked
42347 });
42348
42349 this.props.onChange(!checked, e);
42350 };
42351
42352 Selectable.prototype.render = function render() {
42353 var attrFilterTarget = ['checked', 'defaultChecked', 'onChange', 'className',
42354 // 防止这些额外的参数影响 tag 的类型
42355 '_shape', 'closable'];
42356
42357 var others = _util.obj.pickOthers(attrFilterTarget, this.props);
42358 var isChecked = 'checked' in this.props ? this.props.checked : this.state.checked;
42359 var clazz = (0, _classnames2.default)(this.props.className, {
42360 checked: isChecked
42361 });
42362 return _react2.default.createElement(_tag2.default, (0, _extends3.default)({}, others, {
42363 role: 'checkbox',
42364 _shape: 'checkable',
42365 'aria-checked': isChecked,
42366 className: clazz,
42367 onClick: this.handleClick
42368 }));
42369 };
42370
42371 return Selectable;
42372}(_react.Component), _class.propTypes = {
42373 /**
42374 * 标签是否被选中,受控用法
42375 * tag checked or not, a controlled way
42376 */
42377 checked: _propTypes2.default.bool,
42378 /**
42379 * 标签是否默认被选中,非受控用法
42380 * tag checked or not by default, a uncontrolled way
42381 */
42382 defaultChecked: _propTypes2.default.bool,
42383 /**
42384 * 选中状态变化时触发的事件
42385 * @param {Boolean} checked 是否选中
42386 * @param {Event} e Dom 事件对象
42387 */
42388 onChange: _propTypes2.default.func,
42389 /**
42390 * 标签是否被禁用
42391 */
42392 disabled: _propTypes2.default.bool,
42393 className: _propTypes2.default.any
42394}, _class.defaultProps = {
42395 onChange: noop
42396}, _temp);
42397Selectable.displayName = 'Selectable';
42398exports.default = (0, _reactLifecyclesCompat.polyfill)(Selectable);
42399module.exports = exports['default'];
42400
42401/***/ }),
42402/* 308 */
42403/***/ (function(module, exports, __webpack_require__) {
42404
42405"use strict";
42406
42407
42408exports.__esModule = true;
42409
42410var _extends2 = __webpack_require__(1);
42411
42412var _extends3 = _interopRequireDefault(_extends2);
42413
42414var _objectWithoutProperties2 = __webpack_require__(8);
42415
42416var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
42417
42418var _classCallCheck2 = __webpack_require__(2);
42419
42420var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42421
42422var _possibleConstructorReturn2 = __webpack_require__(3);
42423
42424var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
42425
42426var _inherits2 = __webpack_require__(4);
42427
42428var _inherits3 = _interopRequireDefault(_inherits2);
42429
42430var _class, _temp;
42431
42432var _react = __webpack_require__(0);
42433
42434var _react2 = _interopRequireDefault(_react);
42435
42436var _propTypes = __webpack_require__(5);
42437
42438var _propTypes2 = _interopRequireDefault(_propTypes);
42439
42440var _tag = __webpack_require__(90);
42441
42442var _tag2 = _interopRequireDefault(_tag);
42443
42444function _interopRequireDefault(obj) {
42445 return obj && obj.__esModule ? obj : { default: obj };
42446}
42447
42448/**
42449 * Tag.Closeable
42450 */
42451var Closeable = (_temp = _class = function (_Component) {
42452 (0, _inherits3.default)(Closeable, _Component);
42453
42454 function Closeable() {
42455 (0, _classCallCheck3.default)(this, Closeable);
42456 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
42457 }
42458
42459 Closeable.prototype.render = function render() {
42460 var _props = this.props,
42461 disabled = _props.disabled,
42462 className = _props.className,
42463 closeArea = _props.closeArea,
42464 onClose = _props.onClose,
42465 afterClose = _props.afterClose,
42466 onClick = _props.onClick,
42467 type = _props.type,
42468 size = _props.size,
42469 children = _props.children,
42470 rtl = _props.rtl,
42471 others = (0, _objectWithoutProperties3.default)(_props, ['disabled', 'className', 'closeArea', 'onClose', 'afterClose', 'onClick', 'type', 'size', 'children', 'rtl']);
42472
42473 return _react2.default.createElement(_tag2.default, (0, _extends3.default)({}, others, {
42474 rtl: rtl,
42475 disabled: disabled,
42476 className: className,
42477 closeArea: closeArea,
42478 onClose: onClose,
42479 afterClose: afterClose,
42480 onClick: onClick,
42481 type: type,
42482 size: size,
42483 closable: true
42484 }), children);
42485 };
42486
42487 return Closeable;
42488}(_react.Component), _class.propTypes = {
42489 disabled: _propTypes2.default.bool,
42490 className: _propTypes2.default.any,
42491 /**
42492 * closeable 标签的 onClose 响应区域, tag: 标签体, tail(默认): 关闭按钮
42493 * @enumdesc 标签, 尾部icon
42494 */
42495 closeArea: _propTypes2.default.oneOf(['tag', 'tail']),
42496 /**
42497 * 点击关闭按钮时的回调
42498 * @param {String} from 事件来源, tag: 标签体点击, tail: 关闭按钮点击
42499 * @returns {Boolean} true则关闭, false阻止关闭
42500 */
42501 onClose: _propTypes2.default.func,
42502 /**
42503 * 标签关闭后执行的回调
42504 */
42505 afterClose: _propTypes2.default.func,
42506 /**
42507 * 点击回调
42508 */
42509 onClick: _propTypes2.default.func,
42510 type: _propTypes2.default.oneOf(['normal', 'primary']),
42511 /**
42512 * 标签的尺寸(large 尺寸为兼容表单场景 large = medium)
42513 */
42514 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
42515 children: _propTypes2.default.any,
42516 rtl: _propTypes2.default.bool
42517}, _class.defaultProps = {
42518 disabled: false,
42519 type: 'normal'
42520}, _temp);
42521Closeable.displayName = 'Closeable';
42522exports.default = Closeable;
42523module.exports = exports['default'];
42524
42525/***/ }),
42526/* 309 */
42527/***/ (function(module, exports, __webpack_require__) {
42528
42529"use strict";
42530
42531
42532exports.__esModule = true;
42533exports.default = undefined;
42534
42535var _extends2 = __webpack_require__(1);
42536
42537var _extends3 = _interopRequireDefault(_extends2);
42538
42539var _objectWithoutProperties2 = __webpack_require__(8);
42540
42541var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
42542
42543var _classCallCheck2 = __webpack_require__(2);
42544
42545var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42546
42547var _possibleConstructorReturn2 = __webpack_require__(3);
42548
42549var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
42550
42551var _inherits2 = __webpack_require__(4);
42552
42553var _inherits3 = _interopRequireDefault(_inherits2);
42554
42555var _class, _temp2;
42556
42557var _react = __webpack_require__(0);
42558
42559var _react2 = _interopRequireDefault(_react);
42560
42561var _propTypes = __webpack_require__(5);
42562
42563var _propTypes2 = _interopRequireDefault(_propTypes);
42564
42565var _input = __webpack_require__(151);
42566
42567var _input2 = _interopRequireDefault(_input);
42568
42569var _index = __webpack_require__(11);
42570
42571var _index2 = _interopRequireDefault(_index);
42572
42573function _interopRequireDefault(obj) {
42574 return obj && obj.__esModule ? obj : { default: obj };
42575}
42576
42577function preventDefault(e) {
42578 e.preventDefault();
42579}
42580var Password = (_temp2 = _class = function (_Input) {
42581 (0, _inherits3.default)(Password, _Input);
42582
42583 function Password() {
42584 var _temp, _this, _ret;
42585
42586 (0, _classCallCheck3.default)(this, Password);
42587
42588 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
42589 args[_key] = arguments[_key];
42590 }
42591
42592 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Input.call.apply(_Input, [this].concat(args))), _this), _this.state = {
42593 hint: 'eye-close',
42594 htmlType: 'password'
42595 }, _this.toggleEye = function (e) {
42596 e.preventDefault();
42597 if (_this.props.disabled) return;
42598 var eyeClose = _this.state.hint === 'eye';
42599
42600 _this.setState({
42601 hint: eyeClose ? 'eye-close' : 'eye',
42602 htmlType: eyeClose || !_this.props.showToggle ? 'password' : 'text'
42603 });
42604 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
42605 }
42606
42607 Password.prototype.render = function render() {
42608 var _props = this.props,
42609 showToggle = _props.showToggle,
42610 others = (0, _objectWithoutProperties3.default)(_props, ['showToggle']);
42611 var _state = this.state,
42612 hint = _state.hint,
42613 htmlType = _state.htmlType;
42614
42615 var extra = showToggle ? _react2.default.createElement(_index2.default, { type: hint, onClick: this.toggleEye, onMouseDown: preventDefault }) : null;
42616
42617 return _react2.default.createElement(_input2.default, (0, _extends3.default)({}, others, { extra: extra, htmlType: htmlType }));
42618 };
42619
42620 return Password;
42621}(_input2.default), _class.getDerivedStateFromProps = _input2.default.getDerivedStateFromProps, _class.propTypes = (0, _extends3.default)({}, _input2.default.propTypes, {
42622 /**
42623 * 是否展示切换按钮
42624 */
42625 showToggle: _propTypes2.default.bool
42626}), _class.defaultProps = (0, _extends3.default)({}, _input2.default.defaultProps, {
42627 showToggle: true
42628}), _temp2);
42629exports.default = Password;
42630module.exports = exports['default'];
42631
42632/***/ }),
42633/* 310 */
42634/***/ (function(module, exports, __webpack_require__) {
42635
42636"use strict";
42637
42638
42639exports.__esModule = true;
42640exports.default = undefined;
42641
42642var _extends2 = __webpack_require__(1);
42643
42644var _extends3 = _interopRequireDefault(_extends2);
42645
42646var _typeof2 = __webpack_require__(14);
42647
42648var _typeof3 = _interopRequireDefault(_typeof2);
42649
42650var _classCallCheck2 = __webpack_require__(2);
42651
42652var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42653
42654var _possibleConstructorReturn2 = __webpack_require__(3);
42655
42656var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
42657
42658var _inherits2 = __webpack_require__(4);
42659
42660var _inherits3 = _interopRequireDefault(_inherits2);
42661
42662var _class, _temp, _initialiseProps;
42663
42664var _react = __webpack_require__(0);
42665
42666var _react2 = _interopRequireDefault(_react);
42667
42668var _reactDom = __webpack_require__(12);
42669
42670var _reactDom2 = _interopRequireDefault(_reactDom);
42671
42672var _propTypes = __webpack_require__(5);
42673
42674var _propTypes2 = _interopRequireDefault(_propTypes);
42675
42676var _classnames = __webpack_require__(7);
42677
42678var _classnames2 = _interopRequireDefault(_classnames);
42679
42680var _util = __webpack_require__(6);
42681
42682var _base = __webpack_require__(152);
42683
42684var _base2 = _interopRequireDefault(_base);
42685
42686function _interopRequireDefault(obj) {
42687 return obj && obj.__esModule ? obj : { default: obj };
42688}
42689
42690function onNextFrame(cb) {
42691 if (window.requestAnimationFrame) {
42692 return window.requestAnimationFrame(cb);
42693 }
42694 return window.setTimeout(cb, 1);
42695}
42696
42697function clearNextFrameAction(nextFrameId) {
42698 if (window.cancelAnimationFrame) {
42699 window.cancelAnimationFrame(nextFrameId);
42700 } else {
42701 window.clearTimeout(nextFrameId);
42702 }
42703}
42704
42705// safari in mac
42706var isMacSafari = typeof navigator !== 'undefined' && navigator && navigator.userAgent ? navigator.userAgent.match(/^((?!chrome|android|windows).)*safari/i) : false;
42707
42708var hiddenStyle = {
42709 visibility: 'hidden',
42710 position: 'absolute',
42711 zIndex: '-1000',
42712 top: '-1000px',
42713 overflowY: 'hidden',
42714 left: 0,
42715 right: 0
42716};
42717
42718/**
42719 * Input.TextArea
42720 * @order 2
42721 */
42722var TextArea = (_temp = _class = function (_Base) {
42723 (0, _inherits3.default)(TextArea, _Base);
42724
42725 function TextArea(props) {
42726 (0, _classCallCheck3.default)(this, TextArea);
42727
42728 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
42729
42730 _initialiseProps.call(_this);
42731
42732 var value = void 0;
42733 if ('value' in props) {
42734 value = props.value;
42735 } else {
42736 value = props.defaultValue;
42737 }
42738
42739 _this.state = {
42740 value: typeof value === 'undefined' ? '' : value
42741 };
42742 return _this;
42743 }
42744
42745 TextArea.prototype.componentDidMount = function componentDidMount() {
42746 var autoHeight = this.props.autoHeight;
42747 if (autoHeight) {
42748 if ((typeof autoHeight === 'undefined' ? 'undefined' : (0, _typeof3.default)(autoHeight)) === 'object') {
42749 /* eslint-disable react/no-did-mount-set-state */
42750 this.setState(this._getMinMaxHeight(autoHeight, this.state.value));
42751 } else {
42752 this.setState({
42753 height: this._getHeight(this.state.value),
42754 overflowY: 'hidden'
42755 });
42756 }
42757 }
42758 };
42759
42760 TextArea.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
42761 if (this.props.autoHeight && this.props.value !== prevProps.value) {
42762 this._resizeTextArea(this.props.value);
42763 }
42764 };
42765
42766 TextArea.prototype._getMinMaxHeight = function _getMinMaxHeight(_ref, value) {
42767 var minRows = _ref.minRows,
42768 maxRows = _ref.maxRows;
42769
42770 var node = _reactDom2.default.findDOMNode(this.helpRef);
42771 if (!node) {
42772 return {};
42773 }
42774 node.setAttribute('rows', minRows);
42775 var minHeight = node.clientHeight;
42776
42777 node.setAttribute('rows', maxRows);
42778 var maxHeight = node.clientHeight;
42779
42780 node.setAttribute('rows', '1');
42781 var height = this._getHeight(value);
42782
42783 return {
42784 minHeight: minHeight,
42785 maxHeight: maxHeight,
42786 height: height,
42787 overflowY: height <= maxHeight ? 'hidden' : undefined
42788 };
42789 };
42790
42791 TextArea.prototype._getHeight = function _getHeight(value) {
42792 var node = _reactDom2.default.findDOMNode(this.helpRef);
42793 if (!node) {
42794 return 0;
42795 }
42796 node.value = value;
42797
42798 return node.scrollHeight;
42799 };
42800
42801 TextArea.prototype.ieHack = function ieHack(value) {
42802 // Fix: textarea dit not support maxLength in ie9
42803 /* istanbul ignore if */
42804 if (_util.env.ieVersion === 9 && this.props.maxLength) {
42805 var maxLength = parseInt(this.props.maxLength);
42806 var len = this.getValueLength(value, true);
42807 if (len > maxLength && this.props.cutString) {
42808 value = value.replace(/\n/g, '\n\n');
42809 value = value.substr(0, maxLength);
42810 value = value.replace(/\n\n/g, '\n');
42811 }
42812 }
42813
42814 this.props.autoHeight && this._resizeTextArea(value);
42815
42816 return value;
42817 };
42818
42819 /**
42820 * value.length !== maxLength in ie/safari(mac) while value has `Enter`
42821 * about maxLength compute: `Enter` was considered to be one char(\n) in chrome , but two chars(\r\n) in ie/safari(mac).
42822 * so while value has `Enter`, we should let display length + 1
42823 */
42824
42825 TextArea.prototype.getValueLength = function getValueLength(value) {
42826 var _props = this.props,
42827 maxLength = _props.maxLength,
42828 cutString = _props.cutString;
42829
42830 var nv = '' + value;
42831 var strLen = this.props.getValueLength(nv);
42832 if (typeof strLen !== 'number') {
42833 strLen = nv.length;
42834 }
42835
42836 /* istanbul ignore if */
42837 if (_util.env.ieVersion || isMacSafari) {
42838 strLen = strLen + nv.split('\n').length - 1;
42839 if (strLen > maxLength && cutString) {
42840 strLen = maxLength;
42841 }
42842 }
42843
42844 return strLen;
42845 };
42846
42847 TextArea.prototype.saveTextAreaRef = function saveTextAreaRef(textArea) {
42848 this.inputRef = textArea;
42849 };
42850
42851 TextArea.prototype.saveHelpRef = function saveHelpRef(ref) {
42852 this.helpRef = ref;
42853 };
42854
42855 TextArea.prototype.render = function render() {
42856 var _classNames, _classNames2;
42857
42858 var _props2 = this.props,
42859 rows = _props2.rows,
42860 style = _props2.style,
42861 className = _props2.className,
42862 autoHeight = _props2.autoHeight,
42863 isPreview = _props2.isPreview,
42864 renderPreview = _props2.renderPreview,
42865 prefix = _props2.prefix,
42866 rtl = _props2.rtl,
42867 hasBorder = _props2.hasBorder,
42868 size = _props2.size,
42869 composition = _props2.composition;
42870
42871 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));
42872
42873 var props = this.getProps();
42874 // custom data attributes are assigned to the top parent node
42875 // data-类自定义数据属性分配到顶层node节点
42876 var dataProps = _util.obj.pickAttrsWith(this.props, 'data-');
42877 // Custom props are transparently transmitted to the core input node by default
42878 // 自定义属性默认透传到核心node节点:input
42879 var others = _util.obj.pickOthers((0, _extends3.default)({}, dataProps, TextArea.propTypes), this.props);
42880
42881 var textareStyle = (0, _extends3.default)({}, props.style, {
42882 height: this.state.height,
42883 minHeight: this.state.minHeight,
42884 maxHeight: this.state.maxHeight,
42885 overflowY: this.state.overflowY
42886 });
42887
42888 var previewCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'input-textarea'] = true, _classNames2[prefix + 'form-preview'] = true, _classNames2[className] = !!className, _classNames2));
42889
42890 var wrapStyle = autoHeight ? (0, _extends3.default)({}, style, { position: 'relative' }) : style;
42891
42892 if (isPreview) {
42893 var value = props.value;
42894
42895 if ('renderPreview' in this.props) {
42896 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
42897 }
42898 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), value.split('\n').map(function (data, i) {
42899 return _react2.default.createElement('p', { key: 'p-' + i }, data);
42900 }));
42901 }
42902
42903 var compositionProps = {};
42904 if (composition) {
42905 compositionProps.onCompositionStart = this.handleCompositionStart;
42906 compositionProps.onCompositionEnd = this.handleCompositionEnd;
42907 }
42908
42909 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, {
42910 'data-real': true,
42911 rows: rows,
42912 style: textareStyle,
42913 ref: this.saveRef.bind(this),
42914 onKeyDown: this.onKeyDown.bind(this)
42915 })), autoHeight ? _react2.default.createElement('textarea', {
42916 'data-fake': true,
42917 ref: this.saveHelpRef.bind(this),
42918 style: (0, _extends3.default)({}, props.style, hiddenStyle),
42919 rows: '1'
42920 }) : null, this.renderControl());
42921 };
42922
42923 return TextArea;
42924}(_base2.default), _class.getDerivedStateFromProps = _base2.default.getDerivedStateFromProps, _class.propTypes = (0, _extends3.default)({}, _base2.default.propTypes, {
42925 /**
42926 * 是否有边框
42927 */
42928 hasBorder: _propTypes2.default.bool,
42929 /**
42930 * 状态
42931 * @enumdesc 错误
42932 */
42933 state: _propTypes2.default.oneOf(['error', 'warning']),
42934 /**
42935 * 自动高度 true / {minRows: 2, maxRows: 4}
42936 */
42937 autoHeight: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]),
42938 /**
42939 * 多行文本框高度 <br />(不要直接用height设置多行文本框的高度, ie9 10会有兼容性问题)
42940 */
42941 rows: _propTypes2.default.number,
42942 /**
42943 * 是否为预览态
42944 */
42945 isPreview: _propTypes2.default.bool,
42946 /**
42947 * 预览态模式下渲染的内容
42948 * @param {number} value 评分值
42949 */
42950 renderPreview: _propTypes2.default.func
42951}), _class.defaultProps = (0, _extends3.default)({}, _base2.default.defaultProps, {
42952 hasBorder: true,
42953 isPreview: false,
42954 rows: 4,
42955 autoHeight: false
42956}), _initialiseProps = function _initialiseProps() {
42957 var _this2 = this;
42958
42959 this._resizeTextArea = function (value) {
42960 if (_this2.nextFrameActionId) {
42961 clearNextFrameAction(_this2.nextFrameActionId);
42962 }
42963 _this2.nextFrameActionId = onNextFrame(function () {
42964 var height = _this2._getHeight(value);
42965 var maxHeight = _this2.state.maxHeight ? _this2.state.maxHeight : Infinity;
42966
42967 _this2.setState({
42968 height: _this2._getHeight(value),
42969 overflowY: height <= maxHeight ? 'hidden' : undefined
42970 });
42971 });
42972 };
42973}, _temp);
42974exports.default = TextArea;
42975module.exports = exports['default'];
42976
42977/***/ }),
42978/* 311 */
42979/***/ (function(module, exports, __webpack_require__) {
42980
42981"use strict";
42982
42983
42984exports.__esModule = true;
42985
42986var _extends2 = __webpack_require__(1);
42987
42988var _extends3 = _interopRequireDefault(_extends2);
42989
42990var _classCallCheck2 = __webpack_require__(2);
42991
42992var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42993
42994var _util = __webpack_require__(62);
42995
42996function _interopRequireDefault(obj) {
42997 return obj && obj.__esModule ? obj : { default: obj };
42998}
42999
43000/**
43001 * manage dataSource for menu list
43002 */
43003var DataStore = function () {
43004 function DataStore(options) {
43005 (0, _classCallCheck3.default)(this, DataStore);
43006
43007 this.options = (0, _extends3.default)({
43008 filter: _util.filter,
43009 key: undefined,
43010 addonKey: false,
43011 filterLocal: true,
43012 showDataSourceChildren: true
43013 }, options);
43014
43015 // origin data
43016 this.dataSource = [];
43017 // current data for menu display
43018 this.menuDataSource = [];
43019 // key=>value map for menuDataSource
43020 this.mapDataSource = {};
43021 // current data can be select (not disabled) on menu
43022 this.enabledDataSource = [];
43023 this.flattenDataSource = [];
43024 }
43025
43026 DataStore.prototype.setOptions = function setOptions(options) {
43027 (0, _extends3.default)(this.options, options);
43028 };
43029
43030 DataStore.prototype.updateByDS = function updateByDS(dataSource) {
43031 var isChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
43032
43033 this.dataSource = isChildren ? (0, _util.parseDataSourceFromChildren)(dataSource) : (0, _util.normalizeDataSource)(dataSource, 0, this.options.showDataSourceChildren);
43034 return this.updateAll();
43035 };
43036
43037 DataStore.prototype.updateByKey = function updateByKey(key) {
43038 if (key === this.options.key) {
43039 return this.getMenuDS();
43040 }
43041
43042 this.options.key = key;
43043 return this.updateAll();
43044 };
43045
43046 DataStore.prototype.getOriginDS = function getOriginDS() {
43047 return this.dataSource;
43048 };
43049
43050 DataStore.prototype.getMenuDS = function getMenuDS() {
43051 return this.menuDataSource;
43052 };
43053
43054 DataStore.prototype.getFlattenDS = function getFlattenDS() {
43055 return this.flattenDataSource;
43056 };
43057
43058 DataStore.prototype.getEnableDS = function getEnableDS() {
43059 return this.enabledDataSource;
43060 };
43061
43062 DataStore.prototype.getMapDS = function getMapDS() {
43063 return this.mapDataSource;
43064 };
43065
43066 DataStore.prototype.updateAll = function updateAll() {
43067 var _this = this;
43068
43069 var _options = this.options,
43070 key = _options.key,
43071 filter = _options.filter,
43072 filterLocal = _options.filterLocal,
43073 showDataSourceChildren = _options.showDataSourceChildren;
43074
43075 this.menuDataSource = (0, _util.filterDataSource)(this.dataSource, filterLocal ? key : '', filter, this.options.addonKey);
43076
43077 this.flattenDataSource = showDataSourceChildren ? (0, _util.flattingDataSource)(this.menuDataSource) : this.menuDataSource;
43078
43079 this.mapDataSource = {};
43080 this.flattenDataSource.forEach(function (item) {
43081 _this.mapDataSource['' + item.value] = item;
43082 });
43083
43084 this.enabledDataSource = this.flattenDataSource.filter(function (item) {
43085 return !item.disabled;
43086 });
43087
43088 return this.menuDataSource;
43089 };
43090
43091 return DataStore;
43092}();
43093
43094exports.default = DataStore;
43095module.exports = exports['default'];
43096
43097/***/ }),
43098/* 312 */
43099/***/ (function(module, exports, __webpack_require__) {
43100
43101"use strict";
43102
43103
43104exports.__esModule = true;
43105
43106var _classCallCheck2 = __webpack_require__(2);
43107
43108var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
43109
43110var _possibleConstructorReturn2 = __webpack_require__(3);
43111
43112var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
43113
43114var _inherits2 = __webpack_require__(4);
43115
43116var _inherits3 = _interopRequireDefault(_inherits2);
43117
43118var _class, _temp;
43119
43120var _propTypes = __webpack_require__(5);
43121
43122var _propTypes2 = _interopRequireDefault(_propTypes);
43123
43124var _react = __webpack_require__(0);
43125
43126var _react2 = _interopRequireDefault(_react);
43127
43128var _classnames = __webpack_require__(7);
43129
43130var _classnames2 = _interopRequireDefault(_classnames);
43131
43132var _reactLifecyclesCompat = __webpack_require__(10);
43133
43134var _reactDom = __webpack_require__(12);
43135
43136var _util = __webpack_require__(6);
43137
43138function _interopRequireDefault(obj) {
43139 return obj && obj.__esModule ? obj : { default: obj };
43140}
43141
43142var NOOP = function NOOP() {};
43143var MAX_SYNC_UPDATES = 40;
43144
43145var isEqualSubset = function isEqualSubset(a, b) {
43146 for (var key in b) {
43147 if (a[key] !== b[key]) {
43148 return false;
43149 }
43150 }
43151
43152 return true;
43153};
43154
43155var getOffset = function getOffset(el) {
43156 var offset = el.clientLeft || 0;
43157 do {
43158 offset += el.offsetTop || 0;
43159 el = el.offsetParent;
43160 } while (el);
43161 return offset;
43162};
43163
43164var constrain = function constrain(from, size, _ref) {
43165 var children = _ref.children,
43166 minSize = _ref.minSize;
43167
43168 var length = children && children.length;
43169 size = Math.max(size, minSize);
43170 if (size > length) {
43171 size = length;
43172 }
43173 from = from ? Math.max(Math.min(from, length - size), 0) : 0;
43174
43175 return { from: from, size: size };
43176};
43177/** VirtualList */
43178var VirtualList = (_temp = _class = function (_Component) {
43179 (0, _inherits3.default)(VirtualList, _Component);
43180
43181 function VirtualList(props) {
43182 (0, _classCallCheck3.default)(this, VirtualList);
43183
43184 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
43185
43186 var jumpIndex = props.jumpIndex;
43187
43188 var _constrain = constrain(jumpIndex, 0, props),
43189 from = _constrain.from,
43190 size = _constrain.size;
43191
43192 _this.state = { from: from, size: size };
43193 _this.cache = {};
43194 _this.cacheAdd = {};
43195 _this.scrollTo = _this.scrollTo.bind(_this);
43196 _this.cachedScroll = null;
43197 _this.unstable = false;
43198 _this.updateCounter = 0;
43199 return _this;
43200 }
43201
43202 VirtualList.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
43203 var from = prevState.from,
43204 size = prevState.size;
43205
43206 return constrain(from, size, nextProps);
43207 };
43208
43209 VirtualList.prototype.componentDidMount = function componentDidMount() {
43210 var jumpIndex = this.props.jumpIndex;
43211
43212 this.updateFrameAndClearCache = this.updateFrameAndClearCache.bind(this);
43213
43214 _util.events.on(window, 'resize', this.updateFrameAndClearCache);
43215
43216 this.updateFrame(this.scrollTo.bind(this, jumpIndex));
43217 };
43218
43219 VirtualList.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
43220 var _this2 = this;
43221
43222 var oldIndex = prevProps.jumpIndex;
43223 var newIndex = this.props.jumpIndex;
43224
43225 if (oldIndex !== newIndex) {
43226 this.updateFrame(this.scrollTo.bind(this, newIndex));
43227 }
43228
43229 // If the list has reached an unstable state, prevent an infinite loop.
43230 if (this.unstable) {
43231 return;
43232 }
43233
43234 if (++this.updateCounter > MAX_SYNC_UPDATES) {
43235 this.unstable = true;
43236 }
43237
43238 if (!this.updateCounterTimeoutId) {
43239 this.updateCounterTimeoutId = setTimeout(function () {
43240 _this2.updateCounter = 0;
43241 delete _this2.updateCounterTimeoutId;
43242 }, 0);
43243 }
43244
43245 this.updateFrame();
43246 };
43247
43248 VirtualList.prototype.componentWillUnmount = function componentWillUnmount() {
43249 _util.events.off(window, 'resize', this.updateFrameAndClearCache);
43250
43251 _util.events.off(this.scrollParent, 'scroll', this.updateFrameAndClearCache);
43252 _util.events.off(this.scrollParent, 'mousewheel', NOOP);
43253 };
43254
43255 VirtualList.prototype.maybeSetState = function maybeSetState(b, cb) {
43256 if (isEqualSubset(this.state, b)) {
43257 return cb();
43258 }
43259
43260 this.setState(b, cb);
43261 };
43262
43263 VirtualList.prototype.getEl = function getEl() {
43264 return this.el || this.items || {};
43265 };
43266
43267 VirtualList.prototype.getScrollParent = function getScrollParent() {
43268 var el = this.getEl();
43269 el = el.parentElement;
43270
43271 switch (window.getComputedStyle(el).overflowY) {
43272 case 'auto':
43273 case 'scroll':
43274 case 'overlay':
43275 case 'visible':
43276 return el;
43277 }
43278
43279 return window;
43280 };
43281
43282 VirtualList.prototype.getScroll = function getScroll() {
43283 // Cache scroll position as this causes a forced synchronous layout.
43284 // if (typeof this.cachedScroll === 'number') {
43285 // return this.cachedScroll;
43286 // }
43287 var scrollParent = this.scrollParent;
43288
43289 var scrollKey = 'scrollTop';
43290 var actual = scrollParent === window ? // Firefox always returns document.body[scrollKey] as 0 and Chrome/Safari
43291 // always return document.documentElement[scrollKey] as 0, so take
43292 // whichever has a value.
43293 document.body[scrollKey] || document.documentElement[scrollKey] : scrollParent[scrollKey];
43294 var max = this.getScrollSize() - this.getViewportSize();
43295
43296 var scroll = Math.max(0, Math.min(actual, max));
43297 var el = this.getEl();
43298 this.cachedScroll = getOffset(scrollParent) + scroll - getOffset(el);
43299
43300 return this.cachedScroll;
43301 };
43302
43303 VirtualList.prototype.setScroll = function setScroll(offset) {
43304 var scrollParent = this.scrollParent;
43305
43306 offset += getOffset(this.getEl());
43307 if (scrollParent === window) {
43308 return window.scrollTo(0, offset);
43309 }
43310
43311 offset -= getOffset(this.scrollParent);
43312 scrollParent.scrollTop = offset;
43313 };
43314
43315 VirtualList.prototype.getViewportSize = function getViewportSize() {
43316 var scrollParent = this.scrollParent;
43317
43318 return scrollParent === window ? window.innerHeight : scrollParent.clientHeight;
43319 };
43320
43321 VirtualList.prototype.getScrollSize = function getScrollSize() {
43322 var scrollParent = this.scrollParent;
43323 var _document = document,
43324 body = _document.body,
43325 documentElement = _document.documentElement;
43326
43327 var key = 'scrollHeight';
43328 return scrollParent === window ? Math.max(body[key], documentElement[key]) : scrollParent[key];
43329 };
43330
43331 VirtualList.prototype.getStartAndEnd = function getStartAndEnd() {
43332 var threshold = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.threshold;
43333
43334 var scroll = this.getScroll();
43335
43336 var trueScroll = scroll;
43337 var start = Math.max(0, trueScroll - threshold);
43338 var end = trueScroll + this.getViewportSize() + threshold;
43339
43340 return { start: start, end: end };
43341 };
43342
43343 // Called by 'scroll' and 'resize' events, clears scroll position cache.
43344
43345
43346 VirtualList.prototype.updateFrameAndClearCache = function updateFrameAndClearCache(cb) {
43347 this.cachedScroll = null;
43348 return this.updateFrame(cb);
43349 };
43350
43351 VirtualList.prototype.updateFrame = function updateFrame(cb) {
43352 this.updateScrollParent();
43353
43354 if (typeof cb !== 'function') {
43355 cb = NOOP;
43356 }
43357
43358 return this.updateVariableFrame(cb);
43359 };
43360
43361 VirtualList.prototype.updateScrollParent = function updateScrollParent() {
43362 var prev = this.scrollParent;
43363 this.scrollParent = this.getScrollParent();
43364
43365 if (prev === this.scrollParent) {
43366 return;
43367 }
43368 if (prev) {
43369 _util.events.off(prev, 'scroll', this.updateFrameAndClearCache);
43370 _util.events.off(prev, 'mousewheel', NOOP);
43371 }
43372
43373 _util.events.on(this.scrollParent, 'scroll', this.updateFrameAndClearCache);
43374 _util.events.on(this.scrollParent, 'mousewheel', NOOP);
43375
43376 // You have to attach mousewheel listener to the scrollable element.
43377 // Just an empty listener. After that onscroll events will be fired synchronously.
43378 };
43379
43380 VirtualList.prototype.updateVariableFrame = function updateVariableFrame(cb) {
43381 if (!this.props.itemSizeGetter) {
43382 this.cacheSizes();
43383 }
43384
43385 var _getStartAndEnd = this.getStartAndEnd(),
43386 start = _getStartAndEnd.start,
43387 end = _getStartAndEnd.end;
43388
43389 var _props = this.props,
43390 pageSize = _props.pageSize,
43391 children = _props.children;
43392
43393 var length = children.length;
43394 var space = 0;
43395 var from = 0;
43396 var size = 0;
43397 var maxFrom = length - 1;
43398
43399 while (from < maxFrom) {
43400 var itemSize = this.getSizeOf(from);
43401 if (itemSize === null || itemSize === undefined || space + itemSize > start) {
43402 break;
43403 }
43404 space += itemSize;
43405 ++from;
43406 }
43407
43408 var maxSize = length - from;
43409
43410 while (size < maxSize && space < end) {
43411 var _itemSize = this.getSizeOf(from + size);
43412 if (_itemSize === null || _itemSize === undefined) {
43413 size = Math.min(size + pageSize, maxSize);
43414 break;
43415 }
43416 space += _itemSize;
43417 ++size;
43418 }
43419
43420 this.maybeSetState({ from: from, size: size }, cb);
43421 };
43422
43423 VirtualList.prototype.getSpaceBefore = function getSpaceBefore(index) {
43424 var cache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
43425
43426 if (!index) {
43427 return 0;
43428 }
43429 if (cache[index] !== null && cache[index] !== undefined) {
43430 return cache[index] || 0;
43431 }
43432
43433 // Find the closest space to index there is a cached value for.
43434 var from = index;
43435 while (from > 0 && (cache[from] === null || cache[from] === undefined)) {
43436 from--;
43437 }
43438
43439 // Finally, accumulate sizes of items from - index.
43440 var space = cache[from] || 0;
43441 for (var i = from; i < index; ++i) {
43442 cache[i] = space;
43443 var itemSize = this.getSizeOf(i);
43444 if (itemSize === null || itemSize === undefined) {
43445 break;
43446 }
43447 space += itemSize;
43448 }
43449
43450 cache[index] = space;
43451
43452 return cache[index] || 0;
43453 };
43454
43455 VirtualList.prototype.cacheSizes = function cacheSizes() {
43456 var cache = this.cache;
43457 var from = this.state.from;
43458 var _items = this.items,
43459 children = _items.children,
43460 _items$props = _items.props,
43461 props = _items$props === undefined ? {} : _items$props;
43462
43463 var itemEls = children || props.children || [];
43464
43465 try {
43466 // <Select useVirtual /> 模式下,在快速点击切换Tab的情况下(Select实例快速出现、消失) 有时会出现this.items不存在,导致页面报错。怀疑是Select的异步timer渲染逻辑引起的
43467 for (var i = 0, l = itemEls.length; i < l; ++i) {
43468 var ulRef = (0, _reactDom.findDOMNode)(this.items);
43469 var height = ulRef.children[i].offsetHeight;
43470 if (height > 0) {
43471 cache[from + i] = height;
43472 }
43473 }
43474 } catch (error) {
43475 // ...
43476 }
43477 };
43478
43479 VirtualList.prototype.getSizeOf = function getSizeOf(index) {
43480 var cache = this.cache;
43481 var _props2 = this.props,
43482 itemSizeGetter = _props2.itemSizeGetter,
43483 jumpIndex = _props2.jumpIndex;
43484
43485 // Try the cache.
43486
43487 if (index in cache) {
43488 return cache[index];
43489 }
43490 if (itemSizeGetter) {
43491 return itemSizeGetter(index);
43492 }
43493
43494 if (!this.defaultItemHeight && jumpIndex > -1) {
43495 var keysList = Object.keys(this.cache);
43496 var len = keysList.length;
43497 var height = this.cache[len - 1];
43498 this.defaultItemHeight = height;
43499 }
43500
43501 if (this.defaultItemHeight) {
43502 return this.defaultItemHeight;
43503 }
43504 };
43505
43506 VirtualList.prototype.scrollTo = function scrollTo(index) {
43507 this.setScroll(this.getSpaceBefore(index, this.cacheAdd));
43508 };
43509
43510 VirtualList.prototype.renderMenuItems = function renderMenuItems() {
43511 var _this3 = this;
43512
43513 var _props3 = this.props,
43514 children = _props3.children,
43515 itemsRenderer = _props3.itemsRenderer;
43516 var _state = this.state,
43517 from = _state.from,
43518 size = _state.size;
43519
43520 var items = [];
43521
43522 for (var i = 0; i < size; ++i) {
43523 items.push(children[from + i]);
43524 }
43525
43526 return itemsRenderer(items, function (c) {
43527 _this3.items = c;
43528 return _this3.items;
43529 });
43530 };
43531
43532 VirtualList.prototype.render = function render() {
43533 var _cx,
43534 _this4 = this;
43535
43536 var _props4 = this.props,
43537 _props4$children = _props4.children,
43538 children = _props4$children === undefined ? [] : _props4$children,
43539 prefix = _props4.prefix,
43540 className = _props4.className;
43541
43542 var length = children.length;
43543 var from = this.state.from;
43544
43545 var items = this.renderMenuItems();
43546
43547 var style = { position: 'relative' };
43548
43549 var size = this.getSpaceBefore(length, {});
43550
43551 if (size) {
43552 style.height = size;
43553 }
43554 var offset = this.getSpaceBefore(from, this.cacheAdd);
43555 var transform = 'translate(0px, ' + offset + 'px)';
43556 var listStyle = {
43557 msTransform: transform,
43558 WebkitTransform: transform,
43559 transform: transform
43560 };
43561
43562 var cls = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'virtual-list-wrapper'] = true, _cx[className] = !!className, _cx));
43563
43564 return _react2.default.createElement('div', {
43565 className: cls,
43566 style: style,
43567 ref: function ref(c) {
43568 _this4.el = c;
43569 return _this4.el;
43570 }
43571 }, _react2.default.createElement('div', { style: listStyle }, items));
43572 };
43573
43574 return VirtualList;
43575}(_react.Component), _class.displayName = 'VirtualList', _class.propTypes = {
43576 prefix: _propTypes2.default.string,
43577 /**
43578 * 渲染的子节点
43579 */
43580 children: _propTypes2.default.any,
43581 /**
43582 * 最小加载数量
43583 */
43584 minSize: _propTypes2.default.number,
43585 /**
43586 * 一屏数量
43587 */
43588 pageSize: _propTypes2.default.number,
43589 /**
43590 * 父渲染函数,默认为 (items, ref) => <ul ref={ref}>{items}</ul>
43591 */
43592 itemsRenderer: _propTypes2.default.func,
43593 /**
43594 * 缓冲区高度
43595 */
43596 threshold: _propTypes2.default.number,
43597 /**
43598 * 获取item高度的函数
43599 */
43600 itemSizeGetter: _propTypes2.default.func,
43601 /**
43602 * 设置跳转位置,需要设置 itemSizeGetter 才能生效, 不设置认为元素等高并取第一个元素高度作为默认高
43603 */
43604 jumpIndex: _propTypes2.default.number,
43605 className: _propTypes2.default.string
43606}, _class.defaultProps = {
43607 prefix: 'next-',
43608 itemsRenderer: function itemsRenderer(items, ref) {
43609 return _react2.default.createElement('ul', { ref: ref }, items);
43610 },
43611 minSize: 1,
43612 pageSize: 10,
43613 jumpIndex: 0,
43614 threshold: 100
43615}, _temp);
43616VirtualList.displayName = 'VirtualList';
43617exports.default = (0, _reactLifecyclesCompat.polyfill)(VirtualList);
43618module.exports = exports['default'];
43619
43620/***/ }),
43621/* 313 */
43622/***/ (function(module, exports, __webpack_require__) {
43623
43624"use strict";
43625
43626
43627exports.__esModule = true;
43628
43629var _extends2 = __webpack_require__(1);
43630
43631var _extends3 = _interopRequireDefault(_extends2);
43632
43633var _classCallCheck2 = __webpack_require__(2);
43634
43635var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
43636
43637var _possibleConstructorReturn2 = __webpack_require__(3);
43638
43639var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
43640
43641var _inherits2 = __webpack_require__(4);
43642
43643var _inherits3 = _interopRequireDefault(_inherits2);
43644
43645var _class, _temp;
43646
43647var _react = __webpack_require__(0);
43648
43649var _react2 = _interopRequireDefault(_react);
43650
43651var _propTypes = __webpack_require__(5);
43652
43653var _propTypes2 = _interopRequireDefault(_propTypes);
43654
43655var _classnames = __webpack_require__(7);
43656
43657var _classnames2 = _interopRequireDefault(_classnames);
43658
43659var _reactLifecyclesCompat = __webpack_require__(10);
43660
43661var _util = __webpack_require__(6);
43662
43663var _input = __webpack_require__(18);
43664
43665var _input2 = _interopRequireDefault(_input);
43666
43667var _base = __webpack_require__(154);
43668
43669var _base2 = _interopRequireDefault(_base);
43670
43671function _interopRequireDefault(obj) {
43672 return obj && obj.__esModule ? obj : { default: obj };
43673}
43674
43675var bindCtx = _util.func.bindCtx,
43676 noop = _util.func.noop;
43677
43678/**
43679 * Select.AutoComplete
43680 */
43681
43682var AutoComplete = (_temp = _class = function (_Base) {
43683 (0, _inherits3.default)(AutoComplete, _Base);
43684
43685 function AutoComplete(props) {
43686 (0, _classCallCheck3.default)(this, AutoComplete);
43687
43688 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
43689
43690 _this.handleChange = function (value, proxy, item) {
43691 var _this$props = _this.props,
43692 disabled = _this$props.disabled,
43693 readOnly = _this$props.readOnly,
43694 filterLocal = _this$props.filterLocal;
43695
43696 if (disabled || readOnly) {
43697 return false;
43698 }
43699
43700 var actionType = typeof proxy === 'string' ? proxy : 'change';
43701
43702 _this.isInputing = actionType === 'change';
43703
43704 if (filterLocal) {
43705 _this.setState({
43706 dataSource: _this.dataStore.updateByKey(value)
43707 });
43708
43709 _this.shouldControlPopup(_this.props, actionType);
43710 _this.setFirstHightLightKeyForMenu(value);
43711 }
43712
43713 // 非受控模式清空内部数据
43714 if (!('value' in _this.props)) {
43715 _this.setState({
43716 value: value
43717 });
43718 }
43719
43720 // 不自动高亮的情况下, highlightKey 根据value精确值走,也就是被选中元素自动高亮,这样也不会影响不在选项内的用户搜索操作
43721 if (!_this.props.autoHighlightFirstItem) {
43722 _this.setState({
43723 highlightKey: value
43724 });
43725 }
43726
43727 _this.props.onChange(value, actionType, item);
43728
43729 if (actionType === 'itemClick' || actionType === 'enter') {
43730 // 点击 item 的时候不会触发关闭,需要手动关闭,其它类型比如 keyDown 等都会有其它事件句柄处理
43731 _this.setVisible(false, actionType);
43732 }
43733 };
43734
43735 _this.isAutoComplete = true;
43736 _this.isInputing = false;
43737
43738 _this.dataStore.setOptions({ key: _this.state.value });
43739 (0, _extends3.default)(_this.state, {
43740 dataSource: _this.setDataSource(props)
43741 });
43742
43743 bindCtx(_this, ['handleTriggerKeyDown', 'handleMenuSelect', 'handleItemClick']);
43744 return _this;
43745 }
43746
43747 AutoComplete.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
43748 var state = {};
43749
43750 if ('value' in nextProps && nextProps.value !== prevState.value) {
43751 (0, _extends3.default)(state, {
43752 value: nextProps.value
43753 });
43754 }
43755
43756 if ('visible' in nextProps && nextProps.visible !== prevState.visible) {
43757 (0, _extends3.default)(state, {
43758 visible: nextProps.visible
43759 });
43760 }
43761
43762 if (Object.keys(state).length) {
43763 return state;
43764 }
43765
43766 return null;
43767 };
43768
43769 AutoComplete.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
43770 var props = this.props;
43771
43772 if ('value' in props) {
43773 this.dataStore.setOptions({ key: props.value });
43774 }
43775
43776 if (props.filter !== prevProps.filter) {
43777 this.dataStore.setOptions({
43778 filter: props.filter
43779 });
43780 }
43781 if (props.filterLocal !== prevProps.filterLocal) {
43782 this.dataStore.setOptions({
43783 filterLocal: props.filterLocal
43784 });
43785 }
43786
43787 if (prevProps.children !== props.children || prevProps.dataSource !== props.dataSource) {
43788 /* eslint-disable react/no-did-update-set-state */
43789 this.setState({
43790 dataSource: this.setDataSource(props)
43791 });
43792
43793 // remote dataSource and focused
43794 // 因为autoComplete没有下拉数据不展示,搜索并且有数据了需要自动展示下拉
43795 if (!props.filterLocal && this.isInputing) {
43796 this.shouldControlPopup(props, 'update');
43797 }
43798 if (!props.filterLocal && !props.popupContent) {
43799 this.setFirstHightLightKeyForMenu();
43800 }
43801 }
43802 };
43803
43804 AutoComplete.prototype.shouldControlPopup = function shouldControlPopup() {
43805 var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
43806 var type = arguments[1];
43807
43808 var hasPopup = props.popupContent || this.dataStore.getMenuDS().length;
43809 if (hasPopup) {
43810 this.setVisible(true, type);
43811 } else {
43812 this.setVisible(false, type);
43813 }
43814 };
43815
43816 AutoComplete.prototype.handleMenuSelect = function handleMenuSelect(keys) {
43817 var key = keys[0];
43818
43819 var mapDS = this.dataStore.getMapDS();
43820
43821 if (key in mapDS) {
43822 var item = mapDS[key];
43823 this.handleSelectEvent(key, item, 'itemClick');
43824 }
43825 };
43826
43827 AutoComplete.prototype.handleItemClick = function handleItemClick() {
43828 this.setVisible(false, 'itemClick');
43829 };
43830
43831 AutoComplete.prototype.handleSelectEvent = function handleSelectEvent(key, item, triggerType) {
43832 var value = item && item[this.props.fillProps] || key;
43833
43834 if (triggerType === 'itemClick' || triggerType === 'enter') {
43835 // 点击 item 的时候不会触发关闭,需要手动关闭,其它类型比如 keyDown 等都会有其它事件句柄处理
43836 this.setVisible(false, triggerType);
43837 }
43838
43839 this.handleChange(value, triggerType, item);
43840 };
43841
43842 AutoComplete.prototype.handleVisibleChange = function handleVisibleChange(visible, type) {
43843 if (!('visible' in this.props) && visible && !this.props.popupContent && !this.dataStore.getMenuDS().length) {
43844 return;
43845 }
43846
43847 this.setVisible(visible, type);
43848 };
43849
43850 AutoComplete.prototype.beforeClose = function beforeClose() {
43851 this.isInputing = false;
43852 };
43853
43854 /**
43855 * Handle trigger keydown event
43856 * @param {Event} e
43857 */
43858
43859 AutoComplete.prototype.handleTriggerKeyDown = function handleTriggerKeyDown(e) {
43860 var _props = this.props,
43861 popupContent = _props.popupContent,
43862 onToggleHighlightItem = _props.onToggleHighlightItem,
43863 onKeyDown = _props.onKeyDown;
43864
43865 if (popupContent) {
43866 e.stopPropagation(); //stopPropagation can make use onChange triggerd while typing space('') in Input
43867 return onKeyDown(e);
43868 }
43869
43870 switch (e.keyCode) {
43871 case _util.KEYCODE.UP:
43872 e.preventDefault();
43873 onToggleHighlightItem(this.toggleHighlightItem(-1, e), 'up');
43874 break;
43875 case _util.KEYCODE.DOWN:
43876 e.preventDefault();
43877 onToggleHighlightItem(this.toggleHighlightItem(1, e), 'down');
43878 break;
43879 case _util.KEYCODE.ENTER:
43880 e.preventDefault();
43881 this.chooseHighlightItem(e);
43882 break;
43883 case _util.KEYCODE.SPACE:
43884 // stopPropagation can make use onChange triggerd while typing space('') in Input
43885 e.stopPropagation();
43886 break;
43887 case _util.KEYCODE.ESC:
43888 e.preventDefault();
43889 this.state.visible && this.setVisible(false, 'esc');
43890 break;
43891 default:
43892 break;
43893 }
43894
43895 onKeyDown(e);
43896 };
43897
43898 // 回车 选择高亮的 item
43899
43900
43901 AutoComplete.prototype.chooseHighlightItem = function chooseHighlightItem() {
43902 if (!this.state.visible) {
43903 return false;
43904 }
43905
43906 var highlightKey = this.state.highlightKey;
43907
43908 var highlightItem = this.dataStore.getEnableDS().find(function (item) {
43909 return highlightKey === '' + item.value;
43910 });
43911
43912 if (highlightItem) {
43913 this.handleSelectEvent(highlightKey, highlightItem, 'enter');
43914 }
43915 };
43916
43917 AutoComplete.prototype.hasClear = function hasClear() {
43918 var _props2 = this.props,
43919 hasClear = _props2.hasClear,
43920 readOnly = _props2.readOnly,
43921 disabled = _props2.disabled;
43922 var value = this.state.value;
43923
43924 return value && hasClear && !readOnly && !disabled;
43925 };
43926
43927 /**
43928 * 选择器
43929 * @override
43930 * @param {object} props
43931 */
43932
43933 AutoComplete.prototype.renderSelect = function renderSelect() {
43934 var _classNames;
43935
43936 var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
43937 var placeholder = props.placeholder,
43938 size = props.size,
43939 prefix = props.prefix,
43940 className = props.className,
43941 style = props.style,
43942 label = props.label,
43943 readOnly = props.readOnly,
43944 disabled = props.disabled,
43945 highlightHolder = props.highlightHolder,
43946 locale = props.locale,
43947 hasClear = props.hasClear,
43948 state = props.state,
43949 rtl = props.rtl;
43950
43951 var others = _util.obj.pickOthers(AutoComplete.propTypes, props);
43952 var othersData = _util.obj.pickAttrsWith(others, 'data-');
43953
43954 var value = this.state.value;
43955 var visible = this.state.visible;
43956
43957 // // 下拉箭头
43958 // const arrowNode = this.renderArrowNode(props, () => {
43959 // this.focusInput();
43960 // this.setVisible(!this.state.visible);
43961 // });
43962
43963 // trigger className
43964 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));
43965
43966 // highlightKey into placeholder
43967 // compatible with selectPlaceHolder. TODO: removed in 2.0 version
43968 var _placeholder = placeholder || locale.autoCompletePlaceholder || locale.autoCompletePlaceHolder;
43969 if (highlightHolder && visible) {
43970 _placeholder = this.state.highlightKey || _placeholder;
43971 }
43972
43973 // Input props
43974 var _inputProps = (0, _extends3.default)({}, _util.obj.pickOthers(othersData, others), {
43975 state: state,
43976 ref: this.saveInputRef,
43977 hasClear: hasClear,
43978 value: value,
43979 size: size,
43980 disabled: disabled,
43981 readOnly: readOnly,
43982 placeholder: _placeholder,
43983 label: label,
43984 // extra: arrowNode,
43985 onChange: this.handleChange,
43986 onKeyDown: this.handleTriggerKeyDown
43987 });
43988
43989 return _react2.default.createElement('span', (0, _extends3.default)({}, othersData, {
43990 className: triggerClazz,
43991 style: style,
43992 dir: rtl ? 'rtl' : undefined,
43993 ref: this.saveSelectRef,
43994 onClick: this.focusInput
43995 }), _react2.default.createElement(_input2.default, (0, _extends3.default)({
43996 role: 'combobox',
43997 'aria-autocomplete': 'list',
43998 'aria-disabled': disabled,
43999 'aria-expanded': this.state.visible
44000 }, _inputProps)), _react2.default.createElement('span', { className: prefix + 'sr-only', 'aria-live': 'polite' }, this.state.srReader));
44001 };
44002
44003 AutoComplete.prototype.render = function render() {
44004 var _this2 = this;
44005
44006 if (this.hasClear()) {
44007 // clear 按钮点击后,会在 dom 结构中被删除掉,需要将其额外设置为安全节点,防止触发弹层的显示或隐藏
44008 var safeNode = this.props.popupProps.safeNode || [];
44009 var safeNodes = Array.isArray(safeNode) ? safeNode : [safeNode];
44010 safeNodes.push(function () {
44011 return _this2.clearNode;
44012 });
44013 this.props.popupProps.safeNode = safeNodes;
44014 }
44015
44016 return _Base.prototype.render.call(this, (0, _extends3.default)({}, this.props, { canCloseByTrigger: false }));
44017 };
44018
44019 return AutoComplete;
44020}(_base2.default), _class.propTypes = (0, _extends3.default)({}, _base2.default.propTypes, {
44021 /**
44022 * 当前值,用于受控模式
44023 */
44024 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
44025 /**
44026 * 初始化的默认值
44027 */
44028 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
44029 /**
44030 * Select发生改变时触发的回调
44031 * @param {*} value 选中的值
44032 * @param {String} actionType 触发的方式, 'itemClick', 'enter', 'change'
44033 * @param {*} item 选中的值的对象数据
44034 */
44035 onChange: _propTypes2.default.func,
44036 /**
44037 * 传入的数据源,可以动态渲染子项
44038 */
44039 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.shape({
44040 value: _propTypes2.default.string,
44041 label: _propTypes2.default.any,
44042 disabled: _propTypes2.default.bool,
44043 children: _propTypes2.default.array
44044 }), _propTypes2.default.string])),
44045 /**
44046 * 填充到选择框里的值的 key,默认是 value
44047 */
44048 fillProps: _propTypes2.default.string,
44049 /**
44050 * 渲染 MenuItem 内容的方法
44051 * @param {Object} item 渲染节点的 item
44052 * @return {ReactNode} item node
44053 */
44054 itemRender: _propTypes2.default.func,
44055 // input keydown
44056 onKeyDown: _propTypes2.default.func,
44057 // 是否将当前高亮的选项作为 placeholder
44058 highlightHolder: _propTypes2.default.bool,
44059 style: _propTypes2.default.object
44060}), _class.defaultProps = (0, _extends3.default)({}, _base2.default.defaultProps, {
44061 onKeyDown: noop,
44062 fillProps: 'value'
44063}), _temp);
44064exports.default = (0, _reactLifecyclesCompat.polyfill)(AutoComplete);
44065module.exports = exports['default'];
44066
44067/***/ }),
44068/* 314 */
44069/***/ (function(module, exports, __webpack_require__) {
44070
44071"use strict";
44072
44073
44074exports.__esModule = true;
44075exports.default = undefined;
44076
44077var _classCallCheck2 = __webpack_require__(2);
44078
44079var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44080
44081var _possibleConstructorReturn2 = __webpack_require__(3);
44082
44083var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44084
44085var _inherits2 = __webpack_require__(4);
44086
44087var _inherits3 = _interopRequireDefault(_inherits2);
44088
44089var _class, _temp;
44090
44091var _react = __webpack_require__(0);
44092
44093var _react2 = _interopRequireDefault(_react);
44094
44095var _propTypes = __webpack_require__(5);
44096
44097var _propTypes2 = _interopRequireDefault(_propTypes);
44098
44099function _interopRequireDefault(obj) {
44100 return obj && obj.__esModule ? obj : { default: obj };
44101}
44102
44103/* istanbul ignore file */
44104
44105/**
44106 * Select.Option
44107 */
44108var Option = (_temp = _class = function (_React$Component) {
44109 (0, _inherits3.default)(Option, _React$Component);
44110
44111 function Option() {
44112 (0, _classCallCheck3.default)(this, Option);
44113 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
44114 }
44115
44116 Option.prototype.render = function render() {
44117 return this.props.children;
44118 };
44119
44120 return Option;
44121}(_react2.default.Component), _class.propTypes = {
44122 /**
44123 * 选项值
44124 */
44125 value: _propTypes2.default.any.isRequired,
44126 /**
44127 * 是否禁用
44128 */
44129 disabled: _propTypes2.default.bool,
44130 children: _propTypes2.default.any
44131}, _class._typeMark = 'next_select_option', _temp);
44132Option.displayName = 'Option';
44133exports.default = Option;
44134module.exports = exports['default'];
44135
44136/***/ }),
44137/* 315 */
44138/***/ (function(module, exports, __webpack_require__) {
44139
44140"use strict";
44141
44142
44143exports.__esModule = true;
44144exports.default = undefined;
44145
44146var _classCallCheck2 = __webpack_require__(2);
44147
44148var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44149
44150var _possibleConstructorReturn2 = __webpack_require__(3);
44151
44152var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44153
44154var _inherits2 = __webpack_require__(4);
44155
44156var _inherits3 = _interopRequireDefault(_inherits2);
44157
44158var _class, _temp;
44159
44160var _react = __webpack_require__(0);
44161
44162var _react2 = _interopRequireDefault(_react);
44163
44164var _propTypes = __webpack_require__(5);
44165
44166var _propTypes2 = _interopRequireDefault(_propTypes);
44167
44168function _interopRequireDefault(obj) {
44169 return obj && obj.__esModule ? obj : { default: obj };
44170}
44171
44172/* istanbul ignore file */
44173
44174/**
44175 * Select.OptionGroup
44176 */
44177var OptionGroup = (_temp = _class = function (_React$Component) {
44178 (0, _inherits3.default)(OptionGroup, _React$Component);
44179
44180 function OptionGroup() {
44181 (0, _classCallCheck3.default)(this, OptionGroup);
44182 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
44183 }
44184
44185 OptionGroup.prototype.render = function render() {
44186 return this.props.children;
44187 };
44188
44189 return OptionGroup;
44190}(_react2.default.Component), _class.propTypes = {
44191 /**
44192 * 设置分组的文案
44193 */
44194 label: _propTypes2.default.node,
44195 children: _propTypes2.default.any
44196}, _class._typeMark = 'next_select_option_group', _temp);
44197OptionGroup.displayName = 'OptionGroup';
44198exports.default = OptionGroup;
44199module.exports = exports['default'];
44200
44201/***/ }),
44202/* 316 */
44203/***/ (function(module, exports, __webpack_require__) {
44204
44205"use strict";
44206
44207
44208exports.__esModule = true;
44209
44210var _classCallCheck2 = __webpack_require__(2);
44211
44212var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44213
44214var _possibleConstructorReturn2 = __webpack_require__(3);
44215
44216var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44217
44218var _inherits2 = __webpack_require__(4);
44219
44220var _inherits3 = _interopRequireDefault(_inherits2);
44221
44222var _class, _temp2; /* istanbul ignore file */
44223
44224var _react = __webpack_require__(0);
44225
44226var _react2 = _interopRequireDefault(_react);
44227
44228var _icon = __webpack_require__(11);
44229
44230var _icon2 = _interopRequireDefault(_icon);
44231
44232var _dropdown = __webpack_require__(48);
44233
44234var _dropdown2 = _interopRequireDefault(_dropdown);
44235
44236var _menu = __webpack_require__(155);
44237
44238var _menu2 = _interopRequireDefault(_menu);
44239
44240var _utils = __webpack_require__(22);
44241
44242function _interopRequireDefault(obj) {
44243 return obj && obj.__esModule ? obj : { default: obj };
44244}
44245
44246/* eslint-disable */
44247var DatePanelHeader = (_temp2 = _class = function (_React$PureComponent) {
44248 (0, _inherits3.default)(DatePanelHeader, _React$PureComponent);
44249
44250 function DatePanelHeader() {
44251 var _temp, _this, _ret;
44252
44253 (0, _classCallCheck3.default)(this, DatePanelHeader);
44254
44255 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
44256 args[_key] = arguments[_key];
44257 }
44258
44259 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.selectContainerHandler = function (target) {
44260 return target.parentNode;
44261 }, _this.onYearChange = function (year) {
44262 var _this$props = _this.props,
44263 visibleMonth = _this$props.visibleMonth,
44264 changeVisibleMonth = _this$props.changeVisibleMonth;
44265
44266 changeVisibleMonth(visibleMonth.clone().year(year), 'yearSelect');
44267 }, _this.changeVisibleMonth = function (month) {
44268 var _this$props2 = _this.props,
44269 visibleMonth = _this$props2.visibleMonth,
44270 changeVisibleMonth = _this$props2.changeVisibleMonth;
44271
44272 changeVisibleMonth(visibleMonth.clone().month(month), 'monthSelect');
44273 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
44274 }
44275
44276 DatePanelHeader.prototype.render = function render() {
44277 var _this2 = this;
44278
44279 var _props = this.props,
44280 prefix = _props.prefix,
44281 visibleMonth = _props.visibleMonth,
44282 momentLocale = _props.momentLocale,
44283 locale = _props.locale,
44284 changeMode = _props.changeMode,
44285 goNextMonth = _props.goNextMonth,
44286 goNextYear = _props.goNextYear,
44287 goPrevMonth = _props.goPrevMonth,
44288 goPrevYear = _props.goPrevYear,
44289 disableChangeMode = _props.disableChangeMode,
44290 yearRangeOffset = _props.yearRangeOffset,
44291 _props$yearRange = _props.yearRange,
44292 yearRange = _props$yearRange === undefined ? [] : _props$yearRange;
44293
44294 var localedMonths = momentLocale.months();
44295 var monthLabel = localedMonths[visibleMonth.month()];
44296 var yearLabel = visibleMonth.year();
44297 var btnCls = prefix + 'calendar-btn';
44298
44299 var monthButton = _react2.default.createElement('button', {
44300 role: 'button',
44301 type: 'button',
44302 className: btnCls,
44303 title: monthLabel,
44304 onClick: function onClick() {
44305 return changeMode('month', 'start');
44306 }
44307 }, monthLabel);
44308
44309 var yearButton = _react2.default.createElement('button', {
44310 role: 'button',
44311 type: 'button',
44312 className: btnCls,
44313 title: yearLabel,
44314 onClick: function onClick() {
44315 return changeMode('year', 'start');
44316 }
44317 }, yearLabel);
44318
44319 if (disableChangeMode) {
44320 var months = (0, _utils.getMonths)(momentLocale);
44321 var years = (0, _utils.getYears)(yearRange, yearRangeOffset, visibleMonth.year());
44322
44323 monthButton = _react2.default.createElement(_dropdown2.default, {
44324 align: 'tc bc',
44325 container: this.selectContainerHandler,
44326 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: monthLabel }, monthLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44327 triggerType: 'click'
44328 }, _react2.default.createElement(_menu2.default, {
44329 prefix: prefix,
44330 value: visibleMonth.month(),
44331 dataSource: months,
44332 onChange: function onChange(value) {
44333 return _this2.changeVisibleMonth(value);
44334 }
44335 }));
44336
44337 yearButton = _react2.default.createElement(_dropdown2.default, {
44338 align: 'tc bc',
44339 container: this.selectContainerHandler,
44340 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: yearLabel }, yearLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44341 triggerType: 'click'
44342 }, _react2.default.createElement(_menu2.default, {
44343 prefix: prefix,
44344 value: visibleMonth.year(),
44345 dataSource: years,
44346 onChange: this.onYearChange
44347 }));
44348 }
44349
44350 return _react2.default.createElement('div', { className: prefix + 'calendar-panel-header' }, _react2.default.createElement('button', {
44351 role: 'button',
44352 type: 'button',
44353 title: locale.prevYear,
44354 className: btnCls + ' ' + btnCls + '-prev-year',
44355 onClick: goPrevYear
44356 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-left', className: prefix + 'calendar-symbol-prev-super' })), _react2.default.createElement('button', {
44357 role: 'button',
44358 type: 'button',
44359 title: locale.prevMonth,
44360 className: btnCls + ' ' + btnCls + '-prev-month',
44361 onClick: goPrevMonth
44362 }, _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', {
44363 role: 'button',
44364 type: 'button',
44365 title: locale.nextMonth,
44366 className: btnCls + ' ' + btnCls + '-next-month',
44367 onClick: goNextMonth
44368 }, _react2.default.createElement(_icon2.default, { type: 'arrow-right', className: prefix + 'calendar-symbol-next' })), _react2.default.createElement('button', {
44369 role: 'button',
44370 type: 'button',
44371 title: locale.nextYear,
44372 className: btnCls + ' ' + btnCls + '-next-year',
44373 onClick: goNextYear
44374 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-right', className: prefix + 'calendar-symbol-next-super' })));
44375 };
44376
44377 return DatePanelHeader;
44378}(_react2.default.PureComponent), _class.defaultProps = {
44379 yearRangeOffset: 10
44380}, _temp2);
44381exports.default = DatePanelHeader;
44382module.exports = exports['default'];
44383
44384/***/ }),
44385/* 317 */
44386/***/ (function(module, exports, __webpack_require__) {
44387
44388"use strict";
44389
44390
44391exports.__esModule = true;
44392
44393var _classCallCheck2 = __webpack_require__(2);
44394
44395var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44396
44397var _possibleConstructorReturn2 = __webpack_require__(3);
44398
44399var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44400
44401var _inherits2 = __webpack_require__(4);
44402
44403var _inherits3 = _interopRequireDefault(_inherits2);
44404
44405var _react = __webpack_require__(0);
44406
44407var _react2 = _interopRequireDefault(_react);
44408
44409var _utils = __webpack_require__(22);
44410
44411function _interopRequireDefault(obj) {
44412 return obj && obj.__esModule ? obj : { default: obj };
44413}
44414
44415var DateTableHead = function (_PureComponent) {
44416 (0, _inherits3.default)(DateTableHead, _PureComponent);
44417
44418 function DateTableHead() {
44419 (0, _classCallCheck3.default)(this, DateTableHead);
44420 return (0, _possibleConstructorReturn3.default)(this, _PureComponent.apply(this, arguments));
44421 }
44422
44423 DateTableHead.prototype.render = function render() {
44424 var _props = this.props,
44425 prefix = _props.prefix,
44426 momentLocale = _props.momentLocale;
44427
44428 var firstDayOfWeek = momentLocale.firstDayOfWeek();
44429 var weekdaysShort = momentLocale.weekdaysShort();
44430
44431 var elements = [];
44432 for (var i = 0; i < _utils.DAYS_OF_WEEK; i++) {
44433 var index = (firstDayOfWeek + i) % _utils.DAYS_OF_WEEK;
44434 elements.push(_react2.default.createElement('th', { key: i, className: prefix + 'calendar-th', role: 'cell' }, weekdaysShort[index]));
44435 }
44436
44437 return _react2.default.createElement('thead', { className: prefix + 'calendar-thead', role: 'rowgroup' }, _react2.default.createElement('tr', { role: 'row' }, elements));
44438 };
44439
44440 return DateTableHead;
44441}(_react.PureComponent);
44442
44443exports.default = DateTableHead;
44444module.exports = exports['default'];
44445
44446/***/ }),
44447/* 318 */
44448/***/ (function(module, exports, __webpack_require__) {
44449
44450"use strict";
44451
44452
44453exports.__esModule = true;
44454
44455var _classCallCheck2 = __webpack_require__(2);
44456
44457var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44458
44459var _possibleConstructorReturn2 = __webpack_require__(3);
44460
44461var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44462
44463var _inherits2 = __webpack_require__(4);
44464
44465var _inherits3 = _interopRequireDefault(_inherits2);
44466
44467var _class, _temp2; /* istanbul ignore file */
44468
44469var _react = __webpack_require__(0);
44470
44471var _react2 = _interopRequireDefault(_react);
44472
44473var _icon = __webpack_require__(11);
44474
44475var _icon2 = _interopRequireDefault(_icon);
44476
44477var _dropdown = __webpack_require__(48);
44478
44479var _dropdown2 = _interopRequireDefault(_dropdown);
44480
44481var _menu = __webpack_require__(155);
44482
44483var _menu2 = _interopRequireDefault(_menu);
44484
44485var _utils = __webpack_require__(22);
44486
44487function _interopRequireDefault(obj) {
44488 return obj && obj.__esModule ? obj : { default: obj };
44489}
44490
44491/* eslint-disable */
44492var RangePanelHeader = (_temp2 = _class = function (_React$PureComponent) {
44493 (0, _inherits3.default)(RangePanelHeader, _React$PureComponent);
44494
44495 function RangePanelHeader() {
44496 var _temp, _this, _ret;
44497
44498 (0, _classCallCheck3.default)(this, RangePanelHeader);
44499
44500 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
44501 args[_key] = arguments[_key];
44502 }
44503
44504 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.selectContainerHandler = function (target) {
44505 return target.parentNode;
44506 }, _this.onYearChange = function (visibleMonth, year, tag) {
44507 var changeVisibleMonth = _this.props.changeVisibleMonth;
44508
44509 var startYear = visibleMonth.clone().year(year).add(tag === 'end' ? -1 : 0, 'month');
44510 changeVisibleMonth(startYear, 'yearSelect');
44511 }, _this.changeVisibleMonth = function (visibleMonth, month, tag) {
44512 var changeVisibleMonth = _this.props.changeVisibleMonth;
44513
44514 var startMonth = tag === 'end' ? month - 1 : month;
44515 changeVisibleMonth(visibleMonth.clone().month(startMonth), 'monthSelect');
44516 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
44517 }
44518
44519 RangePanelHeader.prototype.render = function render() {
44520 var _this2 = this;
44521
44522 var _props = this.props,
44523 prefix = _props.prefix,
44524 startVisibleMonth = _props.startVisibleMonth,
44525 endVisibleMonth = _props.endVisibleMonth,
44526 _props$yearRange = _props.yearRange,
44527 yearRange = _props$yearRange === undefined ? [] : _props$yearRange,
44528 yearRangeOffset = _props.yearRangeOffset,
44529 momentLocale = _props.momentLocale,
44530 locale = _props.locale,
44531 changeMode = _props.changeMode,
44532 goNextMonth = _props.goNextMonth,
44533 goNextYear = _props.goNextYear,
44534 goPrevMonth = _props.goPrevMonth,
44535 goPrevYear = _props.goPrevYear,
44536 disableChangeMode = _props.disableChangeMode;
44537
44538 var localedMonths = momentLocale.months();
44539 var startMonthLabel = localedMonths[startVisibleMonth.month()];
44540 var endMonthLabel = localedMonths[endVisibleMonth.month()];
44541 var startYearLabel = startVisibleMonth.year();
44542 var endYearLabel = endVisibleMonth.year();
44543 var btnCls = prefix + 'calendar-btn';
44544
44545 var months = (0, _utils.getMonths)(momentLocale);
44546 var startYears = (0, _utils.getYears)(yearRange, yearRangeOffset, startVisibleMonth.year());
44547 var endYears = (0, _utils.getYears)(yearRange, yearRangeOffset, endVisibleMonth.year());
44548
44549 return _react2.default.createElement('div', { className: prefix + 'calendar-panel-header' }, _react2.default.createElement('button', {
44550 role: 'button',
44551 type: 'button',
44552 title: locale.prevYear,
44553 className: btnCls + ' ' + btnCls + '-prev-year',
44554 onClick: goPrevYear
44555 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-left', className: prefix + 'calendar-symbol-prev-super' })), _react2.default.createElement('button', {
44556 role: 'button',
44557 type: 'button',
44558 title: locale.prevMonth,
44559 className: btnCls + ' ' + btnCls + '-prev-month',
44560 onClick: goPrevMonth
44561 }, _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, {
44562 align: 'tc bc',
44563 container: this.selectContainerHandler,
44564 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: startMonthLabel }, startMonthLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44565 triggerType: 'click'
44566 }, _react2.default.createElement(_menu2.default, {
44567 prefix: prefix,
44568 value: startVisibleMonth.month(),
44569 dataSource: months,
44570 onChange: function onChange(value) {
44571 return _this2.changeVisibleMonth(startVisibleMonth, value, 'start');
44572 }
44573 })) : _react2.default.createElement('button', {
44574 role: 'button',
44575 type: 'button',
44576 title: startMonthLabel,
44577 className: btnCls,
44578 onClick: function onClick() {
44579 return changeMode('month', 'start');
44580 }
44581 }, startMonthLabel), disableChangeMode ? _react2.default.createElement(_dropdown2.default, {
44582 align: 'tc bc',
44583 container: this.selectContainerHandler,
44584 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: startYearLabel }, startYearLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44585 triggerType: 'click'
44586 }, _react2.default.createElement(_menu2.default, {
44587 prefix: prefix,
44588 value: startVisibleMonth.year(),
44589 dataSource: startYears,
44590 onChange: function onChange(v) {
44591 return _this2.onYearChange(startVisibleMonth, v, 'start');
44592 }
44593 })) : _react2.default.createElement('button', {
44594 role: 'button',
44595 type: 'button',
44596 title: startYearLabel,
44597 className: btnCls,
44598 onClick: function onClick() {
44599 return changeMode('year', 'start');
44600 }
44601 }, startYearLabel)), _react2.default.createElement('div', { className: prefix + 'calendar-panel-header-right' }, disableChangeMode ? _react2.default.createElement(_dropdown2.default, {
44602 align: 'tc bc',
44603 container: this.selectContainerHandler,
44604 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: endMonthLabel }, endMonthLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44605 triggerType: 'click'
44606 }, _react2.default.createElement(_menu2.default, {
44607 prefix: prefix,
44608 value: endVisibleMonth.month(),
44609 dataSource: months,
44610 onChange: function onChange(value) {
44611 return _this2.changeVisibleMonth(endVisibleMonth, value, 'end');
44612 }
44613 })) : _react2.default.createElement('button', {
44614 role: 'button',
44615 type: 'button',
44616 title: endMonthLabel,
44617 className: btnCls,
44618 onClick: function onClick() {
44619 return changeMode('month', 'end');
44620 }
44621 }, endMonthLabel), disableChangeMode ? _react2.default.createElement(_dropdown2.default, {
44622 align: 'tc bc',
44623 container: this.selectContainerHandler,
44624 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: endYearLabel }, endYearLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44625 triggerType: 'click'
44626 }, _react2.default.createElement(_menu2.default, {
44627 prefix: prefix,
44628 value: endVisibleMonth.year(),
44629 dataSource: endYears,
44630 onChange: function onChange(v) {
44631 return _this2.onYearChange(endVisibleMonth, v, 'end');
44632 }
44633 })) : _react2.default.createElement('button', {
44634 role: 'button',
44635 type: 'button',
44636 title: endYearLabel,
44637 className: btnCls,
44638 onClick: function onClick() {
44639 return changeMode('year', 'end');
44640 }
44641 }, endYearLabel)), _react2.default.createElement('button', {
44642 role: 'button',
44643 type: 'button',
44644 title: locale.nextMonth,
44645 className: btnCls + ' ' + btnCls + '-next-month',
44646 onClick: goNextMonth
44647 }, _react2.default.createElement(_icon2.default, { type: 'arrow-right', className: prefix + 'calendar-symbol-next' })), _react2.default.createElement('button', {
44648 role: 'button',
44649 type: 'button',
44650 title: locale.nextYear,
44651 className: btnCls + ' ' + btnCls + '-next-year',
44652 onClick: goNextYear
44653 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-right', className: prefix + 'calendar-symbol-next-super' })));
44654 };
44655
44656 return RangePanelHeader;
44657}(_react2.default.PureComponent), _class.defaultProps = {
44658 yearRangeOffset: 10
44659}, _temp2);
44660exports.default = RangePanelHeader;
44661module.exports = exports['default'];
44662
44663/***/ }),
44664/* 319 */
44665/***/ (function(module, exports, __webpack_require__) {
44666
44667"use strict";
44668
44669
44670exports.__esModule = true;
44671
44672var _extends2 = __webpack_require__(1);
44673
44674var _extends3 = _interopRequireDefault(_extends2);
44675
44676var _objectWithoutProperties2 = __webpack_require__(8);
44677
44678var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
44679
44680var _configProvider = __webpack_require__(9);
44681
44682var _configProvider2 = _interopRequireDefault(_configProvider);
44683
44684var _card = __webpack_require__(320);
44685
44686var _card2 = _interopRequireDefault(_card);
44687
44688var _header = __webpack_require__(321);
44689
44690var _header2 = _interopRequireDefault(_header);
44691
44692var _bulletHeader = __webpack_require__(162);
44693
44694var _bulletHeader2 = _interopRequireDefault(_bulletHeader);
44695
44696var _media = __webpack_require__(164);
44697
44698var _media2 = _interopRequireDefault(_media);
44699
44700var _divider = __webpack_require__(322);
44701
44702var _divider2 = _interopRequireDefault(_divider);
44703
44704var _content = __webpack_require__(323);
44705
44706var _content2 = _interopRequireDefault(_content);
44707
44708var _collapseContent = __webpack_require__(163);
44709
44710var _collapseContent2 = _interopRequireDefault(_collapseContent);
44711
44712var _actions = __webpack_require__(165);
44713
44714var _actions2 = _interopRequireDefault(_actions);
44715
44716function _interopRequireDefault(obj) {
44717 return obj && obj.__esModule ? obj : { default: obj };
44718}
44719
44720_card2.default.Header = _header2.default;
44721_card2.default.Media = _media2.default;
44722_card2.default.Divider = _divider2.default;
44723_card2.default.Content = _content2.default;
44724_card2.default.Actions = _actions2.default;
44725_card2.default.BulletHeader = _bulletHeader2.default;
44726_card2.default.CollaspeContent = _collapseContent2.default;
44727_card2.default.CollapseContent = _collapseContent2.default;
44728
44729exports.default = _configProvider2.default.config(_card2.default, {
44730 transform: /* istanbul ignore next */function transform(props, deprecated) {
44731 if ('titlePrefixLine' in props) {
44732 deprecated('titlePrefixLine', 'showTitleBullet', 'Card');
44733 var _props = props,
44734 titlePrefixLine = _props.titlePrefixLine,
44735 others = (0, _objectWithoutProperties3.default)(_props, ['titlePrefixLine']);
44736
44737 props = (0, _extends3.default)({ showTitleBullet: titlePrefixLine }, others);
44738 }
44739 if ('titleBottomLine' in props) {
44740 deprecated('titleBottomLine', 'showHeadDivider', 'Card');
44741
44742 var _props2 = props,
44743 titleBottomLine = _props2.titleBottomLine,
44744 _others = (0, _objectWithoutProperties3.default)(_props2, ['titleBottomLine']);
44745
44746 props = (0, _extends3.default)({ showHeadDivider: titleBottomLine }, _others);
44747 }
44748 if ('bodyHeight' in props) {
44749 deprecated('bodyHeight', 'contentHeight', 'Card');
44750
44751 var _props3 = props,
44752 bodyHeight = _props3.bodyHeight,
44753 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['bodyHeight']);
44754
44755 props = (0, _extends3.default)({ contentHeight: bodyHeight }, _others2);
44756 }
44757
44758 return props;
44759 }
44760});
44761module.exports = exports['default'];
44762
44763/***/ }),
44764/* 320 */
44765/***/ (function(module, exports, __webpack_require__) {
44766
44767"use strict";
44768
44769
44770exports.__esModule = true;
44771exports.default = undefined;
44772
44773var _extends2 = __webpack_require__(1);
44774
44775var _extends3 = _interopRequireDefault(_extends2);
44776
44777var _classCallCheck2 = __webpack_require__(2);
44778
44779var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44780
44781var _possibleConstructorReturn2 = __webpack_require__(3);
44782
44783var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44784
44785var _inherits2 = __webpack_require__(4);
44786
44787var _inherits3 = _interopRequireDefault(_inherits2);
44788
44789var _class, _temp; /* eslint-disable valid-jsdoc */
44790
44791var _react = __webpack_require__(0);
44792
44793var _react2 = _interopRequireDefault(_react);
44794
44795var _propTypes = __webpack_require__(5);
44796
44797var _propTypes2 = _interopRequireDefault(_propTypes);
44798
44799var _classnames = __webpack_require__(7);
44800
44801var _classnames2 = _interopRequireDefault(_classnames);
44802
44803var _configProvider = __webpack_require__(9);
44804
44805var _configProvider2 = _interopRequireDefault(_configProvider);
44806
44807var _bulletHeader = __webpack_require__(162);
44808
44809var _bulletHeader2 = _interopRequireDefault(_bulletHeader);
44810
44811var _collapseContent = __webpack_require__(163);
44812
44813var _collapseContent2 = _interopRequireDefault(_collapseContent);
44814
44815var _media = __webpack_require__(164);
44816
44817var _media2 = _interopRequireDefault(_media);
44818
44819var _actions = __webpack_require__(165);
44820
44821var _actions2 = _interopRequireDefault(_actions);
44822
44823var _util = __webpack_require__(6);
44824
44825function _interopRequireDefault(obj) {
44826 return obj && obj.__esModule ? obj : { default: obj };
44827}
44828
44829var pickOthers = _util.obj.pickOthers;
44830
44831/**
44832 * Card
44833 * @order 0
44834 */
44835
44836var Card = (_temp = _class = function (_React$Component) {
44837 (0, _inherits3.default)(Card, _React$Component);
44838
44839 function Card() {
44840 (0, _classCallCheck3.default)(this, Card);
44841 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
44842 }
44843
44844 Card.prototype.render = function render() {
44845 var _classNames;
44846
44847 var _props = this.props,
44848 prefix = _props.prefix,
44849 className = _props.className,
44850 title = _props.title,
44851 subTitle = _props.subTitle,
44852 extra = _props.extra,
44853 showTitleBullet = _props.showTitleBullet,
44854 showHeadDivider = _props.showHeadDivider,
44855 children = _props.children,
44856 rtl = _props.rtl,
44857 contentHeight = _props.contentHeight,
44858 free = _props.free,
44859 actions = _props.actions,
44860 hasBorder = _props.hasBorder,
44861 media = _props.media;
44862
44863 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);
44864
44865 var others = pickOthers(Object.keys(Card.propTypes), this.props);
44866
44867 others.dir = rtl ? 'rtl' : undefined;
44868
44869 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));
44870 };
44871
44872 return Card;
44873}(_react2.default.Component), _class.displayName = 'Card', _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
44874 prefix: _propTypes2.default.string,
44875 rtl: _propTypes2.default.bool,
44876 /**
44877 * 卡片的上的图片 / 视频
44878 */
44879 media: _propTypes2.default.node,
44880 /**
44881 * 卡片的标题
44882 */
44883 title: _propTypes2.default.node,
44884 /**
44885 * 卡片的副标题
44886 */
44887 subTitle: _propTypes2.default.node,
44888 /**
44889 * 卡片操作组,位置在卡片底部
44890 */
44891 actions: _propTypes2.default.node,
44892 /**
44893 * 是否显示标题的项目符号
44894 */
44895 showTitleBullet: _propTypes2.default.bool,
44896 /**
44897 * 是否展示头部的分隔线
44898 */
44899 showHeadDivider: _propTypes2.default.bool,
44900 /**
44901 * 内容区域的固定高度
44902 */
44903 contentHeight: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
44904 /**
44905 * 标题区域的用户自定义内容
44906 */
44907 extra: _propTypes2.default.node,
44908 /**
44909 * 是否开启自由模式,开启后card 将使用子组件配合使用, 设置此项后 title, subtitle, 等等属性都将失效
44910 */
44911 free: _propTypes2.default.bool,
44912 /**
44913 * 是否带边框
44914 * @version 1.24
44915 */
44916 hasBorder: _propTypes2.default.bool,
44917 className: _propTypes2.default.string,
44918 children: _propTypes2.default.node
44919}), _class.defaultProps = {
44920 prefix: 'next-',
44921 free: false,
44922 showTitleBullet: true,
44923 showHeadDivider: true,
44924 hasBorder: true,
44925 contentHeight: 120
44926}, _temp);
44927Card.displayName = 'Card';
44928exports.default = Card;
44929module.exports = exports['default'];
44930
44931/***/ }),
44932/* 321 */
44933/***/ (function(module, exports, __webpack_require__) {
44934
44935"use strict";
44936
44937
44938exports.__esModule = true;
44939
44940var _extends2 = __webpack_require__(1);
44941
44942var _extends3 = _interopRequireDefault(_extends2);
44943
44944var _objectWithoutProperties2 = __webpack_require__(8);
44945
44946var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
44947
44948var _classCallCheck2 = __webpack_require__(2);
44949
44950var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44951
44952var _possibleConstructorReturn2 = __webpack_require__(3);
44953
44954var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44955
44956var _inherits2 = __webpack_require__(4);
44957
44958var _inherits3 = _interopRequireDefault(_inherits2);
44959
44960var _class, _temp;
44961
44962var _react = __webpack_require__(0);
44963
44964var _react2 = _interopRequireDefault(_react);
44965
44966var _propTypes = __webpack_require__(5);
44967
44968var _propTypes2 = _interopRequireDefault(_propTypes);
44969
44970var _classnames = __webpack_require__(7);
44971
44972var _classnames2 = _interopRequireDefault(_classnames);
44973
44974var _configProvider = __webpack_require__(9);
44975
44976var _configProvider2 = _interopRequireDefault(_configProvider);
44977
44978function _interopRequireDefault(obj) {
44979 return obj && obj.__esModule ? obj : { default: obj };
44980}
44981
44982/**
44983 * Card.Header
44984 * @order 2
44985 */
44986var CardHeader = (_temp = _class = function (_Component) {
44987 (0, _inherits3.default)(CardHeader, _Component);
44988
44989 function CardHeader() {
44990 (0, _classCallCheck3.default)(this, CardHeader);
44991 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
44992 }
44993
44994 CardHeader.prototype.render = function render() {
44995 var _props = this.props,
44996 prefix = _props.prefix,
44997 title = _props.title,
44998 subTitle = _props.subTitle,
44999 extra = _props.extra,
45000 className = _props.className,
45001 Component = _props.component,
45002 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'title', 'subTitle', 'extra', 'className', 'component']);
45003
45004 return _react2.default.createElement(Component, (0, _extends3.default)({}, others, {
45005 className: (0, _classnames2.default)(prefix + 'card-header', className)
45006 }), 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)));
45007 };
45008
45009 return CardHeader;
45010}(_react.Component), _class.propTypes = {
45011 prefix: _propTypes2.default.string,
45012 /**
45013 * 卡片的标题
45014 */
45015 title: _propTypes2.default.node,
45016 /**
45017 * 卡片的副标题
45018 */
45019 subTitle: _propTypes2.default.node,
45020 /**
45021 * 标题区域的用户自定义内容
45022 */
45023 extra: _propTypes2.default.node,
45024 /**
45025 * 设置标签类型
45026 */
45027 component: _propTypes2.default.elementType,
45028 className: _propTypes2.default.string
45029}, _class.defaultProps = {
45030 prefix: 'next-',
45031 component: 'div'
45032}, _temp);
45033CardHeader.displayName = 'CardHeader';
45034exports.default = _configProvider2.default.config(CardHeader);
45035module.exports = exports['default'];
45036
45037/***/ }),
45038/* 322 */
45039/***/ (function(module, exports, __webpack_require__) {
45040
45041"use strict";
45042
45043
45044exports.__esModule = true;
45045
45046var _extends2 = __webpack_require__(1);
45047
45048var _extends3 = _interopRequireDefault(_extends2);
45049
45050var _objectWithoutProperties2 = __webpack_require__(8);
45051
45052var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
45053
45054var _classCallCheck2 = __webpack_require__(2);
45055
45056var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
45057
45058var _possibleConstructorReturn2 = __webpack_require__(3);
45059
45060var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
45061
45062var _inherits2 = __webpack_require__(4);
45063
45064var _inherits3 = _interopRequireDefault(_inherits2);
45065
45066var _class, _temp;
45067
45068var _react = __webpack_require__(0);
45069
45070var _react2 = _interopRequireDefault(_react);
45071
45072var _propTypes = __webpack_require__(5);
45073
45074var _propTypes2 = _interopRequireDefault(_propTypes);
45075
45076var _classnames = __webpack_require__(7);
45077
45078var _classnames2 = _interopRequireDefault(_classnames);
45079
45080var _configProvider = __webpack_require__(9);
45081
45082var _configProvider2 = _interopRequireDefault(_configProvider);
45083
45084function _interopRequireDefault(obj) {
45085 return obj && obj.__esModule ? obj : { default: obj };
45086}
45087
45088/**
45089 * Card.Divider
45090 * @order 4
45091 */
45092var CardDivider = (_temp = _class = function (_Component) {
45093 (0, _inherits3.default)(CardDivider, _Component);
45094
45095 function CardDivider() {
45096 (0, _classCallCheck3.default)(this, CardDivider);
45097 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
45098 }
45099
45100 CardDivider.prototype.render = function render() {
45101 var _classNames;
45102
45103 var _props = this.props,
45104 prefix = _props.prefix,
45105 Component = _props.component,
45106 inset = _props.inset,
45107 className = _props.className,
45108 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'component', 'inset', 'className']);
45109
45110 var dividerClassName = (0, _classnames2.default)(prefix + 'card-divider', (_classNames = {}, _classNames[prefix + 'card-divider--inset'] = inset, _classNames), className);
45111
45112 return _react2.default.createElement(Component, (0, _extends3.default)({}, others, { className: dividerClassName }));
45113 };
45114
45115 return CardDivider;
45116}(_react.Component), _class.propTypes = {
45117 prefix: _propTypes2.default.string,
45118 /**
45119 * 设置标签类型
45120 */
45121 component: _propTypes2.default.elementType,
45122 /**
45123 * 分割线是否向内缩进
45124 */
45125 inset: _propTypes2.default.bool,
45126 className: _propTypes2.default.string
45127}, _class.defaultProps = {
45128 prefix: 'next-',
45129 component: 'hr'
45130}, _temp);
45131CardDivider.displayName = 'CardDivider';
45132exports.default = _configProvider2.default.config(CardDivider);
45133module.exports = exports['default'];
45134
45135/***/ }),
45136/* 323 */
45137/***/ (function(module, exports, __webpack_require__) {
45138
45139"use strict";
45140
45141
45142exports.__esModule = true;
45143
45144var _extends2 = __webpack_require__(1);
45145
45146var _extends3 = _interopRequireDefault(_extends2);
45147
45148var _objectWithoutProperties2 = __webpack_require__(8);
45149
45150var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
45151
45152var _classCallCheck2 = __webpack_require__(2);
45153
45154var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
45155
45156var _possibleConstructorReturn2 = __webpack_require__(3);
45157
45158var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
45159
45160var _inherits2 = __webpack_require__(4);
45161
45162var _inherits3 = _interopRequireDefault(_inherits2);
45163
45164var _class, _temp;
45165
45166var _react = __webpack_require__(0);
45167
45168var _react2 = _interopRequireDefault(_react);
45169
45170var _propTypes = __webpack_require__(5);
45171
45172var _propTypes2 = _interopRequireDefault(_propTypes);
45173
45174var _classnames = __webpack_require__(7);
45175
45176var _classnames2 = _interopRequireDefault(_classnames);
45177
45178var _configProvider = __webpack_require__(9);
45179
45180var _configProvider2 = _interopRequireDefault(_configProvider);
45181
45182function _interopRequireDefault(obj) {
45183 return obj && obj.__esModule ? obj : { default: obj };
45184}
45185
45186/**
45187 * Card.Content
45188 * @order 3
45189 */
45190var CardContent = (_temp = _class = function (_Component) {
45191 (0, _inherits3.default)(CardContent, _Component);
45192
45193 function CardContent() {
45194 (0, _classCallCheck3.default)(this, CardContent);
45195 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
45196 }
45197
45198 CardContent.prototype.render = function render() {
45199 var _props = this.props,
45200 prefix = _props.prefix,
45201 className = _props.className,
45202 Component = _props.component,
45203 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'component']);
45204
45205 return _react2.default.createElement(Component, (0, _extends3.default)({}, others, {
45206 className: (0, _classnames2.default)(prefix + 'card-content-container', className)
45207 }));
45208 };
45209
45210 return CardContent;
45211}(_react.Component), _class.propTypes = {
45212 prefix: _propTypes2.default.string,
45213 /**
45214 * 设置标签类型
45215 */
45216 component: _propTypes2.default.elementType,
45217 className: _propTypes2.default.string
45218}, _class.defaultProps = {
45219 prefix: 'next-',
45220 component: 'div'
45221}, _temp);
45222CardContent.displayName = 'CardContent';
45223exports.default = _configProvider2.default.config(CardContent);
45224module.exports = exports['default'];
45225
45226/***/ }),
45227/* 324 */
45228/***/ (function(module, exports, __webpack_require__) {
45229
45230"use strict";
45231
45232
45233exports.__esModule = true;
45234
45235var _classCallCheck2 = __webpack_require__(2);
45236
45237var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
45238
45239var _possibleConstructorReturn2 = __webpack_require__(3);
45240
45241var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
45242
45243var _inherits2 = __webpack_require__(4);
45244
45245var _inherits3 = _interopRequireDefault(_inherits2);
45246
45247var _extends2 = __webpack_require__(1);
45248
45249var _extends3 = _interopRequireDefault(_extends2);
45250
45251var _class, _temp;
45252
45253var _react = __webpack_require__(0);
45254
45255var _react2 = _interopRequireDefault(_react);
45256
45257var _propTypes = __webpack_require__(5);
45258
45259var _propTypes2 = _interopRequireDefault(_propTypes);
45260
45261var _reactLifecyclesCompat = __webpack_require__(10);
45262
45263var _lodash = __webpack_require__(167);
45264
45265var _lodash2 = _interopRequireDefault(_lodash);
45266
45267var _classnames = __webpack_require__(7);
45268
45269var _classnames2 = _interopRequireDefault(_classnames);
45270
45271var _menu = __webpack_require__(16);
45272
45273var _menu2 = _interopRequireDefault(_menu);
45274
45275var _util = __webpack_require__(6);
45276
45277var _menu3 = __webpack_require__(326);
45278
45279var _menu4 = _interopRequireDefault(_menu3);
45280
45281var _item = __webpack_require__(327);
45282
45283var _item2 = _interopRequireDefault(_item);
45284
45285var _utils = __webpack_require__(328);
45286
45287function _interopRequireDefault(obj) {
45288 return obj && obj.__esModule ? obj : { default: obj };
45289}
45290
45291var bindCtx = _util.func.bindCtx;
45292var pickOthers = _util.obj.pickOthers;
45293var addClass = _util.dom.addClass,
45294 removeClass = _util.dom.removeClass,
45295 setStyle = _util.dom.setStyle,
45296 getStyle = _util.dom.getStyle;
45297
45298// 数据打平
45299
45300var flatDataSource = function flatDataSource(data) {
45301 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
45302 var v2n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
45303 var p2n = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
45304
45305 data.forEach(function (item, index) {
45306 var value = item.value,
45307 children = item.children;
45308
45309 var pos = prefix + '-' + index;
45310 var newValue = String(value);
45311
45312 item.value = newValue;
45313
45314 v2n[newValue] = p2n[pos] = (0, _extends3.default)({}, item, {
45315 pos: pos,
45316 _source: item
45317 });
45318
45319 if (children && children.length) {
45320 flatDataSource(children, pos, v2n, p2n);
45321 }
45322 });
45323
45324 return { v2n: v2n, p2n: p2n };
45325};
45326
45327function preHandleData(data, immutable) {
45328 var _data = immutable ? (0, _lodash2.default)(data) : data;
45329
45330 try {
45331 return flatDataSource(_data);
45332 } catch (err) {
45333 if ((err.message || '').match('Cannot assign to read only property')) {
45334 // eslint-disable-next-line no-console
45335 console.error(err.message, 'try to set immutable to true to allow immutable dataSource');
45336 }
45337 throw err;
45338 }
45339}
45340
45341var getExpandedValue = function getExpandedValue(v, _v2n, _p2n) {
45342 if (!v || !_v2n[v]) {
45343 return [];
45344 }
45345
45346 var pos = _v2n[v].pos;
45347 if (pos.split('-').length === 2) {
45348 return [];
45349 }
45350
45351 var expandedMap = {};
45352 Object.keys(_p2n).forEach(function (p) {
45353 if ((0, _utils.isDescendantOrSelf)(p, pos) && p !== pos) {
45354 expandedMap[_p2n[p].value] = p;
45355 }
45356 });
45357
45358 return Object.keys(expandedMap).sort(function (prev, next) {
45359 return expandedMap[prev].split('-').length - expandedMap[next].split('-').length;
45360 });
45361};
45362
45363var normalizeValue = function normalizeValue(value) {
45364 if (value) {
45365 if (Array.isArray(value)) {
45366 return value;
45367 }
45368
45369 return [value];
45370 }
45371
45372 return [];
45373};
45374
45375/**
45376 * Cascader
45377 */
45378var Cascader = (_temp = _class = function (_Component) {
45379 (0, _inherits3.default)(Cascader, _Component);
45380
45381 function Cascader(props, context) {
45382 (0, _classCallCheck3.default)(this, Cascader);
45383
45384 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
45385
45386 var defaultValue = props.defaultValue,
45387 value = props.value,
45388 defaultExpandedValue = props.defaultExpandedValue,
45389 expandedValue = props.expandedValue,
45390 dataSource = props.dataSource,
45391 multiple = props.multiple,
45392 checkStrictly = props.checkStrictly,
45393 canOnlyCheckLeaf = props.canOnlyCheckLeaf,
45394 loadData = props.loadData,
45395 immutable = props.immutable;
45396
45397 var _preHandleData = preHandleData(dataSource, immutable),
45398 v2n = _preHandleData.v2n,
45399 p2n = _preHandleData.p2n;
45400
45401 var normalizedValue = normalizeValue(typeof value === 'undefined' ? defaultValue : value);
45402
45403 if (!loadData) {
45404 normalizedValue = normalizedValue.filter(function (v) {
45405 return v2n[v];
45406 });
45407 }
45408
45409 var realExpandedValue = typeof expandedValue === 'undefined' ? typeof defaultExpandedValue === 'undefined' ? getExpandedValue(normalizedValue[0], v2n, p2n) : normalizeValue(defaultExpandedValue) : normalizeValue(expandedValue);
45410 var st = {
45411 value: normalizedValue,
45412 expandedValue: realExpandedValue
45413 };
45414 if (multiple && !checkStrictly && !canOnlyCheckLeaf) {
45415 st.value = (0, _utils.getAllCheckedValues)(st.value, v2n, p2n);
45416 }
45417
45418 _this.lastExpandedValue = [].concat(st.expandedValue);
45419 _this.state = (0, _extends3.default)({}, st, {
45420 _v2n: v2n,
45421 _p2n: p2n
45422 });
45423
45424 bindCtx(_this, ['handleMouseLeave', 'handleFocus', 'handleFold', 'getCascaderNode', 'onBlur']);
45425 return _this;
45426 }
45427
45428 Cascader.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
45429 var _preHandleData2 = preHandleData(props.dataSource, props.immutable),
45430 v2n = _preHandleData2.v2n,
45431 p2n = _preHandleData2.p2n;
45432
45433 var states = {};
45434
45435 if ('value' in props) {
45436 states.value = normalizeValue(props.value);
45437 if (!props.loadData) {
45438 states.value = states.value.filter(function (v) {
45439 return v2n[v];
45440 });
45441 }
45442
45443 var multiple = props.multiple,
45444 checkStrictly = props.checkStrictly,
45445 canOnlyCheckLeaf = props.canOnlyCheckLeaf;
45446
45447 if (multiple && !checkStrictly && !canOnlyCheckLeaf) {
45448 states.value = (0, _utils.getAllCheckedValues)(states.value, v2n, p2n);
45449 }
45450
45451 if (!state.expandedValue.length && !('expandedValue' in props)) {
45452 states.expandedValue = getExpandedValue(states.value[0], v2n, p2n);
45453 }
45454 }
45455
45456 if ('expandedValue' in props) {
45457 states.expandedValue = normalizeValue(props.expandedValue);
45458 }
45459
45460 return (0, _extends3.default)({}, states, {
45461 _v2n: v2n,
45462 _p2n: p2n
45463 });
45464 };
45465
45466 Cascader.prototype.componentDidMount = function componentDidMount() {
45467 this.setCascaderInnerWidth();
45468 };
45469
45470 Cascader.prototype.componentDidUpdate = function componentDidUpdate() {
45471 this.setCascaderInnerWidth();
45472 };
45473
45474 Cascader.prototype.getCascaderNode = function getCascaderNode(ref) {
45475 this.cascader = ref;
45476 if (this.cascader) {
45477 this.cascaderInner = this.cascader.querySelector('.' + this.props.prefix + 'cascader-inner');
45478 }
45479 };
45480
45481 Cascader.prototype.setCascaderInnerWidth = function setCascaderInnerWidth() {
45482 if (!this.cascaderInner) {
45483 return;
45484 }
45485 var menus = [].slice.call(this.cascaderInner.querySelectorAll('.' + this.props.prefix + 'cascader-menu-wrapper'));
45486 if (menus.length === 0) {
45487 return;
45488 }
45489
45490 var menusWidth = Math.ceil(menus.reduce(function (ret, menu) {
45491 return ret + Math.ceil(menu.getBoundingClientRect().width);
45492 }, 0));
45493
45494 if (getStyle(this.cascaderInner, 'width') !== menusWidth) {
45495 setStyle(this.cascaderInner, 'width', menusWidth);
45496 }
45497
45498 if (getStyle(this.cascader, 'display') === 'inline-block') {
45499 var hasRightBorderClass = this.props.prefix + 'has-right-border';
45500 menus.forEach(function (menu) {
45501 return removeClass(menu, hasRightBorderClass);
45502 });
45503 if (this.cascader.clientWidth > menusWidth) {
45504 addClass(menus[menus.length - 1], hasRightBorderClass);
45505 }
45506 }
45507 };
45508
45509 /*eslint-enable*/
45510
45511 Cascader.prototype.flatValue = function flatValue(value) {
45512 return (0, _utils.filterChildValue)(value, this.state._v2n, this.state._p2n);
45513 };
45514
45515 Cascader.prototype.getValue = function getValue(pos) {
45516 return this.state._p2n[pos] ? this.state._p2n[pos].value : null;
45517 };
45518
45519 Cascader.prototype.getPos = function getPos(value) {
45520 return this.state._v2n[value] ? this.state._v2n[value].pos : null;
45521 };
45522
45523 Cascader.prototype.getData = function getData(value) {
45524 var _this2 = this;
45525
45526 return value.map(function (v) {
45527 return _this2.state._v2n[v];
45528 });
45529 };
45530
45531 Cascader.prototype.processValue = function processValue(value, v, checked) {
45532 var index = value.indexOf(v);
45533 if (checked && index === -1) {
45534 value.push(v);
45535 } else if (!checked && index > -1) {
45536 value.splice(index, 1);
45537 }
45538 };
45539
45540 Cascader.prototype.handleSelect = function handleSelect(v, canExpand) {
45541 var _this3 = this;
45542
45543 if (!(this.props.canOnlySelectLeaf && canExpand)) {
45544 var data = this.state._v2n[v];
45545 var nums = data.pos.split('-');
45546 var selectedPath = nums.slice(1).reduce(function (ret, num, index) {
45547 var p = nums.slice(0, index + 2).join('-');
45548 ret.push(_this3.state._p2n[p]);
45549 return ret;
45550 }, []);
45551
45552 if (this.state.value[0] !== v) {
45553 if (!('value' in this.props)) {
45554 this.setState({
45555 value: [v]
45556 });
45557 }
45558
45559 if ('onChange' in this.props) {
45560 this.props.onChange(v, data, {
45561 selectedPath: selectedPath
45562 });
45563 }
45564 }
45565
45566 if ('onSelect' in this.props) {
45567 this.props.onSelect(v, data, {
45568 selectedPath: selectedPath
45569 });
45570 }
45571 }
45572
45573 if (canExpand) {
45574 if (!this.props.canOnlySelectLeaf) {
45575 this.lastExpandedValue = this.state.expandedValue.slice(0, -1);
45576 }
45577 } else {
45578 this.lastExpandedValue = [].concat(this.state.expandedValue);
45579 }
45580 };
45581 /*eslint-disable max-statements*/
45582
45583 Cascader.prototype.handleCheck = function handleCheck(v, checked) {
45584 var _this4 = this;
45585
45586 var _props = this.props,
45587 checkStrictly = _props.checkStrictly,
45588 canOnlyCheckLeaf = _props.canOnlyCheckLeaf;
45589
45590 var value = [].concat(this.state.value);
45591
45592 if (checkStrictly || canOnlyCheckLeaf) {
45593 this.processValue(value, v, checked);
45594 } else {
45595 var pos = this.getPos(v);
45596
45597 var ps = Object.keys(this.state._p2n);
45598
45599 (0, _utils.forEachEnableNode)(this.state._v2n[v], function (node) {
45600 if (node.checkable === false) return;
45601 _this4.processValue(value, node.value, checked);
45602 });
45603
45604 var currentPos = pos;
45605 var nums = pos.split('-');
45606 for (var i = nums.length; i > 2; i--) {
45607 var parentCheck = true;
45608
45609 var parentPos = nums.slice(0, i - 1).join('-');
45610 if (this.state._p2n[parentPos].disabled || this.state._p2n[parentPos].checkboxDisabled || this.state._p2n[parentPos].checkable === false) {
45611 currentPos = parentPos;
45612 continue;
45613 }
45614
45615 var parentValue = this.state._p2n[parentPos].value;
45616 var parentChecked = value.indexOf(parentValue) > -1;
45617 if (!checked && !parentChecked) {
45618 break;
45619 }
45620
45621 for (var j = 0; j < ps.length; j++) {
45622 var p = ps[j];
45623 var pnode = this.state._p2n[p];
45624 if ((0, _utils.isSiblingOrSelf)(currentPos, p) && !pnode.disabled && !pnode.checkboxDisabled) {
45625 var k = pnode.value;
45626 // eslint-disable-next-line max-depth
45627 if (pnode.checkable === false) {
45628 // eslint-disable-next-line max-depth
45629 if (!pnode.children || pnode.children.length === 0) {
45630 continue;
45631 }
45632 // eslint-disable-next-line max-depth
45633 for (var m = 0; m < pnode.children.length; m++) {
45634 // eslint-disable-next-line max-depth
45635 if (!pnode.children.every(function (child) {
45636 return (0, _utils.isNodeChecked)(child, value);
45637 })) {
45638 parentCheck = false;
45639 break;
45640 }
45641 }
45642 } else if (value.indexOf(k) === -1) {
45643 parentCheck = false;
45644 }
45645
45646 if (!parentCheck) break;
45647 }
45648 }
45649
45650 this.processValue(value, parentValue, parentCheck);
45651
45652 currentPos = parentPos;
45653 }
45654 }
45655
45656 if (!('value' in this.props)) {
45657 this.setState({
45658 value: value
45659 });
45660 }
45661
45662 if ('onChange' in this.props) {
45663 if (checkStrictly || canOnlyCheckLeaf) {
45664 var data = this.getData(value);
45665 this.props.onChange(value, data, {
45666 checked: checked,
45667 currentData: this.state._v2n[v],
45668 checkedData: data
45669 });
45670 } else {
45671 var flatValue = this.flatValue(value);
45672 var flatData = this.getData(flatValue);
45673 var checkedData = this.getData(value);
45674 var indeterminateValue = this.getIndeterminate(value);
45675 var indeterminateData = this.getData(indeterminateValue);
45676 this.props.onChange(flatValue, flatData, {
45677 checked: checked,
45678 currentData: this.state._v2n[v],
45679 checkedData: checkedData,
45680 indeterminateData: indeterminateData
45681 });
45682 }
45683 }
45684
45685 this.lastExpandedValue = [].concat(this.state.expandedValue);
45686 };
45687
45688 Cascader.prototype.handleExpand = function handleExpand(value, level, canExpand, focusedFirstChild) {
45689 var _this5 = this;
45690
45691 var expandedValue = this.state.expandedValue;
45692
45693 if (canExpand || expandedValue.length > level) {
45694 if (canExpand) {
45695 expandedValue.splice(level, expandedValue.length - level, value);
45696 } else {
45697 expandedValue.splice(level);
45698 }
45699
45700 var callback = function callback() {
45701 _this5.setExpandValue(expandedValue);
45702
45703 if (focusedFirstChild) {
45704 var endExpandedValue = expandedValue[expandedValue.length - 1];
45705 _this5.setState({
45706 focusedValue: _this5.state._v2n[endExpandedValue].children[0].value
45707 });
45708 }
45709 };
45710
45711 var loadData = this.props.loadData;
45712
45713 if (canExpand && loadData) {
45714 var data = this.state._v2n[value];
45715 return loadData(data, data._source).then(callback);
45716 } else {
45717 return callback();
45718 }
45719 }
45720 };
45721
45722 Cascader.prototype.handleMouseLeave = function handleMouseLeave() {
45723 this.setExpandValue([].concat(this.lastExpandedValue));
45724 };
45725
45726 Cascader.prototype.setExpandValue = function setExpandValue(expandedValue) {
45727 if (!('expandedValue' in this.props)) {
45728 this.setState({
45729 expandedValue: expandedValue
45730 });
45731 }
45732
45733 if ('onExpand' in this.props) {
45734 this.props.onExpand(expandedValue);
45735 }
45736 };
45737
45738 Cascader.prototype.getFirstFocusKeyByDataSource = function getFirstFocusKeyByDataSource(dataSource) {
45739 if (!dataSource || dataSource.length === 0) {
45740 return '';
45741 }
45742
45743 for (var i = 0; i < dataSource.length; i++) {
45744 if (dataSource[i] && !dataSource[i].disabled) {
45745 return dataSource[i].value;
45746 }
45747 }
45748
45749 return '';
45750 };
45751
45752 Cascader.prototype.getFirstFocusKeyByFilteredPaths = function getFirstFocusKeyByFilteredPaths(filteredPaths) {
45753 if (!filteredPaths || filteredPaths.length === 0) {
45754 return '';
45755 }
45756
45757 for (var i = 0; i < filteredPaths.length; i++) {
45758 var path = filteredPaths[i];
45759 if (!path.some(function (item) {
45760 return item.disabled;
45761 })) {
45762 var lastItem = path[path.length - 1];
45763 return lastItem.value;
45764 }
45765 }
45766
45767 return '';
45768 };
45769
45770 Cascader.prototype.getFirstFocusKey = function getFirstFocusKey() {
45771 var _props2 = this.props,
45772 dataSource = _props2.dataSource,
45773 searchValue = _props2.searchValue,
45774 filteredPaths = _props2.filteredPaths;
45775
45776 return !searchValue ? this.getFirstFocusKeyByDataSource(dataSource) : this.getFirstFocusKeyByFilteredPaths(filteredPaths);
45777 };
45778
45779 Cascader.prototype.setFocusValue = function setFocusValue() {
45780 this.setState({
45781 focusedValue: this.getFirstFocusKey()
45782 });
45783 };
45784
45785 Cascader.prototype.handleFocus = function handleFocus(focusedValue) {
45786 this.setState({
45787 focusedValue: focusedValue
45788 });
45789 };
45790
45791 Cascader.prototype.handleFold = function handleFold() {
45792 var expandedValue = this.state.expandedValue;
45793
45794 if (expandedValue.length > 0) {
45795 this.setExpandValue(expandedValue.slice(0, -1));
45796 }
45797
45798 this.setState({
45799 focusedValue: expandedValue[expandedValue.length - 1]
45800 });
45801 };
45802
45803 Cascader.prototype.getIndeterminate = function getIndeterminate(value) {
45804 var _this6 = this;
45805
45806 var indeterminateValues = [];
45807
45808 var poss = (0, _utils.filterChildValue)(value.filter(function (v) {
45809 return !!_this6.state._v2n[v];
45810 }).filter(function (v) {
45811 return !_this6.state._v2n[v].disabled && !_this6.state._v2n[v].checkboxDisabled && _this6.state._v2n[v].checkable !== false;
45812 }), this.state._v2n, this.state._p2n).map(function (v) {
45813 return _this6.state._v2n[v].pos;
45814 });
45815 poss.forEach(function (pos) {
45816 var nums = pos.split('-');
45817 for (var i = nums.length; i > 2; i--) {
45818 var parentPos = nums.slice(0, i - 1).join('-');
45819 var parent = _this6.state._p2n[parentPos];
45820 if (parent.disabled || parent.checkboxDisabled) break;
45821 var parentValue = parent.value;
45822 if (indeterminateValues.indexOf(parentValue) === -1) {
45823 indeterminateValues.push(parentValue);
45824 }
45825 }
45826 });
45827
45828 return indeterminateValues;
45829 };
45830
45831 Cascader.prototype.onBlur = function onBlur(e) {
45832 this.setState({
45833 focusedValue: undefined
45834 });
45835
45836 this.props.onBlur && this.props.onBlur(e);
45837 };
45838
45839 Cascader.prototype.renderMenu = function renderMenu(data, level) {
45840 var _this7 = this;
45841
45842 var _props3 = this.props,
45843 prefix = _props3.prefix,
45844 multiple = _props3.multiple,
45845 useVirtual = _props3.useVirtual,
45846 checkStrictly = _props3.checkStrictly,
45847 expandTriggerType = _props3.expandTriggerType,
45848 loadData = _props3.loadData,
45849 canOnlyCheckLeaf = _props3.canOnlyCheckLeaf,
45850 listClassName = _props3.listClassName,
45851 listStyle = _props3.listStyle,
45852 itemRender = _props3.itemRender;
45853 var _state = this.state,
45854 value = _state.value,
45855 expandedValue = _state.expandedValue,
45856 focusedValue = _state.focusedValue;
45857
45858 return _react2.default.createElement(_menu4.default, {
45859 key: level,
45860 prefix: prefix,
45861 useVirtual: useVirtual,
45862 className: listClassName,
45863 style: listStyle,
45864 ref: this.saveMenuRef,
45865 focusedKey: focusedValue,
45866 onItemFocus: this.handleFocus,
45867 onBlur: this.onBlur
45868 }, data.map(function (item) {
45869 var disabled = !!item.disabled;
45870 var canExpand = !!item.children && !!item.children.length || !!loadData && !item.isLeaf;
45871 var expanded = expandedValue[level] === item.value;
45872 var props = {
45873 prefix: prefix,
45874 disabled: disabled,
45875 canExpand: canExpand,
45876 expanded: expanded,
45877 expandTriggerType: expandTriggerType,
45878 onExpand: _this7.handleExpand.bind(_this7, item.value, level, canExpand),
45879 onFold: _this7.handleFold
45880 };
45881
45882 if ('title' in item) {
45883 props.title = item.title;
45884 }
45885
45886 if (multiple) {
45887 props.checkable = !(canOnlyCheckLeaf && canExpand);
45888 props.checked = value.indexOf(item.value) > -1 || !!item.checked;
45889 props.indeterminate = (checkStrictly || canOnlyCheckLeaf ? false : _this7.indeterminate.indexOf(item.value) > -1) || !!item.indeterminate;
45890 props.checkboxDisabled = !!item.checkboxDisabled;
45891 props.onCheck = _this7.handleCheck.bind(_this7, item.value);
45892 } else {
45893 props.selected = value[0] === item.value;
45894 props.onSelect = _this7.handleSelect.bind(_this7, item.value, canExpand);
45895 }
45896
45897 var itemContent = itemRender(item, props);
45898 if (itemContent === null) {
45899 return null;
45900 }
45901 return _react2.default.createElement(_item2.default, (0, _extends3.default)({ key: item.value }, props), itemContent);
45902 }).filter(function (v) {
45903 return v;
45904 }));
45905 };
45906
45907 Cascader.prototype.renderMenus = function renderMenus() {
45908 var dataSource = this.props.dataSource;
45909 var expandedValue = this.state.expandedValue;
45910
45911 var menus = [];
45912 var data = dataSource;
45913
45914 for (var i = 0; i <= expandedValue.length; i++) {
45915 if (!data) {
45916 break;
45917 }
45918
45919 menus.push(this.renderMenu(data, i));
45920
45921 var expandedItem = void 0;
45922 for (var j = 0; j < data.length; j++) {
45923 if (data[j].value === expandedValue[i]) {
45924 expandedItem = data[j];
45925 break;
45926 }
45927 }
45928 data = expandedItem ? expandedItem.children : null;
45929 }
45930
45931 return menus;
45932 };
45933
45934 Cascader.prototype.renderFilteredItem = function renderFilteredItem(path) {
45935 var _props4 = this.props,
45936 prefix = _props4.prefix,
45937 resultRender = _props4.resultRender,
45938 searchValue = _props4.searchValue,
45939 multiple = _props4.multiple;
45940 var value = this.state.value;
45941
45942 var lastItem = path[path.length - 1];
45943
45944 var Item = void 0;
45945 var props = {
45946 key: lastItem.value,
45947 className: prefix + 'cascader-filtered-item',
45948 disabled: path.some(function (item) {
45949 return item.disabled;
45950 }),
45951 children: resultRender(searchValue, path)
45952 };
45953
45954 if (multiple) {
45955 Item = _menu2.default.CheckboxItem;
45956 var _props5 = this.props,
45957 checkStrictly = _props5.checkStrictly,
45958 canOnlyCheckLeaf = _props5.canOnlyCheckLeaf;
45959
45960 props.checked = value.indexOf(lastItem.value) > -1;
45961 props.indeterminate = !checkStrictly && !canOnlyCheckLeaf && this.indeterminate.indexOf(lastItem.value) > -1;
45962 props.checkboxDisabled = lastItem.checkboxDisabled;
45963 props.onChange = this.handleCheck.bind(this, lastItem.value);
45964 } else {
45965 Item = _menu2.default.Item;
45966 props.selected = value[0] === lastItem.value;
45967 props.onSelect = this.handleSelect.bind(this, lastItem.value, false);
45968 }
45969
45970 return _react2.default.createElement(Item, props);
45971 };
45972
45973 Cascader.prototype.renderFilteredList = function renderFilteredList() {
45974 var _this8 = this;
45975
45976 var _props6 = this.props,
45977 prefix = _props6.prefix,
45978 filteredListStyle = _props6.filteredListStyle,
45979 filteredPaths = _props6.filteredPaths,
45980 _props6$focusable = _props6.focusable,
45981 focusable = _props6$focusable === undefined ? false : _props6$focusable;
45982 var focusedValue = this.state.focusedValue;
45983
45984 return _react2.default.createElement(_menu2.default
45985 // 如果不设置为false, CascaderSelect 开启 showSearch后,弹窗展开时,光标无法到input上去,也无法输入.
45986 // TODO: set focusable=true in 2.x
45987
45988 , { focusable: focusable,
45989 focusedKey: focusedValue,
45990 onItemFocus: this.handleFocus,
45991 className: prefix + 'cascader-filtered-list',
45992 style: filteredListStyle
45993 }, filteredPaths.map(function (path) {
45994 return _this8.renderFilteredItem(path);
45995 }));
45996 };
45997
45998 Cascader.prototype.render = function render() {
45999 var _cx;
46000
46001 var _props7 = this.props,
46002 prefix = _props7.prefix,
46003 rtl = _props7.rtl,
46004 className = _props7.className,
46005 expandTriggerType = _props7.expandTriggerType,
46006 multiple = _props7.multiple,
46007 dataSource = _props7.dataSource,
46008 checkStrictly = _props7.checkStrictly,
46009 canOnlyCheckLeaf = _props7.canOnlyCheckLeaf,
46010 searchValue = _props7.searchValue;
46011
46012 var others = pickOthers(Object.keys(Cascader.propTypes), this.props);
46013 var value = this.state.value;
46014
46015 if (rtl) {
46016 others.dir = 'rtl';
46017 }
46018
46019 var props = (0, _extends3.default)({
46020 className: (0, _classnames2.default)((_cx = {}, _cx[prefix + 'cascader'] = true, _cx.multiple = multiple, _cx[className] = !!className, _cx)),
46021 ref: 'cascader'
46022 }, others);
46023 if (expandTriggerType === 'hover') {
46024 props.onMouseLeave = this.handleMouseLeave;
46025 }
46026
46027 if (multiple && !checkStrictly && !canOnlyCheckLeaf) {
46028 this.indeterminate = this.getIndeterminate(value);
46029 }
46030
46031 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());
46032 };
46033
46034 return Cascader;
46035}(_react.Component), _class.propTypes = {
46036 prefix: _propTypes2.default.string,
46037 rtl: _propTypes2.default.bool,
46038 pure: _propTypes2.default.bool,
46039 className: _propTypes2.default.string,
46040 /**
46041 * 数据源,结构可参考下方说明
46042 */
46043 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.object),
46044 /**
46045 * (非受控)默认值
46046 */
46047 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),
46048 /**
46049 * (受控)当前值
46050 */
46051 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),
46052 /**
46053 * 选中值改变时触发的回调函数
46054 * @param {String|Array} value 选中的值,单选时返回单个值,多选时返回数组
46055 * @param {Object|Array} data 选中的数据,包括 value 和 label,单选时返回单个值,多选时返回数组,父子节点选中关联时,同时选中,只返回父节点
46056 * @param {Object} extra 额外参数
46057 * @param {Array} extra.selectedPath 单选时选中的数据的路径
46058 * @param {Boolean} extra.checked 多选时当前的操作是选中还是取消选中
46059 * @param {Object} extra.currentData 多选时当前操作的数据
46060 * @param {Array} extra.checkedData 多选时所有被选中的数据
46061 * @param {Array} extra.indeterminateData 多选时半选的数据
46062 */
46063 onChange: _propTypes2.default.func,
46064 onSelect: _propTypes2.default.func,
46065 /**
46066 * (非受控)默认展开值,如果不设置,组件内部会根据 defaultValue/value 进行自动设置
46067 */
46068 defaultExpandedValue: _propTypes2.default.arrayOf(_propTypes2.default.string),
46069 /**
46070 * (受控)当前展开值
46071 */
46072 expandedValue: _propTypes2.default.arrayOf(_propTypes2.default.string),
46073 /**
46074 * 展开触发的方式
46075 */
46076 expandTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
46077 /**
46078 * 展开时触发的回调函数
46079 * @param {Array} expandedValue 各列展开值的数组
46080 */
46081 onExpand: _propTypes2.default.func,
46082 /**
46083 * 是否开启虚拟滚动
46084 */
46085 useVirtual: _propTypes2.default.bool,
46086 /**
46087 * 是否多选
46088 */
46089 multiple: _propTypes2.default.bool,
46090 /**
46091 * 单选时是否只能选中叶子节点
46092 */
46093 canOnlySelectLeaf: _propTypes2.default.bool,
46094 /**
46095 * 多选时是否只能选中叶子节点
46096 */
46097 canOnlyCheckLeaf: _propTypes2.default.bool,
46098 /**
46099 * 父子节点是否选中不关联
46100 */
46101 checkStrictly: _propTypes2.default.bool,
46102 /**
46103 * 每列列表样式对象
46104 */
46105 listStyle: _propTypes2.default.object,
46106 /**
46107 * 每列列表类名
46108 */
46109 listClassName: _propTypes2.default.string,
46110 /**
46111 * 每列列表项渲染函数
46112 * @param {Object} data 数据
46113 * @return {ReactNode} 列表项内容
46114 */
46115 itemRender: _propTypes2.default.func,
46116 /**
46117 * 异步加载数据函数
46118 * @param {Object} data 当前点击异步加载的数据
46119 * @param {Object} source 当前点击数据,source是原始对象
46120 */
46121 loadData: _propTypes2.default.func,
46122 searchValue: _propTypes2.default.string,
46123 onBlur: _propTypes2.default.func,
46124 filteredPaths: _propTypes2.default.array,
46125 filteredListStyle: _propTypes2.default.object,
46126 resultRender: _propTypes2.default.func,
46127 /**
46128 * 是否是不可变数据
46129 * @version 1.23
46130 */
46131 immutable: _propTypes2.default.bool
46132}, _class.defaultProps = {
46133 prefix: 'next-',
46134 rtl: false,
46135 pure: false,
46136 dataSource: [],
46137 defaultValue: null,
46138 canOnlySelectLeaf: false,
46139 canOnlyCheckLeaf: false,
46140 expandTriggerType: 'click',
46141 multiple: false,
46142 useVirtual: false,
46143 checkStrictly: false,
46144 itemRender: function itemRender(item) {
46145 return item.label;
46146 },
46147 immutable: false
46148}, _temp);
46149Cascader.displayName = 'Cascader';
46150exports.default = (0, _reactLifecyclesCompat.polyfill)(Cascader);
46151module.exports = exports['default'];
46152
46153/***/ }),
46154/* 325 */
46155/***/ (function(module, exports) {
46156
46157module.exports = function(module) {
46158 if(!module.webpackPolyfill) {
46159 module.deprecate = function() {};
46160 module.paths = [];
46161 // module.parent = undefined by default
46162 if(!module.children) module.children = [];
46163 Object.defineProperty(module, "loaded", {
46164 enumerable: true,
46165 get: function() {
46166 return module.l;
46167 }
46168 });
46169 Object.defineProperty(module, "id", {
46170 enumerable: true,
46171 get: function() {
46172 return module.i;
46173 }
46174 });
46175 module.webpackPolyfill = 1;
46176 }
46177 return module;
46178};
46179
46180
46181/***/ }),
46182/* 326 */
46183/***/ (function(module, exports, __webpack_require__) {
46184
46185"use strict";
46186
46187
46188exports.__esModule = true;
46189exports.default = undefined;
46190
46191var _objectWithoutProperties2 = __webpack_require__(8);
46192
46193var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
46194
46195var _extends2 = __webpack_require__(1);
46196
46197var _extends3 = _interopRequireDefault(_extends2);
46198
46199var _classCallCheck2 = __webpack_require__(2);
46200
46201var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
46202
46203var _possibleConstructorReturn2 = __webpack_require__(3);
46204
46205var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
46206
46207var _inherits2 = __webpack_require__(4);
46208
46209var _inherits3 = _interopRequireDefault(_inherits2);
46210
46211var _class, _temp2;
46212
46213var _react = __webpack_require__(0);
46214
46215var _react2 = _interopRequireDefault(_react);
46216
46217var _propTypes = __webpack_require__(5);
46218
46219var _propTypes2 = _interopRequireDefault(_propTypes);
46220
46221var _reactDom = __webpack_require__(12);
46222
46223var _menu = __webpack_require__(16);
46224
46225var _menu2 = _interopRequireDefault(_menu);
46226
46227var _virtualList = __webpack_require__(51);
46228
46229var _virtualList2 = _interopRequireDefault(_virtualList);
46230
46231function _interopRequireDefault(obj) {
46232 return obj && obj.__esModule ? obj : { default: obj };
46233}
46234
46235var CascaderMenu = (_temp2 = _class = function (_Component) {
46236 (0, _inherits3.default)(CascaderMenu, _Component);
46237
46238 function CascaderMenu() {
46239 var _temp, _this, _ret;
46240
46241 (0, _classCallCheck3.default)(this, CascaderMenu);
46242
46243 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
46244 args[_key] = arguments[_key];
46245 }
46246
46247 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.saveMenuRef = function (ref) {
46248 _this.menuEl = ref;
46249 }, _this.saveVirtualRef = function (ref) {
46250 _this.virtualEl = ref;
46251 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
46252 }
46253
46254 CascaderMenu.prototype.componentDidMount = function componentDidMount() {
46255 this.scrollToSelectedItem();
46256 };
46257
46258 CascaderMenu.prototype.scrollToSelectedItem = function scrollToSelectedItem() {
46259 var _props = this.props,
46260 prefix = _props.prefix,
46261 useVirtual = _props.useVirtual,
46262 children = _props.children;
46263
46264 if (!children || children.length === 0) {
46265 return;
46266 }
46267 var selectedIndex = children.findIndex(function (item) {
46268 return !!item.props.checked || !!item.props.selected || !!item.props.expanded;
46269 });
46270
46271 if (selectedIndex === -1) {
46272 return;
46273 }
46274
46275 if (useVirtual) {
46276 var instance = this.virtualEl.getInstance();
46277 setTimeout(function () {
46278 return instance.scrollTo(selectedIndex);
46279 }, 0);
46280 } else {
46281 var itemSelector = '.' + prefix + 'menu-item';
46282 var menu = (0, _reactDom.findDOMNode)(this.menuEl);
46283 var targetItem = menu.querySelectorAll(itemSelector)[selectedIndex];
46284 if (targetItem) {
46285 menu.scrollTop = targetItem.offsetTop - Math.floor((menu.clientHeight / targetItem.clientHeight - 1) / 2) * targetItem.clientHeight;
46286 }
46287 }
46288 };
46289
46290 CascaderMenu.prototype.renderMenu = function renderMenu(items, ref, props) {
46291 var _this2 = this;
46292
46293 return _react2.default.createElement(_menu2.default, (0, _extends3.default)({ ref: ref, role: 'listbox' }, props), items.map(function (node) {
46294 if (_react2.default.isValidElement(node) && node.type.menuChildType === 'item') {
46295 return _react2.default.cloneElement(node, {
46296 menu: _this2
46297 });
46298 }
46299
46300 return node;
46301 }));
46302 };
46303
46304 CascaderMenu.prototype.render = function render() {
46305 var _this3 = this;
46306
46307 var _props2 = this.props,
46308 prefix = _props2.prefix,
46309 useVirtual = _props2.useVirtual,
46310 className = _props2.className,
46311 style = _props2.style,
46312 children = _props2.children,
46313 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'useVirtual', 'className', 'style', 'children']);
46314
46315 var menuProps = (0, _extends3.default)({
46316 labelToggleChecked: false,
46317 className: prefix + 'cascader-menu'
46318 }, others);
46319 return _react2.default.createElement('div', {
46320 ref: this.saveMenuRef,
46321 className: prefix + 'cascader-menu-wrapper ' + (className ? className : ''),
46322 style: style
46323 }, useVirtual ? _react2.default.createElement(_virtualList2.default, {
46324 ref: this.saveVirtualRef,
46325 itemsRenderer: function itemsRenderer(items, ref) {
46326 return _this3.renderMenu(items, ref, menuProps);
46327 }
46328 }, children) : this.renderMenu(children, undefined, menuProps));
46329 };
46330
46331 return CascaderMenu;
46332}(_react.Component), _class.propTypes = {
46333 prefix: _propTypes2.default.string,
46334 className: _propTypes2.default.string,
46335 useVirtual: _propTypes2.default.bool,
46336 children: _propTypes2.default.node
46337}, _temp2);
46338CascaderMenu.displayName = 'CascaderMenu';
46339exports.default = CascaderMenu;
46340module.exports = exports['default'];
46341
46342/***/ }),
46343/* 327 */
46344/***/ (function(module, exports, __webpack_require__) {
46345
46346"use strict";
46347
46348
46349exports.__esModule = true;
46350exports.default = undefined;
46351
46352var _extends2 = __webpack_require__(1);
46353
46354var _extends3 = _interopRequireDefault(_extends2);
46355
46356var _classCallCheck2 = __webpack_require__(2);
46357
46358var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
46359
46360var _possibleConstructorReturn2 = __webpack_require__(3);
46361
46362var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
46363
46364var _inherits2 = __webpack_require__(4);
46365
46366var _inherits3 = _interopRequireDefault(_inherits2);
46367
46368var _class, _temp;
46369
46370var _react = __webpack_require__(0);
46371
46372var _react2 = _interopRequireDefault(_react);
46373
46374var _propTypes = __webpack_require__(5);
46375
46376var _propTypes2 = _interopRequireDefault(_propTypes);
46377
46378var _classnames = __webpack_require__(7);
46379
46380var _classnames2 = _interopRequireDefault(_classnames);
46381
46382var _menu = __webpack_require__(16);
46383
46384var _menu2 = _interopRequireDefault(_menu);
46385
46386var _icon = __webpack_require__(11);
46387
46388var _icon2 = _interopRequireDefault(_icon);
46389
46390var _util = __webpack_require__(6);
46391
46392function _interopRequireDefault(obj) {
46393 return obj && obj.__esModule ? obj : { default: obj };
46394}
46395
46396var bindCtx = _util.func.bindCtx;
46397var pickOthers = _util.obj.pickOthers;
46398var CascaderMenuItem = (_temp = _class = function (_Component) {
46399 (0, _inherits3.default)(CascaderMenuItem, _Component);
46400
46401 function CascaderMenuItem(props) {
46402 (0, _classCallCheck3.default)(this, CascaderMenuItem);
46403
46404 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
46405
46406 _this.state = {
46407 loading: false
46408 };
46409
46410 bindCtx(_this, ['handleExpand', 'handleClick', 'handleMouseEnter', 'handleKeyDown', 'removeLoading']);
46411 return _this;
46412 }
46413
46414 CascaderMenuItem.prototype.addLoading = function addLoading() {
46415 this.setState({
46416 loading: true
46417 });
46418 };
46419
46420 CascaderMenuItem.prototype.removeLoading = function removeLoading() {
46421 this.setState({
46422 loading: false
46423 });
46424 };
46425
46426 CascaderMenuItem.prototype.setLoadingIfNeed = function setLoadingIfNeed(p) {
46427 if (p && typeof p.then === 'function') {
46428 this.addLoading();
46429 p.then(this.removeLoading).catch(this.removeLoading);
46430 }
46431 };
46432
46433 CascaderMenuItem.prototype.handleExpand = function handleExpand(focusedFirstChild) {
46434 this.setLoadingIfNeed(this.props.onExpand(focusedFirstChild));
46435 };
46436
46437 CascaderMenuItem.prototype.handleClick = function handleClick() {
46438 this.handleExpand(false);
46439 };
46440
46441 CascaderMenuItem.prototype.handleMouseEnter = function handleMouseEnter() {
46442 this.handleExpand(false);
46443 };
46444
46445 CascaderMenuItem.prototype.handleKeyDown = function handleKeyDown(e) {
46446 if (!this.props.disabled) {
46447 if (e.keyCode === _util.KEYCODE.RIGHT || e.keyCode === _util.KEYCODE.ENTER) {
46448 if (this.props.canExpand) {
46449 this.handleExpand(true);
46450 }
46451 } else if (e.keyCode === _util.KEYCODE.LEFT || e.keyCode === _util.KEYCODE.ESC) {
46452 this.props.onFold();
46453 } else if (e.keyCode === _util.KEYCODE.SPACE) {
46454 this.handleExpand(false);
46455 }
46456 }
46457 };
46458
46459 CascaderMenuItem.prototype.render = function render() {
46460 var _cx;
46461
46462 var _props = this.props,
46463 prefix = _props.prefix,
46464 className = _props.className,
46465 menu = _props.menu,
46466 disabled = _props.disabled,
46467 selected = _props.selected,
46468 onSelect = _props.onSelect,
46469 expanded = _props.expanded,
46470 canExpand = _props.canExpand,
46471 expandTriggerType = _props.expandTriggerType,
46472 checkable = _props.checkable,
46473 checked = _props.checked,
46474 indeterminate = _props.indeterminate,
46475 checkboxDisabled = _props.checkboxDisabled,
46476 onCheck = _props.onCheck,
46477 children = _props.children;
46478
46479 var others = pickOthers(Object.keys(CascaderMenuItem.propTypes), this.props);
46480 var loading = this.state.loading;
46481
46482 var itemProps = (0, _extends3.default)({
46483 className: (0, _classnames2.default)((_cx = {}, _cx[prefix + 'cascader-menu-item'] = true, _cx[prefix + 'expanded'] = expanded, _cx[className] = !!className, _cx)),
46484 disabled: disabled,
46485 menu: menu,
46486 onKeyDown: this.handleKeyDown,
46487 role: 'option'
46488 }, others);
46489 if (!disabled) {
46490 if (expandTriggerType === 'hover') {
46491 itemProps.onMouseEnter = this.handleMouseEnter;
46492 } else {
46493 itemProps.onClick = this.handleClick;
46494 }
46495 }
46496
46497 var Item = void 0,
46498 title = void 0;
46499 if (checkable) {
46500 Item = _menu2.default.CheckboxItem;
46501 itemProps.checked = checked;
46502 itemProps.indeterminate = indeterminate;
46503 itemProps.checkboxDisabled = checkboxDisabled;
46504 itemProps.onChange = onCheck;
46505 } else {
46506 Item = _menu2.default.Item;
46507 itemProps.selected = selected;
46508 itemProps.onSelect = onSelect;
46509 }
46510
46511 if (typeof children === 'string') {
46512 title = children;
46513 }
46514
46515 return _react2.default.createElement(Item, (0, _extends3.default)({ title: title }, itemProps), children, canExpand ? loading ? _react2.default.createElement(_icon2.default, {
46516 className: prefix + 'cascader-menu-icon-right ' + prefix + 'cascader-menu-icon-loading',
46517 type: 'loading'
46518 }) : _react2.default.createElement(_icon2.default, {
46519 className: prefix + 'cascader-menu-icon-right ' + prefix + 'cascader-menu-icon-expand',
46520 type: 'arrow-right'
46521 }) : null);
46522 };
46523
46524 return CascaderMenuItem;
46525}(_react.Component), _class.menuChildType = 'item', _class.propTypes = {
46526 prefix: _propTypes2.default.string,
46527 className: _propTypes2.default.string,
46528 disabled: _propTypes2.default.bool,
46529 selected: _propTypes2.default.bool,
46530 onSelect: _propTypes2.default.func,
46531 expanded: _propTypes2.default.bool,
46532 canExpand: _propTypes2.default.bool,
46533 menu: _propTypes2.default.any,
46534 expandTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
46535 onExpand: _propTypes2.default.func,
46536 onFold: _propTypes2.default.func,
46537 checkable: _propTypes2.default.bool,
46538 checked: _propTypes2.default.bool,
46539 indeterminate: _propTypes2.default.bool,
46540 checkboxDisabled: _propTypes2.default.bool,
46541 onCheck: _propTypes2.default.func,
46542 children: _propTypes2.default.node
46543}, _temp);
46544CascaderMenuItem.displayName = 'CascaderMenuItem';
46545exports.default = CascaderMenuItem;
46546module.exports = exports['default'];
46547
46548/***/ }),
46549/* 328 */
46550/***/ (function(module, exports, __webpack_require__) {
46551
46552"use strict";
46553
46554
46555exports.__esModule = true;
46556exports.normalizeToArray = normalizeToArray;
46557exports.isNodeChecked = isNodeChecked;
46558exports.forEachEnableNode = forEachEnableNode;
46559exports.isNodeDisabledChecked = isNodeDisabledChecked;
46560exports.getCheckableParentNode = getCheckableParentNode;
46561exports.filterChildValue = filterChildValue;
46562exports.filterParentValue = filterParentValue;
46563exports.isDescendantOrSelf = isDescendantOrSelf;
46564exports.isSiblingOrSelf = isSiblingOrSelf;
46565exports.getAllCheckedValues = getAllCheckedValues;
46566/* eslint-disable valid-jsdoc */
46567function normalizeToArray(values) {
46568 if (values !== undefined && values !== null) {
46569 if (Array.isArray(values)) {
46570 return [].concat(values);
46571 }
46572
46573 return [values];
46574 }
46575
46576 return [];
46577}
46578
46579/**
46580 * 判断子节点是否是选中状态,如果 checkable={false} 则向下递归,
46581 * @param {Node} child
46582 * @param {Array} checkedValues
46583 */
46584function isNodeChecked(node, checkedValues) {
46585 if (node.disabled || node.checkboxDisabled) return true;
46586 /* istanbul ignore next */
46587 if (node.checkable === false) {
46588 return !node.children || node.children.length === 0 || node.children.every(function (c) {
46589 return isNodeChecked(c, checkedValues);
46590 });
46591 }
46592 return checkedValues.indexOf(node.value) > -1;
46593}
46594
46595/**
46596 * 遍历所有可用的子节点
46597 * @param {Node}
46598 * @param {Function} callback
46599 */
46600function forEachEnableNode(node) {
46601 var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
46602
46603 if (node.disabled || node.checkboxDisabled) return;
46604 // eslint-disable-next-line callback-return
46605 callback(node);
46606 if (node.children && node.children.length > 0) {
46607 node.children.forEach(function (child) {
46608 return forEachEnableNode(child, callback);
46609 });
46610 }
46611}
46612/**
46613 * 判断节点是否禁用checked
46614 * @param {Node} node
46615 * @returns {Boolean}
46616 */
46617function isNodeDisabledChecked(node) {
46618 if (node.disabled || node.checkboxDisabled) return true;
46619 /* istanbul ignore next */
46620 if (node.checkable === false) {
46621 return !node.children || node.children.length === 0 || node.children.every(isNodeDisabledChecked);
46622 }
46623
46624 return false;
46625}
46626
46627/**
46628 * 递归获取一个 checkable = {true} 的父节点,当 checkable={false} 时继续往上查找
46629 * @param {Node} node
46630 * @param {Map} _p2n
46631 * @return {Node}
46632 */
46633function getCheckableParentNode(node, _p2n) {
46634 var parentPos = node.pos.split(['-']);
46635 if (parentPos.length === 2) return node;
46636 parentPos.splice(parentPos.length - 1, 1);
46637 parentPos = parentPos.join('-');
46638 var parentNode = _p2n[parentPos];
46639 if (parentNode.disabled || parentNode.checkboxDisabled) return false;
46640 /* istanbul ignore next */
46641 if (parentNode.checkable === false) {
46642 return getCheckableParentNode(parentNode, _p2n);
46643 }
46644
46645 return parentNode;
46646}
46647/**
46648 * 过滤子节点
46649 * @param {Array} values
46650 * @param {Object} _v2n
46651 */
46652function filterChildValue(values, _v2n, _p2n) {
46653 var newValues = [];
46654 values.forEach(function (value) {
46655 var node = getCheckableParentNode(_v2n[value], _p2n);
46656 if (!node || node.checkable === false || node === _v2n[value] || values.indexOf(node.value) === -1) {
46657 newValues.push(value);
46658 }
46659 });
46660 return newValues;
46661}
46662
46663function filterParentValue(values, _v2n) {
46664 var newValues = [];
46665
46666 for (var i = 0; i < values.length; i++) {
46667 var node = _v2n[values[i]];
46668 if (!node.children || node.children.length === 0 || node.children.every(isNodeDisabledChecked)) {
46669 newValues.push(values[i]);
46670 }
46671 }
46672
46673 return newValues;
46674}
46675
46676function isDescendantOrSelf(currentPos, targetPos) {
46677 if (!currentPos || !targetPos) {
46678 return false;
46679 }
46680
46681 var currentNums = currentPos.split('-');
46682 var targetNums = targetPos.split('-');
46683
46684 return currentNums.length <= targetNums.length && currentNums.every(function (num, index) {
46685 return num === targetNums[index];
46686 });
46687}
46688
46689function isSiblingOrSelf(currentPos, targetPos) {
46690 var currentNums = currentPos.split('-').slice(0, -1);
46691 var targetNums = targetPos.split('-').slice(0, -1);
46692
46693 return currentNums.length === targetNums.length && currentNums.every(function (num, index) {
46694 return num === targetNums[index];
46695 });
46696}
46697
46698// eslint-disable-next-line max-statements
46699function getAllCheckedValues(checkedValues, _v2n, _p2n) {
46700 checkedValues = normalizeToArray(checkedValues);
46701 var filteredValues = checkedValues.filter(function (value) {
46702 return !!_v2n[value];
46703 });
46704 var flatValues = [].concat(filterChildValue(filteredValues, _v2n, _p2n), filteredValues.filter(function (value) {
46705 return _v2n[value].disabled || _v2n[value].checkboxDisabled;
46706 }));
46707 var removeValue = function removeValue(child) {
46708 if (child.disabled || child.checkboxDisabled) return;
46709 if (child.checkable === false && child.children && child.children.length > 0) {
46710 return child.children.forEach(removeValue);
46711 }
46712 flatValues.splice(flatValues.indexOf(child.value), 1);
46713 };
46714
46715 var addParentValue = function addParentValue(i, parent) {
46716 return flatValues.splice(i, 0, parent.value);
46717 };
46718
46719 var values = [].concat(flatValues);
46720 for (var i = 0; i < values.length; i++) {
46721 var pos = _v2n[values[i]].pos;
46722 var nums = pos.split('-');
46723 if (nums.length === 2) {
46724 break;
46725 }
46726 for (var j = nums.length - 2; j > 0; j--) {
46727 var parentPos = nums.slice(0, j + 1).join('-');
46728 var parent = _p2n[parentPos];
46729 if (parent.checkable === false || parent.disabled || parent.checkboxDisabled) continue;
46730 var parentChecked = parent.children.every(function (child) {
46731 return isNodeChecked(child, flatValues);
46732 });
46733 if (parentChecked) {
46734 parent.children.forEach(removeValue);
46735 addParentValue(i, parent);
46736 } else {
46737 break;
46738 }
46739 }
46740 }
46741
46742 var newValues = [];
46743 flatValues.forEach(function (value) {
46744 if (_v2n[value].disabled || _v2n[value].checkboxDisabled) {
46745 newValues.push(value);
46746 return;
46747 }
46748 forEachEnableNode(_v2n[value], function (node) {
46749 if (node.checkable === false) return;
46750 newValues.push(node.value);
46751 });
46752 });
46753
46754 return newValues;
46755}
46756
46757/***/ }),
46758/* 329 */
46759/***/ (function(module, exports, __webpack_require__) {
46760
46761"use strict";
46762
46763
46764exports.__esModule = true;
46765
46766var _extends2 = __webpack_require__(1);
46767
46768var _extends3 = _interopRequireDefault(_extends2);
46769
46770var _objectWithoutProperties2 = __webpack_require__(8);
46771
46772var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
46773
46774var _configProvider = __webpack_require__(9);
46775
46776var _configProvider2 = _interopRequireDefault(_configProvider);
46777
46778var _cascaderSelect = __webpack_require__(330);
46779
46780var _cascaderSelect2 = _interopRequireDefault(_cascaderSelect);
46781
46782function _interopRequireDefault(obj) {
46783 return obj && obj.__esModule ? obj : { default: obj };
46784}
46785
46786exports.default = _configProvider2.default.config(_cascaderSelect2.default, {
46787 transform: /* istanbul ignore next */function transform(props, deprecated) {
46788 if ('shape' in props) {
46789 deprecated('shape', 'hasBorder', 'CascaderSelect');
46790 var _props = props,
46791 shape = _props.shape,
46792 others = (0, _objectWithoutProperties3.default)(_props, ['shape']);
46793
46794 props = (0, _extends3.default)({ hasBorder: shape !== 'arrow-only' }, others);
46795 }
46796
46797 if ('container' in props) {
46798 deprecated('container', 'popupContainer', 'CascaderSelect');
46799
46800 var _props2 = props,
46801 container = _props2.container,
46802 _others = (0, _objectWithoutProperties3.default)(_props2, ['container']);
46803
46804 props = (0, _extends3.default)({ popupContainer: container }, _others);
46805 }
46806
46807 if ('expandTrigger' in props) {
46808 deprecated('expandTrigger', 'expandTriggerType', 'CascaderSelect');
46809
46810 var _props3 = props,
46811 expandTrigger = _props3.expandTrigger,
46812 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['expandTrigger']);
46813
46814 props = (0, _extends3.default)({ expandTriggerType: expandTrigger }, _others2);
46815 }
46816
46817 if ('showItemCount' in props) {
46818 deprecated('showItemCount', 'listStyle | listClassName', 'CascaderSelect');
46819 }
46820 if ('labelWidth' in props) {
46821 deprecated('labelWidth', 'listStyle | listClassName', 'CascaderSelect');
46822 }
46823
46824 return props;
46825 }
46826});
46827module.exports = exports['default'];
46828
46829/***/ }),
46830/* 330 */
46831/***/ (function(module, exports, __webpack_require__) {
46832
46833"use strict";
46834
46835
46836exports.__esModule = true;
46837
46838var _extends2 = __webpack_require__(1);
46839
46840var _extends3 = _interopRequireDefault(_extends2);
46841
46842var _classCallCheck2 = __webpack_require__(2);
46843
46844var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
46845
46846var _possibleConstructorReturn2 = __webpack_require__(3);
46847
46848var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
46849
46850var _inherits2 = __webpack_require__(4);
46851
46852var _inherits3 = _interopRequireDefault(_inherits2);
46853
46854var _class, _temp;
46855
46856var _react = __webpack_require__(0);
46857
46858var _react2 = _interopRequireDefault(_react);
46859
46860var _propTypes = __webpack_require__(5);
46861
46862var _propTypes2 = _interopRequireDefault(_propTypes);
46863
46864var _reactLifecyclesCompat = __webpack_require__(10);
46865
46866var _classnames = __webpack_require__(7);
46867
46868var _classnames2 = _interopRequireDefault(_classnames);
46869
46870var _select = __webpack_require__(29);
46871
46872var _select2 = _interopRequireDefault(_select);
46873
46874var _cascader = __webpack_require__(166);
46875
46876var _cascader2 = _interopRequireDefault(_cascader);
46877
46878var _menu = __webpack_require__(16);
46879
46880var _menu2 = _interopRequireDefault(_menu);
46881
46882var _util = __webpack_require__(6);
46883
46884function _interopRequireDefault(obj) {
46885 return obj && obj.__esModule ? obj : { default: obj };
46886}
46887
46888var bindCtx = _util.func.bindCtx;
46889var pickOthers = _util.obj.pickOthers;
46890var getStyle = _util.dom.getStyle;
46891
46892var normalizeValue = function normalizeValue(value) {
46893 if (value) {
46894 if (Array.isArray(value)) {
46895 return value;
46896 }
46897
46898 return [value];
46899 }
46900
46901 return [];
46902};
46903
46904/**
46905 * CascaderSelect
46906 */
46907var CascaderSelect = (_temp = _class = function (_Component) {
46908 (0, _inherits3.default)(CascaderSelect, _Component);
46909
46910 function CascaderSelect(props) {
46911 (0, _classCallCheck3.default)(this, CascaderSelect);
46912
46913 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
46914
46915 _this.refreshValueDataCache = function (curValue) {
46916 if (curValue) {
46917 var valueArr = Array.isArray(curValue) ? curValue : [curValue];
46918
46919 valueArr.length && Object.keys(_this._valueDataCache).forEach(function (v) {
46920 if (!valueArr.includes(v)) {
46921 delete _this._valueDataCache[v];
46922 }
46923 });
46924 } else {
46925 _this._valueDataCache = {};
46926 }
46927 };
46928
46929 _this.state = {
46930 value: normalizeValue('value' in props ? props.value : props.defaultValue),
46931 searchValue: '',
46932 visible: typeof props.visible === 'undefined' ? props.defaultVisible : props.visible
46933 };
46934
46935 // 缓存选中值数据
46936 _this._valueDataCache = {};
46937
46938 bindCtx(_this, ['handleVisibleChange', 'handleAfterOpen', 'handleSelect', 'handleChange', 'handleClear', 'handleRemove', 'handleSearch', 'getPopup', 'saveSelectRef', 'saveCascaderRef', 'handleKeyDown']);
46939 return _this;
46940 }
46941
46942 CascaderSelect.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
46943 var st = {};
46944
46945 if ('value' in props) {
46946 st.value = normalizeValue(props.value);
46947 }
46948 if ('visible' in props) {
46949 st.visible = props.visible;
46950 }
46951
46952 return st;
46953 };
46954
46955 CascaderSelect.prototype.updateCache = function updateCache(dataSource) {
46956 var _this2 = this;
46957
46958 this._v2n = {};
46959 this._p2n = {};
46960 var loop = function loop(data) {
46961 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
46962 return data.forEach(function (item, index) {
46963 var value = item.value,
46964 children = item.children;
46965
46966 var pos = prefix + '-' + index;
46967 _this2._v2n[value] = _this2._p2n[pos] = (0, _extends3.default)({}, item, { pos: pos });
46968
46969 if (children && children.length) {
46970 loop(children, pos);
46971 }
46972 });
46973 };
46974
46975 loop(dataSource);
46976 };
46977
46978 CascaderSelect.prototype.flatValue = function flatValue(value) {
46979 var _this3 = this;
46980
46981 var getDepth = function getDepth(v) {
46982 var pos = _this3.getPos(v);
46983 if (!pos) {
46984 return 0;
46985 }
46986 return pos.split('-').length;
46987 };
46988 var newValue = value.slice(0).sort(function (prev, next) {
46989 return getDepth(prev) - getDepth(next);
46990 });
46991
46992 for (var i = 0; i < newValue.length; i++) {
46993 for (var j = 0; j < newValue.length; j++) {
46994 if (i !== j && this.isDescendantOrSelf(this.getPos(newValue[i]), this.getPos(newValue[j]))) {
46995 newValue.splice(j, 1);
46996 j--;
46997 }
46998 }
46999 }
47000
47001 return newValue;
47002 };
47003
47004 CascaderSelect.prototype.isDescendantOrSelf = function isDescendantOrSelf(currentPos, targetPos) {
47005 if (!currentPos || !targetPos) {
47006 return false;
47007 }
47008
47009 var currentNums = currentPos.split('-');
47010 var targetNums = targetPos.split('-');
47011
47012 return currentNums.length <= targetNums.length && currentNums.every(function (num, index) {
47013 return num === targetNums[index];
47014 });
47015 };
47016
47017 CascaderSelect.prototype.getValue = function getValue(pos) {
47018 return this._p2n[pos] ? this._p2n[pos].value : null;
47019 };
47020
47021 CascaderSelect.prototype.getPos = function getPos(value) {
47022 return this._v2n[value] ? this._v2n[value].pos : null;
47023 };
47024
47025 CascaderSelect.prototype.getData = function getData(value) {
47026 var _this4 = this;
47027
47028 return value.map(function (v) {
47029 return _this4._v2n[v] || _this4._valueDataCache[v];
47030 });
47031 };
47032
47033 CascaderSelect.prototype.getLabelPath = function getLabelPath(data) {
47034 var _this5 = this;
47035
47036 var nums = data.pos.split('-');
47037 return nums.slice(1).reduce(function (ret, num, index) {
47038 var p = nums.slice(0, index + 2).join('-');
47039 ret.push(_this5._p2n[p].label);
47040 return ret;
47041 }, []);
47042 };
47043
47044 CascaderSelect.prototype.getSingleData = function getSingleData(value) {
47045 if (!value.length) {
47046 return null;
47047 }
47048
47049 if (Array.isArray(value)) value = value[0];
47050
47051 var data = this._v2n[value];
47052
47053 if (data) {
47054 var labelPath = this.getLabelPath(data);
47055 var displayRender = this.props.displayRender || function (labels) {
47056 return labels.join(' / ');
47057 };
47058
47059 data = (0, _extends3.default)({}, data, {
47060 label: displayRender(labelPath, data)
47061 });
47062
47063 this._valueDataCache[value] = data;
47064 this.refreshValueDataCache(value);
47065 } else {
47066 data = this._valueDataCache[value];
47067 }
47068
47069 return data || {
47070 value: value
47071 };
47072 };
47073
47074 CascaderSelect.prototype.getMultipleData = function getMultipleData(value) {
47075 var _this6 = this;
47076
47077 if (!value.length) {
47078 return null;
47079 }
47080
47081 var _props = this.props,
47082 checkStrictly = _props.checkStrictly,
47083 canOnlyCheckLeaf = _props.canOnlyCheckLeaf,
47084 displayRender = _props.displayRender;
47085
47086 var flatValue = checkStrictly || canOnlyCheckLeaf ? value : this.flatValue(value);
47087 var data = flatValue.map(function (v) {
47088 var item = _this6._v2n[v];
47089
47090 if (item) {
47091 _this6._valueDataCache[v] = item;
47092 } else {
47093 item = _this6._valueDataCache[v];
47094 }
47095
47096 return item || { value: v };
47097 });
47098
47099 if (displayRender) {
47100 data = data.map(function (item) {
47101 if (!item.pos || !(item.value in _this6._v2n)) {
47102 return item;
47103 }
47104
47105 var labelPath = _this6.getLabelPath(item);
47106 var newItem = (0, _extends3.default)({}, item, {
47107 label: displayRender(labelPath, item)
47108 });
47109
47110 _this6._valueDataCache[item.value] = newItem;
47111
47112 return newItem;
47113 });
47114 }
47115
47116 return data;
47117 };
47118
47119 CascaderSelect.prototype.getIndeterminate = function getIndeterminate(value) {
47120 var _this7 = this;
47121
47122 var indeterminate = [];
47123
47124 var positions = value.map(this.getPos.bind(this));
47125 positions.forEach(function (pos) {
47126 if (!pos) {
47127 return false;
47128 }
47129 var nums = pos.split('-');
47130 for (var i = nums.length; i > 2; i--) {
47131 var parentPos = nums.slice(0, i - 1).join('-');
47132 var parentValue = _this7.getValue(parentPos);
47133 if (indeterminate.indexOf(parentValue) === -1) {
47134 indeterminate.push(parentValue);
47135 }
47136 }
47137 });
47138
47139 return indeterminate;
47140 };
47141
47142 CascaderSelect.prototype.saveSelectRef = function saveSelectRef(ref) {
47143 this.select = ref;
47144 };
47145
47146 CascaderSelect.prototype.saveCascaderRef = function saveCascaderRef(ref) {
47147 this.cascader = ref;
47148 };
47149
47150 CascaderSelect.prototype.completeValue = function completeValue(value) {
47151 var newValue = [];
47152
47153 var flatValue = this.flatValue(value).reverse();
47154 var ps = Object.keys(this._p2n);
47155 for (var i = 0; i < ps.length; i++) {
47156 for (var j = 0; j < flatValue.length; j++) {
47157 var v = flatValue[j];
47158 if (this.isDescendantOrSelf(this.getPos(v), ps[i])) {
47159 newValue.push(this.getValue(ps[i]));
47160 ps.splice(i, 1);
47161 i--;
47162 break;
47163 }
47164 }
47165 }
47166
47167 return newValue;
47168 };
47169
47170 CascaderSelect.prototype.isLeaf = function isLeaf(data) {
47171 return !(data.children && data.children.length || !!this.props.loadData && !data.isLeaf);
47172 };
47173
47174 CascaderSelect.prototype.handleVisibleChange = function handleVisibleChange(visible, type) {
47175 var _this8 = this;
47176
47177 var searchValue = this.state.searchValue;
47178
47179 if (!('visible' in this.props)) {
47180 this.setState({
47181 visible: visible
47182 });
47183 }
47184
47185 if (!visible && searchValue) {
47186 this.setState({
47187 searchValue: ''
47188 });
47189 }
47190
47191 if (['fromCascader', 'keyboard'].indexOf(type) !== -1 && !visible) {
47192 // 这里需要延迟下,showSearch 的情况下通过手动设置 menuProps={{focusable: true}} 回车 focus 会有延迟
47193 setTimeout(function () {
47194 return _this8.select.focusInput();
47195 }, 0);
47196 }
47197
47198 this.props.onVisibleChange(visible, type);
47199 };
47200
47201 CascaderSelect.prototype.handleKeyDown = function handleKeyDown(e) {
47202 var onKeyDown = this.props.onKeyDown;
47203 var visible = this.state.visible;
47204
47205 if (onKeyDown) {
47206 onKeyDown(e);
47207 }
47208
47209 if (!visible) {
47210 return;
47211 }
47212
47213 switch (e.keyCode) {
47214 case _util.KEYCODE.UP:
47215 case _util.KEYCODE.DOWN:
47216 this.cascader.setFocusValue();
47217 e.preventDefault();
47218 break;
47219 default:
47220 break;
47221 }
47222 };
47223
47224 CascaderSelect.prototype.getPopup = function getPopup(ref) {
47225 this.popup = ref;
47226 if (typeof this.props.popupProps.ref === 'function') {
47227 this.props.popupProps.ref(ref);
47228 }
47229 };
47230
47231 CascaderSelect.prototype.handleAfterOpen = function handleAfterOpen() {
47232 if (!this.popup) {
47233 return;
47234 }
47235
47236 var _props2 = this.props,
47237 prefix = _props2.prefix,
47238 popupProps = _props2.popupProps;
47239
47240 var dropDownNode = this.popup.getInstance().overlay.getInstance().getContentNode();
47241 var cascaderNode = dropDownNode.querySelector('.' + prefix + 'cascader');
47242 if (cascaderNode) {
47243 this.cascaderHeight = getStyle(cascaderNode, 'height');
47244 }
47245
47246 if (typeof popupProps.afterOpen === 'function') {
47247 popupProps.afterOpen();
47248 }
47249 };
47250
47251 CascaderSelect.prototype.handleSelect = function handleSelect(value, data) {
47252 var _props3 = this.props,
47253 multiple = _props3.multiple,
47254 changeOnSelect = _props3.changeOnSelect;
47255 var _state = this.state,
47256 visible = _state.visible,
47257 searchValue = _state.searchValue;
47258
47259 if (!multiple && (!changeOnSelect || this.isLeaf(data) || !!searchValue)) {
47260 this.handleVisibleChange(!visible, 'fromCascader');
47261 }
47262 };
47263
47264 /**
47265 * 刷新值数据缓存,删除无效值
47266 * @param {Arrary | String} curValue 当前值
47267 */
47268
47269 CascaderSelect.prototype.handleChange = function handleChange(value, data, extra) {
47270 var _this9 = this;
47271
47272 var _props4 = this.props,
47273 multiple = _props4.multiple,
47274 onChange = _props4.onChange;
47275 var _state2 = this.state,
47276 searchValue = _state2.searchValue,
47277 stateValue = _state2.value;
47278
47279 var st = {};
47280
47281 if (multiple && stateValue && Array.isArray(stateValue)) {
47282 var noExistedValues = stateValue.filter(function (v) {
47283 return !_this9._v2n[v];
47284 });
47285
47286 value = [].concat(noExistedValues, value);
47287 // onChange 中的 data 参数也应该保留不存在的 value 的数据
47288 // 在 dataSource 异步加载的情况下,会出现value重复的现象,需要去重
47289 data = [].concat(noExistedValues.map(function (v) {
47290 return _this9._valueDataCache[v];
47291 }).filter(function (v) {
47292 return v;
47293 }), data).filter(function (current, index, arr) {
47294 return index === arr.indexOf(current);
47295 });
47296 // 更新缓存
47297 this.refreshValueDataCache(value);
47298 }
47299
47300 if (!('value' in this.props)) {
47301 st.value = value;
47302 }
47303 if (!multiple && searchValue) {
47304 st.searchValue = '';
47305 }
47306 if (Object.keys(st).length) {
47307 this.setState(st);
47308 }
47309
47310 if (onChange) {
47311 onChange(value, data, extra);
47312 }
47313
47314 if (searchValue && this.select) {
47315 this.select.handleSearchClear();
47316 }
47317 };
47318
47319 CascaderSelect.prototype.handleClear = function handleClear() {
47320 // 单选时点击清空按钮
47321 var _props5 = this.props,
47322 hasClear = _props5.hasClear,
47323 multiple = _props5.multiple,
47324 treeCheckable = _props5.treeCheckable;
47325
47326 if (hasClear && (!multiple || !treeCheckable)) {
47327 if (!('value' in this.props)) {
47328 this.setState({
47329 value: []
47330 });
47331 }
47332
47333 this.props.onChange(null, null);
47334 }
47335 };
47336
47337 CascaderSelect.prototype.handleRemove = function handleRemove(currentData) {
47338 var currentValue = currentData.value;
47339
47340 var value = void 0;
47341
47342 var _props6 = this.props,
47343 multiple = _props6.multiple,
47344 checkStrictly = _props6.checkStrictly,
47345 onChange = _props6.onChange;
47346
47347 if (multiple) {
47348 value = [].concat(this.state.value);
47349 value.splice(value.indexOf(currentValue), 1);
47350
47351 if (this.props.onChange) {
47352 var data = this.getData(value);
47353 var checked = false;
47354
47355 if (checkStrictly) {
47356 this.props.onChange(value, data, {
47357 checked: checked,
47358 currentData: currentData,
47359 checkedData: data
47360 });
47361 } else {
47362 var checkedValue = this.completeValue(value);
47363 var checkedData = this.getData(checkedValue);
47364 var indeterminateValue = this.getIndeterminate(value);
47365 var indeterminateData = this.getData(indeterminateValue);
47366 this.props.onChange(value, data, {
47367 checked: checked,
47368 currentData: currentData,
47369 checkedData: checkedData,
47370 indeterminateData: indeterminateData
47371 });
47372 }
47373 }
47374 } else {
47375 value = [];
47376 onChange(null, null);
47377 }
47378
47379 if (!('value' in this.props)) {
47380 this.setState({
47381 value: value
47382 });
47383 }
47384
47385 this.refreshValueDataCache(value);
47386 };
47387
47388 CascaderSelect.prototype.handleSearch = function handleSearch(searchValue) {
47389 this.setState({
47390 searchValue: searchValue
47391 });
47392
47393 this.props.onSearch && this.props.onSearch(searchValue);
47394 };
47395
47396 CascaderSelect.prototype.getPath = function getPath(pos) {
47397 var items = [];
47398
47399 var nums = pos.split('-');
47400 if (nums === 2) {
47401 items.push(this._p2n[pos]);
47402 } else {
47403 for (var i = 1; i < nums.length; i++) {
47404 var p = nums.slice(0, i + 1).join('-');
47405 items.push(this._p2n[p]);
47406 }
47407 }
47408
47409 return items;
47410 };
47411
47412 CascaderSelect.prototype.filterItems = function filterItems() {
47413 var _this10 = this;
47414
47415 var _props7 = this.props,
47416 multiple = _props7.multiple,
47417 changeOnSelect = _props7.changeOnSelect,
47418 canOnlyCheckLeaf = _props7.canOnlyCheckLeaf,
47419 filter = _props7.filter;
47420 var searchValue = this.state.searchValue;
47421
47422 var items = Object.keys(this._p2n).map(function (p) {
47423 return _this10._p2n[p];
47424 });
47425 if (!multiple && !changeOnSelect || multiple && canOnlyCheckLeaf) {
47426 items = items.filter(function (item) {
47427 return !item.children || !item.children.length;
47428 });
47429 }
47430
47431 return items.map(function (item) {
47432 return _this10.getPath(item.pos);
47433 }).filter(function (path) {
47434 return filter(searchValue, path);
47435 });
47436 };
47437
47438 CascaderSelect.prototype.renderNotFound = function renderNotFound() {
47439 var _props8 = this.props,
47440 prefix = _props8.prefix,
47441 notFoundContent = _props8.notFoundContent;
47442
47443 return _react2.default.createElement(_menu2.default, { className: prefix + 'cascader-select-not-found' }, _react2.default.createElement(_menu2.default.Item, null, notFoundContent));
47444 };
47445
47446 CascaderSelect.prototype.renderCascader = function renderCascader() {
47447 var dataSource = this.props.dataSource;
47448
47449 if (dataSource.length === 0) {
47450 return this.renderNotFound();
47451 }
47452
47453 var searchValue = this.state.searchValue;
47454
47455 var filteredPaths = [];
47456
47457 if (searchValue) {
47458 filteredPaths = this.filterItems();
47459 if (filteredPaths.length === 0) {
47460 return this.renderNotFound();
47461 }
47462 }
47463
47464 var _props9 = this.props,
47465 multiple = _props9.multiple,
47466 useVirtual = _props9.useVirtual,
47467 changeOnSelect = _props9.changeOnSelect,
47468 checkStrictly = _props9.checkStrictly,
47469 canOnlyCheckLeaf = _props9.canOnlyCheckLeaf,
47470 defaultExpandedValue = _props9.defaultExpandedValue,
47471 expandTriggerType = _props9.expandTriggerType,
47472 onExpand = _props9.onExpand,
47473 listStyle = _props9.listStyle,
47474 listClassName = _props9.listClassName,
47475 loadData = _props9.loadData,
47476 showSearch = _props9.showSearch,
47477 resultRender = _props9.resultRender,
47478 readOnly = _props9.readOnly,
47479 itemRender = _props9.itemRender,
47480 immutable = _props9.immutable,
47481 _props9$menuProps = _props9.menuProps,
47482 menuProps = _props9$menuProps === undefined ? {} : _props9$menuProps;
47483 var value = this.state.value;
47484
47485 var props = {
47486 dataSource: dataSource,
47487 value: value,
47488 multiple: multiple,
47489 useVirtual: useVirtual,
47490 canOnlySelectLeaf: !changeOnSelect,
47491 checkStrictly: checkStrictly,
47492 canOnlyCheckLeaf: canOnlyCheckLeaf,
47493 defaultExpandedValue: defaultExpandedValue,
47494 expandTriggerType: expandTriggerType,
47495 ref: this.saveCascaderRef,
47496 onExpand: onExpand,
47497 listStyle: listStyle,
47498 listClassName: listClassName,
47499 loadData: loadData,
47500 itemRender: itemRender,
47501 immutable: immutable
47502 };
47503
47504 if ('expandedValue' in this.props) {
47505 props.expandedValue = this.props.expandedValue;
47506 }
47507
47508 if (!readOnly) {
47509 props.onChange = this.handleChange;
47510 props.onSelect = this.handleSelect;
47511 }
47512 if (showSearch) {
47513 props.searchValue = searchValue;
47514 props.filteredPaths = filteredPaths;
47515 props.resultRender = resultRender;
47516 props.filteredListStyle = { height: this.cascaderHeight };
47517 }
47518
47519 return _react2.default.createElement(_cascader2.default, (0, _extends3.default)({}, props, menuProps));
47520 };
47521
47522 CascaderSelect.prototype.renderPopupContent = function renderPopupContent() {
47523 var _props10 = this.props,
47524 prefix = _props10.prefix,
47525 header = _props10.header,
47526 footer = _props10.footer;
47527
47528 return _react2.default.createElement('div', { className: prefix + 'cascader-select-dropdown' }, header, this.renderCascader(), footer);
47529 };
47530
47531 CascaderSelect.prototype.renderPreview = function renderPreview(others) {
47532 var _props11 = this.props,
47533 prefix = _props11.prefix,
47534 multiple = _props11.multiple,
47535 className = _props11.className,
47536 renderPreview = _props11.renderPreview;
47537 var value = this.state.value;
47538
47539 var previewCls = (0, _classnames2.default)(className, prefix + 'form-preview');
47540 var items = (multiple ? this.getMultipleData(value) : this.getSingleData(value)) || [];
47541
47542 if (!Array.isArray(items)) {
47543 items = [items];
47544 }
47545
47546 if (typeof renderPreview === 'function') {
47547 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(items, this.props));
47548 }
47549
47550 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), items.map(function (_ref) {
47551 var label = _ref.label;
47552 return label;
47553 }).join(', '));
47554 };
47555
47556 CascaderSelect.prototype.render = function render() {
47557 var _props12 = this.props,
47558 prefix = _props12.prefix,
47559 size = _props12.size,
47560 hasArrow = _props12.hasArrow,
47561 hasBorder = _props12.hasBorder,
47562 hasClear = _props12.hasClear,
47563 label = _props12.label,
47564 readOnly = _props12.readOnly,
47565 placeholder = _props12.placeholder,
47566 dataSource = _props12.dataSource,
47567 disabled = _props12.disabled,
47568 multiple = _props12.multiple,
47569 className = _props12.className,
47570 showSearch = _props12.showSearch,
47571 popupStyle = _props12.popupStyle,
47572 popupClassName = _props12.popupClassName,
47573 popupContainer = _props12.popupContainer,
47574 popupProps = _props12.popupProps,
47575 followTrigger = _props12.followTrigger,
47576 isPreview = _props12.isPreview,
47577 resultAutoWidth = _props12.resultAutoWidth;
47578 var _state3 = this.state,
47579 value = _state3.value,
47580 searchValue = _state3.searchValue,
47581 visible = _state3.visible;
47582
47583 var others = pickOthers(Object.keys(CascaderSelect.propTypes), this.props);
47584
47585 this.updateCache(dataSource);
47586
47587 if (isPreview) {
47588 return this.renderPreview(others);
47589 }
47590
47591 var popupContent = this.renderPopupContent();
47592
47593 var props = {
47594 prefix: prefix,
47595 className: className,
47596 size: size,
47597 placeholder: placeholder,
47598 disabled: disabled,
47599 hasArrow: hasArrow,
47600 hasBorder: hasBorder,
47601 hasClear: hasClear,
47602 label: label,
47603 readOnly: readOnly,
47604 ref: this.saveSelectRef,
47605 autoWidth: false,
47606 mode: multiple ? 'multiple' : 'single',
47607 value: multiple ? this.getMultipleData(value) : this.getSingleData(value),
47608 onChange: this.handleClear,
47609 onRemove: this.handleRemove,
47610 visible: visible,
47611 onVisibleChange: this.handleVisibleChange,
47612 showSearch: showSearch,
47613 onSearch: this.handleSearch,
47614 onKeyDown: this.handleKeyDown,
47615 popupContent: popupContent,
47616 popupStyle: popupStyle,
47617 popupClassName: popupClassName,
47618 popupContainer: popupContainer,
47619 popupProps: popupProps,
47620 followTrigger: followTrigger
47621 };
47622
47623 if (showSearch) {
47624 props.popupProps = (0, _extends3.default)({}, popupProps, {
47625 ref: this.getPopup,
47626 afterOpen: this.handleAfterOpen
47627 });
47628 props.autoWidth = resultAutoWidth && !!searchValue;
47629 }
47630
47631 return _react2.default.createElement(_select2.default, (0, _extends3.default)({}, props, others));
47632 };
47633
47634 return CascaderSelect;
47635}(_react.Component), _class.propTypes = {
47636 prefix: _propTypes2.default.string,
47637 pure: _propTypes2.default.bool,
47638 className: _propTypes2.default.string,
47639 /**
47640 * 选择框大小
47641 */
47642 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
47643 /**
47644 * 选择框占位符
47645 */
47646 placeholder: _propTypes2.default.string,
47647 /**
47648 * 是否禁用
47649 */
47650 disabled: _propTypes2.default.bool,
47651 /**
47652 * 是否有下拉箭头
47653 */
47654 hasArrow: _propTypes2.default.bool,
47655 /**
47656 * 是否有边框
47657 */
47658 hasBorder: _propTypes2.default.bool,
47659 /**
47660 * 是否有清除按钮
47661 */
47662 hasClear: _propTypes2.default.bool,
47663 /**
47664 * 自定义内联 label
47665 */
47666 label: _propTypes2.default.node,
47667 /**
47668 * 是否只读,只读模式下可以展开弹层但不能选
47669 */
47670 readOnly: _propTypes2.default.bool,
47671 /**
47672 * 数据源,结构可参考下方说明
47673 */
47674 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.object),
47675 /**
47676 * (非受控)默认值
47677 */
47678 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),
47679 /**
47680 * (受控)当前值
47681 */
47682 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),
47683 /**
47684 * 选中值改变时触发的回调函数
47685 * @param {String|Array} value 选中的值,单选时返回单个值,多选时返回数组
47686 * @param {Object|Array} data 选中的数据,包括 value 和 label,单选时返回单个值,多选时返回数组,父子节点选中关联时,同时选中,只返回父节点
47687 * @param {Object} extra 额外参数
47688 * @param {Array} extra.selectedPath 单选时选中的数据的路径
47689 * @param {Boolean} extra.checked 多选时当前的操作是选中还是取消选中
47690 * @param {Object} extra.currentData 多选时当前操作的数据
47691 * @param {Array} extra.checkedData 多选时所有被选中的数据
47692 * @param {Array} extra.indeterminateData 多选时半选的数据
47693 */
47694 onChange: _propTypes2.default.func,
47695 /**
47696 * 默认展开值,如果不设置,组件内部会根据 defaultValue/value 进行自动设置
47697 */
47698 defaultExpandedValue: _propTypes2.default.arrayOf(_propTypes2.default.string),
47699 /**
47700 * (受控)当前展开值
47701 */
47702 expandedValue: _propTypes2.default.arrayOf(_propTypes2.default.string),
47703 /**
47704 * 展开触发的方式
47705 */
47706 expandTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
47707 onExpand: _propTypes2.default.func,
47708 /**
47709 * 是否开启虚拟滚动
47710 */
47711 useVirtual: _propTypes2.default.bool,
47712 /**
47713 * 是否多选
47714 */
47715 multiple: _propTypes2.default.bool,
47716 /**
47717 * 是否选中即发生改变, 该属性仅在单选模式下有效
47718 */
47719 changeOnSelect: _propTypes2.default.bool,
47720 /**
47721 * 是否只能勾选叶子项的checkbox,该属性仅在多选模式下有效
47722 */
47723 canOnlyCheckLeaf: _propTypes2.default.bool,
47724 /**
47725 * 父子节点是否选中不关联
47726 */
47727 checkStrictly: _propTypes2.default.bool,
47728 /**
47729 * 每列列表样式对象
47730 */
47731 listStyle: _propTypes2.default.object,
47732 /**
47733 * 每列列表类名
47734 */
47735 listClassName: _propTypes2.default.string,
47736 /**
47737 * 选择框单选时展示结果的自定义渲染函数
47738 * @param {Array} label 选中路径的文本数组
47739 * @return {ReactNode} 渲染在选择框中的内容
47740 * @default 单选时:labelPath => labelPath.join(' / ');多选时:labelPath => labelPath[labelPath.length - 1]
47741 */
47742 displayRender: _propTypes2.default.func,
47743 /**
47744 * 渲染 item 内容的方法
47745 * @param {Object} item 渲染节点的item
47746 * @return {ReactNode} item node
47747 */
47748 itemRender: _propTypes2.default.func,
47749 /**
47750 * 是否显示搜索框
47751 */
47752 showSearch: _propTypes2.default.bool,
47753 /**
47754 * 自定义搜索函数
47755 * @param {String} searchValue 搜索的关键字
47756 * @param {Array} path 节点路径
47757 * @return {Boolean} 是否匹配
47758 * @default 根据路径所有节点的文本值模糊匹配
47759 */
47760 filter: _propTypes2.default.func,
47761 /**
47762 * 当搜索框值变化时回调
47763 * @param {String} value 数据
47764 * @version 1.23
47765 */
47766 onSearch: _propTypes2.default.func,
47767 /**
47768 * 搜索结果自定义渲染函数
47769 * @param {String} searchValue 搜索的关键字
47770 * @param {Array} path 匹配到的节点路径
47771 * @return {ReactNode} 渲染的内容
47772 * @default 按照节点文本 a / b / c 的模式渲染
47773 */
47774 resultRender: _propTypes2.default.func,
47775 /**
47776 * 搜索结果列表是否和选择框等宽
47777 */
47778 resultAutoWidth: _propTypes2.default.bool,
47779 /**
47780 * 无数据时显示内容
47781 */
47782 notFoundContent: _propTypes2.default.node,
47783 /**
47784 * 异步加载数据函数
47785 * @param {Object} data 当前点击异步加载的数据
47786 */
47787 loadData: _propTypes2.default.func,
47788 /**
47789 * 自定义下拉框头部
47790 */
47791 header: _propTypes2.default.node,
47792 /**
47793 * 自定义下拉框底部
47794 */
47795 footer: _propTypes2.default.node,
47796 /**
47797 * 初始下拉框是否显示
47798 */
47799 defaultVisible: _propTypes2.default.bool,
47800 /**
47801 * 当前下拉框是否显示
47802 */
47803 visible: _propTypes2.default.bool,
47804 /**
47805 * 下拉框显示或关闭时触发事件的回调函数
47806 * @param {Boolean} visible 是否显示
47807 * @param {String} type 触发显示关闭的操作类型, fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
47808 */
47809 onVisibleChange: _propTypes2.default.func,
47810 /**
47811 * 下拉框自定义样式对象
47812 */
47813 popupStyle: _propTypes2.default.object,
47814 /**
47815 * 下拉框样式自定义类名
47816 */
47817 popupClassName: _propTypes2.default.string,
47818 /**
47819 * 下拉框挂载的容器节点
47820 */
47821 popupContainer: _propTypes2.default.any,
47822 /**
47823 * 透传到 Popup 的属性对象
47824 */
47825 popupProps: _propTypes2.default.object,
47826 /**
47827 * 是否跟随滚动
47828 */
47829 followTrigger: _propTypes2.default.bool,
47830 /**
47831 * 是否为预览态
47832 */
47833 isPreview: _propTypes2.default.bool,
47834 /**
47835 * 预览态模式下渲染的内容
47836 * @param {Array<data>} value 选择值 { label: , value:}
47837 */
47838 renderPreview: _propTypes2.default.func,
47839 /**
47840 * 是否是不可变数据
47841 * @version 1.23
47842 */
47843 immutable: _propTypes2.default.bool
47844}, _class.defaultProps = {
47845 prefix: 'next-',
47846 pure: false,
47847 size: 'medium',
47848 disabled: false,
47849 hasArrow: true,
47850 hasBorder: true,
47851 hasClear: false,
47852 dataSource: [],
47853 defaultValue: null,
47854 expandTriggerType: 'click',
47855 onExpand: function onExpand() {},
47856 useVirtual: false,
47857 multiple: false,
47858 changeOnSelect: false,
47859 canOnlyCheckLeaf: false,
47860 checkStrictly: false,
47861 showSearch: false,
47862 filter: function filter(searchValue, path) {
47863 return path.some(function (item) {
47864 return String(item.label).toLowerCase().indexOf(String(searchValue).toLowerCase()) > -1;
47865 });
47866 },
47867 resultRender: function resultRender(searchValue, path) {
47868 var parts = [];
47869 path.forEach(function (item, i) {
47870 var reExp = searchValue.replace(/[-.+*?^$()[\]{}|\\]/g, function (v) {
47871 return '\\' + v;
47872 });
47873
47874 var re = new RegExp(reExp, 'gi');
47875 var others = item.label.split(re);
47876 var matches = item.label.match(re);
47877
47878 others.forEach(function (other, j) {
47879 if (other) {
47880 parts.push(other);
47881 }
47882 if (j < others.length - 1) {
47883 parts.push(_react2.default.createElement('em', { key: i + '-' + j }, matches[j]));
47884 }
47885 });
47886 if (i < path.length - 1) {
47887 parts.push(' / ');
47888 }
47889 });
47890 return _react2.default.createElement('span', null, parts);
47891 },
47892 resultAutoWidth: true,
47893 notFoundContent: 'Not Found',
47894 defaultVisible: false,
47895 onVisibleChange: function onVisibleChange() {},
47896 popupProps: {},
47897 immutable: false
47898}, _temp);
47899CascaderSelect.displayName = 'CascaderSelect';
47900exports.default = (0, _reactLifecyclesCompat.polyfill)(CascaderSelect);
47901module.exports = exports['default'];
47902
47903/***/ }),
47904/* 331 */
47905/***/ (function(module, exports, __webpack_require__) {
47906
47907"use strict";
47908
47909
47910exports.__esModule = true;
47911
47912var _collapse = __webpack_require__(332);
47913
47914var _collapse2 = _interopRequireDefault(_collapse);
47915
47916var _panel = __webpack_require__(168);
47917
47918var _panel2 = _interopRequireDefault(_panel);
47919
47920function _interopRequireDefault(obj) {
47921 return obj && obj.__esModule ? obj : { default: obj };
47922}
47923
47924_collapse2.default.Panel = _panel2.default;
47925
47926exports.default = _collapse2.default;
47927module.exports = exports['default'];
47928
47929/***/ }),
47930/* 332 */
47931/***/ (function(module, exports, __webpack_require__) {
47932
47933"use strict";
47934
47935
47936exports.__esModule = true;
47937
47938var _extends2 = __webpack_require__(1);
47939
47940var _extends3 = _interopRequireDefault(_extends2);
47941
47942var _classCallCheck2 = __webpack_require__(2);
47943
47944var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
47945
47946var _possibleConstructorReturn2 = __webpack_require__(3);
47947
47948var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
47949
47950var _inherits2 = __webpack_require__(4);
47951
47952var _inherits3 = _interopRequireDefault(_inherits2);
47953
47954var _class, _temp;
47955
47956var _react = __webpack_require__(0);
47957
47958var _react2 = _interopRequireDefault(_react);
47959
47960var _propTypes = __webpack_require__(5);
47961
47962var _propTypes2 = _interopRequireDefault(_propTypes);
47963
47964var _classnames = __webpack_require__(7);
47965
47966var _classnames2 = _interopRequireDefault(_classnames);
47967
47968var _reactLifecyclesCompat = __webpack_require__(10);
47969
47970var _configProvider = __webpack_require__(9);
47971
47972var _configProvider2 = _interopRequireDefault(_configProvider);
47973
47974var _util = __webpack_require__(6);
47975
47976var _panel = __webpack_require__(168);
47977
47978var _panel2 = _interopRequireDefault(_panel);
47979
47980function _interopRequireDefault(obj) {
47981 return obj && obj.__esModule ? obj : { default: obj };
47982}
47983
47984/** Collapse */
47985var Collapse = (_temp = _class = function (_React$Component) {
47986 (0, _inherits3.default)(Collapse, _React$Component);
47987
47988 function Collapse(props) {
47989 (0, _classCallCheck3.default)(this, Collapse);
47990
47991 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
47992
47993 var expandedKeys = void 0;
47994 if ('expandedKeys' in props) {
47995 expandedKeys = props.expandedKeys;
47996 } else {
47997 expandedKeys = props.defaultExpandedKeys;
47998 }
47999
48000 _this.state = {
48001 expandedKeys: typeof expandedKeys === 'undefined' ? [] : expandedKeys
48002 };
48003 return _this;
48004 }
48005
48006 Collapse.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
48007 if ('expandedKeys' in props) {
48008 return {
48009 expandedKeys: typeof props.expandedKeys === 'undefined' ? [] : props.expandedKeys
48010 };
48011 }
48012 return null;
48013 };
48014
48015 Collapse.prototype.onItemClick = function onItemClick(key) {
48016 var expandedKeys = this.state.expandedKeys;
48017 if (this.props.accordion) {
48018 expandedKeys = String(expandedKeys[0]) === String(key) ? [] : [key];
48019 } else {
48020 expandedKeys = [].concat(expandedKeys);
48021 var stringKey = String(key);
48022 var index = expandedKeys.findIndex(function (k) {
48023 return String(k) === stringKey;
48024 });
48025 var isExpanded = index > -1;
48026 if (isExpanded) {
48027 expandedKeys.splice(index, 1);
48028 } else {
48029 expandedKeys.push(key);
48030 }
48031 }
48032 this.setExpandedKey(expandedKeys);
48033 };
48034
48035 Collapse.prototype.genratePanelId = function genratePanelId(itemId, index) {
48036 var collapseId = this.props.id;
48037
48038 var id = void 0;
48039 if (itemId) {
48040 // 优先用 item自带的id
48041 id = itemId;
48042 } else if (collapseId) {
48043 // 其次用 collapseId 和 index 生成id
48044 id = collapseId + '-panel-' + index;
48045 }
48046 return id;
48047 };
48048
48049 Collapse.prototype.getProps = function getProps(item, index, key) {
48050 var _this2 = this;
48051
48052 var expandedKeys = this.state.expandedKeys;
48053 var title = item.title;
48054
48055 var disabled = this.props.disabled;
48056
48057 if (!disabled) {
48058 disabled = item.disabled;
48059 }
48060
48061 var isExpanded = false;
48062
48063 if (this.props.accordion) {
48064 isExpanded = String(expandedKeys[0]) === String(key);
48065 } else {
48066 isExpanded = expandedKeys.some(function (expandedKey) {
48067 if (expandedKey === null || expandedKey === undefined || key === null || key === undefined) {
48068 return false;
48069 }
48070
48071 if (expandedKey === key || expandedKey.toString() === key.toString()) {
48072 return true;
48073 }
48074 return false;
48075 });
48076 }
48077
48078 var id = this.genratePanelId(item.id, index);
48079 return {
48080 key: key,
48081 title: title,
48082 isExpanded: isExpanded,
48083 disabled: disabled,
48084 id: id,
48085 onClick: disabled ? null : function () {
48086 _this2.onItemClick(key);
48087 if ('onClick' in item) {
48088 item.onClick(key);
48089 }
48090 }
48091 };
48092 };
48093
48094 Collapse.prototype.getItemsByDataSource = function getItemsByDataSource() {
48095 var _this3 = this;
48096
48097 var props = this.props;
48098 var dataSource = props.dataSource;
48099 // 是否有dataSource.item传入过key
48100
48101 var hasKeys = dataSource.some(function (item) {
48102 return 'key' in item;
48103 });
48104
48105 return dataSource.map(function (item, index) {
48106 // 传入过key就用item.key 没传入则统一使用index为key
48107 var key = hasKeys ? item.key : '' + index;
48108 return _react2.default.createElement(_panel2.default, (0, _extends3.default)({}, _this3.getProps(item, index, key), { key: key }), item.content);
48109 });
48110 };
48111
48112 Collapse.prototype.getItemsByChildren = function getItemsByChildren() {
48113 var _this4 = this;
48114
48115 // 是否有child传入过key
48116 var allKeys = _react2.default.Children.map(this.props.children, function (child) {
48117 return child && child.key;
48118 });
48119 var hasKeys = Boolean(allKeys && allKeys.length);
48120
48121 return _react2.default.Children.map(this.props.children, function (child, index) {
48122 if (child && typeof child.type === 'function' && child.type.isNextPanel) {
48123 // 传入过key就用child.key 没传入则统一使用index为key
48124 var key = hasKeys ? child.key : '' + index;
48125 return _react2.default.cloneElement(child, _this4.getProps(child.props, index, key));
48126 } else {
48127 return child;
48128 }
48129 });
48130 };
48131
48132 Collapse.prototype.setExpandedKey = function setExpandedKey(expandedKeys) {
48133 if (!('expandedKeys' in this.props)) {
48134 this.setState({ expandedKeys: expandedKeys });
48135 }
48136 this.props.onExpand(this.props.accordion ? expandedKeys[0] : expandedKeys);
48137 };
48138
48139 Collapse.prototype.render = function render() {
48140 var _classNames;
48141
48142 var _props = this.props,
48143 prefix = _props.prefix,
48144 className = _props.className,
48145 style = _props.style,
48146 disabled = _props.disabled,
48147 dataSource = _props.dataSource,
48148 id = _props.id,
48149 rtl = _props.rtl;
48150
48151 var collapseClassName = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'collapse'] = true, _classNames[prefix + 'collapse-disabled'] = disabled, _classNames[className] = Boolean(className), _classNames));
48152
48153 var others = _util.obj.pickOthers(Collapse.propTypes, this.props);
48154 return _react2.default.createElement('div', (0, _extends3.default)({
48155 id: id,
48156 className: collapseClassName,
48157 style: style
48158 }, others, {
48159 role: 'presentation',
48160 dir: rtl ? 'rtl' : undefined
48161 }), dataSource ? this.getItemsByDataSource() : this.getItemsByChildren());
48162 };
48163
48164 return Collapse;
48165}(_react2.default.Component), _class.propTypes = {
48166 /**
48167 * 样式前缀
48168 */
48169 prefix: _propTypes2.default.string,
48170 /**
48171 * 组件接受行内样式
48172 */
48173 style: _propTypes2.default.object,
48174 /**
48175 * 使用数据模型构建
48176 */
48177 dataSource: _propTypes2.default.array,
48178 /**
48179 * 默认展开keys
48180 */
48181 defaultExpandedKeys: _propTypes2.default.array,
48182 /**
48183 * 受控展开keys
48184 */
48185 expandedKeys: _propTypes2.default.array,
48186 /**
48187 * 展开状态发升变化时候的回调
48188 */
48189 onExpand: _propTypes2.default.func,
48190 /**
48191 * 所有禁用
48192 */
48193 disabled: _propTypes2.default.bool,
48194 /**
48195 * 扩展class
48196 */
48197 className: _propTypes2.default.string,
48198 /**
48199 * 手风琴模式,一次只能打开一个
48200 */
48201 accordion: _propTypes2.default.bool,
48202 children: _propTypes2.default.node,
48203 id: _propTypes2.default.string,
48204 rtl: _propTypes2.default.bool
48205}, _class.defaultProps = {
48206 accordion: false,
48207 prefix: 'next-',
48208 onExpand: _util.func.noop
48209}, _class.contextTypes = {
48210 prefix: _propTypes2.default.string
48211}, _temp);
48212Collapse.displayName = 'Collapse';
48213exports.default = (0, _reactLifecyclesCompat.polyfill)(_configProvider2.default.config(Collapse));
48214module.exports = exports['default'];
48215
48216/***/ }),
48217/* 333 */
48218/***/ (function(module, exports, __webpack_require__) {
48219
48220"use strict";
48221
48222
48223exports.__esModule = true;
48224
48225var _objectWithoutProperties2 = __webpack_require__(8);
48226
48227var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
48228
48229var _configProvider = __webpack_require__(9);
48230
48231var _configProvider2 = _interopRequireDefault(_configProvider);
48232
48233var _datePicker = __webpack_require__(334);
48234
48235var _datePicker2 = _interopRequireDefault(_datePicker);
48236
48237var _rangePicker = __webpack_require__(336);
48238
48239var _rangePicker2 = _interopRequireDefault(_rangePicker);
48240
48241var _monthPicker = __webpack_require__(337);
48242
48243var _monthPicker2 = _interopRequireDefault(_monthPicker);
48244
48245var _yearPicker = __webpack_require__(338);
48246
48247var _yearPicker2 = _interopRequireDefault(_yearPicker);
48248
48249var _weekPicker = __webpack_require__(339);
48250
48251var _weekPicker2 = _interopRequireDefault(_weekPicker);
48252
48253function _interopRequireDefault(obj) {
48254 return obj && obj.__esModule ? obj : { default: obj };
48255}
48256
48257/* istanbul ignore next */
48258var transform = function transform(props, deprecated) {
48259 var open = props.open,
48260 defaultOpen = props.defaultOpen,
48261 onOpenChange = props.onOpenChange,
48262 others = (0, _objectWithoutProperties3.default)(props, ['open', 'defaultOpen', 'onOpenChange']);
48263
48264 var newProps = others;
48265
48266 delete newProps.formater;
48267
48268 if ('open' in props) {
48269 deprecated('open', 'visible', 'DatePicker');
48270
48271 newProps.visible = open;
48272
48273 if ('visible' in props) {
48274 newProps.visible = props.visible;
48275 }
48276 }
48277
48278 if ('defaultOpen' in props) {
48279 deprecated('defaultOpen', 'defaultVisible', 'DatePicker');
48280
48281 newProps.defaultVisible = defaultOpen;
48282
48283 if ('defaultVisible' in props) {
48284 newProps.defaultVisible = props.defaultVisible;
48285 }
48286 }
48287
48288 if ('onOpenChange' in props && typeof onOpenChange === 'function') {
48289 deprecated('onOpenChange', 'onVisibleChange', 'DatePicker');
48290
48291 newProps.onVisibleChange = onOpenChange;
48292
48293 if ('onVisibleChange' in props) {
48294 newProps.onVisibleChange = props.onVisibleChange;
48295 }
48296 }
48297
48298 if ('formater' in props) {
48299 deprecated('formater', 'format showTime.format', 'DatePicker');
48300 }
48301
48302 if ('format' in props && typeof props.format !== 'string') {
48303 deprecated('format', 'format: PropTypes.string,', 'DatePicker');
48304 }
48305
48306 if ('ranges' in props) {
48307 deprecated('ranges', 'footerRender: PropTypes.func', 'RangePicker');
48308 }
48309
48310 return newProps;
48311};
48312
48313_datePicker2.default.RangePicker = _configProvider2.default.config(_rangePicker2.default, {
48314 componentName: 'DatePicker',
48315 transform: transform
48316});
48317_datePicker2.default.MonthPicker = _configProvider2.default.config(_monthPicker2.default, {
48318 componentName: 'DatePicker',
48319 transform: transform
48320});
48321_datePicker2.default.YearPicker = _configProvider2.default.config(_yearPicker2.default, {
48322 componentName: 'DatePicker',
48323 transform: transform
48324});
48325
48326_datePicker2.default.WeekPicker = _configProvider2.default.config(_weekPicker2.default, {
48327 componentName: 'DatePicker'
48328});
48329
48330exports.default = _configProvider2.default.config(_datePicker2.default, {
48331 transform: transform
48332});
48333module.exports = exports['default'];
48334
48335/***/ }),
48336/* 334 */
48337/***/ (function(module, exports, __webpack_require__) {
48338
48339"use strict";
48340
48341
48342exports.__esModule = true;
48343
48344var _typeof2 = __webpack_require__(14);
48345
48346var _typeof3 = _interopRequireDefault(_typeof2);
48347
48348var _objectWithoutProperties2 = __webpack_require__(8);
48349
48350var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
48351
48352var _extends2 = __webpack_require__(1);
48353
48354var _extends3 = _interopRequireDefault(_extends2);
48355
48356var _classCallCheck2 = __webpack_require__(2);
48357
48358var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
48359
48360var _possibleConstructorReturn2 = __webpack_require__(3);
48361
48362var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
48363
48364var _inherits2 = __webpack_require__(4);
48365
48366var _inherits3 = _interopRequireDefault(_inherits2);
48367
48368var _class, _temp, _initialiseProps;
48369
48370var _react = __webpack_require__(0);
48371
48372var _react2 = _interopRequireDefault(_react);
48373
48374var _propTypes = __webpack_require__(5);
48375
48376var _propTypes2 = _interopRequireDefault(_propTypes);
48377
48378var _reactLifecyclesCompat = __webpack_require__(10);
48379
48380var _classnames6 = __webpack_require__(7);
48381
48382var _classnames7 = _interopRequireDefault(_classnames6);
48383
48384var _moment = __webpack_require__(19);
48385
48386var _moment2 = _interopRequireDefault(_moment);
48387
48388var _configProvider = __webpack_require__(9);
48389
48390var _configProvider2 = _interopRequireDefault(_configProvider);
48391
48392var _overlay = __webpack_require__(15);
48393
48394var _overlay2 = _interopRequireDefault(_overlay);
48395
48396var _input = __webpack_require__(18);
48397
48398var _input2 = _interopRequireDefault(_input);
48399
48400var _icon = __webpack_require__(11);
48401
48402var _icon2 = _interopRequireDefault(_icon);
48403
48404var _calendar = __webpack_require__(39);
48405
48406var _calendar2 = _interopRequireDefault(_calendar);
48407
48408var _panel = __webpack_require__(91);
48409
48410var _panel2 = _interopRequireDefault(_panel);
48411
48412var _zhCn = __webpack_require__(13);
48413
48414var _zhCn2 = _interopRequireDefault(_zhCn);
48415
48416var _util = __webpack_require__(6);
48417
48418var _util2 = __webpack_require__(30);
48419
48420var _panelFooter = __webpack_require__(169);
48421
48422var _panelFooter2 = _interopRequireDefault(_panelFooter);
48423
48424function _interopRequireDefault(obj) {
48425 return obj && obj.__esModule ? obj : { default: obj };
48426}
48427
48428var Popup = _overlay2.default.Popup;
48429
48430/**
48431 * DatePicker
48432 */
48433
48434var DatePicker = (_temp = _class = function (_Component) {
48435 (0, _inherits3.default)(DatePicker, _Component);
48436
48437 function DatePicker(props, context) {
48438 (0, _classCallCheck3.default)(this, DatePicker);
48439
48440 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
48441
48442 _initialiseProps.call(_this);
48443
48444 var _getDateTimeFormat = (0, _util2.getDateTimeFormat)(props.format, props.showTime),
48445 format = _getDateTimeFormat.format,
48446 timeFormat = _getDateTimeFormat.timeFormat,
48447 dateTimeFormat = _getDateTimeFormat.dateTimeFormat;
48448
48449 _this.state = {
48450 value: (0, _util2.formatDateValue)(props.defaultValue, dateTimeFormat),
48451 dateInputStr: '',
48452 timeInputStr: '',
48453 inputing: false, // 当前是否处于输入状态
48454 visible: props.defaultVisible,
48455 inputAsString: typeof props.defaultValue === 'string',
48456 panel: _util2.PANEL.DATE,
48457 format: format,
48458 timeFormat: timeFormat,
48459 dateTimeFormat: dateTimeFormat
48460 };
48461 return _this;
48462 }
48463
48464 DatePicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
48465 var formatStates = (0, _util2.getDateTimeFormat)(props.format, props.showTime);
48466 var states = {};
48467
48468 if ('value' in props) {
48469 states.value = (0, _util2.formatDateValue)(props.value, formatStates.dateTimeFormat);
48470 states.inputAsString = typeof props.value === 'string';
48471 }
48472
48473 if ('visible' in props) {
48474 states.visible = props.visible;
48475 }
48476
48477 return (0, _extends3.default)({}, states, formatStates);
48478 };
48479
48480 DatePicker.prototype.renderPreview = function renderPreview(others) {
48481 var _props = this.props,
48482 prefix = _props.prefix,
48483 className = _props.className,
48484 renderPreview = _props.renderPreview;
48485 var _state = this.state,
48486 value = _state.value,
48487 dateTimeFormat = _state.dateTimeFormat;
48488
48489 var previewCls = (0, _classnames7.default)(className, prefix + 'form-preview');
48490
48491 var label = value ? value.format(dateTimeFormat) : '';
48492
48493 if (typeof renderPreview === 'function') {
48494 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
48495 }
48496
48497 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
48498 };
48499
48500 DatePicker.prototype.render = function render() {
48501 var _classnames, _classnames2, _classnames3, _classnames4, _PANEL$DATE$PANEL$TIM;
48502
48503 var _props2 = this.props,
48504 prefix = _props2.prefix,
48505 rtl = _props2.rtl,
48506 locale = _props2.locale,
48507 label = _props2.label,
48508 state = _props2.state,
48509 defaultVisibleMonth = _props2.defaultVisibleMonth,
48510 onVisibleMonthChange = _props2.onVisibleMonthChange,
48511 showTime = _props2.showTime,
48512 disabledDate = _props2.disabledDate,
48513 footerRender = _props2.footerRender,
48514 placeholder = _props2.placeholder,
48515 size = _props2.size,
48516 disabled = _props2.disabled,
48517 hasClear = _props2.hasClear,
48518 popupTriggerType = _props2.popupTriggerType,
48519 popupAlign = _props2.popupAlign,
48520 popupContainer = _props2.popupContainer,
48521 popupStyle = _props2.popupStyle,
48522 popupClassName = _props2.popupClassName,
48523 popupProps = _props2.popupProps,
48524 popupComponent = _props2.popupComponent,
48525 popupContent = _props2.popupContent,
48526 followTrigger = _props2.followTrigger,
48527 className = _props2.className,
48528 inputProps = _props2.inputProps,
48529 dateCellRender = _props2.dateCellRender,
48530 monthCellRender = _props2.monthCellRender,
48531 yearCellRender = _props2.yearCellRender,
48532 dateInputAriaLabel = _props2.dateInputAriaLabel,
48533 timeInputAriaLabel = _props2.timeInputAriaLabel,
48534 isPreview = _props2.isPreview,
48535 disableChangeMode = _props2.disableChangeMode,
48536 yearRange = _props2.yearRange,
48537 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']);
48538 var _state2 = this.state,
48539 visible = _state2.visible,
48540 value = _state2.value,
48541 dateInputStr = _state2.dateInputStr,
48542 timeInputStr = _state2.timeInputStr,
48543 panel = _state2.panel,
48544 inputing = _state2.inputing,
48545 format = _state2.format,
48546 timeFormat = _state2.timeFormat,
48547 dateTimeFormat = _state2.dateTimeFormat;
48548
48549 var datePickerCls = (0, _classnames7.default)((_classnames = {}, _classnames[prefix + 'date-picker'] = true, _classnames), className);
48550
48551 var triggerInputCls = (0, _classnames7.default)((_classnames2 = {}, _classnames2[prefix + 'date-picker-input'] = true, _classnames2[prefix + 'error'] = false, _classnames2));
48552
48553 var panelBodyClassName = (0, _classnames7.default)((_classnames3 = {}, _classnames3[prefix + 'date-picker-body'] = true, _classnames3[prefix + 'date-picker-body-show-time'] = showTime, _classnames3));
48554
48555 var panelDateInputCls = (0, _classnames7.default)((_classnames4 = {}, _classnames4[prefix + 'date-picker-panel-input'] = true, _classnames4[prefix + 'focus'] = panel === _util2.PANEL.DATE, _classnames4));
48556
48557 if (rtl) {
48558 others.dir = 'rtl';
48559 }
48560
48561 if (isPreview) {
48562 return this.renderPreview(_util.obj.pickOthers(others, DatePicker.PropTypes));
48563 }
48564
48565 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
48566 size: size,
48567 disabled: disabled,
48568 onChange: this.onDateInputChange,
48569 onBlur: this.onDateInputBlur,
48570 onPressEnter: this.onDateInputBlur,
48571 onKeyDown: this.onKeyDown
48572 });
48573
48574 var dateInputValue = inputing === 'date' ? dateInputStr : value && value.format(format) || '';
48575 var triggerInputValue = dateInputValue;
48576
48577 var dateInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
48578 'aria-label': dateInputAriaLabel,
48579 value: dateInputValue,
48580 onFocus: this.onFoucsDateInput,
48581 placeholder: format,
48582 className: panelDateInputCls
48583 }));
48584
48585 var datePanel = _react2.default.createElement(_calendar2.default, {
48586 shape: 'panel',
48587 value: value,
48588 format: format,
48589 dateCellRender: dateCellRender,
48590 monthCellRender: monthCellRender,
48591 yearCellRender: yearCellRender,
48592 onSelect: this.onSelectCalendarPanel,
48593 defaultVisibleMonth: defaultVisibleMonth,
48594 onVisibleMonthChange: onVisibleMonthChange,
48595 disabledDate: disabledDate,
48596 disableChangeMode: disableChangeMode,
48597 yearRange: yearRange
48598 });
48599
48600 var panelFooter = footerRender();
48601
48602 var timeInput = null;
48603 var timePanel = null;
48604
48605 if (showTime) {
48606 var _classnames5;
48607
48608 var timeInputValue = inputing === 'time' ? timeInputStr : value && value.format(timeFormat) || '';
48609 triggerInputValue = value && value.format(dateTimeFormat) || '';
48610
48611 var timePanelProps = (typeof showTime === 'undefined' ? 'undefined' : (0, _typeof3.default)(showTime)) === 'object' ? showTime : {};
48612
48613 var showSecond = timeFormat.indexOf('s') > -1;
48614 var showMinute = timeFormat.indexOf('m') > -1;
48615
48616 var panelTimeInputCls = (0, _classnames7.default)((_classnames5 = {}, _classnames5[prefix + 'date-picker-panel-input'] = true, _classnames5[prefix + 'focus'] = panel === _util2.PANEL.TIME, _classnames5));
48617
48618 timeInput = _react2.default.createElement(_input2.default, {
48619 placeholder: timeFormat,
48620 value: timeInputValue,
48621 size: size,
48622 'aria-label': timeInputAriaLabel,
48623 disabled: disabled || !value,
48624 onChange: this.onTimeInputChange,
48625 onFocus: this.onFoucsTimeInput,
48626 onBlur: this.onTimeInputBlur,
48627 onPressEnter: this.onTimeInputBlur,
48628 onKeyDown: this.onTimeKeyDown,
48629 className: panelTimeInputCls
48630 });
48631
48632 timePanel = _react2.default.createElement(_panel2.default, (0, _extends3.default)({}, timePanelProps, {
48633 locale: locale,
48634 className: prefix + 'date-picker-panel-time',
48635 showSecond: showSecond,
48636 showMinute: showMinute,
48637 disabled: disabled,
48638 prefix: prefix,
48639 value: value,
48640 onSelect: this.onSelectTimePanel
48641 }));
48642
48643 panelFooter = panelFooter || _react2.default.createElement(_panelFooter2.default, {
48644 prefix: prefix,
48645 locale: locale,
48646 value: value,
48647 panel: panel,
48648 onPanelChange: this.changePanel,
48649 onOk: this.onOk
48650 });
48651 }
48652
48653 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];
48654
48655 var allowClear = value && hasClear;
48656 var trigger = _react2.default.createElement('div', { className: prefix + 'date-picker-trigger' }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
48657 label: label,
48658 state: state,
48659 value: triggerInputValue,
48660 role: 'combobox',
48661 'aria-expanded': visible,
48662 readOnly: true,
48663 placeholder: placeholder || (showTime ? locale.datetimePlaceholder : locale.placeholder),
48664 hint: _react2.default.createElement(_icon2.default, { type: 'calendar', className: prefix + 'date-picker-symbol-calendar-icon' }),
48665 hasClear: allowClear,
48666 className: triggerInputCls
48667 })));
48668 var PopupComponent = popupComponent ? popupComponent : Popup;
48669
48670 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(DatePicker.propTypes, others), { className: datePickerCls }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
48671 autoFocus: true,
48672 align: popupAlign
48673 }, popupProps, {
48674 followTrigger: followTrigger,
48675 disabled: disabled,
48676 visible: visible,
48677 onVisibleChange: this.onVisibleChange,
48678 triggerType: popupTriggerType,
48679 container: popupContainer,
48680 style: popupStyle,
48681 className: popupClassName,
48682 trigger: trigger
48683 }), 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)));
48684 };
48685
48686 return DatePicker;
48687}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
48688 prefix: _propTypes2.default.string,
48689 rtl: _propTypes2.default.bool,
48690 /**
48691 * 输入框内置标签
48692 */
48693 label: _propTypes2.default.node,
48694 /**
48695 * 输入框状态
48696 */
48697 state: _propTypes2.default.oneOf(['success', 'loading', 'error']),
48698 /**
48699 * 输入提示
48700 */
48701 placeholder: _propTypes2.default.string,
48702 /**
48703 * 默认展现的月
48704 * @return {MomentObject} 返回包含指定月份的 moment 对象实例
48705 */
48706 defaultVisibleMonth: _propTypes2.default.func,
48707 onVisibleMonthChange: _propTypes2.default.func,
48708 /**
48709 * 日期值(受控)moment 对象
48710 */
48711 value: _util2.checkDateValue,
48712 /**
48713 * 初始日期值,moment 对象
48714 */
48715 defaultValue: _util2.checkDateValue,
48716 /**
48717 * 日期值的格式(用于限定用户输入和展示)
48718 */
48719 format: _propTypes2.default.string,
48720 /**
48721 * 是否使用时间控件,传入 TimePicker 的属性 { defaultValue, format, ... }
48722 */
48723 showTime: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
48724 /**
48725 * 每次选择日期时是否重置时间(仅在 showTime 开启时有效)
48726 */
48727 resetTime: _propTypes2.default.bool,
48728 /**
48729 * 禁用日期函数
48730 * @param {MomentObject} 日期值
48731 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
48732 * @return {Boolean} 是否禁用
48733 */
48734 disabledDate: _propTypes2.default.func,
48735 /**
48736 * 自定义面板页脚
48737 * @return {Node} 自定义的面板页脚组件
48738 */
48739 footerRender: _propTypes2.default.func,
48740 /**
48741 * 日期值改变时的回调
48742 * @param {MomentObject|String} value 日期值
48743 */
48744 onChange: _propTypes2.default.func,
48745 /**
48746 * 点击确认按钮时的回调
48747 * @param {MomentObject|String} value 日期值
48748 */
48749 onOk: _propTypes2.default.func,
48750 /**
48751 * 输入框尺寸
48752 */
48753 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
48754 /**
48755 * 是否禁用
48756 */
48757 disabled: _propTypes2.default.bool,
48758 /**
48759 * 是否显示清空按钮
48760 */
48761 hasClear: _propTypes2.default.bool,
48762 /**
48763 * 弹层显示状态
48764 */
48765 visible: _propTypes2.default.bool,
48766 /**
48767 * 弹层默认是否显示
48768 */
48769 defaultVisible: _propTypes2.default.bool,
48770 /**
48771 * 弹层展示状态变化时的回调
48772 * @param {Boolean} visible 弹层是否显示
48773 * @param {String} type 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; okBtnClick 表示由确认按钮触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
48774 */
48775 onVisibleChange: _propTypes2.default.func,
48776 /**
48777 * 弹层触发方式
48778 */
48779 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
48780 /**
48781 * 弹层对齐方式,具体含义见 OverLay文档
48782 */
48783 popupAlign: _propTypes2.default.string,
48784 /**
48785 * 弹层容器
48786 * @param {Element} target 目标元素
48787 * @return {Element} 弹层的容器元素
48788 */
48789 popupContainer: _propTypes2.default.any,
48790 /**
48791 * 弹层自定义样式
48792 */
48793 popupStyle: _propTypes2.default.object,
48794 /**
48795 * 弹层自定义样式类
48796 */
48797 popupClassName: _propTypes2.default.string,
48798 /**
48799 * 弹层其他属性
48800 */
48801 popupProps: _propTypes2.default.object,
48802 /**
48803 * 是否跟随滚动
48804 */
48805 followTrigger: _propTypes2.default.bool,
48806 /**
48807 * 输入框其他属性
48808 */
48809 inputProps: _propTypes2.default.object,
48810 /**
48811 * 自定义日期渲染函数
48812 * @param {Object} value 日期值(moment对象)
48813 * @returns {ReactNode}
48814 */
48815 dateCellRender: _propTypes2.default.func,
48816 /**
48817 * 自定义月份渲染函数
48818 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
48819 * @returns {ReactNode}
48820 */
48821 monthCellRender: _propTypes2.default.func,
48822 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
48823 /**
48824 * 日期输入框的 aria-label 属性
48825 */
48826 dateInputAriaLabel: _propTypes2.default.string,
48827 /**
48828 * 时间输入框的 aria-label 属性
48829 */
48830 timeInputAriaLabel: _propTypes2.default.string,
48831 /**
48832 * 是否为预览态
48833 */
48834 isPreview: _propTypes2.default.bool,
48835 /**
48836 * 预览态模式下渲染的内容
48837 * @param {MomentObject} value 日期
48838 */
48839 renderPreview: _propTypes2.default.func,
48840 locale: _propTypes2.default.object,
48841 className: _propTypes2.default.string,
48842 name: _propTypes2.default.string,
48843 popupComponent: _propTypes2.default.elementType,
48844 popupContent: _propTypes2.default.node,
48845 disableChangeMode: _propTypes2.default.bool,
48846 yearRange: _propTypes2.default.arrayOf(_propTypes2.default.number)
48847}), _class.defaultProps = {
48848 prefix: 'next-',
48849 rtl: false,
48850 format: 'YYYY-MM-DD',
48851 size: 'medium',
48852 showTime: false,
48853 resetTime: false,
48854 disabledDate: function disabledDate() {
48855 return false;
48856 },
48857 footerRender: function footerRender() {
48858 return null;
48859 },
48860 hasClear: true,
48861 popupTriggerType: 'click',
48862 popupAlign: 'tl tl',
48863 locale: _zhCn2.default.DatePicker,
48864 defaultVisible: false,
48865 onChange: _util.func.noop,
48866 onVisibleChange: _util.func.noop,
48867 onOk: _util.func.noop
48868}, _initialiseProps = function _initialiseProps() {
48869 var _this2 = this;
48870
48871 this.onValueChange = function (newValue) {
48872 var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'onChange';
48873
48874 var ret = _this2.state.inputAsString && newValue ? newValue.format(_this2.state.dateTimeFormat) : newValue;
48875 _this2.props[handler](ret);
48876 };
48877
48878 this.onSelectCalendarPanel = function (value) {
48879 var _props3 = _this2.props,
48880 showTime = _props3.showTime,
48881 resetTime = _props3.resetTime;
48882
48883 var prevValue = _this2.state.value;
48884 var newValue = value;
48885 if (showTime) {
48886 if (!prevValue) {
48887 // 第一次选择日期值时,如果设置了默认时间,则使用该默认时间
48888 if (showTime.defaultValue) {
48889 var defaultTimeValue = (0, _util2.formatDateValue)(showTime.defaultValue, _this2.state.timeFormat);
48890 newValue = (0, _util2.resetValueTime)(value, defaultTimeValue);
48891 }
48892 } else if (!resetTime) {
48893 // 非第一选择日期,如果开启了 resetTime 属性,则记住之前选择的时间值
48894 newValue = (0, _util2.resetValueTime)(value, prevValue);
48895 }
48896 }
48897
48898 _this2.handleChange(newValue, prevValue, { inputing: false });
48899
48900 if (!showTime) {
48901 _this2.onVisibleChange(false, 'calendarSelect');
48902 }
48903 };
48904
48905 this.onSelectTimePanel = function (value) {
48906 _this2.handleChange(value, _this2.state.value, { inputing: false });
48907 };
48908
48909 this.clearValue = function () {
48910 _this2.setState({
48911 dateInputStr: '',
48912 timeInputStr: ''
48913 });
48914
48915 _this2.handleChange(null, _this2.state.value, { inputing: false });
48916 };
48917
48918 this.onDateInputChange = function (inputStr, e, eventType) {
48919 if (eventType === 'clear' || !inputStr) {
48920 e.stopPropagation();
48921 _this2.clearValue();
48922 } else {
48923 _this2.setState({
48924 dateInputStr: inputStr,
48925 inputing: 'date'
48926 });
48927 }
48928 };
48929
48930 this.onTimeInputChange = function (inputStr) {
48931 _this2.setState({
48932 timeInputStr: inputStr,
48933 inputing: 'time'
48934 });
48935 };
48936
48937 this.onDateInputBlur = function () {
48938 var _state3 = _this2.state,
48939 dateInputStr = _state3.dateInputStr,
48940 value = _state3.value,
48941 format = _state3.format;
48942 var resetTime = _this2.props.resetTime;
48943
48944 if (dateInputStr) {
48945 var disabledDate = _this2.props.disabledDate;
48946
48947 var parsed = (0, _moment2.default)(dateInputStr, format, true);
48948
48949 _this2.setState({
48950 dateInputStr: '',
48951 inputing: false
48952 });
48953 if (parsed.isValid() && !disabledDate(parsed, 'date')) {
48954 parsed = resetTime ? parsed : (0, _util2.resetValueTime)(parsed, value);
48955 _this2.handleChange(parsed, value);
48956 }
48957 }
48958 };
48959
48960 this.onTimeInputBlur = function () {
48961 var _state4 = _this2.state,
48962 value = _state4.value,
48963 timeInputStr = _state4.timeInputStr,
48964 timeFormat = _state4.timeFormat;
48965
48966 if (timeInputStr) {
48967 var parsed = (0, _moment2.default)(timeInputStr, timeFormat, true);
48968
48969 _this2.setState({
48970 timeInputStr: '',
48971 inputing: false
48972 });
48973
48974 if (parsed.isValid()) {
48975 var hour = parsed.hour();
48976 var minute = parsed.minute();
48977 var second = parsed.second();
48978 var newValue = value.clone().hour(hour).minute(minute).second(second);
48979
48980 _this2.handleChange(newValue, _this2.state.value);
48981 }
48982 }
48983 };
48984
48985 this.onKeyDown = function (e) {
48986 var format = _this2.props.format;
48987 var _state5 = _this2.state,
48988 dateInputStr = _state5.dateInputStr,
48989 value = _state5.value;
48990
48991 var dateStr = (0, _util2.onDateKeydown)(e, { format: format, dateInputStr: dateInputStr, value: value }, 'day');
48992 if (!dateStr) return;
48993 _this2.onDateInputChange(dateStr);
48994 };
48995
48996 this.onTimeKeyDown = function (e) {
48997 var showTime = _this2.props.showTime;
48998 var _state6 = _this2.state,
48999 timeInputStr = _state6.timeInputStr,
49000 timeFormat = _state6.timeFormat,
49001 value = _state6.value;
49002
49003 var _ref = (typeof showTime === 'undefined' ? 'undefined' : (0, _typeof3.default)(showTime)) === 'object' ? showTime : {},
49004 disabledMinutes = _ref.disabledMinutes,
49005 disabledSeconds = _ref.disabledSeconds,
49006 _ref$hourStep = _ref.hourStep,
49007 hourStep = _ref$hourStep === undefined ? 1 : _ref$hourStep,
49008 _ref$minuteStep = _ref.minuteStep,
49009 minuteStep = _ref$minuteStep === undefined ? 1 : _ref$minuteStep,
49010 _ref$secondStep = _ref.secondStep,
49011 secondStep = _ref$secondStep === undefined ? 1 : _ref$secondStep;
49012
49013 var unit = 'second';
49014
49015 if (disabledSeconds) {
49016 unit = disabledMinutes ? 'hour' : 'minute';
49017 }
49018
49019 var timeStr = (0, _util2.onTimeKeydown)(e, {
49020 format: timeFormat,
49021 timeInputStr: timeInputStr,
49022 value: value,
49023 steps: {
49024 hour: hourStep,
49025 minute: minuteStep,
49026 second: secondStep
49027 }
49028 }, unit);
49029
49030 if (!timeStr) return;
49031
49032 _this2.onTimeInputChange(timeStr);
49033 };
49034
49035 this.handleChange = function (newValue, prevValue) {
49036 var others = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
49037
49038 if (!('value' in _this2.props)) {
49039 _this2.setState((0, _extends3.default)({
49040 value: newValue
49041 }, others));
49042 } else {
49043 _this2.setState((0, _extends3.default)({}, others));
49044 }
49045
49046 var newValueOf = newValue ? newValue.valueOf() : null;
49047 var preValueOf = prevValue ? prevValue.valueOf() : null;
49048
49049 if (newValueOf !== preValueOf) {
49050 _this2.onValueChange(newValue);
49051 }
49052 };
49053
49054 this.onFoucsDateInput = function () {
49055 if (_this2.state.panel !== _util2.PANEL.DATE) {
49056 _this2.setState({
49057 panel: _util2.PANEL.DATE
49058 });
49059 }
49060 };
49061
49062 this.onFoucsTimeInput = function () {
49063 if (_this2.state.panel !== _util2.PANEL.TIME) {
49064 _this2.setState({
49065 panel: _util2.PANEL.TIME
49066 });
49067 }
49068 };
49069
49070 this.onVisibleChange = function (visible, type) {
49071 if (!('visible' in _this2.props)) {
49072 _this2.setState({
49073 visible: visible
49074 });
49075 }
49076 _this2.props.onVisibleChange(visible, type);
49077 };
49078
49079 this.changePanel = function (panel) {
49080 _this2.setState({
49081 panel: panel
49082 });
49083 };
49084
49085 this.onOk = function (value) {
49086 _this2.onVisibleChange(false, 'okBtnClick');
49087 _this2.onValueChange(value || _this2.state.value, 'onOk');
49088 };
49089}, _temp);
49090DatePicker.displayName = 'DatePicker';
49091exports.default = (0, _reactLifecyclesCompat.polyfill)(DatePicker);
49092module.exports = exports['default'];
49093
49094/***/ }),
49095/* 335 */
49096/***/ (function(module, exports, __webpack_require__) {
49097
49098"use strict";
49099
49100
49101exports.__esModule = true;
49102
49103var _classCallCheck2 = __webpack_require__(2);
49104
49105var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
49106
49107var _possibleConstructorReturn2 = __webpack_require__(3);
49108
49109var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
49110
49111var _inherits2 = __webpack_require__(4);
49112
49113var _inherits3 = _interopRequireDefault(_inherits2);
49114
49115var _class, _temp2;
49116
49117var _react = __webpack_require__(0);
49118
49119var _react2 = _interopRequireDefault(_react);
49120
49121var _propTypes = __webpack_require__(5);
49122
49123var _propTypes2 = _interopRequireDefault(_propTypes);
49124
49125var _classnames2 = __webpack_require__(7);
49126
49127var _classnames3 = _interopRequireDefault(_classnames2);
49128
49129var _utils = __webpack_require__(92);
49130
49131function _interopRequireDefault(obj) {
49132 return obj && obj.__esModule ? obj : { default: obj };
49133}
49134
49135function scrollTo(element, to, duration) {
49136 var requestAnimationFrame = window.requestAnimationFrame || function requestAnimationFrameTimeout() {
49137 return setTimeout(arguments.length <= 0 ? undefined : arguments[0], 10);
49138 };
49139
49140 if (duration <= 0) {
49141 element.scrollTop = to;
49142 return;
49143 }
49144
49145 var difference = to - element.scrollTop;
49146 var perTick = difference / duration * 10;
49147
49148 requestAnimationFrame(function () {
49149 element.scrollTop = element.scrollTop + perTick;
49150
49151 if (element.scrollTop === to) {
49152 return;
49153 }
49154
49155 scrollTo(element, to, duration - 10);
49156 });
49157}
49158
49159var noop = function noop() {};
49160
49161var TimeMenu = (_temp2 = _class = function (_React$Component) {
49162 (0, _inherits3.default)(TimeMenu, _React$Component);
49163
49164 function TimeMenu() {
49165 var _temp, _this, _ret;
49166
49167 (0, _classCallCheck3.default)(this, TimeMenu);
49168
49169 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
49170 args[_key] = arguments[_key];
49171 }
49172
49173 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this._menuRefHandler = function (ref) {
49174 _this.menu = ref;
49175 }, _this.createMenuItems = function (list) {
49176 var _this$props = _this.props,
49177 prefix = _this$props.prefix,
49178 mode = _this$props.mode,
49179 disabled = _this$props.disabled,
49180 disabledItems = _this$props.disabledItems,
49181 activeIndex = _this$props.activeIndex,
49182 onSelect = _this$props.onSelect,
49183 renderTimeMenuItems = _this$props.renderTimeMenuItems,
49184 timeValue = _this$props.value;
49185
49186 list = renderTimeMenuItems(list, mode, timeValue) || list;
49187
49188 return list.map(function (_ref) {
49189 var _classnames;
49190
49191 var label = _ref.label,
49192 value = _ref.value;
49193
49194 var isDisabled = disabled || disabledItems(value);
49195 var itemCls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'time-picker-menu-item'] = true, _classnames[prefix + 'disabled'] = isDisabled, _classnames[prefix + 'selected'] = value === activeIndex, _classnames));
49196 var onClick = isDisabled ? noop : function () {
49197 return onSelect(value, mode);
49198 };
49199 return _react2.default.createElement('li', {
49200 role: 'option',
49201 'aria-selected': String(value === activeIndex),
49202 key: value,
49203 title: value,
49204 className: itemCls,
49205 onClick: onClick
49206 }, label);
49207 });
49208 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
49209 }
49210
49211 TimeMenu.prototype.componentDidMount = function componentDidMount() {
49212 this.scrollToSelected(0);
49213 };
49214
49215 TimeMenu.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
49216 if (prevProps.activeIndex !== this.props.activeIndex) {
49217 this.scrollToSelected(120);
49218 }
49219 };
49220
49221 TimeMenu.prototype.scrollToSelected = function scrollToSelected() {
49222 var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
49223 var _props = this.props,
49224 activeIndex = _props.activeIndex,
49225 step = _props.step;
49226
49227 var targetIndex = Math.floor((activeIndex || 0) / step);
49228 var firstItem = this.menu.children[targetIndex];
49229 var offsetTo = firstItem.offsetTop;
49230 scrollTo(this.menu, offsetTo, duration);
49231 };
49232
49233 TimeMenu.prototype.render = function render() {
49234 var _props2 = this.props,
49235 prefix = _props2.prefix,
49236 title = _props2.title,
49237 mode = _props2.mode,
49238 step = _props2.step;
49239
49240 var total = mode === 'hour' ? 24 : 60;
49241 var list = [];
49242 for (var i = 0; i < total; i++) {
49243 if (i % step === 0) {
49244 list.push({
49245 label: i,
49246 value: i
49247 });
49248 }
49249 }
49250
49251 var menuTitle = title ? _react2.default.createElement('div', { className: prefix + 'time-picker-menu-title' }, title) : null;
49252
49253 return _react2.default.createElement('div', { className: prefix + 'time-picker-menu' }, menuTitle, _react2.default.createElement('ul', {
49254 role: 'listbox',
49255 className: prefix + 'time-picker-menu-' + mode,
49256 ref: this._menuRefHandler
49257 }, this.createMenuItems(list)));
49258 };
49259
49260 return TimeMenu;
49261}(_react2.default.Component), _class.propTypes = {
49262 prefix: _propTypes2.default.string,
49263 title: _propTypes2.default.node,
49264 mode: _propTypes2.default.oneOf(['hour', 'minute', 'second']),
49265 step: _propTypes2.default.number,
49266 activeIndex: _propTypes2.default.number,
49267 value: _utils.checkMomentObj,
49268 disabledItems: _propTypes2.default.func,
49269 renderTimeMenuItems: _propTypes2.default.func,
49270 onSelect: _propTypes2.default.func,
49271 disabled: _propTypes2.default.bool
49272}, _class.defaultProps = {
49273 step: 1,
49274 disabledItems: function disabledItems() {
49275 return false;
49276 },
49277 renderTimeMenuItems: function renderTimeMenuItems(list) {
49278 return list;
49279 },
49280 onSelect: function onSelect() {},
49281 disabled: false
49282}, _temp2);
49283TimeMenu.displayName = 'TimeMenu';
49284exports.default = TimeMenu;
49285module.exports = exports['default'];
49286
49287/***/ }),
49288/* 336 */
49289/***/ (function(module, exports, __webpack_require__) {
49290
49291"use strict";
49292
49293
49294exports.__esModule = true;
49295
49296var _typeof2 = __webpack_require__(14);
49297
49298var _typeof3 = _interopRequireDefault(_typeof2);
49299
49300var _objectWithoutProperties2 = __webpack_require__(8);
49301
49302var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
49303
49304var _extends2 = __webpack_require__(1);
49305
49306var _extends3 = _interopRequireDefault(_extends2);
49307
49308var _classCallCheck2 = __webpack_require__(2);
49309
49310var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
49311
49312var _possibleConstructorReturn2 = __webpack_require__(3);
49313
49314var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
49315
49316var _inherits2 = __webpack_require__(4);
49317
49318var _inherits3 = _interopRequireDefault(_inherits2);
49319
49320var _class, _temp, _initialiseProps;
49321
49322var _react = __webpack_require__(0);
49323
49324var _react2 = _interopRequireDefault(_react);
49325
49326var _propTypes = __webpack_require__(5);
49327
49328var _propTypes2 = _interopRequireDefault(_propTypes);
49329
49330var _reactLifecyclesCompat = __webpack_require__(10);
49331
49332var _classnames8 = __webpack_require__(7);
49333
49334var _classnames9 = _interopRequireDefault(_classnames8);
49335
49336var _moment = __webpack_require__(19);
49337
49338var _moment2 = _interopRequireDefault(_moment);
49339
49340var _configProvider = __webpack_require__(9);
49341
49342var _configProvider2 = _interopRequireDefault(_configProvider);
49343
49344var _overlay = __webpack_require__(15);
49345
49346var _overlay2 = _interopRequireDefault(_overlay);
49347
49348var _input = __webpack_require__(18);
49349
49350var _input2 = _interopRequireDefault(_input);
49351
49352var _icon = __webpack_require__(11);
49353
49354var _icon2 = _interopRequireDefault(_icon);
49355
49356var _calendar = __webpack_require__(39);
49357
49358var _calendar2 = _interopRequireDefault(_calendar);
49359
49360var _rangeCalendar = __webpack_require__(161);
49361
49362var _rangeCalendar2 = _interopRequireDefault(_rangeCalendar);
49363
49364var _panel = __webpack_require__(91);
49365
49366var _panel2 = _interopRequireDefault(_panel);
49367
49368var _zhCn = __webpack_require__(13);
49369
49370var _zhCn2 = _interopRequireDefault(_zhCn);
49371
49372var _util = __webpack_require__(6);
49373
49374var _util2 = __webpack_require__(30);
49375
49376var _panelFooter = __webpack_require__(169);
49377
49378var _panelFooter2 = _interopRequireDefault(_panelFooter);
49379
49380function _interopRequireDefault(obj) {
49381 return obj && obj.__esModule ? obj : { default: obj };
49382}
49383
49384var Popup = _overlay2.default.Popup;
49385
49386function mapInputStateName(name) {
49387 return {
49388 startValue: 'startDateInputStr',
49389 endValue: 'endDateInputStr',
49390 startTime: 'startTimeInputStr',
49391 endTime: 'endTimeInputStr'
49392 }[name];
49393}
49394
49395function mapTimeToValue(name) {
49396 return {
49397 startTime: 'startValue',
49398 endTime: 'endValue'
49399 }[name];
49400}
49401
49402function getFormatValues(values, format) {
49403 if (!Array.isArray(values)) {
49404 return [null, null];
49405 }
49406 return [(0, _util2.formatDateValue)(values[0], format), (0, _util2.formatDateValue)(values[1], format)];
49407}
49408
49409/**
49410 * DatePicker.RangePicker
49411 */
49412var RangePicker = (_temp = _class = function (_Component) {
49413 (0, _inherits3.default)(RangePicker, _Component);
49414
49415 function RangePicker(props, context) {
49416 (0, _classCallCheck3.default)(this, RangePicker);
49417
49418 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
49419
49420 _initialiseProps.call(_this);
49421
49422 var _getDateTimeFormat = (0, _util2.getDateTimeFormat)(props.format, props.showTime, props.type),
49423 format = _getDateTimeFormat.format,
49424 timeFormat = _getDateTimeFormat.timeFormat,
49425 dateTimeFormat = _getDateTimeFormat.dateTimeFormat;
49426
49427 var val = props.value || props.defaultValue;
49428 var values = getFormatValues(val, dateTimeFormat);
49429
49430 _this.state = {
49431 visible: props.visible || props.defaultVisible,
49432 startValue: values[0],
49433 endValue: values[1],
49434 startDateInputStr: '',
49435 endDateInputStr: '',
49436 activeDateInput: 'startValue',
49437 startTimeInputStr: '',
49438 endTimeInputStr: '',
49439 inputing: false, // 当前是否处于输入状态
49440 panel: _util2.PANEL.DATE,
49441 format: format,
49442 timeFormat: timeFormat,
49443 dateTimeFormat: dateTimeFormat,
49444 inputAsString: val && (typeof val[0] === 'string' || typeof val[1] === 'string')
49445 };
49446 return _this;
49447 }
49448
49449 RangePicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
49450 var formatStates = (0, _util2.getDateTimeFormat)(props.format, props.showTime, props.type);
49451 var states = {};
49452
49453 if ('value' in props) {
49454 var values = getFormatValues(props.value, formatStates.dateTimeFormat);
49455 states.startValue = values[0];
49456 states.endValue = values[1];
49457 states.inputAsString = props.value && (typeof props.value[0] === 'string' || typeof props.value[1] === 'string');
49458 }
49459
49460 if ('visible' in props) {
49461 states.visible = props.visible;
49462 }
49463
49464 return (0, _extends3.default)({}, states, formatStates);
49465 };
49466
49467 // 如果用户没有给定时间禁用逻辑,则给默认到禁用逻辑
49468
49469
49470 RangePicker.prototype.renderPreview = function renderPreview(_ref, others) {
49471 var startValue = _ref[0],
49472 endValue = _ref[1];
49473 var _props = this.props,
49474 prefix = _props.prefix,
49475 className = _props.className,
49476 renderPreview = _props.renderPreview;
49477 var dateTimeFormat = this.state.dateTimeFormat;
49478
49479 var previewCls = (0, _classnames9.default)(className, prefix + 'form-preview');
49480 var startLabel = startValue ? startValue.format(dateTimeFormat) : '';
49481 var endLabel = endValue ? endValue.format(dateTimeFormat) : '';
49482
49483 if (typeof renderPreview === 'function') {
49484 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview([startValue, endValue], this.props));
49485 }
49486
49487 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), startLabel, ' - ', endLabel);
49488 };
49489
49490 RangePicker.prototype.render = function render() {
49491 var _classnames,
49492 _classnames2,
49493 _classnames3,
49494 _classnames4,
49495 _classnames5,
49496 _this2 = this,
49497 _PANEL$DATE$PANEL$TIM;
49498
49499 var _props2 = this.props,
49500 prefix = _props2.prefix,
49501 rtl = _props2.rtl,
49502 type = _props2.type,
49503 defaultVisibleMonth = _props2.defaultVisibleMonth,
49504 onVisibleMonthChange = _props2.onVisibleMonthChange,
49505 showTime = _props2.showTime,
49506 _disabledDate = _props2.disabledDate,
49507 footerRender = _props2.footerRender,
49508 label = _props2.label,
49509 _props2$ranges = _props2.ranges,
49510 ranges = _props2$ranges === undefined ? {} : _props2$ranges,
49511 inputState = _props2.state,
49512 size = _props2.size,
49513 disabled = _props2.disabled,
49514 hasClear = _props2.hasClear,
49515 popupTriggerType = _props2.popupTriggerType,
49516 popupAlign = _props2.popupAlign,
49517 popupContainer = _props2.popupContainer,
49518 popupStyle = _props2.popupStyle,
49519 popupClassName = _props2.popupClassName,
49520 popupProps = _props2.popupProps,
49521 popupComponent = _props2.popupComponent,
49522 popupContent = _props2.popupContent,
49523 followTrigger = _props2.followTrigger,
49524 className = _props2.className,
49525 locale = _props2.locale,
49526 inputProps = _props2.inputProps,
49527 dateCellRender = _props2.dateCellRender,
49528 monthCellRender = _props2.monthCellRender,
49529 yearCellRender = _props2.yearCellRender,
49530 startDateInputAriaLabel = _props2.startDateInputAriaLabel,
49531 startTimeInputAriaLabel = _props2.startTimeInputAriaLabel,
49532 endDateInputAriaLabel = _props2.endDateInputAriaLabel,
49533 endTimeInputAriaLabel = _props2.endTimeInputAriaLabel,
49534 isPreview = _props2.isPreview,
49535 disableChangeMode = _props2.disableChangeMode,
49536 yearRange = _props2.yearRange,
49537 placeholder = _props2.placeholder,
49538 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']);
49539
49540 var state = this.state;
49541
49542 var classNames = (0, _classnames9.default)((_classnames = {}, _classnames[prefix + 'range-picker'] = true, _classnames['' + prefix + size] = size, _classnames[prefix + 'disabled'] = disabled, _classnames), className);
49543
49544 var panelBodyClassName = (0, _classnames9.default)((_classnames2 = {}, _classnames2[prefix + 'range-picker-body'] = true, _classnames2[prefix + 'range-picker-body-show-time'] = showTime, _classnames2));
49545
49546 var triggerCls = (0, _classnames9.default)((_classnames3 = {}, _classnames3[prefix + 'range-picker-trigger'] = true, _classnames3[prefix + 'error'] = inputState === 'error', _classnames3));
49547
49548 var startDateInputCls = (0, _classnames9.default)((_classnames4 = {}, _classnames4[prefix + 'range-picker-panel-input-start-date'] = true, _classnames4[prefix + 'focus'] = state.activeDateInput === 'startValue', _classnames4));
49549
49550 var endDateInputCls = (0, _classnames9.default)((_classnames5 = {}, _classnames5[prefix + 'range-picker-panel-input-end-date'] = true, _classnames5[prefix + 'focus'] = state.activeDateInput === 'endValue', _classnames5));
49551
49552 if (rtl) {
49553 others.dir = 'rtl';
49554 }
49555
49556 if (isPreview) {
49557 return this.renderPreview([state.startValue, state.endValue], _util.obj.pickOthers(others, RangePicker.PropTypes));
49558 }
49559
49560 var startDateInputValue = state.inputing === 'startValue' ? state.startDateInputStr : state.startValue && state.startValue.format(state.format) || '';
49561 var endDateInputValue = state.inputing === 'endValue' ? state.endDateInputStr : state.endValue && state.endValue.format(state.format) || '';
49562
49563 var startTriggerValue = startDateInputValue;
49564 var endTriggerValue = endDateInputValue;
49565
49566 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
49567 size: size,
49568 disabled: disabled,
49569 onChange: this.onDateInputChange,
49570 onBlur: this.onDateInputBlur,
49571 onPressEnter: this.onDateInputBlur,
49572 onKeyDown: this.onDateInputKeyDown
49573 });
49574
49575 var startDateInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
49576 'aria-label': startDateInputAriaLabel,
49577 placeholder: state.format,
49578 value: startDateInputValue,
49579 onFocus: function onFocus() {
49580 return _this2.onFocusDateInput('startValue');
49581 },
49582 className: startDateInputCls
49583 }));
49584
49585 var endDateInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
49586 'aria-label': endDateInputAriaLabel,
49587 placeholder: state.format,
49588 value: endDateInputValue,
49589 onFocus: function onFocus() {
49590 return _this2.onFocusDateInput('endValue');
49591 },
49592 className: endDateInputCls
49593 }));
49594
49595 var shareCalendarProps = {
49596 showOtherMonth: true,
49597 dateCellRender: dateCellRender,
49598 monthCellRender: monthCellRender,
49599 yearCellRender: yearCellRender,
49600 format: state.format,
49601 defaultVisibleMonth: defaultVisibleMonth,
49602 onVisibleMonthChange: onVisibleMonthChange
49603 };
49604
49605 var datePanel = type === 'date' ? _react2.default.createElement(_rangeCalendar2.default, (0, _extends3.default)({}, shareCalendarProps, {
49606 yearRange: yearRange,
49607 disableChangeMode: disableChangeMode,
49608 disabledDate: _disabledDate,
49609 onSelect: this.onSelectCalendarPanel,
49610 startValue: state.startValue,
49611 endValue: state.endValue
49612 })) : _react2.default.createElement('div', { className: prefix + 'range-picker-panel-body' }, _react2.default.createElement(_calendar2.default, (0, _extends3.default)({
49613 shape: 'panel',
49614 modes: type === 'month' ? ['month', 'year'] : ['year']
49615 }, (0, _extends3.default)({}, shareCalendarProps), {
49616 disabledDate: function disabledDate(date) {
49617 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
49618 args[_key - 1] = arguments[_key];
49619 }
49620
49621 return state.endValue && date.isAfter(state.endValue, type) || _disabledDate && _disabledDate.apply(undefined, [date].concat(args));
49622 },
49623 onSelect: function onSelect(value) {
49624 var selectedValue = value.clone().date(1).hour(0).minute(0).second(0);
49625 if (type === 'year') {
49626 selectedValue.month(0);
49627 }
49628 _this2.onSelectCalendarPanel(selectedValue, 'startValue');
49629 },
49630 value: state.startValue
49631 })), _react2.default.createElement(_calendar2.default, (0, _extends3.default)({
49632 shape: 'panel',
49633 modes: type === 'month' ? ['month', 'year'] : ['year']
49634 }, shareCalendarProps, {
49635 disabledDate: function disabledDate(date) {
49636 for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
49637 args[_key2 - 1] = arguments[_key2];
49638 }
49639
49640 return state.startValue && date.isBefore(state.startValue, type) || _disabledDate && _disabledDate.apply(undefined, [date].concat(args));
49641 },
49642 onSelect: function onSelect(value) {
49643 var selectedValue = value.clone().hour(23).minute(59).second(59);
49644 if (type === 'year') {
49645 selectedValue.month(11).date(31);
49646 } else {
49647 selectedValue.date(selectedValue.daysInMonth());
49648 }
49649 _this2.onSelectCalendarPanel(selectedValue, 'endValue');
49650 },
49651 value: state.endValue
49652 })));
49653
49654 var startTimeInput = null;
49655 var endTimeInput = null;
49656 var timePanel = null;
49657 var panelFooter = footerRender();
49658
49659 if (showTime) {
49660 var _classnames6, _classnames7;
49661
49662 var startTimeInputValue = state.inputing === 'startTime' ? state.startTimeInputStr : state.startValue && state.startValue.format(state.timeFormat) || '';
49663 var endTimeInputValue = state.inputing === 'endTime' ? state.endTimeInputStr : state.endValue && state.endValue.format(state.timeFormat) || '';
49664
49665 startTriggerValue = state.startValue && state.startValue.format(state.dateTimeFormat) || '';
49666 endTriggerValue = state.endValue && state.endValue.format(state.dateTimeFormat) || '';
49667
49668 var sharedTimeInputProps = {
49669 size: size,
49670 placeholder: state.timeFormat,
49671 onFocus: this.onFocusTimeInput,
49672 onBlur: this.onTimeInputBlur,
49673 onPressEnter: this.onTimeInputBlur,
49674 onChange: this.onTimeInputChange,
49675 onKeyDown: this.onTimeInputKeyDown
49676 };
49677
49678 var startTimeInputCls = (0, _classnames9.default)((_classnames6 = {}, _classnames6[prefix + 'range-picker-panel-input-start-time'] = true, _classnames6[prefix + 'focus'] = state.activeDateInput === 'startTime', _classnames6));
49679
49680 startTimeInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedTimeInputProps, {
49681 value: startTimeInputValue,
49682 'aria-label': startTimeInputAriaLabel,
49683 disabled: disabled || !state.startValue,
49684 onFocus: function onFocus() {
49685 return _this2.onFocusTimeInput('startTime');
49686 },
49687 className: startTimeInputCls
49688 }));
49689
49690 var endTimeInputCls = (0, _classnames9.default)((_classnames7 = {}, _classnames7[prefix + 'range-picker-panel-input-end-time'] = true, _classnames7[prefix + 'focus'] = state.activeDateInput === 'endTime', _classnames7));
49691
49692 endTimeInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedTimeInputProps, {
49693 value: endTimeInputValue,
49694 'aria-label': endTimeInputAriaLabel,
49695 disabled: disabled || !state.endValue,
49696 onFocus: function onFocus() {
49697 return _this2.onFocusTimeInput('endTime');
49698 },
49699 className: endTimeInputCls
49700 }));
49701
49702 var showSecond = state.timeFormat.indexOf('s') > -1;
49703 var showMinute = state.timeFormat.indexOf('m') > -1;
49704
49705 var sharedTimePickerProps = (0, _extends3.default)({}, showTime, {
49706 prefix: prefix,
49707 locale: locale,
49708 disabled: disabled,
49709 showSecond: showSecond,
49710 showMinute: showMinute
49711 });
49712
49713 var disabledTime = this.getDisabledTime(state);
49714
49715 timePanel = _react2.default.createElement('div', { className: prefix + 'range-picker-panel-time' }, _react2.default.createElement(_panel2.default, (0, _extends3.default)({}, sharedTimePickerProps, {
49716 disabled: disabled || !state.startValue,
49717 className: prefix + 'range-picker-panel-time-start',
49718 value: state.startValue,
49719 onSelect: this.onSelectStartTime
49720 })), _react2.default.createElement(_panel2.default, (0, _extends3.default)({}, sharedTimePickerProps, disabledTime, {
49721 disabled: disabled || !state.endValue,
49722 className: prefix + 'range-picker-panel-time-end',
49723 value: state.endValue,
49724 onSelect: this.onSelectEndTime
49725 })));
49726 }
49727
49728 panelFooter = panelFooter || _react2.default.createElement(_panelFooter2.default, {
49729 prefix: prefix,
49730 value: state.startValue || state.endValue,
49731 ranges: Object.keys(ranges).map(function (key) {
49732 return {
49733 label: key,
49734 value: ranges[key],
49735 onChange: function onChange(values) {
49736 _this2.setState({
49737 startValue: values[0],
49738 endValue: values[1]
49739 });
49740 _this2.onValueChange(values);
49741 }
49742 };
49743 }),
49744 disabledOk: !state.startValue || !state.endValue || state.startValue.valueOf() > state.endValue.valueOf(),
49745 locale: locale,
49746 panel: state.panel,
49747 onPanelChange: showTime ? this.changePanel : null,
49748 onOk: this.onOk
49749 });
49750
49751 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];
49752
49753 var allowClear = state.startValue && state.endValue && hasClear;
49754
49755 var _ref2 = placeholder || [],
49756 startPlaceholder = _ref2[0],
49757 endPlaceholder = _ref2[1];
49758
49759 if (typeof placeholder === 'string') {
49760 startPlaceholder = placeholder;
49761 endPlaceholder = placeholder;
49762 }
49763
49764 var trigger = _react2.default.createElement('div', { className: triggerCls }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
49765 readOnly: true,
49766 role: 'combobox',
49767 'aria-expanded': state.visible,
49768 label: label,
49769 placeholder: startPlaceholder || locale.startPlaceholder,
49770 value: startTriggerValue,
49771 hasBorder: false,
49772 className: prefix + 'range-picker-trigger-input',
49773 onFocus: function onFocus() {
49774 return _this2.onFocusDateInput('startValue');
49775 }
49776 })), _react2.default.createElement('span', { className: prefix + 'range-picker-trigger-separator' }, '-'), _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
49777 readOnly: true,
49778 role: 'combobox',
49779 'aria-expanded': state.visible,
49780 placeholder: endPlaceholder || locale.endPlaceholder,
49781 value: endTriggerValue,
49782 hasBorder: false,
49783 className: prefix + 'range-picker-trigger-input',
49784 onFocus: function onFocus() {
49785 return _this2.onFocusDateInput('endValue');
49786 },
49787 hasClear: allowClear,
49788 hint: _react2.default.createElement(_icon2.default, { type: 'calendar', className: prefix + 'date-picker-symbol-calendar-icon' })
49789 })));
49790
49791 var PopupComponent = popupComponent ? popupComponent : Popup;
49792
49793 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(RangePicker.propTypes, others), { className: classNames }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
49794 autoFocus: true,
49795 align: popupAlign
49796 }, popupProps, {
49797 followTrigger: followTrigger,
49798 disabled: disabled,
49799 visible: state.visible,
49800 onVisibleChange: this.onVisibleChange,
49801 triggerType: popupTriggerType,
49802 container: popupContainer,
49803 style: popupStyle,
49804 className: popupClassName,
49805 trigger: trigger
49806 }), 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)));
49807 };
49808
49809 return RangePicker;
49810}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
49811 prefix: _propTypes2.default.string,
49812 rtl: _propTypes2.default.bool,
49813 /**
49814 * 日期范围类型
49815 */
49816 type: _propTypes2.default.oneOf(['date', 'month', 'year']),
49817 /**
49818 * 默认展示的起始月份
49819 * @return {MomentObject} 返回包含指定月份的 moment 对象实例
49820 */
49821 defaultVisibleMonth: _propTypes2.default.func,
49822 onVisibleMonthChange: _propTypes2.default.func,
49823 /**
49824 * 日期范围值数组 [moment, moment]
49825 */
49826 value: _propTypes2.default.array,
49827 /**
49828 * 初始的日期范围值数组 [moment, moment]
49829 */
49830 defaultValue: _propTypes2.default.array,
49831 /**
49832 * 日期格式
49833 */
49834 format: _propTypes2.default.string,
49835 /**
49836 * 是否使用时间控件,支持传入 TimePicker 的属性
49837 */
49838 showTime: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
49839 /**
49840 * 每次选择是否重置时间(仅在 showTime 开启时有效)
49841 */
49842 resetTime: _propTypes2.default.bool,
49843 /**
49844 * 禁用日期函数
49845 * @param {MomentObject} 日期值
49846 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
49847 * @return {Boolean} 是否禁用
49848 */
49849 disabledDate: _propTypes2.default.func,
49850 /**
49851 * 自定义面板页脚
49852 * @return {Node} 自定义的面板页脚组件
49853 */
49854 footerRender: _propTypes2.default.func,
49855 /**
49856 * 日期范围值改变时的回调 [ MomentObject|String, MomentObject|String ]
49857 * @param {Array<MomentObject|String>} value 日期值
49858 */
49859 onChange: _propTypes2.default.func,
49860 /**
49861 * 点击确认按钮时的回调 返回开始时间和结束时间`[ MomentObject|String, MomentObject|String ]`
49862 * @return {Array} 日期范围
49863 */
49864 onOk: _propTypes2.default.func,
49865 /**
49866 * 输入框内置标签
49867 */
49868 label: _propTypes2.default.node,
49869 /**
49870 * 输入框状态
49871 */
49872 state: _propTypes2.default.oneOf(['error', 'loading', 'success']),
49873 /**
49874 * 输入框尺寸
49875 */
49876 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
49877 /**
49878 * 是否禁用
49879 */
49880 disabled: _propTypes2.default.bool,
49881 /**
49882 * 是否显示清空按钮
49883 */
49884 hasClear: _propTypes2.default.bool,
49885 /**
49886 * 弹层显示状态
49887 */
49888 visible: _propTypes2.default.bool,
49889 /**
49890 * 弹层默认是否显示
49891 */
49892 defaultVisible: _propTypes2.default.bool,
49893 /**
49894 * 弹层展示状态变化时的回调
49895 * @param {Boolean} visible 弹层是否显示
49896 * @param {String} type 触发弹层显示和隐藏的来源 okBtnClick 表示由确认按钮触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
49897 */
49898 onVisibleChange: _propTypes2.default.func,
49899 /**
49900 * 弹层触发方式
49901 */
49902 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
49903 /**
49904 * 弹层对齐方式, 具体含义见 OverLay文档
49905 */
49906 popupAlign: _propTypes2.default.string,
49907 /**
49908 * 弹层容器
49909 * @param {Element} target 目标元素
49910 * @return {Element} 弹层的容器元素
49911 */
49912 popupContainer: _propTypes2.default.any,
49913 /**
49914 * 弹层自定义样式
49915 */
49916 popupStyle: _propTypes2.default.object,
49917 /**
49918 * 弹层自定义样式类
49919 */
49920 popupClassName: _propTypes2.default.string,
49921 /**
49922 * 弹层其他属性
49923 */
49924 popupProps: _propTypes2.default.object,
49925 /**
49926 * 是否跟随滚动
49927 */
49928 followTrigger: _propTypes2.default.bool,
49929 /**
49930 * 输入框其他属性
49931 */
49932 inputProps: _propTypes2.default.object,
49933 /**
49934 * 自定义日期单元格渲染
49935 */
49936 dateCellRender: _propTypes2.default.func,
49937 /**
49938 * 自定义月份渲染函数
49939 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
49940 * @returns {ReactNode}
49941 */
49942 monthCellRender: _propTypes2.default.func,
49943 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
49944 /**
49945 * 开始日期输入框的 aria-label 属性
49946 */
49947 startDateInputAriaLabel: _propTypes2.default.string,
49948 /**
49949 * 开始时间输入框的 aria-label 属性
49950 */
49951 startTimeInputAriaLabel: _propTypes2.default.string,
49952 /**
49953 * 结束日期输入框的 aria-label 属性
49954 */
49955 endDateInputAriaLabel: _propTypes2.default.string,
49956 /**
49957 * 结束时间输入框的 aria-label 属性
49958 */
49959 endTimeInputAriaLabel: _propTypes2.default.string,
49960 /**
49961 * 是否为预览态
49962 */
49963 isPreview: _propTypes2.default.bool,
49964 /**
49965 * 预览态模式下渲染的内容
49966 * @param {Array<MomentObject, MomentObject>} value 日期区间
49967 */
49968 renderPreview: _propTypes2.default.func,
49969 disableChangeMode: _propTypes2.default.bool,
49970 yearRange: _propTypes2.default.arrayOf(_propTypes2.default.number),
49971 ranges: _propTypes2.default.object, // 兼容0.x版本
49972 locale: _propTypes2.default.object,
49973 className: _propTypes2.default.string,
49974 name: _propTypes2.default.string,
49975 popupComponent: _propTypes2.default.elementType,
49976 popupContent: _propTypes2.default.node,
49977 placeholder: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.string), _propTypes2.default.string])
49978}), _class.defaultProps = {
49979 prefix: 'next-',
49980 rtl: false,
49981 type: 'date',
49982 size: 'medium',
49983 showTime: false,
49984 resetTime: false,
49985 disabledDate: function disabledDate() {
49986 return false;
49987 },
49988 footerRender: function footerRender() {
49989 return null;
49990 },
49991 hasClear: true,
49992 defaultVisible: false,
49993 popupTriggerType: 'click',
49994 popupAlign: 'tl tl',
49995 locale: _zhCn2.default.DatePicker,
49996 disableChangeMode: false,
49997 onChange: _util.func.noop,
49998 onOk: _util.func.noop,
49999 onVisibleChange: _util.func.noop
50000}, _initialiseProps = function _initialiseProps() {
50001 var _this3 = this;
50002
50003 this.onValueChange = function (values) {
50004 var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'onChange';
50005
50006 var ret = void 0;
50007 if (!values.length || !_this3.state.inputAsString) {
50008 ret = values;
50009 } else {
50010 ret = [values[0] ? values[0].format(_this3.state.dateTimeFormat) : null, values[1] ? values[1].format(_this3.state.dateTimeFormat) : null];
50011 }
50012 _this3.props[handler](ret);
50013 };
50014
50015 this.onSelectCalendarPanel = function (value, active) {
50016 var _props3 = _this3.props,
50017 showTime = _props3.showTime,
50018 resetTime = _props3.resetTime;
50019 var _state = _this3.state,
50020 prevActiveDateInput = _state.activeDateInput,
50021 prevStartValue = _state.startValue,
50022 prevEndValue = _state.endValue,
50023 timeFormat = _state.timeFormat;
50024
50025 var newState = {
50026 activeDateInput: active || prevActiveDateInput,
50027 inputing: false
50028 };
50029
50030 var newValue = value;
50031
50032 switch (active || prevActiveDateInput) {
50033 case 'startValue':
50034 {
50035 if (!prevEndValue || value.valueOf() <= prevEndValue.valueOf()) {
50036 newState.activeDateInput = 'endValue';
50037 }
50038
50039 if (showTime) {
50040 if (!prevStartValue) {
50041 // 第一次选择,如果设置了时间默认值,则使用该默认时间
50042 if (showTime.defaultValue) {
50043 var defaultTimeValue = (0, _util2.formatDateValue)(Array.isArray(showTime.defaultValue) ? showTime.defaultValue[0] : showTime.defaultValue, timeFormat);
50044 newValue = (0, _util2.resetValueTime)(value, defaultTimeValue);
50045 }
50046 } else if (!resetTime) {
50047 // 非第一次选择,如果开启了 resetTime ,则记住之前选择的时间值
50048 newValue = (0, _util2.resetValueTime)(value, prevStartValue);
50049 }
50050 }
50051
50052 newState.startValue = newValue;
50053
50054 // 如果起始日期大于结束日期
50055 if (prevEndValue && newValue.valueOf() > prevEndValue.valueOf()) {
50056 // 将结束日期设置为起始日期 如果需要的话保留时间
50057 newState.endValue = resetTime ? newValue : (0, _util2.resetValueTime)(value, prevEndValue);
50058
50059 // 如果结束日期不大于起始日期则将结束日期设置为等于开始日期
50060 if (newState.endValue.valueOf() < newState.startValue.valueOf()) {
50061 newState.endValue = (0, _moment2.default)(newState.startValue);
50062 }
50063 newState.activeDateInput = 'endValue';
50064 }
50065 break;
50066 }
50067
50068 case 'endValue':
50069 if (!prevStartValue) {
50070 newState.activeDateInput = 'startValue';
50071 }
50072
50073 if (showTime) {
50074 if (!prevEndValue) {
50075 // 第一次选择,如果设置了时间默认值,则使用该默认时间
50076 if (showTime.defaultValue) {
50077 var _defaultTimeValue = (0, _util2.formatDateValue)(Array.isArray(showTime.defaultValue) ? showTime.defaultValue[1] || showTime.defaultValue[0] : showTime.defaultValue, timeFormat);
50078 newValue = (0, _util2.resetValueTime)(value, _defaultTimeValue);
50079 }
50080 } else if (!resetTime) {
50081 // 非第一次选择,如果开启了 resetTime ,则记住之前选择的时间值
50082 newValue = (0, _util2.resetValueTime)(value, prevEndValue);
50083 }
50084 }
50085
50086 newState.endValue = newValue;
50087
50088 // 选择了一个比开始日期更小的结束日期,此时表示用户重新选择了
50089 if (prevStartValue && newValue.valueOf() <= prevStartValue.valueOf()) {
50090 newState.startValue = resetTime ? value : (0, _util2.resetValueTime)(value, prevStartValue);
50091 newState.endValue = resetTime ? value : (0, _util2.resetValueTime)(value, prevEndValue);
50092
50093 // 如果结束日期不大于起始日期则将结束日期设置为等于开始日期
50094 if (newState.endValue.valueOf() < newState.startValue.valueOf()) {
50095 newState.endValue = (0, _moment2.default)(newState.startValue);
50096 }
50097 }
50098 break;
50099 }
50100
50101 var newStartValue = 'startValue' in newState ? newState.startValue : prevStartValue;
50102 var newEndValue = 'endValue' in newState ? newState.endValue : prevEndValue;
50103
50104 // 受控状态选择不更新值
50105 if ('value' in _this3.props) {
50106 delete newState.startValue;
50107 delete newState.endValue;
50108 }
50109
50110 _this3.setState(newState);
50111
50112 _this3.onValueChange([newStartValue, newEndValue]);
50113 };
50114
50115 this.clearRange = function () {
50116 _this3.setState({
50117 startDateInputStr: '',
50118 endDateInputStr: '',
50119 startTimeInputStr: '',
50120 endTimeInputStr: ''
50121 });
50122
50123 if (!('value' in _this3.props)) {
50124 _this3.setState({
50125 startValue: null,
50126 endValue: null
50127 });
50128 }
50129
50130 _this3.onValueChange([]);
50131 };
50132
50133 this.onDateInputChange = function (inputStr, e, eventType) {
50134 if (eventType === 'clear' || !inputStr) {
50135 e.stopPropagation();
50136 _this3.clearRange();
50137 } else {
50138 var _this3$setState;
50139
50140 var stateName = mapInputStateName(_this3.state.activeDateInput);
50141 _this3.setState((_this3$setState = {}, _this3$setState[stateName] = inputStr, _this3$setState.inputing = _this3.state.activeDateInput, _this3$setState));
50142 }
50143 };
50144
50145 this.onDateInputBlur = function () {
50146 var resetTime = _this3.props.resetTime;
50147 var activeDateInput = _this3.state.activeDateInput;
50148
50149 var stateName = mapInputStateName(activeDateInput);
50150 var dateInputStr = _this3.state[stateName];
50151
50152 if (dateInputStr) {
50153 var _this3$setState2;
50154
50155 var _props4 = _this3.props,
50156 format = _props4.format,
50157 disabledDate = _props4.disabledDate;
50158
50159 var parsed = (0, _moment2.default)(dateInputStr, format, true);
50160
50161 _this3.setState((_this3$setState2 = {}, _this3$setState2[stateName] = '', _this3$setState2.inputing = false, _this3$setState2));
50162
50163 if (parsed.isValid() && !disabledDate(parsed, 'date')) {
50164 var valueName = activeDateInput;
50165 var newValue = resetTime ? parsed : (0, _util2.resetValueTime)(parsed, _this3.state[activeDateInput]);
50166
50167 _this3.handleChange(valueName, newValue);
50168 }
50169 }
50170 };
50171
50172 this.onDateInputKeyDown = function (e) {
50173 var type = _this3.props.type;
50174 var _state2 = _this3.state,
50175 activeDateInput = _state2.activeDateInput,
50176 format = _state2.format;
50177
50178 var stateName = mapInputStateName(activeDateInput);
50179 var dateInputStr = _this3.state[stateName];
50180 var dateStr = (0, _util2.onDateKeydown)(e, {
50181 format: format,
50182 value: _this3.state[activeDateInput],
50183 dateInputStr: dateInputStr
50184 }, type === 'date' ? 'day' : type);
50185 if (!dateStr) return;
50186
50187 return _this3.onDateInputChange(dateStr);
50188 };
50189
50190 this.onFocusDateInput = function (type) {
50191 if (type !== _this3.state.activeDateInput) {
50192 _this3.setState({
50193 activeDateInput: type
50194 });
50195 }
50196 if (_this3.state.panel !== _util2.PANEL.DATE) {
50197 _this3.setState({
50198 panel: _util2.PANEL.DATE
50199 });
50200 }
50201 };
50202
50203 this.onFocusTimeInput = function (type) {
50204 if (type !== _this3.state.activeDateInput) {
50205 _this3.setState({
50206 activeDateInput: type
50207 });
50208 }
50209
50210 if (_this3.state.panel !== _util2.PANEL.TIME) {
50211 _this3.setState({
50212 panel: _util2.PANEL.TIME
50213 });
50214 }
50215 };
50216
50217 this.onSelectStartTime = function (value) {
50218 if (!('value' in _this3.props)) {
50219 _this3.setState({
50220 startValue: value,
50221 inputing: false,
50222 activeDateInput: 'startTime'
50223 });
50224 }
50225
50226 if (value.valueOf() !== _this3.state.startValue.valueOf()) {
50227 _this3.onValueChange([value, _this3.state.endValue]);
50228 }
50229 };
50230
50231 this.onSelectEndTime = function (value) {
50232 if (!('value' in _this3.props)) {
50233 _this3.setState({
50234 endValue: value,
50235 inputing: false,
50236 activeDateInput: 'endTime'
50237 });
50238 }
50239 if (value.valueOf() !== _this3.state.endValue.valueOf()) {
50240 _this3.onValueChange([_this3.state.startValue, value]);
50241 }
50242 };
50243
50244 this.onTimeInputChange = function (inputStr) {
50245 var _this3$setState3;
50246
50247 var stateName = mapInputStateName(_this3.state.activeDateInput);
50248 _this3.setState((_this3$setState3 = {}, _this3$setState3[stateName] = inputStr, _this3$setState3.inputing = _this3.state.activeDateInput, _this3$setState3));
50249 };
50250
50251 this.onTimeInputBlur = function () {
50252 var _this3$setState4;
50253
50254 var stateName = mapInputStateName(_this3.state.activeDateInput);
50255 var timeInputStr = _this3.state[stateName];
50256
50257 var parsed = (0, _moment2.default)(timeInputStr, _this3.state.timeFormat, true);
50258
50259 _this3.setState((_this3$setState4 = {}, _this3$setState4[stateName] = '', _this3$setState4.inputing = false, _this3$setState4));
50260
50261 if (parsed.isValid()) {
50262 var hour = parsed.hour();
50263 var minute = parsed.minute();
50264 var second = parsed.second();
50265 var valueName = mapTimeToValue(_this3.state.activeDateInput);
50266 var newValue = _this3.state[valueName].clone().hour(hour).minute(minute).second(second);
50267
50268 _this3.handleChange(valueName, newValue);
50269 }
50270 };
50271
50272 this.onTimeInputKeyDown = function (e) {
50273 var showTime = _this3.props.showTime;
50274 var _state3 = _this3.state,
50275 activeDateInput = _state3.activeDateInput,
50276 timeFormat = _state3.timeFormat;
50277
50278 var stateName = mapInputStateName(activeDateInput);
50279 var timeInputStr = _this3.state[stateName];
50280
50281 var _ref3 = (typeof showTime === 'undefined' ? 'undefined' : (0, _typeof3.default)(showTime)) === 'object' ? showTime : {},
50282 disabledMinutes = _ref3.disabledMinutes,
50283 disabledSeconds = _ref3.disabledSeconds,
50284 _ref3$hourStep = _ref3.hourStep,
50285 hourStep = _ref3$hourStep === undefined ? 1 : _ref3$hourStep,
50286 _ref3$minuteStep = _ref3.minuteStep,
50287 minuteStep = _ref3$minuteStep === undefined ? 1 : _ref3$minuteStep,
50288 _ref3$secondStep = _ref3.secondStep,
50289 secondStep = _ref3$secondStep === undefined ? 1 : _ref3$secondStep;
50290
50291 var unit = 'second';
50292
50293 if (disabledSeconds) {
50294 unit = disabledMinutes ? 'hour' : 'minute';
50295 }
50296
50297 var timeStr = (0, _util2.onTimeKeydown)(e, {
50298 format: timeFormat,
50299 timeInputStr: timeInputStr,
50300 value: _this3.state[activeDateInput.indexOf('start') ? 'startValue' : 'endValue'],
50301 steps: {
50302 hour: hourStep,
50303 minute: minuteStep,
50304 second: secondStep
50305 }
50306 }, unit);
50307
50308 if (!timeStr) return;
50309
50310 _this3.onTimeInputChange(timeStr);
50311 };
50312
50313 this.handleChange = function (valueName, newValue) {
50314 var values = ['startValue', 'endValue'].map(function (name) {
50315 return valueName === name ? newValue : _this3.state[name];
50316 });
50317
50318 // 判断起始时间是否大于结束时间
50319 if (values[0] && values[1] && values[0].valueOf() > values[1].valueOf()) {
50320 return;
50321 }
50322
50323 if (!('value' in _this3.props)) {
50324 var _this3$setState5;
50325
50326 _this3.setState((_this3$setState5 = {}, _this3$setState5[valueName] = newValue, _this3$setState5));
50327 }
50328
50329 _this3.onValueChange(values);
50330 };
50331
50332 this.onVisibleChange = function (visible, type) {
50333 if (!('visible' in _this3.props)) {
50334 _this3.setState({
50335 visible: visible
50336 });
50337 }
50338 _this3.props.onVisibleChange(visible, type);
50339 };
50340
50341 this.changePanel = function (panel) {
50342 var _state4 = _this3.state,
50343 startValue = _state4.startValue,
50344 endValue = _state4.endValue;
50345
50346 _this3.setState({
50347 panel: panel,
50348 activeDateInput: panel === _util2.PANEL.DATE ? !!startValue && !endValue ? 'endValue' : 'startValue' : 'startTime'
50349 });
50350 };
50351
50352 this.onOk = function (value) {
50353 _this3.onVisibleChange(false, 'okBtnClick');
50354 _this3.onValueChange(value || [_this3.state.startValue, _this3.state.endValue], 'onOk');
50355 };
50356
50357 this.getDisabledTime = function (_ref4) {
50358 var startValue = _ref4.startValue,
50359 endValue = _ref4.endValue;
50360
50361 var _ref5 = _this3.props.showTime || {},
50362 disabledHours = _ref5.disabledHours,
50363 disabledMinutes = _ref5.disabledMinutes,
50364 disabledSeconds = _ref5.disabledSeconds;
50365
50366 var disabledTime = {};
50367
50368 if (startValue && endValue) {
50369 var isSameDay = startValue.format('L') === endValue.format('L');
50370 var newDisabledHours = (0, _util2.isFunction)(disabledHours) ? disabledHours : function (index) {
50371 if (isSameDay && index < startValue.hour()) {
50372 return true;
50373 }
50374 };
50375
50376 var newDisabledMinutes = (0, _util2.isFunction)(disabledMinutes) ? disabledMinutes : function (index) {
50377 if (isSameDay && startValue.hour() === endValue.hour() && index < startValue.minute()) {
50378 return true;
50379 }
50380 };
50381
50382 var newDisabledSeconds = (0, _util2.isFunction)(disabledSeconds) ? disabledSeconds : function (index) {
50383 if (isSameDay && startValue.hour() === endValue.hour() && startValue.minute() === endValue.minute() && index < startValue.second()) {
50384 return true;
50385 }
50386 };
50387 disabledTime = {
50388 disabledHours: newDisabledHours,
50389 disabledMinutes: newDisabledMinutes,
50390 disabledSeconds: newDisabledSeconds
50391 };
50392 }
50393
50394 return disabledTime;
50395 };
50396}, _temp);
50397RangePicker.displayName = 'RangePicker';
50398exports.default = (0, _reactLifecyclesCompat.polyfill)(RangePicker);
50399module.exports = exports['default'];
50400
50401/***/ }),
50402/* 337 */
50403/***/ (function(module, exports, __webpack_require__) {
50404
50405"use strict";
50406
50407
50408exports.__esModule = true;
50409
50410var _objectWithoutProperties2 = __webpack_require__(8);
50411
50412var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
50413
50414var _extends2 = __webpack_require__(1);
50415
50416var _extends3 = _interopRequireDefault(_extends2);
50417
50418var _classCallCheck2 = __webpack_require__(2);
50419
50420var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
50421
50422var _possibleConstructorReturn2 = __webpack_require__(3);
50423
50424var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
50425
50426var _inherits2 = __webpack_require__(4);
50427
50428var _inherits3 = _interopRequireDefault(_inherits2);
50429
50430var _class, _temp;
50431
50432var _react = __webpack_require__(0);
50433
50434var _react2 = _interopRequireDefault(_react);
50435
50436var _propTypes = __webpack_require__(5);
50437
50438var _propTypes2 = _interopRequireDefault(_propTypes);
50439
50440var _reactLifecyclesCompat = __webpack_require__(10);
50441
50442var _classnames4 = __webpack_require__(7);
50443
50444var _classnames5 = _interopRequireDefault(_classnames4);
50445
50446var _moment = __webpack_require__(19);
50447
50448var _moment2 = _interopRequireDefault(_moment);
50449
50450var _configProvider = __webpack_require__(9);
50451
50452var _configProvider2 = _interopRequireDefault(_configProvider);
50453
50454var _overlay = __webpack_require__(15);
50455
50456var _overlay2 = _interopRequireDefault(_overlay);
50457
50458var _input = __webpack_require__(18);
50459
50460var _input2 = _interopRequireDefault(_input);
50461
50462var _icon = __webpack_require__(11);
50463
50464var _icon2 = _interopRequireDefault(_icon);
50465
50466var _calendar = __webpack_require__(39);
50467
50468var _calendar2 = _interopRequireDefault(_calendar);
50469
50470var _zhCn = __webpack_require__(13);
50471
50472var _zhCn2 = _interopRequireDefault(_zhCn);
50473
50474var _util = __webpack_require__(6);
50475
50476var _util2 = __webpack_require__(30);
50477
50478function _interopRequireDefault(obj) {
50479 return obj && obj.__esModule ? obj : { default: obj };
50480}
50481
50482var Popup = _overlay2.default.Popup;
50483
50484/**
50485 * DatePicker.MonthPicker
50486 */
50487
50488var MonthPicker = (_temp = _class = function (_Component) {
50489 (0, _inherits3.default)(MonthPicker, _Component);
50490
50491 function MonthPicker(props, context) {
50492 (0, _classCallCheck3.default)(this, MonthPicker);
50493
50494 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
50495
50496 _this.onValueChange = function (newValue) {
50497 var ret = _this.state.inputAsString && newValue ? newValue.format(_this.props.format) : newValue;
50498 _this.props.onChange(ret);
50499 };
50500
50501 _this.onSelectCalendarPanel = function (value) {
50502 // const { format } = this.props;
50503 var prevSelectedMonth = _this.state.value;
50504 var selectedMonth = value.clone().date(1).hour(0).minute(0).second(0);
50505
50506 _this.handleChange(selectedMonth, prevSelectedMonth, { inputing: false }, function () {
50507 _this.onVisibleChange(false, 'calendarSelect');
50508 });
50509 };
50510
50511 _this.clearValue = function () {
50512 _this.setState({
50513 dateInputStr: ''
50514 });
50515
50516 _this.handleChange(null, _this.state.value);
50517 };
50518
50519 _this.onDateInputChange = function (inputStr, e, eventType) {
50520 if (eventType === 'clear' || !inputStr) {
50521 e.stopPropagation();
50522 _this.clearValue();
50523 } else {
50524 _this.setState({
50525 dateInputStr: inputStr,
50526 inputing: true
50527 });
50528 }
50529 };
50530
50531 _this.onDateInputBlur = function () {
50532 var dateInputStr = _this.state.dateInputStr;
50533
50534 if (dateInputStr) {
50535 var _this$props = _this.props,
50536 disabledDate = _this$props.disabledDate,
50537 format = _this$props.format;
50538
50539 var parsed = (0, _moment2.default)(dateInputStr, format, true);
50540
50541 _this.setState({
50542 dateInputStr: '',
50543 inputing: false
50544 });
50545
50546 if (parsed.isValid() && !disabledDate(parsed, 'month')) {
50547 _this.handleChange(parsed, _this.state.value);
50548 }
50549 }
50550 };
50551
50552 _this.onKeyDown = function (e) {
50553 var format = _this.props.format;
50554 var _this$state = _this.state,
50555 dateInputStr = _this$state.dateInputStr,
50556 value = _this$state.value;
50557
50558 var dateStr = (0, _util2.onDateKeydown)(e, { format: format, dateInputStr: dateInputStr, value: value }, 'month');
50559 if (!dateStr) return;
50560 _this.onDateInputChange(dateStr);
50561 };
50562
50563 _this.handleChange = function (newValue, prevValue) {
50564 var others = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
50565 var callback = arguments[3];
50566
50567 if (!('value' in _this.props)) {
50568 _this.setState((0, _extends3.default)({
50569 value: newValue
50570 }, others));
50571 } else {
50572 _this.setState((0, _extends3.default)({}, others));
50573 }
50574
50575 var format = _this.props.format;
50576
50577 var newValueOf = newValue ? newValue.format(format) : null;
50578 var preValueOf = prevValue ? prevValue.format(format) : null;
50579
50580 if (newValueOf !== preValueOf) {
50581 _this.onValueChange(newValue);
50582 if (typeof callback === 'function') {
50583 return callback();
50584 }
50585 }
50586 };
50587
50588 _this.onVisibleChange = function (visible, type) {
50589 if (!('visible' in _this.props)) {
50590 _this.setState({
50591 visible: visible
50592 });
50593 }
50594 _this.props.onVisibleChange(visible, type);
50595 };
50596
50597 _this.state = {
50598 value: (0, _util2.formatDateValue)(props.defaultValue, props.format),
50599 dateInputStr: '',
50600 inputing: false,
50601 visible: props.defaultVisible,
50602 inputAsString: typeof props.defaultValue === 'string'
50603 };
50604 return _this;
50605 }
50606
50607 MonthPicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
50608 var states = {};
50609 if ('value' in props) {
50610 states.value = (0, _util2.formatDateValue)(props.value, props.format);
50611 states.inputAsString = typeof props.value === 'string';
50612 }
50613
50614 if ('visible' in props) {
50615 states.visible = props.visible;
50616 }
50617
50618 return states;
50619 };
50620
50621 MonthPicker.prototype.renderPreview = function renderPreview(others) {
50622 var _props = this.props,
50623 prefix = _props.prefix,
50624 format = _props.format,
50625 className = _props.className,
50626 renderPreview = _props.renderPreview;
50627 var value = this.state.value;
50628
50629 var previewCls = (0, _classnames5.default)(className, prefix + 'form-preview');
50630
50631 var label = value ? value.format(format) : '';
50632
50633 if (typeof renderPreview === 'function') {
50634 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
50635 }
50636
50637 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
50638 };
50639
50640 MonthPicker.prototype.render = function render() {
50641 var _classnames, _classnames2, _classnames3;
50642
50643 var _props2 = this.props,
50644 prefix = _props2.prefix,
50645 rtl = _props2.rtl,
50646 locale = _props2.locale,
50647 label = _props2.label,
50648 state = _props2.state,
50649 format = _props2.format,
50650 defaultVisibleYear = _props2.defaultVisibleYear,
50651 disabledDate = _props2.disabledDate,
50652 footerRender = _props2.footerRender,
50653 placeholder = _props2.placeholder,
50654 size = _props2.size,
50655 disabled = _props2.disabled,
50656 hasClear = _props2.hasClear,
50657 popupTriggerType = _props2.popupTriggerType,
50658 popupAlign = _props2.popupAlign,
50659 popupContainer = _props2.popupContainer,
50660 popupStyle = _props2.popupStyle,
50661 popupClassName = _props2.popupClassName,
50662 popupProps = _props2.popupProps,
50663 popupComponent = _props2.popupComponent,
50664 popupContent = _props2.popupContent,
50665 followTrigger = _props2.followTrigger,
50666 className = _props2.className,
50667 inputProps = _props2.inputProps,
50668 monthCellRender = _props2.monthCellRender,
50669 yearCellRender = _props2.yearCellRender,
50670 dateInputAriaLabel = _props2.dateInputAriaLabel,
50671 isPreview = _props2.isPreview,
50672 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']);
50673 var _state = this.state,
50674 visible = _state.visible,
50675 value = _state.value,
50676 dateInputStr = _state.dateInputStr,
50677 inputing = _state.inputing;
50678
50679 var monthPickerCls = (0, _classnames5.default)((_classnames = {}, _classnames[prefix + 'month-picker'] = true, _classnames), className);
50680
50681 var triggerInputCls = (0, _classnames5.default)((_classnames2 = {}, _classnames2[prefix + 'month-picker-input'] = true, _classnames2[prefix + 'error'] = false, _classnames2));
50682
50683 var panelBodyClassName = (0, _classnames5.default)((_classnames3 = {}, _classnames3[prefix + 'month-picker-body'] = true, _classnames3));
50684
50685 if (rtl) {
50686 others.dir = 'rtl';
50687 }
50688
50689 if (isPreview) {
50690 return this.renderPreview(_util.obj.pickOthers(others, MonthPicker.PropTypes));
50691 }
50692
50693 var panelInputCls = prefix + 'month-picker-panel-input';
50694
50695 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
50696 size: size,
50697 disabled: disabled,
50698 onChange: this.onDateInputChange,
50699 onBlur: this.onDateInputBlur,
50700 onPressEnter: this.onDateInputBlur,
50701 onKeyDown: this.onKeyDown
50702 });
50703
50704 var dateInputValue = inputing ? dateInputStr : value && value.format(format) || '';
50705 var triggerInputValue = dateInputValue;
50706
50707 var dateInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
50708 value: dateInputValue,
50709 'aria-label': dateInputAriaLabel,
50710 onFocus: this.onFoucsDateInput,
50711 placeholder: format,
50712 className: panelInputCls
50713 }));
50714
50715 var datePanel = _react2.default.createElement(_calendar2.default, {
50716 shape: 'panel',
50717 modes: ['month', 'year'],
50718 monthCellRender: monthCellRender,
50719 yearCellRender: yearCellRender,
50720 value: value,
50721 onSelect: this.onSelectCalendarPanel,
50722 defaultVisibleMonth: defaultVisibleYear,
50723 disabledDate: disabledDate
50724 });
50725
50726 var panelBody = datePanel;
50727 var panelFooter = footerRender();
50728
50729 var allowClear = value && hasClear;
50730 var trigger = _react2.default.createElement('div', { className: prefix + 'month-picker-trigger' }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
50731 label: label,
50732 state: state,
50733 readOnly: true,
50734 value: triggerInputValue,
50735 placeholder: placeholder || locale.monthPlaceholder,
50736 hint: _react2.default.createElement(_icon2.default, {
50737 type: 'calendar',
50738 className: prefix + 'date-picker-symbol-calendar-icon'
50739 }),
50740 hasClear: allowClear,
50741 className: triggerInputCls
50742 })));
50743
50744 var PopupComponent = popupComponent ? popupComponent : Popup;
50745
50746 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(MonthPicker.propTypes, others), {
50747 className: monthPickerCls
50748 }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
50749 autoFocus: true,
50750 align: popupAlign
50751 }, popupProps, {
50752 followTrigger: followTrigger,
50753 role: 'combobox',
50754 'aria-expanded': visible,
50755 disabled: disabled,
50756 visible: visible,
50757 onVisibleChange: this.onVisibleChange,
50758 triggerType: popupTriggerType,
50759 container: popupContainer,
50760 style: popupStyle,
50761 className: popupClassName,
50762 trigger: trigger
50763 }), popupContent ? popupContent : _react2.default.createElement('div', { className: panelBodyClassName, dir: others.dir }, _react2.default.createElement('div', {
50764 className: prefix + 'month-picker-panel-header'
50765 }, dateInput), panelBody, panelFooter)));
50766 };
50767
50768 return MonthPicker;
50769}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
50770 prefix: _propTypes2.default.string,
50771 rtl: _propTypes2.default.bool,
50772 /**
50773 * 输入框内置标签
50774 */
50775 label: _propTypes2.default.node,
50776 /**
50777 * 输入框状态
50778 */
50779 state: _propTypes2.default.oneOf(['success', 'loading', 'error']),
50780 /**
50781 * 输入提示
50782 */
50783 placeholder: _propTypes2.default.string,
50784 /**
50785 * 默认展现的年
50786 * @return {MomentObject} 返回包含指定年份的 moment 对象实例
50787 */
50788 defaultVisibleYear: _propTypes2.default.func,
50789 /**
50790 * 日期值(受控)moment 对象
50791 */
50792 value: _util2.checkDateValue,
50793 /**
50794 * 初始日期值,moment 对象
50795 */
50796 defaultValue: _util2.checkDateValue,
50797 /**
50798 * 日期值的格式(用于限定用户输入和展示)
50799 */
50800 format: _propTypes2.default.string,
50801 /**
50802 * 禁用日期函数
50803 * @param {MomentObject} 日期值
50804 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
50805 * @return {Boolean} 是否禁用
50806 */
50807 disabledDate: _propTypes2.default.func,
50808 /**
50809 * 自定义面板页脚
50810 * @return {Node} 自定义的面板页脚组件
50811 */
50812 footerRender: _propTypes2.default.func,
50813 /**
50814 * 日期值改变时的回调
50815 * @param {MomentObject|String} value 日期值
50816 */
50817 onChange: _propTypes2.default.func,
50818 /**
50819 * 输入框尺寸
50820 */
50821 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
50822 /**
50823 * 是否禁用
50824 */
50825 disabled: _propTypes2.default.bool,
50826 /**
50827 * 是否显示清空按钮
50828 */
50829 hasClear: _propTypes2.default.bool,
50830 /**
50831 * 弹层显示状态
50832 */
50833 visible: _propTypes2.default.bool,
50834 /**
50835 * 弹层默认是否显示
50836 */
50837 defaultVisible: _propTypes2.default.bool,
50838 /**
50839 * 弹层展示状态变化时的回调
50840 * @param {Boolean} visible 弹层是否显示
50841 * @param {String} type 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
50842 */
50843 onVisibleChange: _propTypes2.default.func,
50844 /**
50845 * 弹层触发方式
50846 */
50847 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
50848 /**
50849 * 弹层对齐方式, 具体含义见 OverLay文档
50850 */
50851 popupAlign: _propTypes2.default.string,
50852 /**
50853 * 弹层容器
50854 * @param {Element} target 目标元素
50855 * @return {Element} 弹层的容器元素
50856 */
50857 popupContainer: _propTypes2.default.any,
50858 /**
50859 * 弹层自定义样式
50860 */
50861 popupStyle: _propTypes2.default.object,
50862 /**
50863 * 弹层自定义样式类
50864 */
50865 popupClassName: _propTypes2.default.string,
50866 /**
50867 * 弹层其他属性
50868 */
50869 popupProps: _propTypes2.default.object,
50870 /**
50871 * 是否跟随滚动
50872 */
50873 followTrigger: _propTypes2.default.bool,
50874 /**
50875 * 输入框其他属性
50876 */
50877 inputProps: _propTypes2.default.object,
50878 /**
50879 * 自定义月份渲染函数
50880 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
50881 * @returns {ReactNode}
50882 */
50883 monthCellRender: _propTypes2.default.func,
50884 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
50885 /**
50886 * 日期输入框的 aria-label 属性
50887 */
50888 dateInputAriaLabel: _propTypes2.default.string,
50889 /**
50890 * 是否为预览态
50891 */
50892 isPreview: _propTypes2.default.bool,
50893 /**
50894 * 预览态模式下渲染的内容
50895 * @param {MomentObject} value 月份
50896 */
50897 renderPreview: _propTypes2.default.func,
50898 locale: _propTypes2.default.object,
50899 className: _propTypes2.default.string,
50900 name: _propTypes2.default.string,
50901 popupComponent: _propTypes2.default.elementType,
50902 popupContent: _propTypes2.default.node
50903}), _class.defaultProps = {
50904 prefix: 'next-',
50905 rtl: false,
50906 format: 'YYYY-MM',
50907 size: 'medium',
50908 disabledDate: function disabledDate() {
50909 return false;
50910 },
50911 footerRender: function footerRender() {
50912 return null;
50913 },
50914 hasClear: true,
50915 popupTriggerType: 'click',
50916 popupAlign: 'tl tl',
50917 locale: _zhCn2.default.DatePicker,
50918 onChange: _util.func.noop,
50919 onVisibleChange: _util.func.noop
50920}, _temp);
50921MonthPicker.displayName = 'MonthPicker';
50922exports.default = (0, _reactLifecyclesCompat.polyfill)(MonthPicker);
50923module.exports = exports['default'];
50924
50925/***/ }),
50926/* 338 */
50927/***/ (function(module, exports, __webpack_require__) {
50928
50929"use strict";
50930
50931
50932exports.__esModule = true;
50933
50934var _objectWithoutProperties2 = __webpack_require__(8);
50935
50936var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
50937
50938var _extends2 = __webpack_require__(1);
50939
50940var _extends3 = _interopRequireDefault(_extends2);
50941
50942var _classCallCheck2 = __webpack_require__(2);
50943
50944var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
50945
50946var _possibleConstructorReturn2 = __webpack_require__(3);
50947
50948var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
50949
50950var _inherits2 = __webpack_require__(4);
50951
50952var _inherits3 = _interopRequireDefault(_inherits2);
50953
50954var _class, _temp;
50955
50956var _react = __webpack_require__(0);
50957
50958var _react2 = _interopRequireDefault(_react);
50959
50960var _propTypes = __webpack_require__(5);
50961
50962var _propTypes2 = _interopRequireDefault(_propTypes);
50963
50964var _reactLifecyclesCompat = __webpack_require__(10);
50965
50966var _classnames4 = __webpack_require__(7);
50967
50968var _classnames5 = _interopRequireDefault(_classnames4);
50969
50970var _moment = __webpack_require__(19);
50971
50972var _moment2 = _interopRequireDefault(_moment);
50973
50974var _overlay = __webpack_require__(15);
50975
50976var _overlay2 = _interopRequireDefault(_overlay);
50977
50978var _input = __webpack_require__(18);
50979
50980var _input2 = _interopRequireDefault(_input);
50981
50982var _icon = __webpack_require__(11);
50983
50984var _icon2 = _interopRequireDefault(_icon);
50985
50986var _calendar = __webpack_require__(39);
50987
50988var _calendar2 = _interopRequireDefault(_calendar);
50989
50990var _zhCn = __webpack_require__(13);
50991
50992var _zhCn2 = _interopRequireDefault(_zhCn);
50993
50994var _util = __webpack_require__(6);
50995
50996var _util2 = __webpack_require__(30);
50997
50998function _interopRequireDefault(obj) {
50999 return obj && obj.__esModule ? obj : { default: obj };
51000}
51001
51002var Popup = _overlay2.default.Popup;
51003
51004/**
51005 * DatePicker.YearPicker
51006 */
51007
51008var YearPicker = (_temp = _class = function (_Component) {
51009 (0, _inherits3.default)(YearPicker, _Component);
51010
51011 function YearPicker(props, context) {
51012 (0, _classCallCheck3.default)(this, YearPicker);
51013
51014 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
51015
51016 _this.onValueChange = function (newValue) {
51017 var ret = _this.state.inputAsString && newValue ? newValue.format(_this.props.format) : newValue;
51018 _this.props.onChange(ret);
51019 };
51020
51021 _this.onSelectCalendarPanel = function (value) {
51022 // const { format } = this.props;
51023 var prevSelectedMonth = _this.state.value;
51024 var selectedMonth = value.clone().month(0).date(1).hour(0).minute(0).second(0);
51025
51026 _this.handleChange(selectedMonth, prevSelectedMonth, { inputing: false }, function () {
51027 _this.onVisibleChange(false, 'calendarSelect');
51028 });
51029 };
51030
51031 _this.clearValue = function () {
51032 _this.setState({
51033 dateInputStr: ''
51034 });
51035
51036 _this.handleChange(null, _this.state.value);
51037 };
51038
51039 _this.onDateInputChange = function (inputStr, e, eventType) {
51040 if (eventType === 'clear' || !inputStr) {
51041 e.stopPropagation();
51042 _this.clearValue();
51043 } else {
51044 _this.setState({
51045 dateInputStr: inputStr,
51046 inputing: true
51047 });
51048 }
51049 };
51050
51051 _this.onDateInputBlur = function () {
51052 var dateInputStr = _this.state.dateInputStr;
51053
51054 if (dateInputStr) {
51055 var _this$props = _this.props,
51056 disabledDate = _this$props.disabledDate,
51057 format = _this$props.format;
51058
51059 var parsed = (0, _moment2.default)(dateInputStr, format, true);
51060
51061 _this.setState({
51062 dateInputStr: '',
51063 inputing: false
51064 });
51065
51066 if (parsed.isValid() && !disabledDate(parsed, 'year')) {
51067 _this.handleChange(parsed, _this.state.value);
51068 }
51069 }
51070 };
51071
51072 _this.onKeyDown = function (e) {
51073 var format = _this.props.format;
51074 var _this$state = _this.state,
51075 dateInputStr = _this$state.dateInputStr,
51076 value = _this$state.value;
51077
51078 var dateStr = (0, _util2.onDateKeydown)(e, { format: format, dateInputStr: dateInputStr, value: value }, 'year');
51079 if (!dateStr) return;
51080 _this.onDateInputChange(dateStr);
51081 };
51082
51083 _this.handleChange = function (newValue, prevValue) {
51084 var others = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
51085 var callback = arguments[3];
51086
51087 if (!('value' in _this.props)) {
51088 _this.setState((0, _extends3.default)({
51089 value: newValue
51090 }, others));
51091 } else {
51092 _this.setState((0, _extends3.default)({}, others));
51093 }
51094
51095 var format = _this.props.format;
51096
51097 var newValueOf = newValue ? newValue.format(format) : null;
51098 var preValueOf = prevValue ? prevValue.format(format) : null;
51099
51100 if (newValueOf !== preValueOf) {
51101 _this.onValueChange(newValue);
51102 if (typeof callback === 'function') {
51103 return callback();
51104 }
51105 }
51106 };
51107
51108 _this.onVisibleChange = function (visible, reason) {
51109 if (!('visible' in _this.props)) {
51110 _this.setState({
51111 visible: visible
51112 });
51113 }
51114 _this.props.onVisibleChange(visible, reason);
51115 };
51116
51117 _this.state = {
51118 value: (0, _util2.formatDateValue)(props.defaultValue, props.format),
51119 dateInputStr: '',
51120 inputing: false,
51121 visible: props.defaultVisible,
51122 inputAsString: typeof props.defaultValue === 'string' // 判断用户输入是否是字符串
51123 };
51124 return _this;
51125 }
51126
51127 YearPicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
51128 var states = {};
51129 if ('value' in props) {
51130 states.value = (0, _util2.formatDateValue)(props.value, props.format);
51131 states.inputAsString = typeof props.value === 'string';
51132 }
51133
51134 if ('visible' in props) {
51135 states.visible = props.visible;
51136 }
51137
51138 return states;
51139 };
51140
51141 YearPicker.prototype.renderPreview = function renderPreview(others) {
51142 var _props = this.props,
51143 prefix = _props.prefix,
51144 format = _props.format,
51145 className = _props.className,
51146 renderPreview = _props.renderPreview;
51147 var value = this.state.value;
51148
51149 var previewCls = (0, _classnames5.default)(className, prefix + 'form-preview');
51150
51151 var label = value ? value.format(format) : '';
51152
51153 if (typeof renderPreview === 'function') {
51154 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
51155 }
51156
51157 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
51158 };
51159
51160 YearPicker.prototype.render = function render() {
51161 var _classnames, _classnames2, _classnames3;
51162
51163 var _props2 = this.props,
51164 prefix = _props2.prefix,
51165 rtl = _props2.rtl,
51166 locale = _props2.locale,
51167 label = _props2.label,
51168 state = _props2.state,
51169 format = _props2.format,
51170 disabledDate = _props2.disabledDate,
51171 footerRender = _props2.footerRender,
51172 placeholder = _props2.placeholder,
51173 size = _props2.size,
51174 disabled = _props2.disabled,
51175 hasClear = _props2.hasClear,
51176 popupTriggerType = _props2.popupTriggerType,
51177 popupAlign = _props2.popupAlign,
51178 popupContainer = _props2.popupContainer,
51179 popupStyle = _props2.popupStyle,
51180 popupClassName = _props2.popupClassName,
51181 popupProps = _props2.popupProps,
51182 popupComponent = _props2.popupComponent,
51183 popupContent = _props2.popupContent,
51184 followTrigger = _props2.followTrigger,
51185 className = _props2.className,
51186 inputProps = _props2.inputProps,
51187 dateInputAriaLabel = _props2.dateInputAriaLabel,
51188 yearCellRender = _props2.yearCellRender,
51189 isPreview = _props2.isPreview,
51190 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']);
51191 var _state = this.state,
51192 visible = _state.visible,
51193 value = _state.value,
51194 dateInputStr = _state.dateInputStr,
51195 inputing = _state.inputing;
51196
51197 var yearPickerCls = (0, _classnames5.default)((_classnames = {}, _classnames[prefix + 'year-picker'] = true, _classnames), className);
51198
51199 var triggerInputCls = (0, _classnames5.default)((_classnames2 = {}, _classnames2[prefix + 'year-picker-input'] = true, _classnames2[prefix + 'error'] = false, _classnames2));
51200
51201 var panelBodyClassName = (0, _classnames5.default)((_classnames3 = {}, _classnames3[prefix + 'year-picker-body'] = true, _classnames3));
51202
51203 if (rtl) {
51204 others.dir = 'rtl';
51205 }
51206
51207 if (isPreview) {
51208 return this.renderPreview(_util.obj.pickOthers(others, YearPicker.PropTypes));
51209 }
51210
51211 var panelInputCls = prefix + 'year-picker-panel-input';
51212
51213 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
51214 size: size,
51215 disabled: disabled,
51216 onChange: this.onDateInputChange,
51217 onBlur: this.onDateInputBlur,
51218 onPressEnter: this.onDateInputBlur,
51219 onKeyDown: this.onKeyDown
51220 });
51221
51222 var dateInputValue = inputing ? dateInputStr : value && value.format(format) || '';
51223 var triggerInputValue = dateInputValue;
51224
51225 var dateInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
51226 'aria-label': dateInputAriaLabel,
51227 value: dateInputValue,
51228 placeholder: format,
51229 className: panelInputCls
51230 }));
51231
51232 var datePanel = _react2.default.createElement(_calendar2.default, {
51233 shape: 'panel',
51234 modes: ['year'],
51235 value: value,
51236 yearCellRender: yearCellRender,
51237 onSelect: this.onSelectCalendarPanel,
51238 disabledDate: disabledDate
51239 });
51240
51241 var panelBody = datePanel;
51242 var panelFooter = footerRender();
51243
51244 var allowClear = value && hasClear;
51245 var trigger = _react2.default.createElement('div', { className: prefix + 'year-picker-trigger' }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
51246 label: label,
51247 state: state,
51248 value: triggerInputValue,
51249 role: 'combobox',
51250 'aria-expanded': visible,
51251 readOnly: true,
51252 placeholder: placeholder || locale.yearPlaceholder,
51253 hint: _react2.default.createElement(_icon2.default, {
51254 type: 'calendar',
51255 className: prefix + 'date-picker-symbol-calendar-icon'
51256 }),
51257 hasClear: allowClear,
51258 className: triggerInputCls
51259 })));
51260
51261 var PopupComponent = popupComponent ? popupComponent : Popup;
51262
51263 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(YearPicker.propTypes, others), {
51264 className: yearPickerCls
51265 }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
51266 autoFocus: true,
51267 align: popupAlign
51268 }, popupProps, {
51269 followTrigger: followTrigger,
51270 disabled: disabled,
51271 visible: visible,
51272 onVisibleChange: this.onVisibleChange,
51273 triggerType: popupTriggerType,
51274 container: popupContainer,
51275 style: popupStyle,
51276 className: popupClassName,
51277 trigger: trigger
51278 }), popupContent ? popupContent : _react2.default.createElement('div', { dir: others.dir, className: panelBodyClassName }, _react2.default.createElement('div', {
51279 className: prefix + 'year-picker-panel-header'
51280 }, dateInput), panelBody, panelFooter)));
51281 };
51282
51283 return YearPicker;
51284}(_react.Component), _class.propTypes = {
51285 prefix: _propTypes2.default.string,
51286 rtl: _propTypes2.default.bool,
51287 /**
51288 * 输入框内置标签
51289 */
51290 label: _propTypes2.default.node,
51291 /**
51292 * 输入框状态
51293 */
51294 state: _propTypes2.default.oneOf(['success', 'loading', 'error']),
51295 /**
51296 * 输入提示
51297 */
51298 placeholder: _propTypes2.default.string,
51299 /**
51300 * 日期值(受控)moment 对象
51301 */
51302 value: _util2.checkDateValue,
51303 /**
51304 * 初始日期值,moment 对象
51305 */
51306 defaultValue: _util2.checkDateValue,
51307 /**
51308 * 日期值的格式(用于限定用户输入和展示)
51309 */
51310 format: _propTypes2.default.string,
51311 /**
51312 * 禁用日期函数
51313 * @param {MomentObject} 日期值
51314 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
51315 * @return {Boolean} 是否禁用
51316 */
51317 disabledDate: _propTypes2.default.func,
51318 /**
51319 * 自定义面板页脚
51320 * @return {Node} 自定义的面板页脚组件
51321 */
51322 footerRender: _propTypes2.default.func,
51323 /**
51324 * 日期值改变时的回调
51325 * @param {MomentObject|String} value 日期值
51326 */
51327 onChange: _propTypes2.default.func,
51328 /**
51329 * 输入框尺寸
51330 */
51331 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
51332 /**
51333 * 是否禁用
51334 */
51335 disabled: _propTypes2.default.bool,
51336 /**
51337 * 是否显示清空按钮
51338 */
51339 hasClear: _propTypes2.default.bool,
51340 /**
51341 * 弹层显示状态
51342 */
51343 visible: _propTypes2.default.bool,
51344 /**
51345 * 弹层默认是否显示
51346 */
51347 defaultVisible: _propTypes2.default.bool,
51348 /**
51349 * 弹层展示状态变化时的回调
51350 * @param {Boolean} visible 弹层是否显示
51351 * @param {String} reason 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
51352 */
51353 onVisibleChange: _propTypes2.default.func,
51354 /**
51355 * 弹层触发方式
51356 */
51357 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
51358 /**
51359 * 弹层对齐方式, 具体含义见 OverLay文档
51360 */
51361 popupAlign: _propTypes2.default.string,
51362 /**
51363 * 弹层容器
51364 * @param {Element} target 目标元素
51365 * @return {Element} 弹层的容器元素
51366 */
51367 popupContainer: _propTypes2.default.any,
51368 /**
51369 * 弹层自定义样式
51370 */
51371 popupStyle: _propTypes2.default.object,
51372 /**
51373 * 弹层自定义样式类
51374 */
51375 popupClassName: _propTypes2.default.string,
51376 /**
51377 * 弹层其他属性
51378 */
51379 popupProps: _propTypes2.default.object,
51380 /**
51381 * 是否跟随滚动
51382 */
51383 followTrigger: _propTypes2.default.bool,
51384 /**
51385 * 输入框其他属性
51386 */
51387 inputProps: _propTypes2.default.object,
51388 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
51389 /**
51390 * 日期输入框的 aria-label 属性
51391 */
51392 dateInputAriaLabel: _propTypes2.default.string,
51393 /**
51394 * 是否为预览态
51395 */
51396 isPreview: _propTypes2.default.bool,
51397 /**
51398 * 预览态模式下渲染的内容
51399 * @param {MomentObject} value 年份
51400 */
51401 renderPreview: _propTypes2.default.func,
51402 locale: _propTypes2.default.object,
51403 className: _propTypes2.default.string,
51404 name: _propTypes2.default.string,
51405 popupComponent: _propTypes2.default.elementType,
51406 popupContent: _propTypes2.default.node
51407}, _class.defaultProps = {
51408 prefix: 'next-',
51409 rtl: false,
51410 format: 'YYYY',
51411 size: 'medium',
51412 disabledDate: function disabledDate() {
51413 return false;
51414 },
51415 footerRender: function footerRender() {
51416 return null;
51417 },
51418 hasClear: true,
51419 popupTriggerType: 'click',
51420 popupAlign: 'tl tl',
51421 locale: _zhCn2.default.DatePicker,
51422 onChange: _util.func.noop,
51423 onVisibleChange: _util.func.noop
51424}, _temp);
51425YearPicker.displayName = 'YearPicker';
51426exports.default = (0, _reactLifecyclesCompat.polyfill)(YearPicker);
51427module.exports = exports['default'];
51428
51429/***/ }),
51430/* 339 */
51431/***/ (function(module, exports, __webpack_require__) {
51432
51433"use strict";
51434
51435
51436exports.__esModule = true;
51437
51438var _objectWithoutProperties2 = __webpack_require__(8);
51439
51440var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
51441
51442var _extends2 = __webpack_require__(1);
51443
51444var _extends3 = _interopRequireDefault(_extends2);
51445
51446var _classCallCheck2 = __webpack_require__(2);
51447
51448var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
51449
51450var _possibleConstructorReturn2 = __webpack_require__(3);
51451
51452var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
51453
51454var _inherits2 = __webpack_require__(4);
51455
51456var _inherits3 = _interopRequireDefault(_inherits2);
51457
51458var _class, _temp, _initialiseProps;
51459
51460var _react = __webpack_require__(0);
51461
51462var _react2 = _interopRequireDefault(_react);
51463
51464var _propTypes = __webpack_require__(5);
51465
51466var _propTypes2 = _interopRequireDefault(_propTypes);
51467
51468var _classnames2 = __webpack_require__(7);
51469
51470var _classnames3 = _interopRequireDefault(_classnames2);
51471
51472var _moment = __webpack_require__(19);
51473
51474var _moment2 = _interopRequireDefault(_moment);
51475
51476var _reactLifecyclesCompat = __webpack_require__(10);
51477
51478var _overlay = __webpack_require__(15);
51479
51480var _overlay2 = _interopRequireDefault(_overlay);
51481
51482var _input = __webpack_require__(18);
51483
51484var _input2 = _interopRequireDefault(_input);
51485
51486var _icon = __webpack_require__(11);
51487
51488var _icon2 = _interopRequireDefault(_icon);
51489
51490var _calendar = __webpack_require__(39);
51491
51492var _calendar2 = _interopRequireDefault(_calendar);
51493
51494var _configProvider = __webpack_require__(9);
51495
51496var _configProvider2 = _interopRequireDefault(_configProvider);
51497
51498var _zhCn = __webpack_require__(13);
51499
51500var _zhCn2 = _interopRequireDefault(_zhCn);
51501
51502var _util = __webpack_require__(6);
51503
51504var _util2 = __webpack_require__(30);
51505
51506function _interopRequireDefault(obj) {
51507 return obj && obj.__esModule ? obj : { default: obj };
51508}
51509
51510var Popup = _overlay2.default.Popup;
51511
51512/**
51513 * DatePicker.WeekPicker
51514 */
51515
51516var WeekPicker = (_temp = _class = function (_Component) {
51517 (0, _inherits3.default)(WeekPicker, _Component);
51518
51519 function WeekPicker(props, context) {
51520 (0, _classCallCheck3.default)(this, WeekPicker);
51521
51522 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
51523
51524 _initialiseProps.call(_this);
51525
51526 var value = (0, _util2.formatDateValue)(props.value || props.defaultValue, props.format);
51527
51528 _this.state = {
51529 value: value,
51530 visible: props.visible || props.defaultVisible
51531 };
51532 return _this;
51533 }
51534
51535 WeekPicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
51536 var st = {};
51537 if ('value' in props) {
51538 st.value = (0, _util2.formatDateValue)(props.value, props.format);
51539 }
51540
51541 if ('visible' in props) {
51542 st.visible = props.visible;
51543 }
51544
51545 return st;
51546 };
51547
51548 WeekPicker.prototype.renderPreview = function renderPreview(others) {
51549 var _props = this.props,
51550 prefix = _props.prefix,
51551 format = _props.format,
51552 className = _props.className,
51553 renderPreview = _props.renderPreview;
51554 var value = this.state.value;
51555
51556 var previewCls = (0, _classnames3.default)(className, prefix + 'form-preview');
51557
51558 var label = value ? value.format(format) : '';
51559
51560 if (typeof renderPreview === 'function') {
51561 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
51562 }
51563
51564 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
51565 };
51566
51567 WeekPicker.prototype.render = function render() {
51568 var _props2 = this.props,
51569 prefix = _props2.prefix,
51570 rtl = _props2.rtl,
51571 locale = _props2.locale,
51572 label = _props2.label,
51573 state = _props2.state,
51574 format = _props2.format,
51575 defaultVisibleMonth = _props2.defaultVisibleMonth,
51576 onVisibleMonthChange = _props2.onVisibleMonthChange,
51577 disabledDate = _props2.disabledDate,
51578 footerRender = _props2.footerRender,
51579 placeholder = _props2.placeholder,
51580 size = _props2.size,
51581 disabled = _props2.disabled,
51582 hasClear = _props2.hasClear,
51583 popupTriggerType = _props2.popupTriggerType,
51584 popupAlign = _props2.popupAlign,
51585 popupContainer = _props2.popupContainer,
51586 popupStyle = _props2.popupStyle,
51587 popupClassName = _props2.popupClassName,
51588 popupProps = _props2.popupProps,
51589 popupComponent = _props2.popupComponent,
51590 popupContent = _props2.popupContent,
51591 followTrigger = _props2.followTrigger,
51592 className = _props2.className,
51593 inputProps = _props2.inputProps,
51594 monthCellRender = _props2.monthCellRender,
51595 yearCellRender = _props2.yearCellRender,
51596 isPreview = _props2.isPreview,
51597 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']);
51598 var _state = this.state,
51599 visible = _state.visible,
51600 value = _state.value;
51601
51602 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
51603 size: size,
51604 disabled: disabled,
51605 onChange: this.onDateInputChange,
51606 onKeyDown: this.onKeyDown
51607 });
51608
51609 if (rtl) {
51610 others.dir = 'rtl';
51611 }
51612
51613 if (isPreview) {
51614 return this.renderPreview(_util.obj.pickOthers(others, WeekPicker.PropTypes));
51615 }
51616
51617 var trigger = _react2.default.createElement('div', { className: prefix + 'week-picker-trigger' }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
51618 label: label,
51619 state: state,
51620 value: value ? value.format(format) : '',
51621 role: 'combobox',
51622 'aria-expanded': visible,
51623 readOnly: true,
51624 placeholder: placeholder || locale.weekPlaceholder,
51625 hint: _react2.default.createElement(_icon2.default, { type: 'calendar', className: prefix + 'date-picker-symbol-calendar-icon' }),
51626 hasClear: value && hasClear,
51627 className: prefix + 'week-picker-input'
51628 })));
51629
51630 var PopupComponent = popupComponent ? popupComponent : Popup;
51631
51632 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(WeekPicker.propTypes, others), {
51633 className: (0, _classnames3.default)(prefix + 'week-picker', className)
51634 }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
51635 align: popupAlign
51636 }, popupProps, {
51637 followTrigger: followTrigger,
51638 disabled: disabled,
51639 visible: visible,
51640 onVisibleChange: this.onVisibleChange,
51641 triggerType: popupTriggerType,
51642 container: popupContainer,
51643 style: popupStyle,
51644 className: popupClassName,
51645 trigger: trigger
51646 }), popupContent ? popupContent : _react2.default.createElement('div', { dir: others.dir, className: prefix + 'week-picker-body' }, _react2.default.createElement(_calendar2.default, {
51647 shape: 'panel',
51648 value: value,
51649 format: format,
51650 className: prefix + 'calendar-week',
51651 dateCellRender: this.dateRender,
51652 monthCellRender: monthCellRender,
51653 yearCellRender: yearCellRender,
51654 onSelect: this.onSelectCalendarPanel,
51655 defaultVisibleMonth: defaultVisibleMonth,
51656 onVisibleMonthChange: onVisibleMonthChange,
51657 disabledDate: disabledDate
51658 }), footerRender())));
51659 };
51660
51661 return WeekPicker;
51662}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
51663 prefix: _propTypes2.default.string,
51664 rtl: _propTypes2.default.bool,
51665 /**
51666 * 输入框内置标签
51667 */
51668 label: _propTypes2.default.node,
51669 /**
51670 * 输入框状态
51671 */
51672 state: _propTypes2.default.oneOf(['success', 'loading', 'error']),
51673 /**
51674 * 输入提示
51675 */
51676 placeholder: _propTypes2.default.string,
51677 /**
51678 * 默认展现的月
51679 * @return {MomentObject} 返回包含指定月份的 moment 对象实例
51680 */
51681 defaultVisibleMonth: _propTypes2.default.func,
51682 onVisibleMonthChange: _propTypes2.default.func,
51683 /**
51684 * 日期值(受控)moment 对象
51685 */
51686 value: _util2.checkDateValue,
51687 /**
51688 * 初始日期值,moment 对象
51689 */
51690 defaultValue: _util2.checkDateValue,
51691 /**
51692 * 日期值的格式(用于限定用户输入和展示)
51693 */
51694 format: _propTypes2.default.string,
51695 /**
51696 * 禁用日期函数
51697 * @param {MomentObject} 日期值
51698 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
51699 * @return {Boolean} 是否禁用
51700 */
51701 disabledDate: _propTypes2.default.func,
51702 /**
51703 * 自定义面板页脚
51704 * @return {Node} 自定义的面板页脚组件
51705 */
51706 footerRender: _propTypes2.default.func,
51707 /**
51708 * 日期值改变时的回调
51709 * @param {MomentObject|String} value 日期值
51710 */
51711 onChange: _propTypes2.default.func,
51712 /**
51713 * 输入框尺寸
51714 */
51715 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
51716 /**
51717 * 是否禁用
51718 */
51719 disabled: _propTypes2.default.bool,
51720 /**
51721 * 是否显示清空按钮
51722 */
51723 hasClear: _propTypes2.default.bool,
51724 /**
51725 * 弹层显示状态
51726 */
51727 visible: _propTypes2.default.bool,
51728 /**
51729 * 弹层默认是否显示
51730 */
51731 defaultVisible: _propTypes2.default.bool,
51732 /**
51733 * 弹层展示状态变化时的回调
51734 * @param {Boolean} visible 弹层是否显示
51735 * @param {String} type 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; okBtnClick 表示由确认按钮触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
51736 */
51737 onVisibleChange: _propTypes2.default.func,
51738 /**
51739 * 弹层触发方式
51740 */
51741 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
51742 /**
51743 * 弹层对齐方式,具体含义见 OverLay文档
51744 */
51745 popupAlign: _propTypes2.default.string,
51746 /**
51747 * 弹层容器
51748 * @param {Element} target 目标元素
51749 * @return {Element} 弹层的容器元素
51750 */
51751 popupContainer: _propTypes2.default.any,
51752 /**
51753 * 弹层自定义样式
51754 */
51755 popupStyle: _propTypes2.default.object,
51756 /**
51757 * 弹层自定义样式类
51758 */
51759 popupClassName: _propTypes2.default.string,
51760 /**
51761 * 弹层其他属性
51762 */
51763 popupProps: _propTypes2.default.object,
51764 /**
51765 * 是否跟随滚动
51766 */
51767 followTrigger: _propTypes2.default.bool,
51768 /**
51769 * 输入框其他属性
51770 */
51771 inputProps: _propTypes2.default.object,
51772 /**
51773 * 自定义日期渲染函数
51774 * @param {Object} value 日期值(moment对象)
51775 * @returns {ReactNode}
51776 */
51777 dateCellRender: _propTypes2.default.func,
51778 /**
51779 * 自定义月份渲染函数
51780 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
51781 * @returns {ReactNode}
51782 */
51783 monthCellRender: _propTypes2.default.func,
51784 /**
51785 * 是否为预览态
51786 */
51787 isPreview: _propTypes2.default.bool,
51788 /**
51789 * 预览态模式下渲染的内容
51790 * @param {MomentObject} value 年份
51791 */
51792 renderPreview: _propTypes2.default.func,
51793 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
51794 locale: _propTypes2.default.object,
51795 className: _propTypes2.default.string,
51796 name: _propTypes2.default.string,
51797 popupComponent: _propTypes2.default.elementType,
51798 popupContent: _propTypes2.default.node
51799}), _class.defaultProps = {
51800 prefix: 'next-',
51801 rtl: false,
51802 format: 'GGGG-Wo',
51803 size: 'medium',
51804 disabledDate: function disabledDate() {
51805 return false;
51806 },
51807 footerRender: function footerRender() {
51808 return null;
51809 },
51810 hasClear: true,
51811 popupTriggerType: 'click',
51812 popupAlign: 'tl tl',
51813 locale: _zhCn2.default.DatePicker,
51814 defaultVisible: false,
51815 onChange: _util.func.noop,
51816 onVisibleChange: _util.func.noop
51817}, _initialiseProps = function _initialiseProps() {
51818 var _this2 = this;
51819
51820 this.handleChange = function (newValue, prevValue) {
51821 if (!('value' in _this2.props)) {
51822 _this2.setState({
51823 value: newValue
51824 });
51825 }
51826
51827 var newValueOf = newValue ? newValue.valueOf() : null;
51828 var preValueOf = prevValue ? prevValue.valueOf() : null;
51829
51830 if (newValueOf !== preValueOf) {
51831 _this2.props.onChange(newValue);
51832 }
51833 };
51834
51835 this.onDateInputChange = function (value, e, eventType) {
51836 if (eventType === 'clear' || !value) {
51837 e.stopPropagation();
51838 _this2.handleChange(null, _this2.state.value);
51839 }
51840 };
51841
51842 this.onKeyDown = function (e) {
51843 if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1) {
51844 return;
51845 }
51846
51847 if (e.altKey && [_util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1 || e.controlKey || e.shiftKey) {
51848 return;
51849 }
51850
51851 var date = _this2.state.value;
51852
51853 if (date && date.isValid()) {
51854 var stepUnit = e.altKey ? 'year' : 'month';
51855 switch (e.keyCode) {
51856 case _util.KEYCODE.UP:
51857 date.subtract(1, 'w');
51858 break;
51859 case _util.KEYCODE.DOWN:
51860 date.add(1, 'w');
51861 break;
51862 case _util.KEYCODE.PAGE_UP:
51863 date.subtract(1, stepUnit);
51864 break;
51865 case _util.KEYCODE.PAGE_DOWN:
51866 date.add(1, stepUnit);
51867 break;
51868 }
51869 } else {
51870 date = (0, _moment2.default)();
51871 }
51872
51873 e.preventDefault();
51874
51875 _this2.handleChange(date, _this2.state.value);
51876 };
51877
51878 this.onVisibleChange = function (visible, type) {
51879 if (!('visible' in _this2.props)) {
51880 _this2.setState({
51881 visible: visible
51882 });
51883 }
51884 _this2.props.onVisibleChange(visible, type);
51885 };
51886
51887 this.onSelectCalendarPanel = function (value) {
51888 _this2.handleChange(value, _this2.state.value);
51889 _this2.onVisibleChange(false, 'calendarSelect');
51890 };
51891
51892 this.dateRender = function (value) {
51893 var _props3 = _this2.props,
51894 prefix = _props3.prefix,
51895 dateCellRender = _props3.dateCellRender;
51896
51897 var selectedValue = _this2.state.value;
51898 var content = dateCellRender && typeof dateCellRender === 'function' ? dateCellRender(value) : value.dates();
51899 if (selectedValue && selectedValue.years() === value.years() && selectedValue.weeks() === value.weeks()) {
51900 var _classnames;
51901
51902 var firstDay = _moment2.default.localeData().firstDayOfWeek();
51903 var endDay = firstDay - 1 < 0 ? 6 : firstDay - 1;
51904 return _react2.default.createElement('div', {
51905 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))
51906 }, _react2.default.createElement('span', null, content));
51907 }
51908
51909 return content;
51910 };
51911}, _temp);
51912WeekPicker.displayName = 'WeekPicker';
51913exports.default = (0, _reactLifecyclesCompat.polyfill)(WeekPicker);
51914module.exports = exports['default'];
51915
51916/***/ }),
51917/* 340 */
51918/***/ (function(module, exports, __webpack_require__) {
51919
51920"use strict";
51921
51922
51923exports.__esModule = true;
51924
51925var _extends3 = __webpack_require__(1);
51926
51927var _extends4 = _interopRequireDefault(_extends3);
51928
51929var _objectWithoutProperties2 = __webpack_require__(8);
51930
51931var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
51932
51933var _classCallCheck2 = __webpack_require__(2);
51934
51935var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
51936
51937var _possibleConstructorReturn2 = __webpack_require__(3);
51938
51939var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
51940
51941var _inherits2 = __webpack_require__(4);
51942
51943var _inherits3 = _interopRequireDefault(_inherits2);
51944
51945var _react = __webpack_require__(0);
51946
51947var _react2 = _interopRequireDefault(_react);
51948
51949var _configProvider = __webpack_require__(9);
51950
51951var _configProvider2 = _interopRequireDefault(_configProvider);
51952
51953var _util = __webpack_require__(6);
51954
51955var _dialog = __webpack_require__(170);
51956
51957var _dialog2 = _interopRequireDefault(_dialog);
51958
51959var _dialogV = __webpack_require__(171);
51960
51961var _dialogV2 = _interopRequireDefault(_dialogV);
51962
51963var _inner = __webpack_require__(93);
51964
51965var _inner2 = _interopRequireDefault(_inner);
51966
51967var _show = __webpack_require__(342);
51968
51969function _interopRequireDefault(obj) {
51970 return obj && obj.__esModule ? obj : { default: obj };
51971}
51972
51973var Dialog = function (_React$Component) {
51974 (0, _inherits3.default)(Dialog, _React$Component);
51975
51976 function Dialog() {
51977 (0, _classCallCheck3.default)(this, Dialog);
51978 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
51979 }
51980
51981 Dialog.prototype.render = function render() {
51982 var _props = this.props,
51983 v2 = _props.v2,
51984 others = (0, _objectWithoutProperties3.default)(_props, ['v2']);
51985
51986 if (v2) {
51987 return _react2.default.createElement(_dialogV2.default, others);
51988 } else {
51989 return _react2.default.createElement(_dialog2.default, others);
51990 }
51991 };
51992
51993 return Dialog;
51994}(_react2.default.Component);
51995
51996Dialog.displayName = 'Dialog';
51997
51998Dialog.Inner = _inner2.default;
51999Dialog.show = function (config) {
52000 var _ConfigProvider$getCo = _configProvider2.default.getContextProps(config, 'Dialog'),
52001 warning = _ConfigProvider$getCo.warning;
52002
52003 if (warning !== false) {
52004 config = processProps(config, _util.log.deprecated);
52005 }
52006 return (0, _show.show)(config);
52007};
52008Dialog.alert = function (config) {
52009 var _ConfigProvider$getCo2 = _configProvider2.default.getContextProps(config, 'Dialog'),
52010 warning = _ConfigProvider$getCo2.warning;
52011
52012 if (warning !== false) {
52013 config = processProps(config, _util.log.deprecated);
52014 }
52015 return (0, _show.alert)(config);
52016};
52017Dialog.confirm = function (config) {
52018 var _ConfigProvider$getCo3 = _configProvider2.default.getContextProps(config, 'Dialog'),
52019 warning = _ConfigProvider$getCo3.warning;
52020
52021 if (warning !== false) {
52022 config = processProps(config, _util.log.deprecated);
52023 }
52024 return (0, _show.confirm)(config);
52025};
52026Dialog.success = function (config) {
52027 return (0, _show.success)(config);
52028};
52029Dialog.error = function (config) {
52030 return (0, _show.error)(config);
52031};
52032Dialog.notice = function (config) {
52033 return (0, _show.notice)(config);
52034};
52035Dialog.warning = function (config) {
52036 return (0, _show.warning)(config);
52037};
52038Dialog.help = function (config) {
52039 return (0, _show.help)(config);
52040};
52041
52042Dialog.withContext = _show.withContext;
52043
52044/* istanbul ignore next */
52045function processProps(props, deprecated) {
52046 if ('closable' in props) {
52047 deprecated('closable', 'closeable', 'Dialog');
52048 var _props2 = props,
52049 closable = _props2.closable,
52050 others = (0, _objectWithoutProperties3.default)(_props2, ['closable']);
52051
52052 props = (0, _extends4.default)({ closeable: closable }, others);
52053 }
52054
52055 if ('v2' in props) {
52056 var nProps = (0, _extends4.default)({}, props);
52057 if ('align' in props) {
52058 delete nProps.align;
52059 deprecated('align', 'centered', '<Dialog v2 />');
52060 }
52061 if ('shouldUpdatePosition' in props) {
52062 delete nProps.shouldUpdatePosition;
52063 _util.log.warning('Warning: [ shouldUpdatePosition ] is deprecated at [ <Dialog v2 /> ]');
52064 }
52065 if ('minMargin' in props) {
52066 // delete nProps.minMargin;
52067 deprecated('minMargin', 'top/bottom', '<Dialog v2 />');
52068 }
52069 if ('isFullScreen' in props) {
52070 props.overFlowScroll = !props.isFullScreen;
52071 delete nProps.isFullScreen;
52072 deprecated('isFullScreen', 'overFlowScroll', '<Dialog v2 />');
52073 }
52074
52075 return nProps;
52076 }
52077
52078 var overlayPropNames = ['target', 'offset', 'beforeOpen', 'onOpen', 'afterOpen', 'beforePosition', 'onPosition', 'cache', 'safeNode', 'wrapperClassName', 'container'];
52079 overlayPropNames.forEach(function (name) {
52080 if (name in props) {
52081 var _extends2;
52082
52083 deprecated(name, 'overlayProps.' + name, 'Dialog');
52084
52085 var _props3 = props,
52086 overlayProps = _props3.overlayProps,
52087 _others = (0, _objectWithoutProperties3.default)(_props3, ['overlayProps']);
52088
52089 var newOverlayProps = (0, _extends4.default)((_extends2 = {}, _extends2[name] = props[name], _extends2), overlayProps || {});
52090 delete _others[name];
52091 props = (0, _extends4.default)({ overlayProps: newOverlayProps }, _others);
52092 }
52093 });
52094
52095 return props;
52096}
52097
52098exports.default = _configProvider2.default.config(Dialog, {
52099 transform: function transform(props, deprecated) {
52100 return processProps(props, deprecated);
52101 }
52102});
52103module.exports = exports['default'];
52104
52105/***/ }),
52106/* 341 */
52107/***/ (function(module, exports, __webpack_require__) {
52108
52109"use strict";
52110
52111
52112exports.__esModule = true;
52113
52114var _util = __webpack_require__(6);
52115
52116/**
52117 * https://github.com/alibaba-fusion/next/issues/3638
52118 * 通过栈的形式:解决弹窗关闭的时候对 document.body 上面的 style 恢复顺序问题
52119 * 问题复现步骤:
52120 * 1. dialog1 进来,把 body.style=overflow:hidden,如果关闭应该恢复 body.style=""
52121 * 2. dialog2 进来,把 body.style=overflow:hidden, 因为此时 body.style是verflow:hidden,所以如果关闭应该恢复 body.style="verflow:hidden"
52122 * 3. dialog1 关闭,恢复 body.style=""。造成问题:dialog2 页面可滚动
52123 * 4. dialog2 关闭,恢复 body.style="verflow:hidden"。造成问题:页面不可滚动
52124 * 解决方案:
52125 * 1. 每个 dialog 修改 body.style 的时候都 push 入栈
52126 * 2. 如果dialog1 先退出,发现 dialog2 存在则不做任何操作,把自己的恢复值给到 dialog2
52127 */
52128
52129var lockcache = [];
52130
52131function lock(container, style) {
52132 var originStyle = container.getAttribute('style');
52133 var uuid = (0, _util.guid)();
52134 lockcache.push({
52135 uuid: uuid,
52136 container: container,
52137 originStyle: originStyle
52138 });
52139 _util.dom.setStyle(container, style);
52140 return uuid;
52141}
52142
52143function unlock(container, uuid) {
52144 var list = lockcache.filter(function (i) {
52145 return i.container === container;
52146 });
52147 var item = list.find(function (i) {
52148 return i.uuid === uuid;
52149 });
52150 if (item) {
52151 var idx = list.indexOf(item);
52152 // 解锁的时候,链表有新增。说明 container style 已经被其他 Dialog 修改过了
52153 if (idx !== -1 && idx < list.length - 1) {
52154 var originStyle = item.originStyle;
52155 // 下一个 dialog 解锁的时候直接替换为
52156 list[idx + 1].originStyle = originStyle;
52157 lockcache.splice(lockcache.indexOf(item), 1);
52158
52159 return;
52160 }
52161
52162 container.setAttribute('style', item.originStyle || '');
52163 lockcache.pop();
52164 }
52165}
52166
52167exports.default = {
52168 lock: lock,
52169 unlock: unlock
52170};
52171module.exports = exports['default'];
52172
52173/***/ }),
52174/* 342 */
52175/***/ (function(module, exports, __webpack_require__) {
52176
52177"use strict";
52178
52179
52180exports.__esModule = true;
52181exports.withContext = exports.confirm = exports.help = exports.warning = exports.notice = exports.error = exports.success = exports.alert = exports.show = exports.ModalInner = undefined;
52182
52183var _objectWithoutProperties2 = __webpack_require__(8);
52184
52185var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
52186
52187var _classCallCheck2 = __webpack_require__(2);
52188
52189var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
52190
52191var _possibleConstructorReturn2 = __webpack_require__(3);
52192
52193var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
52194
52195var _inherits2 = __webpack_require__(4);
52196
52197var _inherits3 = _interopRequireDefault(_inherits2);
52198
52199var _extends2 = __webpack_require__(1);
52200
52201var _extends3 = _interopRequireDefault(_extends2);
52202
52203var _class, _temp2;
52204
52205var _react = __webpack_require__(0);
52206
52207var _react2 = _interopRequireDefault(_react);
52208
52209var _reactDom = __webpack_require__(12);
52210
52211var _reactDom2 = _interopRequireDefault(_reactDom);
52212
52213var _propTypes = __webpack_require__(5);
52214
52215var _propTypes2 = _interopRequireDefault(_propTypes);
52216
52217var _classnames = __webpack_require__(7);
52218
52219var _classnames2 = _interopRequireDefault(_classnames);
52220
52221var _configProvider = __webpack_require__(9);
52222
52223var _configProvider2 = _interopRequireDefault(_configProvider);
52224
52225var _message = __webpack_require__(94);
52226
52227var _message2 = _interopRequireDefault(_message);
52228
52229var _zhCn = __webpack_require__(13);
52230
52231var _zhCn2 = _interopRequireDefault(_zhCn);
52232
52233var _dialog = __webpack_require__(170);
52234
52235var _dialog2 = _interopRequireDefault(_dialog);
52236
52237var _dialogV = __webpack_require__(171);
52238
52239var _dialogV2 = _interopRequireDefault(_dialogV);
52240
52241function _interopRequireDefault(obj) {
52242 return obj && obj.__esModule ? obj : { default: obj };
52243}
52244
52245var Dialog = _configProvider2.default.config(_dialog2.default);
52246var Dialog2 = _configProvider2.default.config(_dialogV2.default);
52247
52248var noop = function noop() {};
52249var MESSAGE_TYPE = {
52250 alert: 'warning', // deprecated in 2.x
52251 confirm: 'help',
52252
52253 success: 'success',
52254 error: 'error',
52255 warning: 'warning',
52256 notice: 'notice',
52257 help: 'help'
52258};
52259
52260var ModalInner = exports.ModalInner = function ModalInner(_ref) {
52261 var type = _ref.type,
52262 _ref$messageProps = _ref.messageProps,
52263 messageProps = _ref$messageProps === undefined ? {} : _ref$messageProps,
52264 title = _ref.title,
52265 rtl = _ref.rtl,
52266 _ref$prefix = _ref.prefix,
52267 prefix = _ref$prefix === undefined ? 'next-' : _ref$prefix,
52268 content = _ref.content;
52269
52270 return _react2.default.createElement(_message2.default, (0, _extends3.default)({
52271 size: 'large',
52272 shape: 'addon',
52273 type: MESSAGE_TYPE[type]
52274 }, messageProps, {
52275 title: title,
52276 rtl: rtl,
52277 className: (0, _classnames2.default)(prefix + 'dialog-message', messageProps.className)
52278 }), content);
52279};
52280
52281var Modal = (_temp2 = _class = function (_Component) {
52282 (0, _inherits3.default)(Modal, _Component);
52283
52284 function Modal() {
52285 var _temp, _this, _ret;
52286
52287 (0, _classCallCheck3.default)(this, Modal);
52288
52289 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
52290 args[_key] = arguments[_key];
52291 }
52292
52293 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.state = {
52294 visible: true,
52295 loading: false
52296 }, _this.close = function () {
52297 _this.setState({
52298 visible: false
52299 });
52300 }, _this.loading = function (loading) {
52301 _this.setState({
52302 loading: loading
52303 });
52304 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
52305 }
52306
52307 Modal.prototype.wrapper = function wrapper(fn, callback) {
52308 var _this2 = this;
52309
52310 return function () {
52311 var res = fn.apply(undefined, arguments);
52312 if (res && res.then) {
52313 _this2.loading(true);
52314
52315 res.then(function (result) {
52316 _this2.loading(false);
52317
52318 if (result !== false) {
52319 return callback();
52320 }
52321 }).catch(function (e) {
52322 _this2.loading(false);
52323 throw e;
52324 });
52325 } else if (res !== false) {
52326 return callback();
52327 }
52328 };
52329 };
52330
52331 Modal.prototype.render = function render() {
52332 var _props = this.props,
52333 prefix = _props.prefix,
52334 type = _props.type,
52335 title = _props.title,
52336 content = _props.content,
52337 messageProps = _props.messageProps,
52338 footerActions = _props.footerActions,
52339 onOk = _props.onOk,
52340 onCancel = _props.onCancel,
52341 onClose = _props.onClose,
52342 okProps = _props.okProps,
52343 needWrapper = _props.needWrapper,
52344 rtl = _props.rtl,
52345 className = _props.className,
52346 v2 = _props.v2,
52347 _props$width = _props.width,
52348 width = _props$width === undefined ? 420 : _props$width,
52349 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'type', 'title', 'content', 'messageProps', 'footerActions', 'onOk', 'onCancel', 'onClose', 'okProps', 'needWrapper', 'rtl', 'className', 'v2', 'width']);
52350
52351 var newTitle = needWrapper && type ? null : title;
52352
52353 var newContent = needWrapper && type ? _react2.default.createElement(ModalInner, {
52354 type: type,
52355 messageProps: messageProps,
52356 title: title,
52357 rtl: rtl,
52358 prefix: prefix,
52359 content: content
52360 }) : content;
52361
52362 var newFooterActions = footerActions || (type === 'confirm' ? ['ok', 'cancel'] : ['alert', 'success', 'error', 'notice', 'warning', 'help'].indexOf(type) > -1 ? ['ok'] : undefined);
52363 var newOnOk = this.wrapper(onOk, this.close);
52364 var newOnCancel = this.wrapper(onCancel, this.close);
52365 var newOnClose = this.wrapper(onClose, this.close);
52366
52367 var _state = this.state,
52368 visible = _state.visible,
52369 loading = _state.loading;
52370 // 不能直接改,这里修改相当于改了全局 okProps
52371 // okProps.loading = loading;
52372
52373 var newOkProps = (0, _extends3.default)({}, okProps);
52374 if (!('loading' in okProps)) {
52375 newOkProps.loading = loading;
52376 }
52377
52378 var classNames = (0, _classnames2.default)(prefix + 'dialog-quick', className);
52379
52380 var Tag = v2 ? Dialog2 : Dialog;
52381
52382 return _react2.default.createElement(Tag, (0, _extends3.default)({
52383 prefix: prefix,
52384 role: 'alertdialog'
52385 }, others, {
52386 visible: visible,
52387 title: newTitle,
52388 rtl: rtl,
52389 footerActions: newFooterActions,
52390 onOk: this.state.loading ? noop : newOnOk,
52391 onCancel: newOnCancel,
52392 onClose: newOnClose,
52393 okProps: newOkProps,
52394 className: classNames,
52395 width: v2 ? width : undefined
52396 }), newContent);
52397 };
52398
52399 return Modal;
52400}(_react.Component), _class.propTypes = {
52401 prefix: _propTypes2.default.string,
52402 pure: _propTypes2.default.bool,
52403 rtl: _propTypes2.default.bool,
52404 type: _propTypes2.default.oneOf(['alert', 'confirm', 'success', 'error', 'notice', 'warning', 'help']),
52405 title: _propTypes2.default.node,
52406 content: _propTypes2.default.node,
52407 messageProps: _propTypes2.default.object,
52408 footerActions: _propTypes2.default.array,
52409 /**
52410 * Callback function triggered when Ok button is clicked
52411 * @param {Object} event click event object
52412 * @returns {Promise} Optionally handles a Promise return object
52413 */
52414 onOk: _propTypes2.default.func,
52415 /**
52416 * Callback function triggered when Cancel button is clicked
52417 * @param {Object} event click event object
52418 * @returns {Promise} Optionally handles a Promise return object
52419 */
52420 onCancel: _propTypes2.default.func,
52421 /**
52422 * Callback function triggered when Close button is clicked
52423 * @param {Object} event click event object
52424 * @returns {Promise} Optionally handles a Promise return object
52425 */
52426 onClose: _propTypes2.default.func,
52427 okProps: _propTypes2.default.object,
52428 locale: _propTypes2.default.object,
52429 needWrapper: _propTypes2.default.bool,
52430 className: _propTypes2.default.string
52431}, _class.defaultProps = {
52432 prefix: 'next-',
52433 pure: false,
52434 messageProps: {},
52435 onOk: noop,
52436 onCancel: noop,
52437 onClose: noop,
52438 okProps: {},
52439 locale: _zhCn2.default.Dialog,
52440 needWrapper: true
52441}, _temp2);
52442Modal.displayName = 'Modal';
52443
52444var ConfigModal = _configProvider2.default.config(Modal, { componentName: 'Dialog' });
52445
52446/**
52447 * 创建对话框
52448 * @exportName show
52449 * @param {Object} config 配置项
52450 * @returns {Object} 包含有 hide 方法,可用来关闭对话框
52451 */
52452var _show = function _show() {
52453 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52454
52455 var container = document.createElement('div');
52456 var unmount = function unmount() {
52457 if (config.afterClose) {
52458 config.afterClose();
52459 }
52460 _reactDom2.default.unmountComponentAtNode(container);
52461 container.parentNode.removeChild(container);
52462 };
52463
52464 document.body.appendChild(container);
52465 var newContext = config.contextConfig;
52466 if (!newContext) newContext = _configProvider2.default.getContext();
52467
52468 var instance = void 0,
52469 myRef = void 0;
52470
52471 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, newContext, _react2.default.createElement(ConfigModal, (0, _extends3.default)({}, config, {
52472 afterClose: unmount,
52473 ref: function ref(_ref2) {
52474 myRef = _ref2;
52475 }
52476 }))), container, function () {
52477 instance = myRef;
52478 });
52479 return {
52480 hide: function hide() {
52481 var inc = instance && instance.getInstance();
52482 inc && inc.close();
52483 }
52484 };
52485};
52486
52487exports.show = _show;
52488var methodFactory = function methodFactory(type) {
52489 return function () {
52490 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52491
52492 config.type = type;
52493 return _show(config);
52494 };
52495};
52496
52497/**
52498 * 创建警示对话框
52499 * @exportName alert
52500 * @param {Object} config 配置项
52501 * @returns {Object} 包含有 hide 方法,可用来关闭对话框
52502 */
52503var _alert = methodFactory('alert');
52504
52505exports.alert = _alert;
52506var _success = methodFactory('success');
52507exports.success = _success;
52508var _error = methodFactory('error');
52509exports.error = _error;
52510var _notice = methodFactory('notice');
52511exports.notice = _notice;
52512var _warning = methodFactory('warning');
52513exports.warning = _warning;
52514var _help = methodFactory('help');
52515
52516/**
52517 * 创建确认对话框
52518 * @exportName confirm
52519 * @param {Object} config 配置项
52520 * @returns {Object} 包含有 hide 方法,可用来关闭对话框
52521 */
52522exports.help = _help;
52523var _confirm = methodFactory('confirm');
52524
52525exports.confirm = _confirm;
52526var withContext = exports.withContext = function withContext(WrappedComponent) {
52527 var HOC = function HOC(props) {
52528 return _react2.default.createElement(_configProvider2.default.Consumer, null, function (contextConfig) {
52529 return _react2.default.createElement(WrappedComponent, (0, _extends3.default)({}, props, {
52530 contextDialog: {
52531 show: function show() {
52532 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52533 return _show((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52534 },
52535 alert: function alert() {
52536 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52537 return _alert((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52538 },
52539 confirm: function confirm() {
52540 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52541 return _confirm((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52542 },
52543 success: function success() {
52544 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52545 return _success((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52546 },
52547 error: function error() {
52548 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52549 return _error((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52550 },
52551 warning: function warning() {
52552 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52553 return _warning((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52554 },
52555 notice: function notice() {
52556 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52557 return _notice((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52558 },
52559 help: function help() {
52560 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52561 return _help((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52562 }
52563 }
52564 }));
52565 });
52566 };
52567 return HOC;
52568};
52569
52570/***/ }),
52571/* 343 */
52572/***/ (function(module, exports, __webpack_require__) {
52573
52574"use strict";
52575
52576
52577exports.__esModule = true;
52578exports.withContext = undefined;
52579
52580var _extends2 = __webpack_require__(1);
52581
52582var _extends3 = _interopRequireDefault(_extends2);
52583
52584var _objectWithoutProperties2 = __webpack_require__(8);
52585
52586var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
52587
52588var _classCallCheck2 = __webpack_require__(2);
52589
52590var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
52591
52592var _possibleConstructorReturn2 = __webpack_require__(3);
52593
52594var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
52595
52596var _inherits2 = __webpack_require__(4);
52597
52598var _inherits3 = _interopRequireDefault(_inherits2);
52599
52600var _class, _temp2;
52601
52602var _react = __webpack_require__(0);
52603
52604var _react2 = _interopRequireDefault(_react);
52605
52606var _reactDom = __webpack_require__(12);
52607
52608var _reactDom2 = _interopRequireDefault(_reactDom);
52609
52610var _propTypes = __webpack_require__(5);
52611
52612var _propTypes2 = _interopRequireDefault(_propTypes);
52613
52614var _overlay = __webpack_require__(15);
52615
52616var _overlay2 = _interopRequireDefault(_overlay);
52617
52618var _configProvider = __webpack_require__(9);
52619
52620var _configProvider2 = _interopRequireDefault(_configProvider);
52621
52622var _util = __webpack_require__(6);
52623
52624var _message = __webpack_require__(95);
52625
52626var _message2 = _interopRequireDefault(_message);
52627
52628function _interopRequireDefault(obj) {
52629 return obj && obj.__esModule ? obj : { default: obj };
52630}
52631
52632var config = _configProvider2.default.config;
52633
52634var instance = void 0;
52635var timeouts = {};
52636
52637var Mask = (_temp2 = _class = function (_React$Component) {
52638 (0, _inherits3.default)(Mask, _React$Component);
52639
52640 function Mask() {
52641 var _temp, _this, _ret;
52642
52643 (0, _classCallCheck3.default)(this, Mask);
52644
52645 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
52646 args[_key] = arguments[_key];
52647 }
52648
52649 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
52650 visible: true
52651 }, _this.handleClose = function () {
52652 var silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
52653
52654 _this.setState({
52655 visible: false
52656 });
52657
52658 if (!silent) {
52659 _this.props.onClose && _this.props.onClose();
52660 }
52661 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
52662 }
52663
52664 Mask.prototype.componentWillUnmount = function componentWillUnmount() {
52665 var timeoutId = this.props.timeoutId;
52666
52667 if (timeoutId in timeouts) {
52668 var timeout = timeouts[timeoutId];
52669 clearTimeout(timeout);
52670 delete timeouts[timeoutId];
52671 }
52672 };
52673
52674 Mask.prototype.render = function render() {
52675 /* eslint-disable no-unused-vars */
52676 var _props = this.props,
52677 prefix = _props.prefix,
52678 type = _props.type,
52679 title = _props.title,
52680 content = _props.content,
52681 align = _props.align,
52682 offset = _props.offset,
52683 hasMask = _props.hasMask,
52684 afterClose = _props.afterClose,
52685 animation = _props.animation,
52686 overlayProps = _props.overlayProps,
52687 timeoutId = _props.timeoutId,
52688 className = _props.className,
52689 style = _props.style,
52690 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'type', 'title', 'content', 'align', 'offset', 'hasMask', 'afterClose', 'animation', 'overlayProps', 'timeoutId', 'className', 'style']);
52691 /* eslint-enable */
52692
52693 var visible = this.state.visible;
52694
52695 return _react2.default.createElement(_overlay2.default, (0, _extends3.default)({}, overlayProps, {
52696 prefix: prefix,
52697 animation: animation,
52698 visible: visible,
52699 align: align,
52700 offset: offset,
52701 hasMask: hasMask,
52702 afterClose: afterClose
52703 }), _react2.default.createElement(_message2.default, (0, _extends3.default)({}, others, {
52704 prefix: prefix,
52705 visible: true,
52706 type: type,
52707 shape: 'toast',
52708 title: title,
52709 style: style,
52710 className: prefix + 'message-wrapper ' + className,
52711 onClose: this.handleClose
52712 }), content));
52713 };
52714
52715 return Mask;
52716}(_react2.default.Component), _class.contextTypes = {
52717 prefix: _propTypes2.default.string
52718}, _class.propTypes = {
52719 prefix: _propTypes2.default.string,
52720 type: _propTypes2.default.string,
52721 title: _propTypes2.default.node,
52722 content: _propTypes2.default.node,
52723 align: _propTypes2.default.string,
52724 offset: _propTypes2.default.array,
52725 hasMask: _propTypes2.default.bool,
52726 afterClose: _propTypes2.default.func,
52727 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
52728 overlayProps: _propTypes2.default.object,
52729 onClose: _propTypes2.default.func,
52730 timeoutId: _propTypes2.default.string,
52731 style: _propTypes2.default.object,
52732 className: _propTypes2.default.string
52733}, _class.defaultProps = {
52734 prefix: 'next-',
52735 align: 'tc tc',
52736 offset: [0, 30],
52737 hasMask: false,
52738 animation: {
52739 in: 'pulse',
52740 out: 'zoomOut'
52741 },
52742 style: {},
52743 className: ''
52744}, _temp2);
52745Mask.displayName = 'Mask';
52746
52747var NewMask = config(Mask);
52748
52749var create = function create(props) {
52750 /* eslint-disable no-unused-vars */
52751 var duration = props.duration,
52752 afterClose = props.afterClose,
52753 contextConfig = props.contextConfig,
52754 others = (0, _objectWithoutProperties3.default)(props, ['duration', 'afterClose', 'contextConfig']);
52755 /* eslint-enable no-unused-vars */
52756
52757 var div = document.createElement('div');
52758 document.body.appendChild(div);
52759 var closeChain = function closeChain() {
52760 _reactDom2.default.unmountComponentAtNode(div);
52761 document.body.removeChild(div);
52762 afterClose && afterClose();
52763 };
52764
52765 var newContext = contextConfig;
52766 if (!newContext) newContext = _configProvider2.default.getContext();
52767
52768 var mask = void 0,
52769 myRef = void 0,
52770 destroyed = false;
52771 var destroy = function destroy() {
52772 var inc = mask && mask.getInstance();
52773 inc && inc.handleClose(true);
52774 destroyed = true;
52775 };
52776
52777 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, newContext, _react2.default.createElement(NewMask, (0, _extends3.default)({
52778 afterClose: closeChain
52779 }, others, {
52780 ref: function ref(_ref) {
52781 myRef = _ref;
52782 }
52783 }))), div, function () {
52784 mask = myRef;
52785 if (mask && destroyed) {
52786 destroy();
52787 }
52788 });
52789
52790 return {
52791 component: mask,
52792 destroy: destroy
52793 };
52794};
52795
52796function handleConfig(config, type) {
52797 var newConfig = {};
52798
52799 if (typeof config === 'string' || _react2.default.isValidElement(config)) {
52800 newConfig.title = config;
52801 } else if (isObject(config)) {
52802 newConfig = (0, _extends3.default)({}, config);
52803 }
52804 if (typeof newConfig.duration !== 'number') {
52805 newConfig.duration = 3000;
52806 }
52807 if (type) {
52808 newConfig.type = type;
52809 }
52810
52811 return newConfig;
52812}
52813
52814function isObject(obj) {
52815 return {}.toString.call(obj) === '[object Object]';
52816}
52817
52818function open(config, type) {
52819 close();
52820 config = handleConfig(config, type);
52821 var timeoutId = (0, _util.guid)();
52822 instance = create((0, _extends3.default)({}, config, { timeoutId: timeoutId }));
52823
52824 if (config.duration > 0) {
52825 var timeout = setTimeout(close, config.duration);
52826 timeouts[timeoutId] = timeout;
52827 }
52828}
52829
52830function close() {
52831 if (instance) {
52832 instance.destroy();
52833 instance = null;
52834 }
52835}
52836
52837/**
52838 * 创建提示弹层
52839 * @exportName show
52840 * @param {Object} props 属性对象
52841 */
52842function _show(config) {
52843 open(config);
52844}
52845
52846/**
52847 * 关闭提示弹层
52848 * @exportName hide
52849 */
52850function hide() {
52851 close();
52852}
52853
52854/**
52855 * 创建成功提示弹层
52856 * @exportName success
52857 * @param {Object} props 属性对象
52858 */
52859function _success(config) {
52860 open(config, 'success');
52861}
52862
52863/**
52864 * 创建警告提示弹层
52865 * @exportName warning
52866 * @param {Object} props 属性对象
52867 */
52868function _warning(config) {
52869 open(config, 'warning');
52870}
52871
52872/**
52873 * 创建错误提示弹层
52874 * @exportName error
52875 * @param {Object} props 属性对象
52876 */
52877function _error(config) {
52878 open(config, 'error');
52879}
52880
52881/**
52882 * 创建帮助提示弹层
52883 * @exportName help
52884 * @param {Object} props 属性对象
52885 */
52886function _help(config) {
52887 open(config, 'help');
52888}
52889
52890/**
52891 * 创建加载中提示弹层
52892 * @exportName loading
52893 * @param {Object} props 属性对象
52894 */
52895function _loading(config) {
52896 open(config, 'loading');
52897}
52898
52899/**
52900 * 创建通知提示弹层
52901 * @exportName notice
52902 * @param {Object} props 属性对象
52903 */
52904function _notice(config) {
52905 open(config, 'notice');
52906}
52907
52908exports.default = {
52909 show: _show,
52910 hide: hide,
52911 success: _success,
52912 warning: _warning,
52913 error: _error,
52914 help: _help,
52915 loading: _loading,
52916 notice: _notice
52917};
52918var withContext = exports.withContext = function withContext(WrappedComponent) {
52919 var HOC = function HOC(props) {
52920 return _react2.default.createElement(_configProvider2.default.Consumer, null, function (contextConfig) {
52921 return _react2.default.createElement(WrappedComponent, (0, _extends3.default)({}, props, {
52922 contextMessage: {
52923 show: function show() {
52924 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52925 return _show((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52926 },
52927 hide: hide,
52928 success: function success() {
52929 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52930 return _success((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52931 },
52932 warning: function warning() {
52933 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52934 return _warning((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52935 },
52936 error: function error() {
52937 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52938 return _error((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52939 },
52940 help: function help() {
52941 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52942 return _help((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52943 },
52944 loading: function loading() {
52945 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52946 return _loading((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52947 },
52948 notice: function notice() {
52949 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52950 return _notice((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52951 }
52952 }
52953 }));
52954 });
52955 };
52956 return HOC;
52957};
52958
52959/***/ }),
52960/* 344 */
52961/***/ (function(module, exports, __webpack_require__) {
52962
52963"use strict";
52964
52965
52966exports.__esModule = true;
52967
52968var _extends2 = __webpack_require__(1);
52969
52970var _extends3 = _interopRequireDefault(_extends2);
52971
52972var _objectWithoutProperties2 = __webpack_require__(8);
52973
52974var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
52975
52976var _react = __webpack_require__(0);
52977
52978var _react2 = _interopRequireDefault(_react);
52979
52980var _reactDom = __webpack_require__(12);
52981
52982var _reactDom2 = _interopRequireDefault(_reactDom);
52983
52984var _configProvider = __webpack_require__(9);
52985
52986var _configProvider2 = _interopRequireDefault(_configProvider);
52987
52988var _animate = __webpack_require__(20);
52989
52990var _animate2 = _interopRequireDefault(_animate);
52991
52992var _message = __webpack_require__(95);
52993
52994var _message2 = _interopRequireDefault(_message);
52995
52996var _util = __webpack_require__(6);
52997
52998function _interopRequireDefault(obj) {
52999 return obj && obj.__esModule ? obj : { default: obj };
53000}
53001
53002var _config = {
53003 top: 8,
53004 maxCount: 0,
53005 duration: 3000
53006};
53007
53008var MessageWrapper = function MessageWrapper(props) {
53009 // eslint-disable-next-line
53010 var _props$prefix = props.prefix,
53011 prefix = _props$prefix === undefined ? 'next-' : _props$prefix,
53012 _props$dataSource = props.dataSource,
53013 dataSource = _props$dataSource === undefined ? [] : _props$dataSource;
53014
53015 var _useState = (0, _react.useState)(),
53016 forceUpdate = _useState[1];
53017
53018 dataSource.forEach(function (i) {
53019 if (!i.timer) {
53020 i.timer = setTimeout(function () {
53021 var idx = dataSource.indexOf(i);
53022 if (idx > -1) {
53023 var item = dataSource[idx];
53024 typeof item.onClose === 'function' && item.onClose();
53025 dataSource.splice(idx, 1);
53026 forceUpdate({});
53027 }
53028 }, i.duration);
53029 }
53030 });
53031
53032 return _react2.default.createElement('div', { className: prefix + 'message-wrapper-v2', style: { top: _config.top } }, _react2.default.createElement(_animate2.default, {
53033 animationAppear: true,
53034 animation: {
53035 appear: 'pulse',
53036 enter: 'pulse',
53037 leave: prefix + 'message-fade-leave'
53038 },
53039 singleMode: false
53040 }, dataSource.map(function (i) {
53041 var key = i.key,
53042 className = i.className,
53043 type = i.type,
53044 title = i.title,
53045 content = i.content,
53046 style = i.style,
53047 others = (0, _objectWithoutProperties3.default)(i, ['key', 'className', 'type', 'title', 'content', 'style']);
53048
53049 return _react2.default.createElement('div', { className: prefix + 'message-list', key: key }, _react2.default.createElement(_message2.default, (0, _extends3.default)({}, others, {
53050 className: className,
53051 prefix: prefix,
53052 visible: true,
53053 type: type,
53054 shape: 'toast',
53055 title: title,
53056 style: style
53057 }), content));
53058 })));
53059};
53060
53061var ConfigedMessages = _configProvider2.default.config(MessageWrapper);
53062
53063var messageRootNode = void 0;
53064var messageList = [];
53065
53066var createMessage = function createMessage(props) {
53067 var _props$key = props.key,
53068 key = _props$key === undefined ? (0, _util.guid)('message-') : _props$key,
53069 others = (0, _objectWithoutProperties3.default)(props, ['key']);
53070
53071 if (!messageRootNode) {
53072 messageRootNode = document.createElement('div');
53073 document.body.appendChild(messageRootNode);
53074 }
53075
53076 var maxCount = _config.maxCount,
53077 duration = _config.duration;
53078
53079 var item = (0, _extends3.default)({
53080 key: key,
53081 duration: duration
53082 }, others);
53083
53084 messageList.push(item);
53085
53086 if (maxCount && messageList.length > maxCount) {
53087 messageList.shift();
53088 }
53089
53090 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, _configProvider2.default.getContext(), _react2.default.createElement(ConfigedMessages, { dataSource: messageList })), messageRootNode);
53091
53092 return {
53093 key: key,
53094 close: function close() {
53095 if (item.timer) {
53096 clearTimeout(item.timer);
53097 }
53098 var idx = messageList.indexOf(item);
53099 if (idx > -1) {
53100 typeof item.onClose === 'function' && item.onClose();
53101 messageList.splice(idx, 1);
53102
53103 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, _configProvider2.default.getContext(), _react2.default.createElement(ConfigedMessages, { dataSource: messageList })), messageRootNode);
53104 }
53105 }
53106 };
53107};
53108
53109function close(key) {
53110 if (key) {
53111 var index = messageList.findIndex(function (item) {
53112 return item.key === key;
53113 });
53114 messageList.splice(index, 1);
53115 } else {
53116 messageList = [];
53117 }
53118
53119 if (messageRootNode) {
53120 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, _configProvider2.default.getContext(), _react2.default.createElement(ConfigedMessages, { dataSource: messageList })), messageRootNode);
53121 }
53122}
53123
53124function handleConfig(config, type) {
53125 var newConfig = {};
53126
53127 if (typeof config === 'string' || _react2.default.isValidElement(config)) {
53128 newConfig.title = config;
53129 } else if (_util.obj.typeOf(config) === 'Object') {
53130 newConfig = (0, _extends3.default)({}, config);
53131 }
53132
53133 if (type) {
53134 newConfig.type = type;
53135 }
53136
53137 return newConfig;
53138}
53139
53140function open(type) {
53141 return function (config) {
53142 config = handleConfig(config, type);
53143 return createMessage(config);
53144 };
53145}
53146
53147function destory() {
53148 if (!messageRootNode) return;
53149 if (messageRootNode) {
53150 _reactDom2.default.unmountComponentAtNode(messageRootNode);
53151 messageRootNode.parentNode.removeChild(messageRootNode);
53152 messageRootNode = null;
53153 }
53154}
53155
53156exports.default = {
53157 open: open(),
53158 success: open('success'),
53159 warning: open('warning'),
53160 error: open('error'),
53161 help: open('help'),
53162 loading: open('loading'),
53163 notice: open('notice'),
53164 close: close,
53165 destory: destory,
53166 config: function config() {
53167 if (!_react.useState) {
53168 _util.log.warning('need react version > 16.8.0');
53169 return;
53170 }
53171
53172 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
53173 args[_key] = arguments[_key];
53174 }
53175
53176 return _extends3.default.apply(undefined, [_config].concat(args));
53177 }
53178};
53179module.exports = exports['default'];
53180
53181/***/ }),
53182/* 345 */
53183/***/ (function(module, exports, __webpack_require__) {
53184
53185"use strict";
53186
53187
53188exports.__esModule = true;
53189
53190var _configProvider = __webpack_require__(9);
53191
53192var _configProvider2 = _interopRequireDefault(_configProvider);
53193
53194var _drawer = __webpack_require__(346);
53195
53196var _drawer2 = _interopRequireDefault(_drawer);
53197
53198var _inner = __webpack_require__(172);
53199
53200var _inner2 = _interopRequireDefault(_inner);
53201
53202function _interopRequireDefault(obj) {
53203 return obj && obj.__esModule ? obj : { default: obj };
53204}
53205
53206_drawer2.default.Inner = _inner2.default;
53207exports.default = _configProvider2.default.config(_drawer2.default);
53208module.exports = exports['default'];
53209
53210/***/ }),
53211/* 346 */
53212/***/ (function(module, exports, __webpack_require__) {
53213
53214"use strict";
53215
53216
53217exports.__esModule = true;
53218exports.default = undefined;
53219
53220var _objectWithoutProperties2 = __webpack_require__(8);
53221
53222var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
53223
53224var _extends2 = __webpack_require__(1);
53225
53226var _extends3 = _interopRequireDefault(_extends2);
53227
53228var _classCallCheck2 = __webpack_require__(2);
53229
53230var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
53231
53232var _possibleConstructorReturn2 = __webpack_require__(3);
53233
53234var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
53235
53236var _inherits2 = __webpack_require__(4);
53237
53238var _inherits3 = _interopRequireDefault(_inherits2);
53239
53240var _class, _temp2;
53241
53242var _propTypes = __webpack_require__(5);
53243
53244var _propTypes2 = _interopRequireDefault(_propTypes);
53245
53246var _react = __webpack_require__(0);
53247
53248var _react2 = _interopRequireDefault(_react);
53249
53250var _overlay = __webpack_require__(15);
53251
53252var _overlay2 = _interopRequireDefault(_overlay);
53253
53254var _inner = __webpack_require__(172);
53255
53256var _inner2 = _interopRequireDefault(_inner);
53257
53258var _zhCn = __webpack_require__(13);
53259
53260var _zhCn2 = _interopRequireDefault(_zhCn);
53261
53262var _util = __webpack_require__(6);
53263
53264function _interopRequireDefault(obj) {
53265 return obj && obj.__esModule ? obj : { default: obj };
53266}
53267
53268var noop = function noop() {};
53269var Popup = _overlay2.default.Popup;
53270var pickOthers = _util.obj.pickOthers;
53271
53272/**
53273 * Drawer
53274 * @description 继承 Overlay.Popup 的 API,除非特别说明
53275 * */
53276
53277var Drawer = (_temp2 = _class = function (_Component) {
53278 (0, _inherits3.default)(Drawer, _Component);
53279
53280 function Drawer() {
53281 var _temp, _this, _ret;
53282
53283 (0, _classCallCheck3.default)(this, Drawer);
53284
53285 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
53286 args[_key] = arguments[_key];
53287 }
53288
53289 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.getAlign = function (placement) {
53290 var align = void 0;
53291 switch (placement) {
53292 case 'top':
53293 align = 'tl tl';
53294 break;
53295 case 'bottom':
53296 align = 'bl bl';
53297 break;
53298 case 'left':
53299 align = 'tl tl';
53300 break;
53301 case 'right':
53302 default:
53303 align = 'tr tr';
53304 break;
53305 }
53306
53307 return align;
53308 }, _this.getAnimation = function (placement) {
53309 if ('animation' in _this.props) {
53310 return _this.props.animation;
53311 }
53312
53313 var animation = void 0;
53314 switch (placement) {
53315 case 'top':
53316 animation = {
53317 in: 'slideInDown',
53318 out: 'slideOutUp'
53319 };
53320 break;
53321 case 'bottom':
53322 animation = {
53323 in: 'slideInUp',
53324 out: 'slideOutDown'
53325 };
53326 break;
53327 case 'left':
53328 animation = {
53329 in: 'slideInLeft',
53330 out: 'slideOutLeft'
53331 };
53332 break;
53333 case 'right':
53334 default:
53335 animation = {
53336 in: 'slideInRight',
53337 out: 'slideOutRight'
53338 };
53339 break;
53340 }
53341
53342 return animation;
53343 }, _this.getOverlayRef = function (ref) {
53344 _this.overlay = ref;
53345 }, _this.mapcloseableToConfig = function (closeable) {
53346 return ['esc', 'close', 'mask'].reduce(function (ret, option) {
53347 var key = option.charAt(0).toUpperCase() + option.substr(1);
53348 var value = typeof closeable === 'boolean' ? closeable : closeable.split(',').indexOf(option) > -1;
53349
53350 if (option === 'esc' || option === 'mask') {
53351 ret['canCloseBy' + key] = value;
53352 } else {
53353 ret['canCloseBy' + key + 'Click'] = value;
53354 }
53355
53356 return ret;
53357 }, {});
53358 }, _this.handleVisibleChange = function (visible, reason, e) {
53359 var _this$props = _this.props,
53360 onClose = _this$props.onClose,
53361 onVisibleChange = _this$props.onVisibleChange;
53362
53363 if (visible === false) {
53364 onClose && onClose(reason, e);
53365 }
53366
53367 onVisibleChange && onVisibleChange(visible, reason, e);
53368 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
53369 }
53370
53371 Drawer.prototype.renderInner = function renderInner(closeable) {
53372 var _props = this.props,
53373 prefix = _props.prefix,
53374 className = _props.className,
53375 children = _props.children,
53376 title = _props.title,
53377 onClose = _props.onClose,
53378 locale = _props.locale,
53379 headerStyle = _props.headerStyle,
53380 bodyStyle = _props.bodyStyle,
53381 placement = _props.placement,
53382 rtl = _props.rtl;
53383
53384 var others = pickOthers(Object.keys(Drawer.propTypes), this.props);
53385
53386 return _react2.default.createElement(_inner2.default, (0, _extends3.default)({
53387 prefix: prefix,
53388 title: title,
53389 className: className,
53390 locale: locale,
53391 closeable: closeable,
53392 rtl: rtl,
53393 headerStyle: headerStyle,
53394 bodyStyle: bodyStyle,
53395 placement: placement,
53396 onClose: onClose.bind(this, 'closeClick')
53397 }, others), children);
53398 };
53399
53400 Drawer.prototype.render = function render() {
53401 var _props2 = this.props,
53402 prefix = _props2.prefix,
53403 style = _props2.style,
53404 width = _props2.width,
53405 height = _props2.height,
53406 trigger = _props2.trigger,
53407 triggerType = _props2.triggerType,
53408 animation = _props2.animation,
53409 hasMask = _props2.hasMask,
53410 visible = _props2.visible,
53411 placement = _props2.placement,
53412 onClose = _props2.onClose,
53413 onVisibleChange = _props2.onVisibleChange,
53414 closeable = _props2.closeable,
53415 closeMode = _props2.closeMode,
53416 rtl = _props2.rtl,
53417 popupContainer = _props2.popupContainer,
53418 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'style', 'width', 'height', 'trigger', 'triggerType', 'animation', 'hasMask', 'visible', 'placement', 'onClose', 'onVisibleChange', 'closeable', 'closeMode', 'rtl', 'popupContainer']);
53419
53420 var newStyle = (0, _extends3.default)({
53421 width: width,
53422 height: height
53423 }, style);
53424
53425 var newCloseable = 'closeMode' in this.props ? Array.isArray(closeMode) ? closeMode.join(',') : closeMode : closeable;
53426
53427 var _mapcloseableToConfig = this.mapcloseableToConfig(newCloseable),
53428 canCloseByCloseClick = _mapcloseableToConfig.canCloseByCloseClick,
53429 closeConfig = (0, _objectWithoutProperties3.default)(_mapcloseableToConfig, ['canCloseByCloseClick']);
53430
53431 var newPopupProps = (0, _extends3.default)({
53432 prefix: prefix,
53433 visible: visible,
53434 trigger: trigger,
53435 triggerType: triggerType,
53436 onVisibleChange: this.handleVisibleChange,
53437 animation: this.getAnimation(placement),
53438 hasMask: hasMask,
53439 align: this.getAlign(placement)
53440 }, closeConfig, {
53441 canCloseByOutSideClick: false,
53442 disableScroll: true,
53443 ref: this.getOverlayRef,
53444 rtl: rtl,
53445 target: 'viewport',
53446 style: newStyle,
53447 needAdjust: false,
53448 container: popupContainer
53449 });
53450
53451 var inner = this.renderInner(canCloseByCloseClick);
53452
53453 return _react2.default.createElement(Popup, (0, _extends3.default)({}, newPopupProps, others), inner);
53454 };
53455
53456 return Drawer;
53457}(_react.Component), _class.displayName = 'Drawer', _class.propTypes = (0, _extends3.default)({}, Popup.propTypes || {}, {
53458 prefix: _propTypes2.default.string,
53459 pure: _propTypes2.default.bool,
53460 rtl: _propTypes2.default.bool,
53461 // 不建议使用trigger
53462 trigger: _propTypes2.default.element,
53463 triggerType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
53464 /**
53465 * 宽度,仅在 placement是 left right 的时候生效
53466 */
53467 width: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
53468 /**
53469 * 高度,仅在 placement是 top bottom 的时候生效
53470 */
53471 height: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
53472 /**
53473 * [废弃]同closeMode, 控制对话框关闭的方式,值可以为字符串或者布尔值,其中字符串是由以下值组成:
53474 * **close** 表示点击关闭按钮可以关闭对话框
53475 * **mask** 表示点击遮罩区域可以关闭对话框
53476 * **esc** 表示按下 esc 键可以关闭对话框
53477 * 如 'close' 或 'close,esc,mask'
53478 * 如果设置为 true,则以上关闭方式全部生效
53479 * 如果设置为 false,则以上关闭方式全部失效
53480 */
53481 closeable: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
53482 /**
53483 * 隐藏时是否保留子节点,不销毁
53484 */
53485 cache: _propTypes2.default.bool,
53486 /**
53487 * [推荐]控制对话框关闭的方式,值可以为字符串或者数组,其中字符串、数组均为以下值的枚举:
53488 * **close** 表示点击关闭按钮可以关闭对话框
53489 * **mask** 表示点击遮罩区域可以关闭对话框
53490 * **esc** 表示按下 esc 键可以关闭对话框
53491 * 如 'close' 或 ['close','esc','mask'], []
53492 * @version 1.21
53493 */
53494 closeMode: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.oneOf(['close', 'mask', 'esc'])), _propTypes2.default.oneOf(['close', 'mask', 'esc'])]),
53495 /**
53496 * 对话框关闭时触发的回调函数
53497 * @param {String} trigger 关闭触发行为的描述字符串
53498 * @param {Object} event 关闭时事件对象
53499 */
53500 onClose: _propTypes2.default.func,
53501 /**
53502 * 对话框打开后的回调函数
53503 */
53504 afterOpen: _propTypes2.default.func,
53505 /**
53506 * 位于页面的位置
53507 */
53508 placement: _propTypes2.default.oneOf(['top', 'right', 'bottom', 'left']),
53509 /**
53510 * 标题
53511 */
53512 title: _propTypes2.default.node,
53513 /**
53514 * header上的样式
53515 */
53516 headerStyle: _propTypes2.default.object,
53517 /**
53518 * body上的样式
53519 */
53520 bodyStyle: _propTypes2.default.object,
53521 /**
53522 * 是否显示
53523 */
53524 visible: _propTypes2.default.bool,
53525 /**
53526 * 是否显示遮罩
53527 */
53528 hasMask: _propTypes2.default.bool,
53529 // 受控模式下(没有 trigger 的时候),只会在关闭时触发,相当于onClose
53530 onVisibleChange: _propTypes2.default.func,
53531 /**
53532 * 显示隐藏时动画的播放方式,支持 { in: 'enter-class', out: 'leave-class' } 的对象参数,如果设置为 false,则不播放动画。 请参考 Animate 组件的文档获取可用的动画名
53533 * @default { in: 'expandInDown', out: 'expandOutUp' }
53534 */
53535 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
53536 locale: _propTypes2.default.object,
53537 // for ConfigProvider
53538 popupContainer: _propTypes2.default.any
53539}), _class.defaultProps = {
53540 prefix: 'next-',
53541 triggerType: 'click',
53542 trigger: null,
53543 closeable: true,
53544 onClose: noop,
53545 hasMask: true,
53546 placement: 'right',
53547 locale: _zhCn2.default.Drawer
53548}, _temp2);
53549Drawer.displayName = 'Drawer';
53550exports.default = Drawer;
53551module.exports = exports['default'];
53552
53553/***/ }),
53554/* 347 */
53555/***/ (function(module, exports, __webpack_require__) {
53556
53557"use strict";
53558
53559
53560var _interopRequireDefault = __webpack_require__(28);
53561
53562Object.defineProperty(exports, "__esModule", {
53563 value: true
53564});
53565exports.default = void 0;
53566
53567var _regenerator = _interopRequireDefault(__webpack_require__(96));
53568
53569var _slicedToArray2 = _interopRequireDefault(__webpack_require__(349));
53570
53571var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(97));
53572
53573var _typeof2 = _interopRequireDefault(__webpack_require__(31));
53574
53575var _defineProperty2 = _interopRequireDefault(__webpack_require__(98));
53576
53577var _extends2 = _interopRequireDefault(__webpack_require__(61));
53578
53579var _classCallCheck2 = _interopRequireDefault(__webpack_require__(174));
53580
53581var _createClass2 = _interopRequireDefault(__webpack_require__(175));
53582
53583var _validate2 = _interopRequireDefault(__webpack_require__(355));
53584
53585var _utils = __webpack_require__(364);
53586
53587var initMeta = {
53588 state: '',
53589 valueName: 'value',
53590 trigger: 'onChange',
53591 inputValues: []
53592};
53593
53594var Field = /*#__PURE__*/function () {
53595 function Field(com) {
53596 var _this = this;
53597
53598 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
53599 (0, _classCallCheck2.default)(this, Field);
53600
53601 if (!com) {
53602 (0, _utils.warning)('`this` is missing in `Field`, you should use like `new Field(this)`');
53603 }
53604
53605 this.com = com;
53606 this.fieldsMeta = {};
53607 this.cachedBind = {};
53608 this.instance = {};
53609 this.instanceCount = {}; // holds constructor values. Used for setting field defaults on init if no other value or initValue is passed.
53610 // Also used caching values when using `parseName: true` before a field is initialized
53611
53612 this.values = (0, _extends2.default)({}, options.values);
53613 this.processErrorMessage = options.processErrorMessage;
53614 this.afterValidateRerender = options.afterValidateRerender;
53615 this.options = (0, _extends2.default)({
53616 parseName: false,
53617 forceUpdate: false,
53618 scrollToFirstError: true,
53619 first: false,
53620 onChange: function onChange() {},
53621 autoUnmount: true,
53622 autoValidate: true
53623 }, options);
53624 ['init', 'getValue', 'getValues', 'setValue', 'setValues', 'getError', 'getErrors', 'setError', 'setErrors', 'validateCallback', 'validatePromise', 'getState', 'reset', 'resetToDefault', 'remove', 'spliceArray', 'addArrayValue', 'deleteArrayValue', 'getNames'].forEach(function (m) {
53625 _this[m] = _this[m].bind(_this);
53626 });
53627 }
53628
53629 (0, _createClass2.default)(Field, [{
53630 key: "setOptions",
53631 value: function setOptions(options) {
53632 (0, _extends2.default)(this.options, options);
53633 }
53634 /**
53635 * Controlled Component
53636 * @param {String} name
53637 * @param {Object} fieldOption
53638 * @returns {Object} {value, onChange}
53639 */
53640
53641 }, {
53642 key: "init",
53643 value: function init(name) {
53644 var _this2 = this;
53645
53646 var fieldOption = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
53647 var rprops = arguments.length > 2 ? arguments[2] : undefined;
53648 var id = fieldOption.id,
53649 initValue = fieldOption.initValue,
53650 _fieldOption$valueNam = fieldOption.valueName,
53651 valueName = _fieldOption$valueNam === void 0 ? 'value' : _fieldOption$valueNam,
53652 _fieldOption$trigger = fieldOption.trigger,
53653 trigger = _fieldOption$trigger === void 0 ? 'onChange' : _fieldOption$trigger,
53654 _fieldOption$rules = fieldOption.rules,
53655 rules = _fieldOption$rules === void 0 ? [] : _fieldOption$rules,
53656 _fieldOption$props = fieldOption.props,
53657 props = _fieldOption$props === void 0 ? {} : _fieldOption$props,
53658 _fieldOption$getValue = fieldOption.getValueFromEvent,
53659 getValueFromEvent = _fieldOption$getValue === void 0 ? null : _fieldOption$getValue,
53660 _fieldOption$getValue2 = fieldOption.getValueFormatter,
53661 getValueFormatter = _fieldOption$getValue2 === void 0 ? getValueFromEvent : _fieldOption$getValue2,
53662 setValueFormatter = fieldOption.setValueFormatter,
53663 _fieldOption$autoVali = fieldOption.autoValidate,
53664 autoValidate = _fieldOption$autoVali === void 0 ? true : _fieldOption$autoVali;
53665 var parseName = this.options.parseName;
53666
53667 if (getValueFromEvent) {
53668 (0, _utils.warning)('`getValueFromEvent` has been deprecated in `Field`, use `getValueFormatter` instead of it');
53669 }
53670
53671 var originalProps = (0, _extends2.default)({}, props, rprops);
53672 var defaultValueName = "default".concat(valueName[0].toUpperCase()).concat(valueName.slice(1));
53673 var defaultValue;
53674
53675 if (typeof initValue !== 'undefined') {
53676 defaultValue = initValue;
53677 } else if (typeof originalProps[defaultValueName] !== 'undefined') {
53678 // here use typeof, in case of defaultValue={0}
53679 defaultValue = originalProps[defaultValueName];
53680 } // get field from this.fieldsMeta or new one
53681
53682
53683 var field = this._getInitMeta(name);
53684
53685 (0, _extends2.default)(field, {
53686 valueName: valueName,
53687 initValue: defaultValue,
53688 disabled: 'disabled' in originalProps ? originalProps.disabled : false,
53689 getValueFormatter: getValueFormatter,
53690 setValueFormatter: setValueFormatter,
53691 rules: Array.isArray(rules) ? rules : [rules],
53692 ref: originalProps.ref
53693 }); // Controlled Component, should always equal props.value
53694
53695 if (valueName in originalProps) {
53696 field.value = originalProps[valueName]; // When rerendering set the values from props.value
53697
53698 if (parseName) {
53699 this.values = (0, _utils.setIn)(this.values, name, field.value);
53700 } else {
53701 this.values[name] = field.value;
53702 }
53703 }
53704 /**
53705 * first init field (value not in field)
53706 * should get field.value from this.values or defaultValue
53707 */
53708
53709
53710 if (!('value' in field)) {
53711 if (parseName) {
53712 var cachedValue = (0, _utils.getIn)(this.values, name);
53713
53714 if (typeof cachedValue !== 'undefined') {
53715 field.value = cachedValue;
53716 } else {
53717 // save struct to this.values even defaultValue is undefiend
53718 field.value = defaultValue;
53719 this.values = (0, _utils.setIn)(this.values, name, field.value);
53720 }
53721 } else {
53722 var _cachedValue = this.values[name];
53723
53724 if (typeof _cachedValue !== 'undefined') {
53725 field.value = _cachedValue;
53726 } else if (typeof defaultValue !== 'undefined') {
53727 // should be same with parseName, but compatible with old versions
53728 field.value = defaultValue;
53729 this.values[name] = field.value;
53730 }
53731 }
53732 } // Component props
53733
53734
53735 var inputProps = (0, _defineProperty2.default)({
53736 'data-meta': 'Field',
53737 id: id || name,
53738 ref: this._getCacheBind(name, "".concat(name, "__ref"), this._saveRef)
53739 }, valueName, setValueFormatter ? setValueFormatter(field.value, field.inputValues) : field.value);
53740 var rulesMap = {};
53741
53742 if (this.options.autoValidate && autoValidate !== false) {
53743 // trigger map in rules,
53744 rulesMap = (0, _utils.mapValidateRules)(field.rules, trigger); // step1 : validate hooks
53745
53746 var _loop = function _loop(action) {
53747 // skip default trigger, which will trigger in step2
53748 if (action === trigger) {
53749 return "continue";
53750 }
53751
53752 var actionRule = rulesMap[action];
53753
53754 inputProps[action] = function () {
53755 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
53756 args[_key] = arguments[_key];
53757 }
53758
53759 _this2._callNativePropsEvent.apply(_this2, [action, originalProps].concat(args));
53760
53761 _this2._validate(name, actionRule, action);
53762 };
53763 };
53764
53765 for (var action in rulesMap) {
53766 var _ret = _loop(action);
53767
53768 if (_ret === "continue") continue;
53769 }
53770 } // step2: onChange(trigger=onChange by default) hack
53771
53772
53773 inputProps[trigger] = function () {
53774 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
53775 args[_key2] = arguments[_key2];
53776 }
53777
53778 _this2._updateFieldValue.apply(_this2, [name].concat(args)); // clear validate error
53779
53780
53781 _this2._resetError(name);
53782
53783 _this2._callNativePropsEvent.apply(_this2, [trigger, originalProps].concat(args)); // call global onChange
53784
53785
53786 _this2.options.onChange(name, field.value); // validate while onChange
53787
53788
53789 var rule = rulesMap[trigger];
53790 rule && _this2._validate(name, rule, trigger);
53791
53792 _this2._reRender();
53793 };
53794
53795 delete originalProps[defaultValueName];
53796 return (0, _extends2.default)({}, originalProps, inputProps);
53797 }
53798 /**
53799 * call native event from props.onXx
53800 * eg: props.onChange props.onBlur props.onFocus
53801 */
53802
53803 }, {
53804 key: "_callNativePropsEvent",
53805 value: function _callNativePropsEvent(action, props) {
53806 for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
53807 args[_key3 - 2] = arguments[_key3];
53808 }
53809
53810 action in props && typeof props[action] === 'function' && props[action].apply(props, args);
53811 }
53812 }, {
53813 key: "_getInitMeta",
53814 value: function _getInitMeta(name) {
53815 if (!(name in this.fieldsMeta)) {
53816 this.fieldsMeta[name] = (0, _extends2.default)({}, initMeta);
53817 }
53818
53819 return this.fieldsMeta[name];
53820 }
53821 /**
53822 * update field.value and validate
53823 */
53824
53825 }, {
53826 key: "_updateFieldValue",
53827 value: function _updateFieldValue(name) {
53828 for (var _len4 = arguments.length, others = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
53829 others[_key4 - 1] = arguments[_key4];
53830 }
53831
53832 var e = others[0];
53833
53834 var field = this._get(name);
53835
53836 if (!field) {
53837 return;
53838 }
53839
53840 field.value = field.getValueFormatter ? field.getValueFormatter.apply(this, others) : (0, _utils.getValueFromEvent)(e);
53841 field.inputValues = others;
53842
53843 if (this.options.parseName) {
53844 this.values = (0, _utils.setIn)(this.values, name, field.value);
53845 } else {
53846 this.values[name] = field.value;
53847 }
53848 }
53849 /**
53850 * ref must always be the same function, or if not it will be triggerd every time.
53851 * @param {String} name name of component
53852 * @param {String} action key to find ref
53853 * @param {Function} fn saveRef
53854 */
53855
53856 }, {
53857 key: "_getCacheBind",
53858 value: function _getCacheBind(name, action, fn) {
53859 var cache = this.cachedBind[name] = this.cachedBind[name] || {};
53860
53861 if (!cache[action]) {
53862 cache[action] = fn.bind(this, name);
53863 }
53864
53865 return cache[action];
53866 }
53867 }, {
53868 key: "_setCache",
53869 value: function _setCache(name, action, hander) {
53870 var cache = this.cachedBind[name] = this.cachedBind[name] || {};
53871 cache[action] = hander;
53872 }
53873 }, {
53874 key: "_getCache",
53875 value: function _getCache(name, action) {
53876 var cache = this.cachedBind[name] || {};
53877 return cache[action];
53878 }
53879 /**
53880 * NOTE: saveRef is async function. it will be called after render
53881 * @param {String} name name of component
53882 * @param {Function} component ref
53883 */
53884
53885 }, {
53886 key: "_saveRef",
53887 value: function _saveRef(name, component) {
53888 var key = "".concat(name, "_field");
53889 var autoUnmount = this.options.autoUnmount;
53890
53891 if (!component && autoUnmount) {
53892 // more than one component, do nothing
53893 this.instanceCount[name] && this.instanceCount[name]--;
53894
53895 if (this.instanceCount[name] > 0) {
53896 return;
53897 } // component with same name (eg: type ? <A name="n"/>:<B name="n"/>)
53898 // while type changed, B will render before A unmount. so we should cached value for B
53899 // step: render -> B mount -> 1. _saveRef(A, null) -> 2. _saveRef(B, ref) -> render
53900 // 1. _saveRef(A, null)
53901
53902
53903 var cache = this.fieldsMeta[name];
53904 cache && this._setCache(name, key, cache); // after destroy, delete data
53905
53906 delete this.instance[name];
53907 this.remove(name);
53908 return;
53909 } // 2. _saveRef(B, ref) (eg: same name but different compoent may be here)
53910
53911
53912 if (autoUnmount && !this.fieldsMeta[name] && this._getCache(name, key)) {
53913 this.fieldsMeta[name] = this._getCache(name, key);
53914 this.setValue(name, this.fieldsMeta[name] && this.fieldsMeta[name].value, false);
53915 } // only one time here
53916
53917
53918 var field = this._get(name);
53919
53920 if (field) {
53921 var ref = field.ref;
53922
53923 if (ref) {
53924 if (typeof ref === 'string') {
53925 throw new Error("can not set string ref for ".concat(name));
53926 } else if (typeof ref === 'function') {
53927 ref(component);
53928 } else if ((0, _typeof2.default)(ref) === 'object' && 'current' in ref) {
53929 // while ref = React.createRef() ref={ current: null}
53930 ref.current = component;
53931 }
53932 } // mount
53933
53934
53935 if (autoUnmount && component) {
53936 var cnt = this.instanceCount[name];
53937
53938 if (!cnt) {
53939 cnt = 0;
53940 }
53941
53942 this.instanceCount[name] = cnt + 1;
53943 }
53944
53945 this.instance[name] = component;
53946 }
53947 }
53948 /**
53949 * validate one Component
53950 * @param {String} name name of Component
53951 * @param {Array} rule
53952 * @param {String} trigger onChange/onBlur/onItemClick/...
53953 */
53954
53955 }, {
53956 key: "_validate",
53957 value: function _validate(name, rule, trigger) {
53958 var _this3 = this;
53959
53960 var field = this._get(name);
53961
53962 if (!field) {
53963 return;
53964 }
53965
53966 var value = field.value;
53967 field.state = 'loading';
53968
53969 var validate = this._getCache(name, trigger);
53970
53971 if (validate && typeof validate.abort === 'function') {
53972 validate.abort();
53973 }
53974
53975 validate = new _validate2.default((0, _defineProperty2.default)({}, name, rule), {
53976 messages: this.options.messages
53977 });
53978
53979 this._setCache(name, trigger, validate);
53980
53981 validate.validate((0, _defineProperty2.default)({}, name, value), function (errors) {
53982 var newErrors, newState;
53983
53984 if (errors && errors.length) {
53985 newErrors = (0, _utils.getErrorStrs)(errors, _this3.processErrorMessage);
53986 newState = 'error';
53987 } else {
53988 newErrors = [];
53989 newState = 'success';
53990 }
53991
53992 var reRender = false; // only status or errors changed, Rerender
53993
53994 if (newState !== field.state || !field.errors || newErrors.length !== field.errors.length || newErrors.find(function (e, idx) {
53995 return e !== field.errors[idx];
53996 })) {
53997 reRender = true;
53998 }
53999
54000 field.errors = newErrors;
54001 field.state = newState;
54002 reRender && _this3._reRender();
54003 });
54004 }
54005 }, {
54006 key: "getValue",
54007 value: function getValue(name) {
54008 if (this.options.parseName) {
54009 return (0, _utils.getIn)(this.values, name);
54010 }
54011
54012 return this.values[name];
54013 }
54014 /**
54015 * 1. get values by names.
54016 * 2. If no names passed, return shallow copy of `field.values`
54017 * @param {Array} names
54018 */
54019
54020 }, {
54021 key: "getValues",
54022 value: function getValues(names) {
54023 var _this4 = this;
54024
54025 var allValues = {};
54026
54027 if (names && names.length) {
54028 names.forEach(function (name) {
54029 allValues[name] = _this4.getValue(name);
54030 });
54031 } else {
54032 (0, _extends2.default)(allValues, this.values);
54033 }
54034
54035 return allValues;
54036 }
54037 }, {
54038 key: "setValue",
54039 value: function setValue(name, value) {
54040 var reRender = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
54041
54042 if (name in this.fieldsMeta) {
54043 this.fieldsMeta[name].value = value;
54044 }
54045
54046 if (this.options.parseName) {
54047 this.values = (0, _utils.setIn)(this.values, name, value);
54048 } else {
54049 this.values[name] = value;
54050 }
54051
54052 reRender && this._reRender();
54053 }
54054 }, {
54055 key: "setValues",
54056 value: function setValues() {
54057 var _this5 = this;
54058
54059 var fieldsValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
54060 var reRender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
54061
54062 if (!this.options.parseName) {
54063 Object.keys(fieldsValue).forEach(function (name) {
54064 _this5.setValue(name, fieldsValue[name], false);
54065 });
54066 } else {
54067 // NOTE: this is a shallow merge
54068 // 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}}}
54069 this.values = (0, _extends2.default)({}, this.values, fieldsValue);
54070 var fields = this.getNames();
54071 fields.forEach(function (name) {
54072 var value = (0, _utils.getIn)(_this5.values, name);
54073
54074 if (value !== undefined) {
54075 // copy over values that are in this.values
54076 _this5.fieldsMeta[name].value = value;
54077 } else {
54078 // because of shallow merge
54079 // if no value then copy values from fieldsMeta to keep initialized component data
54080 _this5.values = (0, _utils.setIn)(_this5.values, name, _this5.fieldsMeta[name].value);
54081 }
54082 });
54083 }
54084
54085 reRender && this._reRender();
54086 }
54087 }, {
54088 key: "setError",
54089 value: function setError(name, errors) {
54090 var err = Array.isArray(errors) ? errors : errors ? [errors] : [];
54091
54092 if (name in this.fieldsMeta) {
54093 this.fieldsMeta[name].errors = err;
54094 } else {
54095 this.fieldsMeta[name] = {
54096 errors: err
54097 };
54098 }
54099
54100 if (this.fieldsMeta[name].errors && this.fieldsMeta[name].errors.length > 0) {
54101 this.fieldsMeta[name].state = 'error';
54102 } else {
54103 this.fieldsMeta[name].state = '';
54104 }
54105
54106 this._reRender();
54107 }
54108 }, {
54109 key: "setErrors",
54110 value: function setErrors() {
54111 var _this6 = this;
54112
54113 var fieldsErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
54114 Object.keys(fieldsErrors).forEach(function (name) {
54115 _this6.setError(name, fieldsErrors[name]);
54116 });
54117 }
54118 }, {
54119 key: "getError",
54120 value: function getError(name) {
54121 var field = this._get(name);
54122
54123 if (field && field.errors && field.errors.length) {
54124 return field.errors;
54125 }
54126
54127 return null;
54128 }
54129 }, {
54130 key: "getErrors",
54131 value: function getErrors(names) {
54132 var _this7 = this;
54133
54134 var fields = names || this.getNames();
54135 var allErrors = {};
54136 fields.forEach(function (f) {
54137 allErrors[f] = _this7.getError(f);
54138 });
54139 return allErrors;
54140 }
54141 }, {
54142 key: "getState",
54143 value: function getState(name) {
54144 var field = this._get(name);
54145
54146 if (field && field.state) {
54147 return field.state;
54148 }
54149
54150 return '';
54151 }
54152 /**
54153 * Get errors using `getErrors` and format to match the structure of errors returned in field.validate
54154 * @param {Array} fieldNames
54155 * @return {Object || null} map of inputs and their errors
54156 */
54157
54158 }, {
54159 key: "formatGetErrors",
54160 value: function formatGetErrors(fieldNames) {
54161 var errors = this.getErrors(fieldNames);
54162 var formattedErrors = null;
54163
54164 for (var field in errors) {
54165 if (errors.hasOwnProperty(field) && errors[field]) {
54166 var errorsObj = errors[field];
54167
54168 if (!formattedErrors) {
54169 formattedErrors = {};
54170 }
54171
54172 formattedErrors[field] = {
54173 errors: errorsObj
54174 };
54175 }
54176 }
54177
54178 return formattedErrors;
54179 }
54180 /**
54181 * validate by trigger
54182 * @param {Array} ns names
54183 * @param {Function} cb callback after validate
54184 */
54185
54186 }, {
54187 key: "validateCallback",
54188 value: function validateCallback(ns, cb) {
54189 var _this8 = this;
54190
54191 var _getParams = (0, _utils.getParams)(ns, cb),
54192 names = _getParams.names,
54193 callback = _getParams.callback;
54194
54195 var fieldNames = names || this.getNames();
54196 var descriptor = {};
54197 var values = {};
54198 var hasRule = false;
54199
54200 for (var i = 0; i < fieldNames.length; i++) {
54201 var name = fieldNames[i];
54202
54203 var field = this._get(name);
54204
54205 if (!field) {
54206 continue;
54207 }
54208
54209 if (field.rules && field.rules.length) {
54210 descriptor[name] = field.rules;
54211 values[name] = this.getValue(name);
54212 hasRule = true; // clear error
54213
54214 field.errors = [];
54215 field.state = '';
54216 }
54217 }
54218
54219 if (!hasRule) {
54220 var errors = this.formatGetErrors(fieldNames);
54221 callback && callback(errors, this.getValues(names ? fieldNames : []));
54222 return;
54223 }
54224
54225 var validate = new _validate2.default(descriptor, {
54226 first: this.options.first,
54227 messages: this.options.messages
54228 });
54229 validate.validate(values, function (errors) {
54230 var errorsGroup = null;
54231
54232 if (errors && errors.length) {
54233 errorsGroup = {};
54234 errors.forEach(function (e) {
54235 var fieldName = e.field;
54236
54237 if (!errorsGroup[fieldName]) {
54238 errorsGroup[fieldName] = {
54239 errors: []
54240 };
54241 }
54242
54243 var fieldErrors = errorsGroup[fieldName].errors;
54244 fieldErrors.push(e.message);
54245 });
54246 }
54247
54248 if (errorsGroup) {
54249 // update error in every Field
54250 Object.keys(errorsGroup).forEach(function (i) {
54251 var field = _this8._get(i);
54252
54253 if (field) {
54254 field.errors = (0, _utils.getErrorStrs)(errorsGroup[i].errors, _this8.processErrorMessage);
54255 field.state = 'error';
54256 }
54257 });
54258 }
54259
54260 var formattedGetErrors = _this8.formatGetErrors(fieldNames);
54261
54262 if (formattedGetErrors) {
54263 errorsGroup = (0, _extends2.default)({}, formattedGetErrors, errorsGroup);
54264 } // update to success which has no error
54265
54266
54267 for (var _i = 0; _i < fieldNames.length; _i++) {
54268 var _name = fieldNames[_i];
54269
54270 var _field = _this8._get(_name);
54271
54272 if (_field && _field.rules && !(errorsGroup && _name in errorsGroup)) {
54273 _field.state = 'success';
54274 }
54275 } // eslint-disable-next-line callback-return
54276
54277
54278 callback && callback(errorsGroup, _this8.getValues(names ? fieldNames : []));
54279
54280 _this8._reRender();
54281
54282 if (typeof _this8.afterValidateRerender === 'function') {
54283 _this8.afterValidateRerender({
54284 errorsGroup: errorsGroup,
54285 options: _this8.options,
54286 instance: _this8.instance
54287 });
54288 }
54289 });
54290 }
54291 /**
54292 * validate by trigger - Promise version
54293 * NOTES:
54294 * - `afterValidateRerender` is not called in `validatePromise`. The rerender is called just before this function
54295 * returns a promise, so use the returned promise to call any after rerender logic.
54296 *
54297 * @param {Array} ns names
54298 * @param {Function} cb (Optional) callback after validate, must return a promise or a value
54299 * - ({errors, values}) => Promise({errors, values}) | {errors, values}
54300 * @returns {Promise} - resolves with {errors, values}
54301 */
54302
54303 }, {
54304 key: "validatePromise",
54305 value: function () {
54306 var _validatePromise = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(ns, cb) {
54307 var _getParams2, names, callback, fieldNames, descriptor, values, hasRule, i, name, field, _errors, validate, results, errors, errorsGroup, callbackResults;
54308
54309 return _regenerator.default.wrap(function _callee$(_context) {
54310 while (1) {
54311 switch (_context.prev = _context.next) {
54312 case 0:
54313 _getParams2 = (0, _utils.getParams)(ns, cb), names = _getParams2.names, callback = _getParams2.callback;
54314 fieldNames = names || this.getNames();
54315 descriptor = {};
54316 values = {};
54317 hasRule = false;
54318 i = 0;
54319
54320 case 6:
54321 if (!(i < fieldNames.length)) {
54322 _context.next = 15;
54323 break;
54324 }
54325
54326 name = fieldNames[i];
54327 field = this._get(name);
54328
54329 if (field) {
54330 _context.next = 11;
54331 break;
54332 }
54333
54334 return _context.abrupt("continue", 12);
54335
54336 case 11:
54337 if (field.rules && field.rules.length) {
54338 descriptor[name] = field.rules;
54339 values[name] = this.getValue(name);
54340 hasRule = true; // clear error
54341
54342 field.errors = [];
54343 field.state = '';
54344 }
54345
54346 case 12:
54347 i++;
54348 _context.next = 6;
54349 break;
54350
54351 case 15:
54352 if (hasRule) {
54353 _context.next = 22;
54354 break;
54355 }
54356
54357 _errors = this.formatGetErrors(fieldNames);
54358
54359 if (!callback) {
54360 _context.next = 21;
54361 break;
54362 }
54363
54364 return _context.abrupt("return", callback({
54365 errors: _errors,
54366 values: this.getValues(names ? fieldNames : [])
54367 }));
54368
54369 case 21:
54370 return _context.abrupt("return", {
54371 errors: _errors,
54372 values: this.getValues(names ? fieldNames : [])
54373 });
54374
54375 case 22:
54376 validate = new _validate2.default(descriptor, {
54377 first: this.options.first,
54378 messages: this.options.messages
54379 });
54380 _context.next = 25;
54381 return validate.validatePromise(values);
54382
54383 case 25:
54384 results = _context.sent;
54385 errors = results && results.errors || [];
54386 errorsGroup = this._getErrorsGroup({
54387 errors: errors,
54388 fieldNames: fieldNames
54389 });
54390 callbackResults = {
54391 errors: errorsGroup,
54392 values: this.getValues(names ? fieldNames : [])
54393 };
54394 _context.prev = 29;
54395
54396 if (!callback) {
54397 _context.next = 34;
54398 break;
54399 }
54400
54401 _context.next = 33;
54402 return callback(callbackResults);
54403
54404 case 33:
54405 callbackResults = _context.sent;
54406
54407 case 34:
54408 _context.next = 39;
54409 break;
54410
54411 case 36:
54412 _context.prev = 36;
54413 _context.t0 = _context["catch"](29);
54414 return _context.abrupt("return", _context.t0);
54415
54416 case 39:
54417 this._reRender();
54418
54419 return _context.abrupt("return", callbackResults);
54420
54421 case 41:
54422 case "end":
54423 return _context.stop();
54424 }
54425 }
54426 }, _callee, this, [[29, 36]]);
54427 }));
54428
54429 function validatePromise(_x, _x2) {
54430 return _validatePromise.apply(this, arguments);
54431 }
54432
54433 return validatePromise;
54434 }()
54435 }, {
54436 key: "_getErrorsGroup",
54437 value: function _getErrorsGroup(_ref) {
54438 var _this9 = this;
54439
54440 var errors = _ref.errors,
54441 fieldNames = _ref.fieldNames;
54442 var errorsGroup = null;
54443
54444 if (errors && errors.length) {
54445 errorsGroup = {};
54446 errors.forEach(function (e) {
54447 var fieldName = e.field;
54448
54449 if (!errorsGroup[fieldName]) {
54450 errorsGroup[fieldName] = {
54451 errors: []
54452 };
54453 }
54454
54455 var fieldErrors = errorsGroup[fieldName].errors;
54456 fieldErrors.push(e.message);
54457 });
54458 }
54459
54460 if (errorsGroup) {
54461 // update error in every Field
54462 Object.keys(errorsGroup).forEach(function (i) {
54463 var field = _this9._get(i);
54464
54465 if (field) {
54466 field.errors = (0, _utils.getErrorStrs)(errorsGroup[i].errors, _this9.processErrorMessage);
54467 field.state = 'error';
54468 }
54469 });
54470 }
54471
54472 var formattedGetErrors = this.formatGetErrors(fieldNames);
54473
54474 if (formattedGetErrors) {
54475 errorsGroup = (0, _extends2.default)({}, formattedGetErrors, errorsGroup);
54476 } // update to success which has no error
54477
54478
54479 for (var i = 0; i < fieldNames.length; i++) {
54480 var name = fieldNames[i];
54481
54482 var field = this._get(name);
54483
54484 if (field && field.rules && !(errorsGroup && name in errorsGroup)) {
54485 field.state = 'success';
54486 }
54487 }
54488
54489 return errorsGroup;
54490 }
54491 }, {
54492 key: "_reset",
54493 value: function _reset(ns, backToDefault) {
54494 var _this10 = this;
54495
54496 if (typeof ns === 'string') {
54497 ns = [ns];
54498 }
54499
54500 var changed = false;
54501 var names = ns || Object.keys(this.fieldsMeta);
54502
54503 if (!ns) {
54504 this.values = {};
54505 }
54506
54507 names.forEach(function (name) {
54508 var field = _this10._get(name);
54509
54510 if (field) {
54511 changed = true;
54512 field.value = backToDefault ? field.initValue : undefined;
54513 field.state = '';
54514 delete field.errors;
54515 delete field.rules;
54516 delete field.rulesMap;
54517
54518 if (_this10.options.parseName) {
54519 _this10.values = (0, _utils.setIn)(_this10.values, name, field.value);
54520 } else {
54521 _this10.values[name] = field.value;
54522 }
54523 }
54524 });
54525
54526 if (changed) {
54527 this._reRender();
54528 }
54529 }
54530 }, {
54531 key: "reset",
54532 value: function reset(ns) {
54533 this._reset(ns, false);
54534 }
54535 }, {
54536 key: "resetToDefault",
54537 value: function resetToDefault(ns) {
54538 this._reset(ns, true);
54539 }
54540 }, {
54541 key: "getNames",
54542 value: function getNames() {
54543 var fieldsMeta = this.fieldsMeta;
54544 return Object.keys(fieldsMeta).filter(function () {
54545 return true;
54546 });
54547 }
54548 }, {
54549 key: "remove",
54550 value: function remove(ns) {
54551 var _this11 = this;
54552
54553 if (typeof ns === 'string') {
54554 ns = [ns];
54555 }
54556
54557 if (!ns) {
54558 this.values = {};
54559 }
54560
54561 var names = ns || Object.keys(this.fieldsMeta);
54562 names.forEach(function (name) {
54563 if (name in _this11.fieldsMeta) {
54564 delete _this11.fieldsMeta[name];
54565 }
54566
54567 if (_this11.options.parseName) {
54568 _this11.values = (0, _utils.deleteIn)(_this11.values, name);
54569 } else {
54570 delete _this11.values[name];
54571 }
54572 });
54573 }
54574 }, {
54575 key: "addArrayValue",
54576 value: function addArrayValue(key, index) {
54577 for (var _len5 = arguments.length, argv = new Array(_len5 > 2 ? _len5 - 2 : 0), _key5 = 2; _key5 < _len5; _key5++) {
54578 argv[_key5 - 2] = arguments[_key5];
54579 }
54580
54581 return this._spliceArrayValue.apply(this, [key, index, 0].concat(argv));
54582 }
54583 }, {
54584 key: "deleteArrayValue",
54585 value: function deleteArrayValue(key, index) {
54586 var howmany = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
54587 return this._spliceArrayValue(key, index, howmany);
54588 }
54589 /**
54590 * splice array
54591 * @param {String} key
54592 * @param {Number} startIndex
54593 * @param {Number} howmany
54594 * @param {Array} argv
54595 * @param {*} value
54596 */
54597
54598 }, {
54599 key: "_spliceArrayValue",
54600 value: function _spliceArrayValue(key, index, howmany) {
54601 var _this12 = this;
54602
54603 for (var _len6 = arguments.length, argv = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++) {
54604 argv[_key6 - 3] = arguments[_key6];
54605 }
54606
54607 var argc = argv.length;
54608 var offset = howmany - argc; // how the reset fieldMeta move
54609
54610 var startIndex = index + howmany; // 计算起点
54611
54612 /**
54613 * eg: call _spliceArrayValue('key', 1) to delete 'key.1':
54614 * case 1: names=['key.0', 'key.1']; delete 'key.1';
54615 * case 2: names=['key.0', 'key.1', 'key.2']; key.1= key.2; delete key.2;
54616 * case 3: names=['key.0.name', 'key.0.email', 'key.1.name', 'key.1.email'], should delete 'key.1.name', 'key.1.email'
54617 * eg: call _spliceArrayValue('key', 1, item) to add 'key.1':
54618 * case 1: names=['key.0']; add 'key.1' = item;
54619 * case 2: names=['key.0', 'key.1']; key.2= key.1; delete key.1; add key.1 = item;
54620 */
54621
54622 var listMap = {}; // eg: {1:[{from: 'key.2.name', to: 'key.1.name'}, {from: 'key.2.email', to: 'key.1.email'}]}
54623
54624 var keyReg = new RegExp("^(".concat(key, ".)(\\d+)"));
54625 var replaceArgv = [];
54626 var names = this.getNames(); // logic of offset fix begin
54627
54628 names.forEach(function (n) {
54629 var ret = keyReg.exec(n);
54630
54631 if (ret) {
54632 var idx = parseInt(ret[2]); // get index of 'key.0.name'
54633
54634 if (idx >= startIndex) {
54635 var l = listMap[idx];
54636 var item = {
54637 from: n,
54638 to: n.replace(keyReg, function (match, p1) {
54639 return "".concat(p1).concat(idx - offset);
54640 })
54641 };
54642
54643 if (!l) {
54644 listMap[idx] = [item];
54645 } else {
54646 l.push(item);
54647 }
54648 } // in case of offsetList.length = 0, eg: delete last element
54649
54650
54651 if (offset > 0 && idx >= index && idx < index + howmany) {
54652 replaceArgv.push(n);
54653 }
54654 }
54655 }); // sort with index eg: [{index:1, list: [{from: 'key.2.name', to: 'key.1.name'}]}, {index:2, list: [...]}]
54656
54657 var offsetList = Object.keys(listMap).map(function (i) {
54658 return {
54659 index: Number(i),
54660 list: listMap[i]
54661 };
54662 }).sort(function (a, b) {
54663 return offset > 0 ? a.index - b.index : b.index - a.index;
54664 });
54665 offsetList.forEach(function (l) {
54666 var list = l.list;
54667 list.forEach(function (i) {
54668 _this12.fieldsMeta[i.to] = _this12.fieldsMeta[i.from];
54669 });
54670 }); // delete copy data
54671
54672 if (offsetList.length > 0) {
54673 var removeList = offsetList.slice(offsetList.length - (offset < 0 ? -offset : offset), offsetList.length);
54674 removeList.forEach(function (item) {
54675 item.list.forEach(function (i) {
54676 delete _this12.fieldsMeta[i.from];
54677 });
54678 });
54679 } else {
54680 // will get from this.values while rerender
54681 replaceArgv.forEach(function (i) {
54682 delete _this12.fieldsMeta[i];
54683 });
54684 }
54685
54686 var p = this.getValue(key);
54687
54688 if (p) {
54689 p.splice.apply(p, [index, howmany].concat(argv));
54690 }
54691
54692 this._reRender();
54693 }
54694 /**
54695 * splice in a Array [deprecated]
54696 * @param {String} keyMatch like name.{index}
54697 * @param {Number} startIndex index
54698 */
54699
54700 }, {
54701 key: "spliceArray",
54702 value: function spliceArray(keyMatch, startIndex, howmany) {
54703 var _this13 = this;
54704
54705 if (keyMatch.match(/{index}$/) === -1) {
54706 (0, _utils.warning)('key should match /{index}$/');
54707 return;
54708 } // regex to match field names in the same target array
54709
54710
54711 var reg = keyMatch.replace('{index}', '(\\d+)');
54712 var keyReg = new RegExp("^".concat(reg));
54713 var listMap = {};
54714 /**
54715 * keyMatch='key.{index}'
54716 * case 1: names=['key.0', 'key.1'], should delete 'key.1'
54717 * case 2: names=['key.0.name', 'key.0.email', 'key.1.name', 'key.1.email'], should delete 'key.1.name', 'key.1.email'
54718 */
54719
54720 var names = this.getNames();
54721 names.forEach(function (n) {
54722 // is name in the target array?
54723 var ret = keyReg.exec(n);
54724
54725 if (ret) {
54726 var index = parseInt(ret[1]);
54727
54728 if (index > startIndex) {
54729 var l = listMap[index];
54730 var item = {
54731 from: n,
54732 to: "".concat(keyMatch.replace('{index}', index - 1)).concat(n.replace(ret[0], ''))
54733 };
54734
54735 if (!l) {
54736 listMap[index] = [item];
54737 } else {
54738 l.push(item);
54739 }
54740 }
54741 }
54742 });
54743 var idxList = Object.keys(listMap).map(function (i) {
54744 return {
54745 index: Number(i),
54746 list: listMap[i]
54747 };
54748 }).sort(function (a, b) {
54749 return a.index < b.index;
54750 }); // should be continuous array
54751
54752 if (idxList.length > 0 && idxList[0].index === startIndex + 1) {
54753 idxList.forEach(function (l) {
54754 var list = l.list;
54755 list.forEach(function (i) {
54756 var v = _this13.getValue(i.from); // get index value
54757
54758
54759 _this13.setValue(i.to, v, false); // set value to index - 1
54760
54761 });
54762 });
54763 var lastIdxList = idxList[idxList.length - 1];
54764 lastIdxList.list.forEach(function (i) {
54765 _this13.remove(i.from);
54766 });
54767 var parentName = keyMatch.replace('.{index}', '');
54768 parentName = parentName.replace('[{index}]', '');
54769 var parent = this.getValue(parentName);
54770
54771 if (parent) {
54772 // if parseName=true then parent is an Array object but does not know an element was removed
54773 // this manually decrements the array length
54774 parent.length--;
54775 }
54776 }
54777 }
54778 }, {
54779 key: "_resetError",
54780 value: function _resetError(name) {
54781 var field = this._get(name);
54782
54783 if (field) {
54784 delete field.errors; //清空错误
54785
54786 field.state = '';
54787 }
54788 } //trigger rerender
54789
54790 }, {
54791 key: "_reRender",
54792 value: function _reRender() {
54793 if (this.com) {
54794 if (!this.options.forceUpdate && this.com.setState) {
54795 this.com.setState({});
54796 } else if (this.com.forceUpdate) {
54797 this.com.forceUpdate(); //forceUpdate 对性能有较大的影响,成指数上升
54798 }
54799 }
54800 }
54801 }, {
54802 key: "_get",
54803 value: function _get(name) {
54804 return name in this.fieldsMeta ? this.fieldsMeta[name] : null;
54805 }
54806 }, {
54807 key: "get",
54808 value: function get(name) {
54809 if (name) {
54810 return this._get(name);
54811 } else {
54812 return this.fieldsMeta;
54813 }
54814 }
54815 }], [{
54816 key: "create",
54817 value: function create(com) {
54818 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
54819 return new this(com, options);
54820 }
54821 }, {
54822 key: "getUseField",
54823 value: function getUseField(_ref2) {
54824 var _this14 = this;
54825
54826 var useState = _ref2.useState,
54827 useMemo = _ref2.useMemo;
54828 return function () {
54829 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
54830
54831 var _useState = useState(),
54832 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
54833 setState = _useState2[1];
54834
54835 var field = useMemo(function () {
54836 return _this14.create({
54837 setState: setState
54838 }, options);
54839 }, [setState]);
54840 return field;
54841 };
54842 }
54843 }]);
54844 return Field;
54845}();
54846
54847var _default = Field;
54848exports.default = _default;
54849
54850/***/ }),
54851/* 348 */
54852/***/ (function(module, exports, __webpack_require__) {
54853
54854var _typeof = __webpack_require__(31)["default"];
54855
54856function _regeneratorRuntime() {
54857 "use strict";
54858 /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
54859
54860 module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
54861 return exports;
54862 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
54863 var exports = {},
54864 Op = Object.prototype,
54865 hasOwn = Op.hasOwnProperty,
54866 $Symbol = "function" == typeof Symbol ? Symbol : {},
54867 iteratorSymbol = $Symbol.iterator || "@@iterator",
54868 asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator",
54869 toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
54870
54871 function define(obj, key, value) {
54872 return Object.defineProperty(obj, key, {
54873 value: value,
54874 enumerable: !0,
54875 configurable: !0,
54876 writable: !0
54877 }), obj[key];
54878 }
54879
54880 try {
54881 define({}, "");
54882 } catch (err) {
54883 define = function define(obj, key, value) {
54884 return obj[key] = value;
54885 };
54886 }
54887
54888 function wrap(innerFn, outerFn, self, tryLocsList) {
54889 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,
54890 generator = Object.create(protoGenerator.prototype),
54891 context = new Context(tryLocsList || []);
54892 return generator._invoke = function (innerFn, self, context) {
54893 var state = "suspendedStart";
54894 return function (method, arg) {
54895 if ("executing" === state) throw new Error("Generator is already running");
54896
54897 if ("completed" === state) {
54898 if ("throw" === method) throw arg;
54899 return doneResult();
54900 }
54901
54902 for (context.method = method, context.arg = arg;;) {
54903 var delegate = context.delegate;
54904
54905 if (delegate) {
54906 var delegateResult = maybeInvokeDelegate(delegate, context);
54907
54908 if (delegateResult) {
54909 if (delegateResult === ContinueSentinel) continue;
54910 return delegateResult;
54911 }
54912 }
54913
54914 if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) {
54915 if ("suspendedStart" === state) throw state = "completed", context.arg;
54916 context.dispatchException(context.arg);
54917 } else "return" === context.method && context.abrupt("return", context.arg);
54918 state = "executing";
54919 var record = tryCatch(innerFn, self, context);
54920
54921 if ("normal" === record.type) {
54922 if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue;
54923 return {
54924 value: record.arg,
54925 done: context.done
54926 };
54927 }
54928
54929 "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg);
54930 }
54931 };
54932 }(innerFn, self, context), generator;
54933 }
54934
54935 function tryCatch(fn, obj, arg) {
54936 try {
54937 return {
54938 type: "normal",
54939 arg: fn.call(obj, arg)
54940 };
54941 } catch (err) {
54942 return {
54943 type: "throw",
54944 arg: err
54945 };
54946 }
54947 }
54948
54949 exports.wrap = wrap;
54950 var ContinueSentinel = {};
54951
54952 function Generator() {}
54953
54954 function GeneratorFunction() {}
54955
54956 function GeneratorFunctionPrototype() {}
54957
54958 var IteratorPrototype = {};
54959 define(IteratorPrototype, iteratorSymbol, function () {
54960 return this;
54961 });
54962 var getProto = Object.getPrototypeOf,
54963 NativeIteratorPrototype = getProto && getProto(getProto(values([])));
54964 NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);
54965 var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
54966
54967 function defineIteratorMethods(prototype) {
54968 ["next", "throw", "return"].forEach(function (method) {
54969 define(prototype, method, function (arg) {
54970 return this._invoke(method, arg);
54971 });
54972 });
54973 }
54974
54975 function AsyncIterator(generator, PromiseImpl) {
54976 function invoke(method, arg, resolve, reject) {
54977 var record = tryCatch(generator[method], generator, arg);
54978
54979 if ("throw" !== record.type) {
54980 var result = record.arg,
54981 value = result.value;
54982 return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) {
54983 invoke("next", value, resolve, reject);
54984 }, function (err) {
54985 invoke("throw", err, resolve, reject);
54986 }) : PromiseImpl.resolve(value).then(function (unwrapped) {
54987 result.value = unwrapped, resolve(result);
54988 }, function (error) {
54989 return invoke("throw", error, resolve, reject);
54990 });
54991 }
54992
54993 reject(record.arg);
54994 }
54995
54996 var previousPromise;
54997
54998 this._invoke = function (method, arg) {
54999 function callInvokeWithMethodAndArg() {
55000 return new PromiseImpl(function (resolve, reject) {
55001 invoke(method, arg, resolve, reject);
55002 });
55003 }
55004
55005 return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
55006 };
55007 }
55008
55009 function maybeInvokeDelegate(delegate, context) {
55010 var method = delegate.iterator[context.method];
55011
55012 if (undefined === method) {
55013 if (context.delegate = null, "throw" === context.method) {
55014 if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel;
55015 context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method");
55016 }
55017
55018 return ContinueSentinel;
55019 }
55020
55021 var record = tryCatch(method, delegate.iterator, context.arg);
55022 if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel;
55023 var info = record.arg;
55024 return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel);
55025 }
55026
55027 function pushTryEntry(locs) {
55028 var entry = {
55029 tryLoc: locs[0]
55030 };
55031 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);
55032 }
55033
55034 function resetTryEntry(entry) {
55035 var record = entry.completion || {};
55036 record.type = "normal", delete record.arg, entry.completion = record;
55037 }
55038
55039 function Context(tryLocsList) {
55040 this.tryEntries = [{
55041 tryLoc: "root"
55042 }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
55043 }
55044
55045 function values(iterable) {
55046 if (iterable) {
55047 var iteratorMethod = iterable[iteratorSymbol];
55048 if (iteratorMethod) return iteratorMethod.call(iterable);
55049 if ("function" == typeof iterable.next) return iterable;
55050
55051 if (!isNaN(iterable.length)) {
55052 var i = -1,
55053 next = function next() {
55054 for (; ++i < iterable.length;) {
55055 if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;
55056 }
55057
55058 return next.value = undefined, next.done = !0, next;
55059 };
55060
55061 return next.next = next;
55062 }
55063 }
55064
55065 return {
55066 next: doneResult
55067 };
55068 }
55069
55070 function doneResult() {
55071 return {
55072 value: undefined,
55073 done: !0
55074 };
55075 }
55076
55077 return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) {
55078 var ctor = "function" == typeof genFun && genFun.constructor;
55079 return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name));
55080 }, exports.mark = function (genFun) {
55081 return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun;
55082 }, exports.awrap = function (arg) {
55083 return {
55084 __await: arg
55085 };
55086 }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
55087 return this;
55088 }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
55089 void 0 === PromiseImpl && (PromiseImpl = Promise);
55090 var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
55091 return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
55092 return result.done ? result.value : iter.next();
55093 });
55094 }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () {
55095 return this;
55096 }), define(Gp, "toString", function () {
55097 return "[object Generator]";
55098 }), exports.keys = function (object) {
55099 var keys = [];
55100
55101 for (var key in object) {
55102 keys.push(key);
55103 }
55104
55105 return keys.reverse(), function next() {
55106 for (; keys.length;) {
55107 var key = keys.pop();
55108 if (key in object) return next.value = key, next.done = !1, next;
55109 }
55110
55111 return next.done = !0, next;
55112 };
55113 }, exports.values = values, Context.prototype = {
55114 constructor: Context,
55115 reset: function reset(skipTempReset) {
55116 if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {
55117 "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);
55118 }
55119 },
55120 stop: function stop() {
55121 this.done = !0;
55122 var rootRecord = this.tryEntries[0].completion;
55123 if ("throw" === rootRecord.type) throw rootRecord.arg;
55124 return this.rval;
55125 },
55126 dispatchException: function dispatchException(exception) {
55127 if (this.done) throw exception;
55128 var context = this;
55129
55130 function handle(loc, caught) {
55131 return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught;
55132 }
55133
55134 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
55135 var entry = this.tryEntries[i],
55136 record = entry.completion;
55137 if ("root" === entry.tryLoc) return handle("end");
55138
55139 if (entry.tryLoc <= this.prev) {
55140 var hasCatch = hasOwn.call(entry, "catchLoc"),
55141 hasFinally = hasOwn.call(entry, "finallyLoc");
55142
55143 if (hasCatch && hasFinally) {
55144 if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
55145 if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
55146 } else if (hasCatch) {
55147 if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
55148 } else {
55149 if (!hasFinally) throw new Error("try statement without catch or finally");
55150 if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
55151 }
55152 }
55153 }
55154 },
55155 abrupt: function abrupt(type, arg) {
55156 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
55157 var entry = this.tryEntries[i];
55158
55159 if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
55160 var finallyEntry = entry;
55161 break;
55162 }
55163 }
55164
55165 finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);
55166 var record = finallyEntry ? finallyEntry.completion : {};
55167 return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);
55168 },
55169 complete: function complete(record, afterLoc) {
55170 if ("throw" === record.type) throw record.arg;
55171 return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;
55172 },
55173 finish: function finish(finallyLoc) {
55174 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
55175 var entry = this.tryEntries[i];
55176 if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;
55177 }
55178 },
55179 "catch": function _catch(tryLoc) {
55180 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
55181 var entry = this.tryEntries[i];
55182
55183 if (entry.tryLoc === tryLoc) {
55184 var record = entry.completion;
55185
55186 if ("throw" === record.type) {
55187 var thrown = record.arg;
55188 resetTryEntry(entry);
55189 }
55190
55191 return thrown;
55192 }
55193 }
55194
55195 throw new Error("illegal catch attempt");
55196 },
55197 delegateYield: function delegateYield(iterable, resultName, nextLoc) {
55198 return this.delegate = {
55199 iterator: values(iterable),
55200 resultName: resultName,
55201 nextLoc: nextLoc
55202 }, "next" === this.method && (this.arg = undefined), ContinueSentinel;
55203 }
55204 }, exports;
55205}
55206
55207module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
55208
55209/***/ }),
55210/* 349 */
55211/***/ (function(module, exports, __webpack_require__) {
55212
55213var arrayWithHoles = __webpack_require__(350);
55214
55215var iterableToArrayLimit = __webpack_require__(351);
55216
55217var unsupportedIterableToArray = __webpack_require__(352);
55218
55219var nonIterableRest = __webpack_require__(354);
55220
55221function _slicedToArray(arr, i) {
55222 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
55223}
55224
55225module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
55226
55227/***/ }),
55228/* 350 */
55229/***/ (function(module, exports) {
55230
55231function _arrayWithHoles(arr) {
55232 if (Array.isArray(arr)) return arr;
55233}
55234
55235module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
55236
55237/***/ }),
55238/* 351 */
55239/***/ (function(module, exports) {
55240
55241function _iterableToArrayLimit(arr, i) {
55242 var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
55243
55244 if (_i == null) return;
55245 var _arr = [];
55246 var _n = true;
55247 var _d = false;
55248
55249 var _s, _e;
55250
55251 try {
55252 for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
55253 _arr.push(_s.value);
55254
55255 if (i && _arr.length === i) break;
55256 }
55257 } catch (err) {
55258 _d = true;
55259 _e = err;
55260 } finally {
55261 try {
55262 if (!_n && _i["return"] != null) _i["return"]();
55263 } finally {
55264 if (_d) throw _e;
55265 }
55266 }
55267
55268 return _arr;
55269}
55270
55271module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
55272
55273/***/ }),
55274/* 352 */
55275/***/ (function(module, exports, __webpack_require__) {
55276
55277var arrayLikeToArray = __webpack_require__(353);
55278
55279function _unsupportedIterableToArray(o, minLen) {
55280 if (!o) return;
55281 if (typeof o === "string") return arrayLikeToArray(o, minLen);
55282 var n = Object.prototype.toString.call(o).slice(8, -1);
55283 if (n === "Object" && o.constructor) n = o.constructor.name;
55284 if (n === "Map" || n === "Set") return Array.from(o);
55285 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
55286}
55287
55288module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
55289
55290/***/ }),
55291/* 353 */
55292/***/ (function(module, exports) {
55293
55294function _arrayLikeToArray(arr, len) {
55295 if (len == null || len > arr.length) len = arr.length;
55296
55297 for (var i = 0, arr2 = new Array(len); i < len; i++) {
55298 arr2[i] = arr[i];
55299 }
55300
55301 return arr2;
55302}
55303
55304module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
55305
55306/***/ }),
55307/* 354 */
55308/***/ (function(module, exports) {
55309
55310function _nonIterableRest() {
55311 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
55312}
55313
55314module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
55315
55316/***/ }),
55317/* 355 */
55318/***/ (function(module, exports, __webpack_require__) {
55319
55320"use strict";
55321
55322
55323var _interopRequireDefault = __webpack_require__(28);
55324
55325Object.defineProperty(exports, "__esModule", {
55326 value: true
55327});
55328exports.default = void 0;
55329
55330var _regenerator = _interopRequireDefault(__webpack_require__(96));
55331
55332var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(97));
55333
55334var _defineProperty2 = _interopRequireDefault(__webpack_require__(98));
55335
55336var _classCallCheck2 = _interopRequireDefault(__webpack_require__(174));
55337
55338var _createClass2 = _interopRequireDefault(__webpack_require__(175));
55339
55340var _util = __webpack_require__(40);
55341
55342var _messages2 = _interopRequireDefault(__webpack_require__(356));
55343
55344var _validator = __webpack_require__(357);
55345
55346function 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; }
55347
55348function _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; }
55349
55350function noop() {}
55351/**
55352 * @param {Object} source {name: value, name2: value2}
55353 * @param {Object} rules {name: [rule1, rule2]}
55354 * @returns {Object} {name:[{value,rule1},{value, rule2}]}
55355 */
55356
55357
55358function serializeRules(source, rules) {
55359 // serialize rules
55360 var arr;
55361 var value;
55362 var series = {};
55363 var names = Object.keys(rules);
55364 names.forEach(function (name) {
55365 arr = rules[name];
55366 value = source[name];
55367
55368 if (!Array.isArray(arr)) {
55369 arr = [arr];
55370 }
55371
55372 arr.forEach(function (rule) {
55373 rule.validator = (0, _validator.getValidationMethod)(rule);
55374 rule.field = name;
55375
55376 if (!rule.validator) {
55377 return;
55378 }
55379
55380 series[name] = series[name] || [];
55381 series[name].push({
55382 rule: rule,
55383 value: value,
55384 source: source,
55385 field: name
55386 });
55387 });
55388 });
55389 return series;
55390}
55391
55392var Schema = /*#__PURE__*/function () {
55393 function Schema(rules) {
55394 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
55395 (0, _classCallCheck2.default)(this, Schema);
55396 this._rules = rules;
55397 this._options = _objectSpread(_objectSpread({}, options), {}, {
55398 messages: _objectSpread(_objectSpread({}, _messages2.default), options.messages)
55399 });
55400 this.complete = [];
55401 }
55402
55403 (0, _createClass2.default)(Schema, [{
55404 key: "abort",
55405 value: function abort() {
55406 for (var i = 0; i < this.complete.length; i++) {
55407 this.complete[i] = noop;
55408 }
55409 }
55410 }, {
55411 key: "messages",
55412 value: function messages(_messages) {
55413 this._options.messages = Object.assign({}, this._options.messages, _messages);
55414 }
55415 /**
55416 *
55417 * @param {Object} source - map of field names and values to use in validation
55418 * @param {Function} callback - OPTIONAL - callback to run after all
55419 * @returns {null | Promise}
55420 * - { null } - if using callbacks
55421 * - { Promise }
55422 * - { errors: null } - if no rules or no errors
55423 * - { errors: Array, fields: Object } - errors from validation and fields that have errors
55424 */
55425
55426 }, {
55427 key: "validate",
55428 value: function validate(source, callback) {
55429 var _this = this;
55430
55431 if (!callback) {
55432 return this.validatePromise(source);
55433 }
55434
55435 if (!this._rules || Object.keys(this._rules).length === 0) {
55436 if (callback) {
55437 callback(null);
55438 }
55439
55440 return;
55441 }
55442
55443 var series = serializeRules(source, this._rules);
55444
55445 if (Object.keys(series).length === 0) {
55446 callback(null);
55447 } // callback function for all rules return
55448
55449
55450 function complete(results) {
55451 var i;
55452 var field;
55453 var errors = [];
55454 var fields = {};
55455
55456 function add(e) {
55457 if (Array.isArray(e)) {
55458 errors = errors.concat(e);
55459 } else {
55460 errors.push(e);
55461 }
55462 }
55463
55464 for (i = 0; i < results.length; i++) {
55465 add(results[i]);
55466 }
55467
55468 if (!errors.length) {
55469 errors = null;
55470 fields = null;
55471 } else {
55472 for (i = 0; i < errors.length; i++) {
55473 field = errors[i].field;
55474 fields[field] = fields[field] || [];
55475 fields[field].push(errors[i]);
55476 }
55477 }
55478
55479 callback(errors, fields);
55480 } // 这里用数组的原因,是为了方便外部做 abort 调用
55481 // eg: input onChange 时调用有 异步 validator 被异步调用多次,我们只取最后一次调用。否则可能出现 前一个 validator 返回导致
55482
55483
55484 this.complete.push(complete);
55485 var idx = this.complete.length; // async validate
55486
55487 (0, _util.asyncMap)(series, this._options, function (data, next) {
55488 var rule = data.rule;
55489 rule.field = data.field;
55490
55491 function cb(e) {
55492 var errors = e; // fix e=/""/null/undefiend.
55493 // ignore e=true/false;
55494
55495 if (typeof errors !== 'boolean' && !errors) {
55496 errors = [];
55497 }
55498
55499 if (!Array.isArray(errors)) {
55500 errors = [errors];
55501 } // 自定义错误
55502
55503
55504 if (errors.length && rule.message) {
55505 errors = [].concat(rule.message);
55506 }
55507
55508 errors = errors.map((0, _util.complementError)(rule));
55509 next(errors);
55510 }
55511
55512 var res = rule.validator(rule, data.value, cb, _this._options);
55513
55514 if (res && res.then) {
55515 res.then(function () {
55516 return cb();
55517 }, function (e) {
55518 return cb(e);
55519 });
55520 }
55521 }, function (results) {
55522 _this.complete[idx - 1](results);
55523 });
55524 }
55525 /**
55526 *
55527 * @param {Object} source - map of field names and values to use in validation
55528 * @returns {Promise}
55529 * - { errors: null } if no rules or no errors
55530 * - { errors: Array, fields: Object } - errors from validation and fields that have errors
55531 */
55532
55533 }, {
55534 key: "validatePromise",
55535 value: function () {
55536 var _validatePromise = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(source) {
55537 var _this2 = this;
55538
55539 var series, results;
55540 return _regenerator.default.wrap(function _callee2$(_context2) {
55541 while (1) {
55542 switch (_context2.prev = _context2.next) {
55543 case 0:
55544 if (!(!this._rules || Object.keys(this._rules).length === 0)) {
55545 _context2.next = 2;
55546 break;
55547 }
55548
55549 return _context2.abrupt("return", {
55550 errors: null
55551 });
55552
55553 case 2:
55554 series = serializeRules(source, this._rules);
55555
55556 if (!(Object.keys(series).length === 0)) {
55557 _context2.next = 5;
55558 break;
55559 }
55560
55561 return _context2.abrupt("return", {
55562 errors: null
55563 });
55564
55565 case 5:
55566 _context2.next = 7;
55567 return (0, _util.asyncMapPromise)(series, this._options, /*#__PURE__*/function () {
55568 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(data) {
55569 var rule, errors;
55570 return _regenerator.default.wrap(function _callee$(_context) {
55571 while (1) {
55572 switch (_context.prev = _context.next) {
55573 case 0:
55574 rule = data.rule;
55575 rule.field = data.field;
55576 _context.prev = 2;
55577 _context.next = 5;
55578 return new Promise(function (resolve, reject) {
55579 function cb(e) {
55580 resolve(e);
55581 }
55582
55583 var res = rule.validator(rule, data.value, cb, _this2._options);
55584
55585 if (res && res.then) {
55586 res.then(function () {
55587 return cb();
55588 }, function (e) {
55589 return cb(e);
55590 });
55591 }
55592 });
55593
55594 case 5:
55595 errors = _context.sent;
55596 _context.next = 11;
55597 break;
55598
55599 case 8:
55600 _context.prev = 8;
55601 _context.t0 = _context["catch"](2);
55602 errors = _context.t0;
55603
55604 case 11:
55605 if (!errors) {
55606 _context.next = 18;
55607 break;
55608 }
55609
55610 // fix e=/""/null/undefiend.
55611 // ignore e=true/false;
55612 if (typeof errors !== 'boolean' && !errors) {
55613 errors = [];
55614 }
55615
55616 if (!Array.isArray(errors)) {
55617 errors = [errors];
55618 } // 自定义错误
55619
55620
55621 // 自定义错误
55622 if (errors.length && rule.message) {
55623 errors = [].concat(rule.message);
55624 }
55625
55626 return _context.abrupt("return", errors.map((0, _util.complementError)(rule)));
55627
55628 case 18:
55629 return _context.abrupt("return", []);
55630
55631 case 19:
55632 case "end":
55633 return _context.stop();
55634 }
55635 }
55636 }, _callee, null, [[2, 8]]);
55637 }));
55638
55639 return function (_x2) {
55640 return _ref.apply(this, arguments);
55641 };
55642 }());
55643
55644 case 7:
55645 results = _context2.sent;
55646 return _context2.abrupt("return", (0, _util.processErrorResults)(results));
55647
55648 case 9:
55649 case "end":
55650 return _context2.stop();
55651 }
55652 }
55653 }, _callee2, this);
55654 }));
55655
55656 function validatePromise(_x) {
55657 return _validatePromise.apply(this, arguments);
55658 }
55659
55660 return validatePromise;
55661 }()
55662 }]);
55663 return Schema;
55664}();
55665
55666var _default = Schema;
55667exports.default = _default;
55668
55669/***/ }),
55670/* 356 */
55671/***/ (function(module, exports, __webpack_require__) {
55672
55673"use strict";
55674
55675
55676Object.defineProperty(exports, "__esModule", {
55677 value: true
55678});
55679exports.default = void 0;
55680var _default = {
55681 default: '%s 校验失败',
55682 required: '%s 是必填字段',
55683 format: {
55684 number: '%s 不是合法的数字',
55685 email: '%s 不是合法的 email 地址',
55686 url: '%s 不是合法的 URL 地址',
55687 tel: '%s 不是合法的电话号码',
55688 IDNumber: '%s 不是合法的身份证号码'
55689 },
55690 number: {
55691 length: '%s 长度必须是 %s',
55692 min: '%s 字段数值不得小于 %s',
55693 max: '%s 字段数值不得大于 %s',
55694 minLength: '%s 字段字符长度不得少于 %s',
55695 maxLength: '%s 字段字符长度不得超过 %s'
55696 },
55697 string: {
55698 length: '%s 长度必须是 %s',
55699 min: '%s 字段数值不得小于 %s',
55700 max: '%s 字段数值不得大于 %s',
55701 minLength: '%s 字段字符长度不得少于 %s',
55702 maxLength: '%s 字段字符长度不得超过 %s'
55703 },
55704 array: {
55705 length: '%s 个数必须是 %s',
55706 minLength: '%s 个数不得少于 %s',
55707 maxLength: '%s 个数不得超过 %s'
55708 },
55709 pattern: '%s 字段数值 %s 不匹配正则 %s'
55710};
55711exports.default = _default;
55712
55713/***/ }),
55714/* 357 */
55715/***/ (function(module, exports, __webpack_require__) {
55716
55717"use strict";
55718
55719
55720var _interopRequireDefault = __webpack_require__(28);
55721
55722Object.defineProperty(exports, "__esModule", {
55723 value: true
55724});
55725exports.getValidationMethod = getValidationMethod;
55726exports.validateFunc = validateFunc;
55727
55728var _rules = _interopRequireDefault(__webpack_require__(358));
55729
55730/* eslint-disable callback-return */
55731
55732/**
55733 * {required, format} => format; {required} => required
55734 * If a promise is wanted from the validator, either return a promise from the callback,
55735 * or do not pass a callback
55736 *
55737 * @param {function} validator [description]
55738 * @param {string} ruleType [description]
55739 * @return {function} [description]
55740 */
55741function validateFunc(validator, ruleType) {
55742 return function (rule, value, cb, options) {
55743 var errors = []; // 如果是非required校验
55744
55745 if (ruleType !== 'required') {
55746 var _errors = [];
55747
55748 _rules.default.required(rule, value, _errors, options); // 空数据
55749
55750
55751 if (_errors.length > 0) {
55752 if ('required' in rule && rule.required) {
55753 if (cb) {
55754 return cb(_errors);
55755 } else {
55756 return Promise.reject(_errors);
55757 }
55758 } else if (cb) {
55759 return cb([]); //空数据,并且没有require要求,则忽略
55760 } else {
55761 return Promise.resolve(null);
55762 }
55763 }
55764 }
55765
55766 validator(rule, value, errors, options);
55767
55768 if (cb) {
55769 return cb(errors);
55770 }
55771
55772 if (Promise) {
55773 return Promise.resolve(errors);
55774 }
55775 };
55776}
55777/**
55778 * {required, format} => format; {required} => required
55779 * @param {object} rule [description]
55780 * @return {function} [description]
55781 */
55782
55783
55784function getValidationMethod(rule) {
55785 if (typeof rule.validator === 'function') {
55786 return rule.validator;
55787 }
55788
55789 var keys = Object.keys(rule); //required和其他校验规则共存
55790 //{required, format} {required, unknown}
55791
55792 for (var i = 0; i < keys.length; i++) {
55793 var ruleType = keys[i];
55794
55795 if (ruleType === 'required') {
55796 continue;
55797 }
55798
55799 if (ruleType in _rules.default) {
55800 return validateFunc(_rules.default[ruleType], ruleType);
55801 }
55802 } // 有其他位置参数
55803
55804
55805 if ('required' in rule && rule.required) {
55806 return validateFunc(_rules.default.required, 'required');
55807 }
55808
55809 return null;
55810}
55811
55812/***/ }),
55813/* 358 */
55814/***/ (function(module, exports, __webpack_require__) {
55815
55816"use strict";
55817
55818
55819var _interopRequireDefault = __webpack_require__(28);
55820
55821Object.defineProperty(exports, "__esModule", {
55822 value: true
55823});
55824exports.default = void 0;
55825
55826var _required = _interopRequireDefault(__webpack_require__(359));
55827
55828var _format = _interopRequireDefault(__webpack_require__(360));
55829
55830var _size = _interopRequireDefault(__webpack_require__(361));
55831
55832var _length = _interopRequireDefault(__webpack_require__(362));
55833
55834var _pattern = _interopRequireDefault(__webpack_require__(363));
55835
55836var _default = {
55837 required: _required.default,
55838 format: _format.default,
55839 min: _size.default,
55840 max: _size.default,
55841 minLength: _length.default,
55842 maxLength: _length.default,
55843 length: _length.default,
55844 pattern: _pattern.default
55845};
55846exports.default = _default;
55847
55848/***/ }),
55849/* 359 */
55850/***/ (function(module, exports, __webpack_require__) {
55851
55852"use strict";
55853
55854
55855var _typeof = __webpack_require__(31);
55856
55857Object.defineProperty(exports, "__esModule", {
55858 value: true
55859});
55860exports.default = void 0;
55861
55862var util = _interopRequireWildcard(__webpack_require__(40));
55863
55864function _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); }
55865
55866function _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; }
55867
55868/**
55869 * Rule for validating required fields.
55870 *
55871 * @param rule The validation rule.
55872 * @param value The value of the field on the source object.
55873 * @param errors An array of errors that this rule may add
55874 * validation errors to.
55875 * @param options The validation options.
55876 * @param options.messages The validation messages.
55877 */
55878function required(rule, value, errors, options) {
55879 if (value === undefined || value === null || value === '' || value.length === 0) {
55880 errors.push(util.format(options.messages.required, rule.aliasName || rule.field));
55881 }
55882}
55883
55884var _default = required;
55885exports.default = _default;
55886
55887/***/ }),
55888/* 360 */
55889/***/ (function(module, exports, __webpack_require__) {
55890
55891"use strict";
55892
55893
55894var _typeof = __webpack_require__(31);
55895
55896Object.defineProperty(exports, "__esModule", {
55897 value: true
55898});
55899exports.default = void 0;
55900
55901var util = _interopRequireWildcard(__webpack_require__(40));
55902
55903function _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); }
55904
55905function _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; }
55906
55907var pattern = {
55908 email: /[\w\u4E00-\u9FA5]+([-+.][\w\u4E00-\u9FA5]+)*@[\w\u4E00-\u9FA5]+([-.][\w\u4E00-\u9FA5]+)*\.[\w\u4E00-\u9FA5]+([-.][\w\u4E00-\u9FA5]+)*/,
55909 url: /^(?:(?:http|https|ftp):\/\/|\/\/)(?:(?:(?:[-\w\u00a1-\uffff]+)(?:\.[-\w\u00a1-\uffff]+)+|localhost)(?::\d{2,5})?(?:(?:\/|#)[^\s]*)?)$/,
55910 number: /\d*/,
55911 tel: /^(1\d{10})$|(((400)-(\d{3})-(\d{4}))|^((\d{7,8})|(\d{3,4})-(\d{7,8})|(\d{7,8})-(\d{1,4}))$)$|^([ ]?)$/
55912};
55913var types = {
55914 number: function number(value) {
55915 if (isNaN(value)) {
55916 return false;
55917 }
55918
55919 return typeof value === 'number' || typeof value === 'string' && !!value.match(pattern.number);
55920 },
55921 email: function email(value) {
55922 return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;
55923 },
55924 url: function url(value) {
55925 return typeof value === 'string' && !!value.match(pattern.url);
55926 },
55927 tel: function tel(value) {
55928 return typeof value === 'string' && !!value.match(pattern.tel);
55929 },
55930 IDNumber: function IDNumber(value) {
55931 return validatorIDNumber(value);
55932 }
55933};
55934/**
55935 * Rule for validating the type of a value.
55936 *
55937 * @param rule The validation rule.
55938 * @param value The value of the field on the source object.
55939 * @param errors An array of errors that this rule may add
55940 * validation errors to.
55941 * @param options The validation options.
55942 * @param options.messages The validation messages.
55943 */
55944
55945function format(rule, value, errors, options) {
55946 var custom = ['email', 'number', 'url', 'tel', 'IDNumber'];
55947 var ruleType = rule.format;
55948
55949 if (custom.indexOf(ruleType) > -1 && !types[ruleType](value)) {
55950 errors.push(util.format(options.messages.format[ruleType], rule.aliasName || rule.field, rule.format));
55951 }
55952}
55953/**
55954 * @params {string} idcode
55955 *
55956 * 函数参数必须是字符串,因为二代身份证号码是十八位,而在javascript中,十八位的数值会超出计算范围,造成不精确的结果,
55957 * 导致最后两位和计算的值不一致,从而该函数出现错误(详情查看javascript的数值范围)。
55958 * 为了避免这一误差,idcode必须是字符串
55959 *
55960 * 正则思路:
55961 * 第一位不可能是0
55962 * 第二位到第六位可以是0-9
55963 * 第七位到第十位是年份,所以七八位为19或者20
55964 * 十一位和十二位是月份,这两位是01-12之间的数值
55965 * 十三位和十四位是日期,是从01-31之间的数值
55966 * 十五,十六,十七都是数字0-9
55967 * 十八位可能是数字0-9,也可能是X
55968 * */
55969
55970
55971function validatorIDNumber(idCode) {
55972 if (typeof idCode !== 'string') {
55973 return false;
55974 }
55975
55976 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])$/; // 判断格式是否正确
55977
55978 var format = idCardPatter.test(idCode);
55979
55980 if (!format) {
55981 return false;
55982 } // 加权因子
55983
55984
55985 var weightFactor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 校验码
55986
55987 var checkCode = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
55988 var last = idCode[17]; //最后一位
55989
55990 var seventeen = idCode.substring(0, 17); // ISO 7064:1983.MOD 11-2
55991 // 判断最后一位校验码是否正确
55992
55993 var arr = seventeen.split('');
55994 var len = arr.length;
55995 var num = 0;
55996
55997 for (var i = 0; i < len; i++) {
55998 num += arr[i] * weightFactor[i];
55999 } // 获取余数
56000
56001
56002 var lastNo = checkCode[num % 11]; // 返回验证结果,校验码和格式同时正确才算是合法的身份证号码
56003
56004 return last === lastNo;
56005}
56006
56007var _default = format;
56008exports.default = _default;
56009
56010/***/ }),
56011/* 361 */
56012/***/ (function(module, exports, __webpack_require__) {
56013
56014"use strict";
56015
56016
56017var _typeof = __webpack_require__(31);
56018
56019Object.defineProperty(exports, "__esModule", {
56020 value: true
56021});
56022exports.default = void 0;
56023
56024var util = _interopRequireWildcard(__webpack_require__(40));
56025
56026function _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); }
56027
56028function _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; }
56029
56030/**
56031 * Rule for validating minimum and maximum allowed values.
56032 *
56033 * @param rule The validation rule.
56034 * @param value The value of the field on the source object.
56035 * @param errors An array of errors that this rule may add
56036 * validation errors to.
56037 * @param options The validation options.
56038 * @param options.messages The validation messages.
56039 */
56040function size(rule, value, errors, options) {
56041 var key = null;
56042 var isNum = typeof value === 'number';
56043 var isStr = typeof value === 'string';
56044
56045 if (isNum) {
56046 key = 'number';
56047 } else if (isStr) {
56048 key = 'string';
56049 }
56050
56051 if (!key) {
56052 return false;
56053 } // TODO: 2.x change to typeof rule.min === 'number' || typeof rule.max === 'number'
56054
56055
56056 if (typeof rule.min !== 'undefined' || typeof rule.max !== 'undefined') {
56057 var val = value;
56058 var max = Number(rule.max);
56059 var min = Number(rule.min);
56060
56061 if (isStr) {
56062 val = Number(val);
56063 }
56064
56065 if (val < min) {
56066 errors.push(util.format(options.messages[key].min, rule.aliasName || rule.field, rule.min));
56067 } else if (val > max) {
56068 errors.push(util.format(options.messages[key].max, rule.aliasName || rule.field, rule.max));
56069 }
56070 }
56071}
56072
56073var _default = size;
56074exports.default = _default;
56075
56076/***/ }),
56077/* 362 */
56078/***/ (function(module, exports, __webpack_require__) {
56079
56080"use strict";
56081
56082
56083var _typeof = __webpack_require__(31);
56084
56085Object.defineProperty(exports, "__esModule", {
56086 value: true
56087});
56088exports.default = void 0;
56089
56090var util = _interopRequireWildcard(__webpack_require__(40));
56091
56092function _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); }
56093
56094function _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; }
56095
56096/**
56097 * Rule for validating minimum and maximum allowed values.
56098 *
56099 * @param rule The validation rule.
56100 * @param value The value of the field on the source object.
56101 * @param errors An array of errors that this rule may add
56102 * validation errors to.
56103 * @param options The validation options.
56104 * @param options.messages The validation messages.
56105 */
56106function length(rule, value, errors, options) {
56107 var key = null;
56108 var isNum = typeof value === 'number';
56109 var isStr = typeof value === 'string';
56110 var isArr = Array.isArray(value);
56111
56112 if (isNum) {
56113 key = 'number';
56114 } else if (isStr) {
56115 key = 'string';
56116 } else if (isArr) {
56117 key = 'array';
56118 }
56119
56120 if (!key) {
56121 return false;
56122 }
56123
56124 var val = value;
56125 var length = Number(rule.length);
56126 var maxLength = Number(rule.maxLength);
56127 var minLength = Number(rule.minLength);
56128
56129 if (minLength || maxLength || length) {
56130 if (isNum) {
56131 val = "".concat(val);
56132 }
56133
56134 val = val.length;
56135
56136 if (length && val !== rule.length) {
56137 errors.push(util.format(options.messages[key].length, rule.aliasName || rule.field, rule.length));
56138 } else if (val < minLength) {
56139 errors.push(util.format(options.messages[key].minLength, rule.aliasName || rule.field, rule.minLength));
56140 } else if (val > maxLength) {
56141 errors.push(util.format(options.messages[key].maxLength, rule.aliasName || rule.field, rule.maxLength));
56142 }
56143 }
56144}
56145
56146var _default = length;
56147exports.default = _default;
56148
56149/***/ }),
56150/* 363 */
56151/***/ (function(module, exports, __webpack_require__) {
56152
56153"use strict";
56154
56155
56156var _typeof = __webpack_require__(31);
56157
56158Object.defineProperty(exports, "__esModule", {
56159 value: true
56160});
56161exports.default = void 0;
56162
56163var util = _interopRequireWildcard(__webpack_require__(40));
56164
56165function _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); }
56166
56167function _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; }
56168
56169/**
56170 * Rule for validating a regular expression pattern.
56171 *
56172 * @param rule The validation rule.
56173 * @param value The value of the field on the source object.
56174 * @param errors An array of errors that this rule may add
56175 * validation errors to.
56176 * @param options The validation options.
56177 * @param options.messages The validation messages.
56178 */
56179function pattern(rule, value, errors, options) {
56180 if (rule.pattern) {
56181 if (rule.pattern instanceof RegExp) {
56182 if (!rule.pattern.test(value)) {
56183 errors.push(util.format(options.messages.pattern, rule.aliasName || rule.field, value, rule.pattern));
56184 }
56185 } else if (typeof rule.pattern === 'string') {
56186 var _pattern = new RegExp(rule.pattern);
56187
56188 if (!_pattern.test(value)) {
56189 errors.push(util.format(options.messages.pattern, rule.aliasName || rule.field, value, rule.pattern));
56190 }
56191 }
56192 }
56193}
56194
56195var _default = pattern;
56196exports.default = _default;
56197
56198/***/ }),
56199/* 364 */
56200/***/ (function(module, exports, __webpack_require__) {
56201
56202"use strict";
56203/* WEBPACK VAR INJECTION */(function(process) {
56204
56205var _interopRequireDefault = __webpack_require__(28);
56206
56207Object.defineProperty(exports, "__esModule", {
56208 value: true
56209});
56210exports.getIn = getIn;
56211exports.setIn = setIn;
56212exports.deleteIn = deleteIn;
56213exports.getErrorStrs = getErrorStrs;
56214exports.getParams = getParams;
56215exports.getValueFromEvent = getValueFromEvent;
56216exports.mapValidateRules = mapValidateRules;
56217exports.warning = void 0;
56218
56219var _defineProperty2 = _interopRequireDefault(__webpack_require__(98));
56220
56221var _extends3 = _interopRequireDefault(__webpack_require__(61));
56222
56223function getIn(state, name) {
56224 if (!state) {
56225 return state;
56226 }
56227
56228 var path = typeof name === 'string' ? name.replace(/\[/, '.').replace(/\]/, '').split('.') : '';
56229 var length = path.length;
56230
56231 if (!length) {
56232 return undefined;
56233 }
56234
56235 var result = state;
56236
56237 for (var i = 0; i < length && !!result; ++i) {
56238 result = result[path[i]];
56239 }
56240
56241 return result;
56242}
56243
56244var setInWithPath = function setInWithPath(state, value, path, pathIndex) {
56245 if (pathIndex >= path.length) {
56246 return value;
56247 }
56248
56249 var first = path[pathIndex];
56250 var next = setInWithPath(state && state[first], value, path, pathIndex + 1);
56251
56252 if (!state) {
56253 var initialized = isNaN(first) ? {} : [];
56254 initialized[first] = next;
56255 return initialized;
56256 }
56257
56258 if (Array.isArray(state)) {
56259 var copy = [].concat(state);
56260 copy[first] = next;
56261 return copy;
56262 }
56263
56264 return (0, _extends3.default)({}, state, (0, _defineProperty2.default)({}, first, next));
56265};
56266
56267function setIn(state, name, value) {
56268 return setInWithPath(state, value, typeof name === 'string' ? name.replace(/\[/, '.').replace(/\]/, '').split('.') : '', 0);
56269}
56270
56271function deleteIn(state, name) {
56272 if (!state) {
56273 return;
56274 }
56275
56276 var path = typeof name === 'string' ? name.replace(/\[/, '.').replace(/\]/, '').split('.') : '';
56277 var length = path.length;
56278
56279 if (!length) {
56280 return state;
56281 }
56282
56283 var result = state;
56284
56285 for (var i = 0; i < length && !!result; ++i) {
56286 if (i === length - 1) {
56287 delete result[path[i]];
56288 } else {
56289 result = result[path[i]];
56290 }
56291 }
56292
56293 return state;
56294}
56295
56296function getErrorStrs(errors, processErrorMessage) {
56297 if (errors) {
56298 return errors.map(function (e) {
56299 var message = typeof e.message !== 'undefined' ? e.message : e;
56300
56301 if (typeof processErrorMessage === 'function') {
56302 return processErrorMessage(message);
56303 }
56304
56305 return message;
56306 });
56307 }
56308
56309 return errors;
56310}
56311
56312function getParams(ns, cb) {
56313 var names = typeof ns === 'string' ? [ns] : ns;
56314 var callback = cb;
56315
56316 if (cb === undefined && typeof names === 'function') {
56317 callback = names;
56318 names = undefined;
56319 }
56320
56321 return {
56322 names: names,
56323 callback: callback
56324 };
56325}
56326/**
56327 * 从组件事件中获取数据
56328 * @param e Event或者value
56329 * @returns value
56330 */
56331
56332
56333function getValueFromEvent(e) {
56334 // support custom element
56335 if (!e || !e.target) {
56336 return e;
56337 }
56338
56339 var target = e.target;
56340
56341 if (target.type === 'checkbox') {
56342 return target.checked;
56343 } else if (target.type === 'radio') {
56344 //兼容原生radioGroup
56345 if (target.value) {
56346 return target.value;
56347 } else {
56348 return target.checked;
56349 }
56350 }
56351
56352 return target.value;
56353}
56354
56355function validateMap(rulesMap, rule, defaultTrigger) {
56356 var nrule = (0, _extends3.default)({}, rule);
56357
56358 if (!nrule.trigger) {
56359 nrule.trigger = [defaultTrigger];
56360 }
56361
56362 if (typeof nrule.trigger === 'string') {
56363 nrule.trigger = [nrule.trigger];
56364 }
56365
56366 for (var i = 0; i < nrule.trigger.length; i++) {
56367 var trigger = nrule.trigger[i];
56368
56369 if (trigger in rulesMap) {
56370 rulesMap[trigger].push(nrule);
56371 } else {
56372 rulesMap[trigger] = [nrule];
56373 }
56374 }
56375
56376 delete nrule.trigger;
56377}
56378/**
56379 * 提取rule里面的trigger并且做映射
56380 * @param {Array} rules 规则
56381 * @param {String} defaultTrigger 默认触发
56382 * @return {Object} {onChange:rule1, onBlur: rule2}
56383 */
56384
56385
56386function mapValidateRules(rules, defaultTrigger) {
56387 var rulesMap = {};
56388 rules.forEach(function (rule) {
56389 validateMap(rulesMap, rule, defaultTrigger);
56390 });
56391 return rulesMap;
56392}
56393
56394var warn = function warn() {};
56395
56396if (typeof process !== 'undefined' && process.env && "production" !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {
56397 warn = function warn() {
56398 /* eslint-disable no-console */
56399 if (typeof console !== 'undefined' && console.error) {
56400 var _console;
56401
56402 (_console = console).error.apply(_console, arguments);
56403 }
56404 };
56405}
56406
56407var warning = warn;
56408exports.warning = warning;
56409/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(365)))
56410
56411/***/ }),
56412/* 365 */
56413/***/ (function(module, exports) {
56414
56415// shim for using process in browser
56416var process = module.exports = {};
56417
56418// cached from whatever global is present so that test runners that stub it
56419// don't break things. But we need to wrap it in a try catch in case it is
56420// wrapped in strict mode code which doesn't define any globals. It's inside a
56421// function because try/catches deoptimize in certain engines.
56422
56423var cachedSetTimeout;
56424var cachedClearTimeout;
56425
56426function defaultSetTimout() {
56427 throw new Error('setTimeout has not been defined');
56428}
56429function defaultClearTimeout () {
56430 throw new Error('clearTimeout has not been defined');
56431}
56432(function () {
56433 try {
56434 if (typeof setTimeout === 'function') {
56435 cachedSetTimeout = setTimeout;
56436 } else {
56437 cachedSetTimeout = defaultSetTimout;
56438 }
56439 } catch (e) {
56440 cachedSetTimeout = defaultSetTimout;
56441 }
56442 try {
56443 if (typeof clearTimeout === 'function') {
56444 cachedClearTimeout = clearTimeout;
56445 } else {
56446 cachedClearTimeout = defaultClearTimeout;
56447 }
56448 } catch (e) {
56449 cachedClearTimeout = defaultClearTimeout;
56450 }
56451} ())
56452function runTimeout(fun) {
56453 if (cachedSetTimeout === setTimeout) {
56454 //normal enviroments in sane situations
56455 return setTimeout(fun, 0);
56456 }
56457 // if setTimeout wasn't available but was latter defined
56458 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
56459 cachedSetTimeout = setTimeout;
56460 return setTimeout(fun, 0);
56461 }
56462 try {
56463 // when when somebody has screwed with setTimeout but no I.E. maddness
56464 return cachedSetTimeout(fun, 0);
56465 } catch(e){
56466 try {
56467 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
56468 return cachedSetTimeout.call(null, fun, 0);
56469 } catch(e){
56470 // 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
56471 return cachedSetTimeout.call(this, fun, 0);
56472 }
56473 }
56474
56475
56476}
56477function runClearTimeout(marker) {
56478 if (cachedClearTimeout === clearTimeout) {
56479 //normal enviroments in sane situations
56480 return clearTimeout(marker);
56481 }
56482 // if clearTimeout wasn't available but was latter defined
56483 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
56484 cachedClearTimeout = clearTimeout;
56485 return clearTimeout(marker);
56486 }
56487 try {
56488 // when when somebody has screwed with setTimeout but no I.E. maddness
56489 return cachedClearTimeout(marker);
56490 } catch (e){
56491 try {
56492 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
56493 return cachedClearTimeout.call(null, marker);
56494 } catch (e){
56495 // 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.
56496 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
56497 return cachedClearTimeout.call(this, marker);
56498 }
56499 }
56500
56501
56502
56503}
56504var queue = [];
56505var draining = false;
56506var currentQueue;
56507var queueIndex = -1;
56508
56509function cleanUpNextTick() {
56510 if (!draining || !currentQueue) {
56511 return;
56512 }
56513 draining = false;
56514 if (currentQueue.length) {
56515 queue = currentQueue.concat(queue);
56516 } else {
56517 queueIndex = -1;
56518 }
56519 if (queue.length) {
56520 drainQueue();
56521 }
56522}
56523
56524function drainQueue() {
56525 if (draining) {
56526 return;
56527 }
56528 var timeout = runTimeout(cleanUpNextTick);
56529 draining = true;
56530
56531 var len = queue.length;
56532 while(len) {
56533 currentQueue = queue;
56534 queue = [];
56535 while (++queueIndex < len) {
56536 if (currentQueue) {
56537 currentQueue[queueIndex].run();
56538 }
56539 }
56540 queueIndex = -1;
56541 len = queue.length;
56542 }
56543 currentQueue = null;
56544 draining = false;
56545 runClearTimeout(timeout);
56546}
56547
56548process.nextTick = function (fun) {
56549 var args = new Array(arguments.length - 1);
56550 if (arguments.length > 1) {
56551 for (var i = 1; i < arguments.length; i++) {
56552 args[i - 1] = arguments[i];
56553 }
56554 }
56555 queue.push(new Item(fun, args));
56556 if (queue.length === 1 && !draining) {
56557 runTimeout(drainQueue);
56558 }
56559};
56560
56561// v8 likes predictible objects
56562function Item(fun, array) {
56563 this.fun = fun;
56564 this.array = array;
56565}
56566Item.prototype.run = function () {
56567 this.fun.apply(null, this.array);
56568};
56569process.title = 'browser';
56570process.browser = true;
56571process.env = {};
56572process.argv = [];
56573process.version = ''; // empty string to avoid regexp issues
56574process.versions = {};
56575
56576function noop() {}
56577
56578process.on = noop;
56579process.addListener = noop;
56580process.once = noop;
56581process.off = noop;
56582process.removeListener = noop;
56583process.removeAllListeners = noop;
56584process.emit = noop;
56585process.prependListener = noop;
56586process.prependOnceListener = noop;
56587
56588process.listeners = function (name) { return [] }
56589
56590process.binding = function (name) {
56591 throw new Error('process.binding is not supported');
56592};
56593
56594process.cwd = function () { return '/' };
56595process.chdir = function (dir) {
56596 throw new Error('process.chdir is not supported');
56597};
56598process.umask = function() { return 0; };
56599
56600
56601/***/ }),
56602/* 366 */
56603/***/ (function(module, exports, __webpack_require__) {
56604
56605"use strict";
56606
56607
56608exports.__esModule = true;
56609exports.cloneAndAddKey = cloneAndAddKey;
56610exports.scrollToFirstError = scrollToFirstError;
56611
56612var _react = __webpack_require__(0);
56613
56614var _reactDom = __webpack_require__(12);
56615
56616var _reactDom2 = _interopRequireDefault(_reactDom);
56617
56618function _interopRequireDefault(obj) {
56619 return obj && obj.__esModule ? obj : { default: obj };
56620}
56621
56622function cloneAndAddKey(element) {
56623 if (element && (0, _react.isValidElement)(element)) {
56624 var key = element.key || 'error';
56625 return (0, _react.cloneElement)(element, { key: key });
56626 }
56627 return element;
56628}
56629
56630function scrollToFirstError(_ref) {
56631 var errorsGroup = _ref.errorsGroup,
56632 options = _ref.options,
56633 instance = _ref.instance;
56634
56635 if (errorsGroup && options.scrollToFirstError) {
56636 var firstNode = void 0;
56637 var firstTop = void 0;
56638 for (var i in errorsGroup) {
56639 if (errorsGroup.hasOwnProperty(i)) {
56640 var node = _reactDom2.default.findDOMNode(instance[i]);
56641 if (!node) {
56642 return;
56643 }
56644 var top = node.offsetTop;
56645 if (firstTop === undefined || firstTop > top) {
56646 firstTop = top;
56647 firstNode = node;
56648 }
56649 }
56650 }
56651
56652 if (firstNode) {
56653 if (typeof options.scrollToFirstError === 'number' && window && typeof window.scrollTo === 'function') {
56654 var offsetLeft = document && document.body && document.body.offsetLeft ? document.body.offsetLeft : 0;
56655 window.scrollTo(offsetLeft, firstTop + options.scrollToFirstError);
56656 } else if (firstNode.scrollIntoViewIfNeeded) {
56657 firstNode.scrollIntoViewIfNeeded(true);
56658 }
56659 }
56660 }
56661}
56662
56663/***/ }),
56664/* 367 */
56665/***/ (function(module, exports, __webpack_require__) {
56666
56667"use strict";
56668
56669
56670exports.__esModule = true;
56671
56672var _extends2 = __webpack_require__(1);
56673
56674var _extends3 = _interopRequireDefault(_extends2);
56675
56676var _objectWithoutProperties2 = __webpack_require__(8);
56677
56678var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
56679
56680var _configProvider = __webpack_require__(9);
56681
56682var _configProvider2 = _interopRequireDefault(_configProvider);
56683
56684var _form = __webpack_require__(368);
56685
56686var _form2 = _interopRequireDefault(_form);
56687
56688var _item = __webpack_require__(371);
56689
56690var _item2 = _interopRequireDefault(_item);
56691
56692var _submit = __webpack_require__(375);
56693
56694var _submit2 = _interopRequireDefault(_submit);
56695
56696var _reset = __webpack_require__(376);
56697
56698var _reset2 = _interopRequireDefault(_reset);
56699
56700var _error = __webpack_require__(179);
56701
56702var _error2 = _interopRequireDefault(_error);
56703
56704function _interopRequireDefault(obj) {
56705 return obj && obj.__esModule ? obj : { default: obj };
56706}
56707
56708_form2.default.Item = _configProvider2.default.config(_item2.default, {
56709 transform: /* istanbul ignore next */function transform(props, deprecated) {
56710 if ('validateStatus' in props) {
56711 deprecated('validateStatus', 'validateState', 'Form.Item');
56712
56713 var _props = props,
56714 validateStatus = _props.validateStatus,
56715 others = (0, _objectWithoutProperties3.default)(_props, ['validateStatus']);
56716
56717 props = (0, _extends3.default)({ validateState: validateStatus }, others);
56718 }
56719
56720 return props;
56721 }
56722});
56723_form2.default.Submit = _submit2.default;
56724_form2.default.Reset = _reset2.default;
56725_form2.default.Error = _error2.default;
56726
56727exports.default = _configProvider2.default.config(_form2.default, {
56728 transform: /* istanbul ignore next */function transform(props, deprecated) {
56729 if ('direction' in props) {
56730 deprecated('direction', 'inline', 'Form');
56731 var _props2 = props,
56732 direction = _props2.direction,
56733 others = (0, _objectWithoutProperties3.default)(_props2, ['direction']);
56734
56735 if (direction === 'hoz') {
56736 props = (0, _extends3.default)({ inline: true }, others);
56737 }
56738 }
56739
56740 return props;
56741 }
56742});
56743module.exports = exports['default'];
56744
56745/***/ }),
56746/* 368 */
56747/***/ (function(module, exports, __webpack_require__) {
56748
56749"use strict";
56750
56751
56752exports.__esModule = true;
56753exports.default = undefined;
56754
56755var _extends2 = __webpack_require__(1);
56756
56757var _extends3 = _interopRequireDefault(_extends2);
56758
56759var _classCallCheck2 = __webpack_require__(2);
56760
56761var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
56762
56763var _possibleConstructorReturn2 = __webpack_require__(3);
56764
56765var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
56766
56767var _inherits2 = __webpack_require__(4);
56768
56769var _inherits3 = _interopRequireDefault(_inherits2);
56770
56771var _typeof2 = __webpack_require__(14);
56772
56773var _typeof3 = _interopRequireDefault(_typeof2);
56774
56775var _class, _temp;
56776
56777var _react = __webpack_require__(0);
56778
56779var _react2 = _interopRequireDefault(_react);
56780
56781var _propTypes = __webpack_require__(5);
56782
56783var _propTypes2 = _interopRequireDefault(_propTypes);
56784
56785var _classnames = __webpack_require__(7);
56786
56787var _classnames2 = _interopRequireDefault(_classnames);
56788
56789var _util = __webpack_require__(6);
56790
56791var _field = __webpack_require__(173);
56792
56793var _field2 = _interopRequireDefault(_field);
56794
56795var _responsiveGrid = __webpack_require__(99);
56796
56797var _responsiveGrid2 = _interopRequireDefault(_responsiveGrid);
56798
56799function _interopRequireDefault(obj) {
56800 return obj && obj.__esModule ? obj : { default: obj };
56801}
56802
56803function pickerDefined(obj) {
56804 var newObj = {};
56805 Object.keys(obj).forEach(function (i) {
56806 if (typeof obj[i] !== 'undefined') {
56807 newObj[i] = obj[i];
56808 }
56809 });
56810 return newObj;
56811}
56812
56813function preventDefault(e) {
56814 e.preventDefault();
56815}
56816var getNewChildren = function getNewChildren(children, props) {
56817 var size = props.size,
56818 device = props.device,
56819 labelAlign = props.labelAlign,
56820 labelTextAlign = props.labelTextAlign,
56821 labelCol = props.labelCol,
56822 wrapperCol = props.wrapperCol,
56823 responsive = props.responsive,
56824 colon = props.colon;
56825
56826 return _react2.default.Children.map(children, function (child) {
56827 if (_util.obj.isReactFragment(child)) {
56828 return getNewChildren(child.props.children, props);
56829 }
56830
56831 if (child && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && child.type._typeMark === 'form_item') {
56832 var childrenProps = {
56833 labelCol: child.props.labelCol ? child.props.labelCol : labelCol,
56834 wrapperCol: child.props.wrapperCol ? child.props.wrapperCol : wrapperCol,
56835 labelAlign: child.props.labelAlign ? child.props.labelAlign : device === 'phone' ? 'top' : labelAlign,
56836 labelTextAlign: child.props.labelTextAlign ? child.props.labelTextAlign : labelTextAlign,
56837 colon: 'colon' in child.props ? child.props.colon : colon,
56838 size: child.props.size ? child.props.size : size,
56839 responsive: responsive
56840 };
56841 return _react2.default.cloneElement(child, pickerDefined(childrenProps));
56842 }
56843 return child;
56844 });
56845};
56846
56847/** Form */
56848var Form = (_temp = _class = function (_React$Component) {
56849 (0, _inherits3.default)(Form, _React$Component);
56850
56851 function Form(props) {
56852 (0, _classCallCheck3.default)(this, Form);
56853
56854 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
56855
56856 _this.onChange = function (name, value) {
56857 _this.props.onChange(_this._formField.getValues(), {
56858 name: name,
56859 value: value,
56860 field: _this._formField
56861 });
56862 };
56863
56864 _this._formField = null;
56865 if (props.field !== false) {
56866 var options = (0, _extends3.default)({}, props.fieldOptions, {
56867 onChange: _this.onChange
56868 });
56869
56870 if (props.field) {
56871 _this._formField = props.field;
56872 var onChange = _this._formField.options.onChange;
56873 options.onChange = _util.func.makeChain(onChange, _this.onChange);
56874 _this._formField.setOptions && _this._formField.setOptions(options);
56875 } else {
56876 if ('value' in props) {
56877 options.values = props.value;
56878 }
56879
56880 _this._formField = new _field2.default(_this, options);
56881 }
56882
56883 if (props.locale && props.locale.Validate) {
56884 _this._formField.setOptions({ messages: props.locale.Validate });
56885 }
56886
56887 props.saveField(_this._formField);
56888 }
56889 return _this;
56890 }
56891
56892 Form.prototype.getChildContext = function getChildContext() {
56893 return {
56894 _formField: this.props.field ? this.props.field : this._formField,
56895 _formSize: this.props.size,
56896 _formDisabled: this.props.disabled,
56897 _formPreview: this.props.isPreview,
56898 _formFullWidth: this.props.fullWidth,
56899 _formLabelForErrorMessage: this.props.useLabelForErrorMessage
56900 };
56901 };
56902
56903 Form.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
56904 var props = this.props;
56905
56906 if (this._formField) {
56907 if ('value' in props && props.value !== prevProps.value) {
56908 this._formField.setValues(props.value);
56909 }
56910 if ('error' in props && props.error !== prevProps.error) {
56911 this._formField.setValues(props.error);
56912 }
56913 }
56914 };
56915
56916 Form.prototype.render = function render() {
56917 var _classNames;
56918
56919 var _props = this.props,
56920 className = _props.className,
56921 inline = _props.inline,
56922 size = _props.size,
56923 device = _props.device,
56924 labelAlign = _props.labelAlign,
56925 labelTextAlign = _props.labelTextAlign,
56926 onSubmit = _props.onSubmit,
56927 children = _props.children,
56928 labelCol = _props.labelCol,
56929 wrapperCol = _props.wrapperCol,
56930 style = _props.style,
56931 prefix = _props.prefix,
56932 rtl = _props.rtl,
56933 isPreview = _props.isPreview,
56934 Tag = _props.component,
56935 responsive = _props.responsive,
56936 gap = _props.gap,
56937 colon = _props.colon;
56938
56939 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));
56940
56941 var newChildren = getNewChildren(children, this.props);
56942
56943 return _react2.default.createElement(Tag, (0, _extends3.default)({
56944 role: 'grid'
56945 }, _util.obj.pickOthers(Form.propTypes, this.props), {
56946 className: formClassName,
56947 style: style,
56948 dir: rtl ? 'rtl' : undefined,
56949 onSubmit: onSubmit
56950 }), responsive ? _react2.default.createElement(_responsiveGrid2.default, { gap: gap }, newChildren) : newChildren);
56951 };
56952
56953 return Form;
56954}(_react2.default.Component), _class.propTypes = {
56955 /**
56956 * 样式前缀
56957 */
56958 prefix: _propTypes2.default.string,
56959 /**
56960 * 内联表单
56961 */
56962 inline: _propTypes2.default.bool,
56963 /**
56964 * 单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。
56965 * @enumdesc 大, 中, 小
56966 */
56967 size: _propTypes2.default.oneOf(['large', 'medium', 'small']),
56968 /**
56969 * 单个 Item 中表单类组件宽度是否是100%
56970 */
56971 fullWidth: _propTypes2.default.bool,
56972 /**
56973 * 标签的位置, 如果不设置 labelCol 和 wrapperCol 那么默认是标签在上
56974 * @enumdesc 上, 左, 内
56975 */
56976 labelAlign: _propTypes2.default.oneOf(['top', 'left', 'inset']),
56977 /**
56978 * 标签的左右对齐方式
56979 * @enumdesc 左, 右
56980 */
56981 labelTextAlign: _propTypes2.default.oneOf(['left', 'right']),
56982 /**
56983 * field 实例, 传 false 会禁用 field
56984 */
56985 field: _propTypes2.default.any,
56986 /**
56987 * 保存 Form 自动生成的 field 对象
56988 */
56989 saveField: _propTypes2.default.func,
56990 /**
56991 * 控制第一级 Item 的 labelCol
56992 */
56993 labelCol: _propTypes2.default.object,
56994 /**
56995 * 控制第一级 Item 的 wrapperCol
56996 */
56997 wrapperCol: _propTypes2.default.object,
56998 /**
56999 * form内有 `htmlType="submit"` 的元素的时候会触发
57000 */
57001 onSubmit: _propTypes2.default.func,
57002 /**
57003 * 子元素
57004 */
57005 children: _propTypes2.default.any,
57006 /**
57007 * 扩展class
57008 */
57009 className: _propTypes2.default.string,
57010 /**
57011 * 自定义内联样式
57012 */
57013 style: _propTypes2.default.object,
57014 /**
57015 * 表单数值
57016 */
57017 value: _propTypes2.default.object,
57018 /**
57019 * 表单变化回调
57020 * @param {Object} values 表单数据
57021 * @param {Object} item 详细
57022 * @param {String} item.name 变化的组件名
57023 * @param {String} item.value 变化的数据
57024 * @param {Object} item.field field 实例
57025 */
57026 onChange: _propTypes2.default.func,
57027 /**
57028 * 设置标签类型
57029 */
57030 component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),
57031 fieldOptions: _propTypes2.default.object,
57032 rtl: _propTypes2.default.bool,
57033 /**
57034 * 预设屏幕宽度
57035 */
57036 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
57037 /**
57038 * 是否开启内置的响应式布局 (使用ResponsiveGrid)
57039 * @version 1.19
57040 */
57041 responsive: _propTypes2.default.bool,
57042 /**
57043 * 是否开启预览态
57044 * @version 1.19
57045 */
57046 isPreview: _propTypes2.default.bool,
57047 /**
57048 * 是否使用 label 替换校验信息的 name 字段
57049 * @version 1.20
57050 */
57051 useLabelForErrorMessage: _propTypes2.default.bool,
57052 /**
57053 * 表示是否显示 label 后面的冒号
57054 * @version 1.22
57055 */
57056 colon: _propTypes2.default.bool,
57057 /**
57058 * 是否禁用表单
57059 */
57060 disabled: _propTypes2.default.bool,
57061 // 在 responsive模式下,透传给 ResponsiveGrid的, 表示 每个 cell 之间的间距, [bottom&top, right&left]
57062 gap: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.number])
57063}, _class.defaultProps = {
57064 prefix: 'next-',
57065 onSubmit: preventDefault,
57066 size: 'medium',
57067 labelAlign: 'left',
57068 onChange: _util.func.noop,
57069 component: 'form',
57070 saveField: _util.func.noop,
57071 device: 'desktop',
57072 colon: false,
57073 disabled: false
57074}, _class.childContextTypes = {
57075 _formField: _propTypes2.default.object,
57076 _formSize: _propTypes2.default.string,
57077 _formDisabled: _propTypes2.default.bool,
57078 _formPreview: _propTypes2.default.bool,
57079 _formFullWidth: _propTypes2.default.bool,
57080 _formLabelForErrorMessage: _propTypes2.default.bool
57081}, _temp);
57082Form.displayName = 'Form';
57083exports.default = Form;
57084module.exports = exports['default'];
57085
57086/***/ }),
57087/* 369 */
57088/***/ (function(module, exports, __webpack_require__) {
57089
57090"use strict";
57091
57092
57093exports.__esModule = true;
57094exports.filterUndefinedValue = filterUndefinedValue;
57095exports.stripObject = stripObject;
57096
57097var _util = __webpack_require__(6);
57098
57099var isPlainObject = _util.obj.isPlainObject;
57100
57101/**
57102 * 过滤 undefined 类型的值
57103 * @param {*} obj
57104 * @return {Object}
57105 */
57106
57107function filterUndefinedValue(object) {
57108 if (!isPlainObject(object)) {
57109 return object;
57110 }
57111
57112 var obj = {};
57113
57114 Object.keys(object).forEach(function (key) {
57115 var value = object[key];
57116
57117 if (value !== undefined) {
57118 obj[key] = value;
57119 }
57120 });
57121
57122 return obj;
57123}
57124
57125/**
57126 * 从 obj 中去除 subObj
57127 * @param {*} obj
57128 * @param {*} subObj
57129 * @return {Object}
57130 */
57131function stripObject(obj, subObj) {
57132 var newObject = {};
57133
57134 Object.keys(obj).forEach(function (key) {
57135 if (!(key in subObj)) {
57136 newObject[key] = obj[key];
57137 }
57138 });
57139 return newObject;
57140}
57141
57142/***/ }),
57143/* 370 */
57144/***/ (function(module, exports, __webpack_require__) {
57145
57146"use strict";
57147
57148
57149exports.__esModule = true;
57150
57151var _classCallCheck2 = __webpack_require__(2);
57152
57153var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
57154
57155var _possibleConstructorReturn2 = __webpack_require__(3);
57156
57157var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
57158
57159var _inherits2 = __webpack_require__(4);
57160
57161var _inherits3 = _interopRequireDefault(_inherits2);
57162
57163var _class, _temp;
57164
57165var _react = __webpack_require__(0);
57166
57167var _react2 = _interopRequireDefault(_react);
57168
57169var _propTypes = __webpack_require__(5);
57170
57171var _propTypes2 = _interopRequireDefault(_propTypes);
57172
57173var _configProvider = __webpack_require__(9);
57174
57175var _configProvider2 = _interopRequireDefault(_configProvider);
57176
57177var _util = __webpack_require__(6);
57178
57179function _interopRequireDefault(obj) {
57180 return obj && obj.__esModule ? obj : { default: obj };
57181}
57182
57183var pickOthers = _util.obj.pickOthers;
57184/**
57185 * ResponsiveGrid.Cell
57186 */
57187
57188var Cell = (_temp = _class = function (_Component) {
57189 (0, _inherits3.default)(Cell, _Component);
57190
57191 function Cell() {
57192 (0, _classCallCheck3.default)(this, Cell);
57193 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
57194 }
57195
57196 Cell.prototype.render = function render() {
57197 var _props = this.props,
57198 View = _props.component,
57199 children = _props.children;
57200
57201 var others = pickOthers(Object.keys(Cell.propTypes), this.props);
57202
57203 return _react2.default.createElement(View, others, children);
57204 };
57205
57206 return Cell;
57207}(_react.Component), _class._typeMark = 'responsive_grid_cell', _class.propTypes = {
57208 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
57209 /**
57210 * 横向,占据几列
57211 */
57212 colSpan: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.object]),
57213 /**
57214 * 纵向,占据几行
57215 */
57216 rowSpan: _propTypes2.default.number,
57217 /**
57218 * 设置标签类型
57219 */
57220 component: _propTypes2.default.elementType
57221}, _class.defaultProps = {
57222 component: 'div',
57223 device: 'desktop'
57224}, _temp);
57225Cell.displayName = 'Cell';
57226exports.default = _configProvider2.default.config(Cell);
57227module.exports = exports['default'];
57228
57229/***/ }),
57230/* 371 */
57231/***/ (function(module, exports, __webpack_require__) {
57232
57233"use strict";
57234
57235
57236exports.__esModule = true;
57237exports.default = undefined;
57238
57239var _typeof2 = __webpack_require__(14);
57240
57241var _typeof3 = _interopRequireDefault(_typeof2);
57242
57243var _extends2 = __webpack_require__(1);
57244
57245var _extends3 = _interopRequireDefault(_extends2);
57246
57247var _classCallCheck2 = __webpack_require__(2);
57248
57249var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
57250
57251var _possibleConstructorReturn2 = __webpack_require__(3);
57252
57253var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
57254
57255var _inherits2 = __webpack_require__(4);
57256
57257var _inherits3 = _interopRequireDefault(_inherits2);
57258
57259var _class, _temp;
57260
57261var _react = __webpack_require__(0);
57262
57263var _react2 = _interopRequireDefault(_react);
57264
57265var _propTypes = __webpack_require__(5);
57266
57267var _propTypes2 = _interopRequireDefault(_propTypes);
57268
57269var _classnames = __webpack_require__(7);
57270
57271var _classnames2 = _interopRequireDefault(_classnames);
57272
57273var _grid = __webpack_require__(178);
57274
57275var _grid2 = _interopRequireDefault(_grid);
57276
57277var _responsiveGrid = __webpack_require__(99);
57278
57279var _responsiveGrid2 = _interopRequireDefault(_responsiveGrid);
57280
57281var _util = __webpack_require__(6);
57282
57283var _error = __webpack_require__(179);
57284
57285var _error2 = _interopRequireDefault(_error);
57286
57287var _enhance = __webpack_require__(374);
57288
57289function _interopRequireDefault(obj) {
57290 return obj && obj.__esModule ? obj : { default: obj };
57291}
57292
57293var Row = _grid2.default.Row,
57294 Col = _grid2.default.Col;
57295var Cell = _responsiveGrid2.default.Cell;
57296var isNil = _util.obj.isNil;
57297
57298/** Form.Item
57299 * @description 手动传递了 wrapCol labelCol 会使用 Grid 辅助布局; labelAlign='top' 会强制禁用 Grid
57300 * @order 1
57301 */
57302
57303var Item = (_temp = _class = function (_React$Component) {
57304 (0, _inherits3.default)(Item, _React$Component);
57305
57306 function Item() {
57307 (0, _classCallCheck3.default)(this, Item);
57308 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
57309 }
57310
57311 /**
57312 * 从子元素里面提取表单组件. TODO: 2.x 中改为只获取一个元素
57313 */
57314 Item.prototype.getNames = function getNames(children) {
57315 var name = this.props.name;
57316
57317 var childrenList = _react2.default.Children.toArray(children);
57318 var nameList = childrenList.filter(function (c) {
57319 return c.props && ('name' in c.props || 'data-meta' in c.props);
57320 }).map(function (c) {
57321 return c.props.name || c.props.id;
57322 });
57323
57324 if (nameList.length) {
57325 return nameList;
57326 } else if (name) {
57327 return [name];
57328 }
57329
57330 return [];
57331 };
57332
57333 Item.prototype.getHelper = function getHelper(children) {
57334 var help = this.props.help;
57335 var _formField = this.context._formField;
57336
57337 return _react2.default.createElement(_error2.default, { name: help === undefined ? this.getNames(children) : undefined, field: _formField }, help);
57338 };
57339
57340 Item.prototype.getState = function getState(children) {
57341 var validateState = this.props.validateState;
57342
57343 if (validateState) {
57344 return validateState;
57345 }
57346
57347 if (this.context._formField) {
57348 var getState = this.context._formField.getState;
57349
57350 var names = this.getNames(children);
57351 if (!names.length) {
57352 return '';
57353 }
57354
57355 // get first name
57356 return getState(names[0]);
57357 }
57358
57359 return undefined;
57360 };
57361
57362 Item.prototype.getSize = function getSize() {
57363 return this.props.size || this.context._formSize;
57364 };
57365
57366 Item.prototype.getDisabled = function getDisabled() {
57367 return 'disabled' in this.props ? this.props.disabled : this.context._formDisabled;
57368 };
57369
57370 Item.prototype.getIsPreview = function getIsPreview() {
57371 return 'isPreview' in this.props ? this.props.isPreview : this.context._formPreview;
57372 };
57373
57374 Item.prototype.getFullWidth = function getFullWidth() {
57375 return isNil(this.props.fullWidth) ? !!this.context._formFullWidth : this.props.fullWidth;
57376 };
57377
57378 Item.prototype.getLabelForErrorMessage = function getLabelForErrorMessage() {
57379 var _props = this.props,
57380 errorMessageName = _props.errorMessageName,
57381 label = _props.label,
57382 useLabelForErrorMessage = _props.useLabelForErrorMessage;
57383
57384 if (errorMessageName) {
57385 return errorMessageName;
57386 }
57387
57388 if (!label || typeof label !== 'string') {
57389 return null;
57390 }
57391
57392 var newLabel = label.replace(':', '').replace(':', '');
57393
57394 var labelForErrorMessage = useLabelForErrorMessage || this.context._formLabelForErrorMessage;
57395 if (labelForErrorMessage && newLabel) {
57396 return newLabel;
57397 }
57398
57399 return null;
57400 };
57401
57402 Item.prototype.getItemLabel = function getItemLabel(children) {
57403 var _classNames;
57404
57405 var _props2 = this.props,
57406 id = _props2.id,
57407 required = _props2.required,
57408 _props2$asterisk = _props2.asterisk,
57409 asterisk = _props2$asterisk === undefined ? required : _props2$asterisk,
57410 label = _props2.label,
57411 labelCol = _props2.labelCol,
57412 wrapperCol = _props2.wrapperCol,
57413 prefix = _props2.prefix,
57414 responsive = _props2.responsive,
57415 labelWidth = _props2.labelWidth,
57416 labelTextAlign = _props2.labelTextAlign,
57417 colon = _props2.colon;
57418
57419 var labelAlign = this.getLabelAlign(this.props.labelAlign, this.props.device);
57420
57421 if (!label) {
57422 return null;
57423 }
57424
57425 var ele = _react2.default.createElement('label', { htmlFor: id || this.getNames(children)[0], required: asterisk, key: 'label' }, label);
57426
57427 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'form-item-label'] = true, _classNames['has-colon'] = colon, _classNames[prefix + 'left'] = labelTextAlign === 'left', _classNames));
57428
57429 if (responsive && labelWidth && labelAlign !== 'top') {
57430 return _react2.default.createElement('div', { className: cls, style: { width: labelWidth } }, ele);
57431 }
57432
57433 if ((wrapperCol || labelCol) && labelAlign !== 'top') {
57434 return _react2.default.createElement(Col, (0, _extends3.default)({}, labelCol, { className: cls }), ele);
57435 }
57436
57437 return _react2.default.createElement('div', { className: cls }, ele);
57438 };
57439
57440 Item.prototype.getItemWrapper = function getItemWrapper(children) {
57441 var _this2 = this;
57442
57443 var _props3 = this.props,
57444 hasFeedback = _props3.hasFeedback,
57445 labelCol = _props3.labelCol,
57446 wrapperCol = _props3.wrapperCol,
57447 extra = _props3.extra,
57448 prefix = _props3.prefix,
57449 renderPreview = _props3.renderPreview,
57450 name = _props3.name;
57451
57452 var labelAlign = this.getLabelAlign(this.props.labelAlign, this.props.device);
57453
57454 var state = this.getState(children);
57455
57456 var isPreview = this.getIsPreview();
57457 var childrenProps = {
57458 size: this.getSize()
57459 };
57460
57461 if (isPreview) {
57462 childrenProps.isPreview = true;
57463 }
57464
57465 if ('renderPreview' in this.props && typeof renderPreview === 'function') {
57466 childrenProps.renderPreview = renderPreview;
57467 }
57468
57469 if (state && (state === 'error' || hasFeedback)) {
57470 childrenProps.state = state;
57471 }
57472
57473 if (labelAlign === 'inset') {
57474 childrenProps.label = this.getItemLabel(children);
57475 }
57476
57477 if (this.getDisabled()) {
57478 childrenProps.disabled = true;
57479 }
57480
57481 var labelForErrorMessage = this.getLabelForErrorMessage();
57482
57483 var ele = _react2.default.Children.map(children, function (child, idx) {
57484 if (child && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && child.type._typeMark !== 'form_item' && child.type._typeMark !== 'form_error') {
57485 var extraProps = childrenProps;
57486 // 自己直接使用 field.init 会在 props 上面留下 data-meta
57487 // name 挪到 FormItem 上面,默认把第一个元素当做 Form 组件
57488 if (_this2.context._formField && !('data-meta' in child.props) && ('name' in child.props || name && idx === 0) //TODO:1.x 为了不BR, 2.x 中把优先级调换下,优先取 FormItem 的 name
57489 ) {
57490 var initName = 'name' in child.props && child.props.name ? child.props.name : name;
57491 extraProps = _this2.context._formField.init(initName, (0, _extends3.default)({}, (0, _enhance.getFieldInitCfg)(_this2.props, child.type.displayName, labelForErrorMessage), {
57492 props: (0, _extends3.default)({}, child.props, { ref: child.ref })
57493 }), childrenProps);
57494 } else {
57495 extraProps = (0, _extends3.default)({}, child.props, extraProps);
57496 }
57497
57498 return _react2.default.cloneElement(child, extraProps);
57499 }
57500
57501 return child;
57502 });
57503
57504 var help = this.getHelper(children);
57505
57506 if ((wrapperCol || labelCol) && labelAlign !== 'top') {
57507 return _react2.default.createElement(Col, (0, _extends3.default)({}, wrapperCol, { className: prefix + 'form-item-control', key: 'item' }), ele, ' ', help, ' ', extra);
57508 }
57509
57510 return _react2.default.createElement('div', { className: prefix + 'form-item-control' }, ele, ' ', help, ' ', extra);
57511 };
57512
57513 Item.prototype.getLabelAlign = function getLabelAlign(labelAlign, device) {
57514 if (device === 'phone') {
57515 return 'top';
57516 }
57517
57518 return labelAlign;
57519 };
57520
57521 Item.prototype.render = function render() {
57522 var _classNames2;
57523
57524 var _props4 = this.props,
57525 className = _props4.className,
57526 style = _props4.style,
57527 prefix = _props4.prefix,
57528 wrapperCol = _props4.wrapperCol,
57529 labelCol = _props4.labelCol,
57530 responsive = _props4.responsive,
57531 children = _props4.children;
57532
57533 var labelAlign = this.getLabelAlign(this.props.labelAlign, this.props.device);
57534
57535 var childrenNode = children;
57536 if (typeof children === 'function' && this.context._formField) {
57537 childrenNode = children(this.context._formField.getValues());
57538 }
57539
57540 var state = this.getState(childrenNode);
57541 var size = this.getSize();
57542 var fullWidth = this.getFullWidth();
57543 var isPreview = this.getIsPreview();
57544
57545 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));
57546
57547 // 垂直模式并且左对齐才用到
57548 var Tag = responsive ? Cell : (wrapperCol || labelCol) && labelAlign !== 'top' ? Row : 'div';
57549 var label = labelAlign === 'inset' ? null : this.getItemLabel(childrenNode);
57550
57551 return _react2.default.createElement(Tag, (0, _extends3.default)({}, _util.obj.pickOthers(Item.propTypes, this.props), { className: itemClassName, style: style }), label, this.getItemWrapper(childrenNode));
57552 };
57553
57554 return Item;
57555}(_react2.default.Component), _class.propTypes = {
57556 /**
57557 * 样式前缀
57558 */
57559 prefix: _propTypes2.default.string,
57560 rtl: _propTypes2.default.bool,
57561 /**
57562 * label 标签的文本
57563 */
57564 label: _propTypes2.default.node,
57565 /**
57566 * label 标签布局,通 `<Col>` 组件,设置 span offset 值,如 {span: 8, offset: 16},该项仅在垂直表单有效
57567 */
57568 labelCol: _propTypes2.default.object,
57569 /**
57570 * 需要为输入控件设置布局样式时,使用该属性,用法同 labelCol
57571 */
57572 wrapperCol: _propTypes2.default.object,
57573 /**
57574 * 自定义提示信息,如不设置,则会根据校验规则自动生成.
57575 */
57576 help: _propTypes2.default.node,
57577 /**
57578 * 字段名,默认赋值给第一个子元素
57579 */
57580 name: _propTypes2.default.string,
57581 /**
57582 * 额外的提示信息,和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。 位于错误信息后面
57583 */
57584 extra: _propTypes2.default.node,
57585 /**
57586 * 校验状态,如不设置,则会根据校验规则自动生成
57587 * @enumdesc 失败, 成功, 校验中, 警告
57588 */
57589 validateState: _propTypes2.default.oneOf(['error', 'success', 'loading', 'warning']),
57590 /**
57591 * 配合 validateState 属性使用,是否展示 success/loading 的校验状态图标, 目前只有Input支持
57592 */
57593 hasFeedback: _propTypes2.default.bool, //TODO: hasFeedback => validateStatus=[error,success,loading]
57594 /**
57595 * 自定义内联样式
57596 */
57597 style: _propTypes2.default.object,
57598 id: _propTypes2.default.string,
57599 /**
57600 * node 或者 function(values)
57601 */
57602 children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]),
57603 /**
57604 * 单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。
57605 */
57606 size: _propTypes2.default.oneOf(['large', 'small', 'medium']),
57607 /**
57608 * 单个 Item 中表单类组件宽度是否是100%
57609 */
57610 fullWidth: _propTypes2.default.bool,
57611 /**
57612 * 标签的位置, 如果不设置 labelCol 和 wrapperCol 那么默认是标签在上
57613 * @enumdesc 上, 左, 内
57614 */
57615 labelAlign: _propTypes2.default.oneOf(['top', 'left', 'inset']),
57616 /**
57617 * 标签的左右对齐方式
57618 * @enumdesc 左, 右
57619 */
57620 labelTextAlign: _propTypes2.default.oneOf(['left', 'right']),
57621 /**
57622 * 扩展class
57623 */
57624 className: _propTypes2.default.string,
57625 /**
57626 * [表单校验] 不能为空
57627 */
57628 required: _propTypes2.default.bool,
57629 /**
57630 * required 的星号是否显示
57631 */
57632 asterisk: _propTypes2.default.bool,
57633 /**
57634 * required 自定义错误信息
57635 */
57636 requiredMessage: _propTypes2.default.string,
57637 /**
57638 * required 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57639 */
57640 requiredTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57641 /**
57642 * [表单校验] 最小值
57643 */
57644 min: _propTypes2.default.number,
57645 /**
57646 * [表单校验] 最大值
57647 */
57648 max: _propTypes2.default.number,
57649 /**
57650 * min/max 自定义错误信息
57651 */
57652 minmaxMessage: _propTypes2.default.string,
57653 /**
57654 * min/max 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57655 */
57656 minmaxTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57657 /**
57658 * [表单校验] 字符串最小长度 / 数组最小个数
57659 */
57660 minLength: _propTypes2.default.number,
57661 /**
57662 * [表单校验] 字符串最大长度 / 数组最大个数
57663 */
57664 maxLength: _propTypes2.default.number,
57665 /**
57666 * minLength/maxLength 自定义错误信息
57667 */
57668 minmaxLengthMessage: _propTypes2.default.string,
57669 /**
57670 * minLength/maxLength 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57671 */
57672 minmaxLengthTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57673 /**
57674 * [表单校验] 字符串精确长度 / 数组精确个数
57675 */
57676 length: _propTypes2.default.number,
57677 /**
57678 * length 自定义错误信息
57679 */
57680 lengthMessage: _propTypes2.default.string,
57681 /**
57682 * length 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57683 */
57684 lengthTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57685 /**
57686 * 正则校验
57687 */
57688 pattern: _propTypes2.default.any,
57689 /**
57690 * pattern 自定义错误信息
57691 */
57692 patternMessage: _propTypes2.default.string,
57693 /**
57694 * pattern 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57695 */
57696 patternTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57697 /**
57698 * [表单校验] 四种常用的 pattern
57699 */
57700 format: _propTypes2.default.oneOf(['number', 'email', 'url', 'tel']),
57701 /**
57702 * format 自定义错误信息
57703 */
57704 formatMessage: _propTypes2.default.string,
57705 /**
57706 * format 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57707 */
57708 formatTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57709 /**
57710 * [表单校验] 自定义校验函数
57711 */
57712 validator: _propTypes2.default.func,
57713 /**
57714 * validator 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57715 */
57716 validatorTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57717 /**
57718 * 是否修改数据时自动触发校验
57719 */
57720 autoValidate: _propTypes2.default.bool,
57721 /**
57722 * 预设屏幕宽度
57723 */
57724 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
57725 responsive: _propTypes2.default.bool,
57726 /**
57727 * 在响应式布局模式下,表单项占多少列
57728 */
57729 colSpan: _propTypes2.default.number,
57730 /**
57731 * 在响应式布局下,且label在左边时,label的宽度是多少
57732 */
57733 labelWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
57734 /**
57735 * 是否开启预览态
57736 */
57737 isPreview: _propTypes2.default.bool,
57738 /**
57739 * 预览态模式下渲染的内容
57740 * @param {any} value 根据包裹的组件的 value 类型而决定
57741 */
57742 renderPreview: _propTypes2.default.func,
57743 /**
57744 * 替代校验信息的 name 字段,useLabelForErrorMessage 开启的情况下比 label 优先级高
57745 */
57746 errorMessageName: _propTypes2.default.string,
57747 /**
57748 * 是否使用 label 替换校验信息的 name 字段
57749 */
57750 useLabelForErrorMessage: _propTypes2.default.bool,
57751 /**
57752 * 表示是否显示 label 后面的冒号
57753 */
57754 colon: _propTypes2.default.bool,
57755 /**
57756 * 是否禁用表单
57757 */
57758 disabled: _propTypes2.default.bool,
57759 /**
57760 * 子元素的 value 名称
57761 */
57762 valueName: _propTypes2.default.string
57763}, _class.defaultProps = {
57764 prefix: 'next-',
57765 hasFeedback: false,
57766 labelWidth: 100
57767}, _class.contextTypes = {
57768 _formField: _propTypes2.default.object,
57769 _formSize: _propTypes2.default.oneOf(['large', 'small', 'medium']),
57770 _formDisabled: _propTypes2.default.bool,
57771 _formPreview: _propTypes2.default.bool,
57772 _formFullWidth: _propTypes2.default.bool,
57773 _formLabelForErrorMessage: _propTypes2.default.bool
57774}, _class._typeMark = 'form_item', _temp);
57775Item.displayName = 'Item';
57776exports.default = Item;
57777module.exports = exports['default'];
57778
57779/***/ }),
57780/* 372 */
57781/***/ (function(module, exports, __webpack_require__) {
57782
57783"use strict";
57784
57785
57786exports.__esModule = true;
57787exports.default = undefined;
57788
57789var _extends4 = __webpack_require__(1);
57790
57791var _extends5 = _interopRequireDefault(_extends4);
57792
57793var _objectWithoutProperties2 = __webpack_require__(8);
57794
57795var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
57796
57797var _classCallCheck2 = __webpack_require__(2);
57798
57799var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
57800
57801var _possibleConstructorReturn2 = __webpack_require__(3);
57802
57803var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
57804
57805var _inherits2 = __webpack_require__(4);
57806
57807var _inherits3 = _interopRequireDefault(_inherits2);
57808
57809var _class, _temp;
57810
57811var _react = __webpack_require__(0);
57812
57813var _react2 = _interopRequireDefault(_react);
57814
57815var _propTypes = __webpack_require__(5);
57816
57817var _propTypes2 = _interopRequireDefault(_propTypes);
57818
57819var _classnames = __webpack_require__(7);
57820
57821var _classnames2 = _interopRequireDefault(_classnames);
57822
57823function _interopRequireDefault(obj) {
57824 return obj && obj.__esModule ? obj : { default: obj };
57825}
57826
57827/**
57828 * Grid.Row
57829 * @order 1
57830 */
57831var Row = (_temp = _class = function (_Component) {
57832 (0, _inherits3.default)(Row, _Component);
57833
57834 function Row() {
57835 (0, _classCallCheck3.default)(this, Row);
57836 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
57837 }
57838
57839 Row.prototype.render = function render() {
57840 var _extends2, _extends3;
57841
57842 /* eslint-disable no-unused-vars */
57843 var _props = this.props,
57844 prefix = _props.prefix,
57845 pure = _props.pure,
57846 wrap = _props.wrap,
57847 fixed = _props.fixed,
57848 gutter = _props.gutter,
57849 fixedWidth = _props.fixedWidth,
57850 align = _props.align,
57851 justify = _props.justify,
57852 hidden = _props.hidden,
57853 className = _props.className,
57854 Tag = _props.component,
57855 children = _props.children,
57856 rtl = _props.rtl,
57857 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'pure', 'wrap', 'fixed', 'gutter', 'fixedWidth', 'align', 'justify', 'hidden', 'className', 'component', 'children', 'rtl']);
57858 /* eslint-enable no-unused-vars */
57859
57860 var hiddenClassObj = void 0;
57861 if (hidden === true) {
57862 var _hiddenClassObj;
57863
57864 hiddenClassObj = (_hiddenClassObj = {}, _hiddenClassObj[prefix + 'row-hidden'] = true, _hiddenClassObj);
57865 } else if (typeof hidden === 'string') {
57866 var _hiddenClassObj2;
57867
57868 hiddenClassObj = (_hiddenClassObj2 = {}, _hiddenClassObj2[prefix + 'row-' + hidden + '-hidden'] = !!hidden, _hiddenClassObj2);
57869 } else if (Array.isArray(hidden)) {
57870 hiddenClassObj = hidden.reduce(function (ret, point) {
57871 ret[prefix + 'row-' + point + '-hidden'] = !!point;
57872 return ret;
57873 }, {});
57874 }
57875
57876 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)));
57877
57878 var newChildren = children;
57879 var gutterNumber = parseInt(gutter, 10);
57880 if (gutterNumber !== 0) {
57881 var halfGutterString = gutterNumber / 2 + 'px';
57882 others.style = (0, _extends5.default)({
57883 marginLeft: '-' + halfGutterString,
57884 marginRight: '-' + halfGutterString
57885 }, others.style || {});
57886 newChildren = _react.Children.map(children, function (child) {
57887 if (child && child.type && typeof child.type === 'function' && child.type.isNextCol) {
57888 var newChild = (0, _react.cloneElement)(child, {
57889 style: (0, _extends5.default)({
57890 paddingLeft: halfGutterString,
57891 paddingRight: halfGutterString
57892 }, child.style || {})
57893 });
57894 return newChild;
57895 }
57896
57897 return child;
57898 });
57899 }
57900
57901 return _react2.default.createElement(Tag, (0, _extends5.default)({
57902 dir: rtl ? 'rtl' : 'ltr',
57903 role: 'row',
57904 className: newClassName
57905 }, others), newChildren);
57906 };
57907
57908 return Row;
57909}(_react.Component), _class.propTypes = {
57910 prefix: _propTypes2.default.string,
57911 pure: _propTypes2.default.bool,
57912 rtl: _propTypes2.default.bool,
57913 className: _propTypes2.default.string,
57914 style: _propTypes2.default.object,
57915 /**
57916 * 行内容
57917 */
57918 children: _propTypes2.default.node,
57919 /**
57920 * 列间隔
57921 */
57922 gutter: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
57923 /**
57924 * 列在行中宽度溢出后是否换行
57925 */
57926 wrap: _propTypes2.default.bool,
57927 /**
57928 * 行在某一断点下宽度是否保持不变(默认行宽度随视口变化而变化)
57929 */
57930 fixed: _propTypes2.default.bool,
57931 /**
57932 * 固定行的宽度为某一断点的宽度,不受视口影响而变动
57933 * @enumdesc 320px, 480px, 720px, 990px, 1200px, 1500px
57934 */
57935 fixedWidth: _propTypes2.default.oneOf(['xxs', 'xs', 's', 'm', 'l', 'xl']),
57936 /**
57937 * (不支持IE9浏览器)多列垂直方向对齐方式
57938 * @enumdesc 顶部对齐, 居中对齐, 底部对齐, 按第一行文字基线对齐, 未设置高度或设为 auto,将占满整个容器的高度
57939 */
57940 align: _propTypes2.default.oneOf(['top', 'center', 'bottom', 'baseline', 'stretch']),
57941 /**
57942 * (不支持IE9浏览器)行内具有多余空间时的布局方式
57943 * @enumdesc 左对齐, 居中对齐, 右对齐, 两端对齐,列之间间距相等, 每列具有相同的左右间距,行两端间距是列间距的二分之一
57944 */
57945 justify: _propTypes2.default.oneOf(['start', 'center', 'end', 'space-between', 'space-around']),
57946 /**
57947 * 行在不同断点下的显示与隐藏<br><br>**可选值**:<br>true(在所有断点下隐藏)<br>false(在所有断点下显示)<br>'xs'(在 xs 断点下隐藏)<br>['xxs', 'xs', 's', 'm', 'l', 'xl'](在 xxs, xs, s, m, l, xl 断点下隐藏)
57948 */
57949 hidden: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string, _propTypes2.default.array]),
57950 /**
57951 * 指定以何种元素渲染该节点
57952 * - 默认为 'div'
57953 */
57954 component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func])
57955}, _class.defaultProps = {
57956 prefix: 'next-',
57957 pure: false,
57958 fixed: false,
57959 gutter: 0,
57960 wrap: false,
57961 component: 'div'
57962}, _temp);
57963Row.displayName = 'Row';
57964exports.default = Row;
57965module.exports = exports['default'];
57966
57967/***/ }),
57968/* 373 */
57969/***/ (function(module, exports, __webpack_require__) {
57970
57971"use strict";
57972
57973
57974exports.__esModule = true;
57975exports.default = undefined;
57976
57977var _extends4 = __webpack_require__(1);
57978
57979var _extends5 = _interopRequireDefault(_extends4);
57980
57981var _typeof2 = __webpack_require__(14);
57982
57983var _typeof3 = _interopRequireDefault(_typeof2);
57984
57985var _objectWithoutProperties2 = __webpack_require__(8);
57986
57987var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
57988
57989var _classCallCheck2 = __webpack_require__(2);
57990
57991var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
57992
57993var _possibleConstructorReturn2 = __webpack_require__(3);
57994
57995var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
57996
57997var _inherits2 = __webpack_require__(4);
57998
57999var _inherits3 = _interopRequireDefault(_inherits2);
58000
58001var _class, _temp;
58002
58003var _react = __webpack_require__(0);
58004
58005var _react2 = _interopRequireDefault(_react);
58006
58007var _propTypes = __webpack_require__(5);
58008
58009var _propTypes2 = _interopRequireDefault(_propTypes);
58010
58011var _classnames = __webpack_require__(7);
58012
58013var _classnames2 = _interopRequireDefault(_classnames);
58014
58015function _interopRequireDefault(obj) {
58016 return obj && obj.__esModule ? obj : { default: obj };
58017}
58018
58019var breakPoints = ['xxs', 'xs', 's', 'm', 'l', 'xl'];
58020
58021/**
58022 * Grid.Col
58023 * @order 2
58024 */
58025var Col = (_temp = _class = function (_Component) {
58026 (0, _inherits3.default)(Col, _Component);
58027
58028 function Col() {
58029 (0, _classCallCheck3.default)(this, Col);
58030 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
58031 }
58032
58033 Col.prototype.render = function render() {
58034 var _this2 = this,
58035 _extends2,
58036 _extends3;
58037
58038 /* eslint-disable no-unused-vars */
58039 var _props = this.props,
58040 prefix = _props.prefix,
58041 pure = _props.pure,
58042 span = _props.span,
58043 offset = _props.offset,
58044 fixedSpan = _props.fixedSpan,
58045 fixedOffset = _props.fixedOffset,
58046 hidden = _props.hidden,
58047 align = _props.align,
58048 xxs = _props.xxs,
58049 xs = _props.xs,
58050 s = _props.s,
58051 m = _props.m,
58052 l = _props.l,
58053 xl = _props.xl,
58054 Tag = _props.component,
58055 className = _props.className,
58056 children = _props.children,
58057 rtl = _props.rtl,
58058 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'pure', 'span', 'offset', 'fixedSpan', 'fixedOffset', 'hidden', 'align', 'xxs', 'xs', 's', 'm', 'l', 'xl', 'component', 'className', 'children', 'rtl']);
58059 /* eslint-enable no-unused-vars */
58060
58061 var pointClassObj = breakPoints.reduce(function (ret, point) {
58062 var pointProps = {};
58063 if ((0, _typeof3.default)(_this2.props[point]) === 'object') {
58064 pointProps = _this2.props[point];
58065 } else {
58066 pointProps.span = _this2.props[point];
58067 }
58068
58069 ret[prefix + 'col-' + point + '-' + pointProps.span] = !!pointProps.span;
58070 ret[prefix + 'col-' + point + '-offset-' + pointProps.offset] = !!pointProps.offset;
58071
58072 return ret;
58073 }, {});
58074
58075 var hiddenClassObj = void 0;
58076 if (hidden === true) {
58077 var _hiddenClassObj;
58078
58079 hiddenClassObj = (_hiddenClassObj = {}, _hiddenClassObj[prefix + 'col-hidden'] = true, _hiddenClassObj);
58080 } else if (typeof hidden === 'string') {
58081 var _hiddenClassObj2;
58082
58083 hiddenClassObj = (_hiddenClassObj2 = {}, _hiddenClassObj2[prefix + 'col-' + hidden + '-hidden'] = !!hidden, _hiddenClassObj2);
58084 } else if (Array.isArray(hidden)) {
58085 hiddenClassObj = hidden.reduce(function (ret, point) {
58086 ret[prefix + 'col-' + point + '-hidden'] = !!point;
58087 return ret;
58088 }, {});
58089 }
58090
58091 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)));
58092
58093 return _react2.default.createElement(Tag, (0, _extends5.default)({
58094 dir: rtl ? 'rtl' : 'ltr',
58095 role: 'gridcell',
58096 className: classes
58097 }, others), children);
58098 };
58099
58100 return Col;
58101}(_react.Component), _class.isNextCol = true, _class.propTypes = {
58102 prefix: _propTypes2.default.string,
58103 pure: _propTypes2.default.bool,
58104 rtl: _propTypes2.default.bool,
58105 className: _propTypes2.default.string,
58106 /**
58107 * 列内容
58108 */
58109 children: _propTypes2.default.node,
58110 /**
58111 * 列宽度<br><br>**可选值**:<br>1, 2, 3, ..., 22, 23, 24
58112 */
58113 span: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
58114 /**
58115 * 固定列宽度,宽度值为20 * 栅格数<br><br>**可选值**:<br>1, 2, 3, ..., 28, 29, 30
58116 */
58117 fixedSpan: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
58118 /**
58119 * (不支持IE9浏览器)列偏移<br><br>**可选值**:<br>1, 2, 3, ..., 22, 23, 24
58120 */
58121 offset: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
58122 /**
58123 * (不支持IE9浏览器)固定列偏移,宽度值为20 * 栅格数<br><br>**可选值**:<br>1, 2, 3, ..., 28, 29, 30
58124 */
58125 fixedOffset: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
58126 /**
58127 * (不支持IE9浏览器)多列垂直方向对齐方式,可覆盖Row的align属性
58128 */
58129 align: _propTypes2.default.oneOf(['top', 'center', 'bottom', 'baseline', 'stretch']),
58130 /**
58131 * 列在不同断点下的显示与隐藏<br><br>**可选值**:<br>true(在所有断点下隐藏)<br>false(在所有断点下显示)<br>'xs'(在 xs 断点下隐藏)<br>['xxs', 'xs', 's', 'm', 'l', 'xl'](在 xxs, xs, s, m, l, xl 断点下隐藏)
58132 */
58133 hidden: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string, _propTypes2.default.array]),
58134 /**
58135 * >=320px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58136 */
58137 xxs: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58138 /**
58139 * >=480px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58140 */
58141 xs: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58142 /**
58143 * >=720px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58144 */
58145 s: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58146 /**
58147 * >=990px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58148 */
58149 m: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58150 /**
58151 * >=1200px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58152 */
58153 l: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58154 /**
58155 * >=1500px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58156 */
58157 xl: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58158 /**
58159 * 指定以何种元素渲染该节点,默认为 'div'
58160 */
58161 component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func])
58162}, _class.defaultProps = {
58163 prefix: 'next-',
58164 pure: false,
58165 component: 'div'
58166}, _temp);
58167Col.displayName = 'Col';
58168exports.default = Col;
58169module.exports = exports['default'];
58170
58171/***/ }),
58172/* 374 */
58173/***/ (function(module, exports, __webpack_require__) {
58174
58175"use strict";
58176
58177
58178exports.__esModule = true;
58179exports.getRules = getRules;
58180exports.getFieldInitCfg = getFieldInitCfg;
58181function getCfgFromProps(props, type) {
58182 if (type in props) {
58183 return props[type];
58184 }
58185
58186 return undefined;
58187}
58188
58189function getRule(ruleName, props) {
58190 var _ref;
58191
58192 return _ref = {}, _ref[ruleName] = props[ruleName], _ref.message = getCfgFromProps(props, ruleName + 'Message'), _ref.trigger = getCfgFromProps(props, ruleName + 'Trigger'), _ref;
58193}
58194
58195function getValueName(props, displayName) {
58196 if (props.valueName) {
58197 return props.valueName;
58198 }
58199
58200 if (typeof displayName === 'string') {
58201 // Next Components are all wrappered by configProvider
58202 var componentName = displayName.replace(/Config\(/g, '').replace(/\)/g, '');
58203 if (['Switch', 'Checkbox', 'Radio'].indexOf(componentName) !== -1) {
58204 return 'checked';
58205 }
58206 }
58207
58208 return 'value';
58209}
58210
58211function getRules(props, labelForErrorMessage) {
58212 var result = [];
58213
58214 // required
58215 if (props.required) {
58216 result.push(getRule('required', props));
58217 }
58218
58219 var maxLength = Number(props.maxLength);
58220 var minLength = Number(props.minLength);
58221 if (minLength || maxLength) {
58222 result.push({
58223 minLength: minLength,
58224 maxLength: maxLength,
58225 // minLengthMessage maxLengthMessage had been deprected, please use minmaxLength. TODO: removed in 2.0
58226 message: getCfgFromProps(props, 'minmaxLengthMessage') || getCfgFromProps(props, 'minLengthMessage') || getCfgFromProps(props, 'maxLengthMessage'),
58227 trigger: getCfgFromProps(props, 'minmaxLengthTrigger') || getCfgFromProps(props, 'minLengthTrigger') || getCfgFromProps(props, 'maxLengthTrigger')
58228 });
58229 }
58230
58231 // length
58232 if (props.length) {
58233 result.push(getRule('length', props));
58234 }
58235
58236 // pattern
58237 if (props.pattern) {
58238 result.push(getRule('pattern', props));
58239 }
58240
58241 // format
58242 if (['number', 'tel', 'url', 'email'].indexOf(props.format) > -1) {
58243 result.push(getRule('format', props));
58244 }
58245
58246 var max = Number(props.max);
58247 var min = Number(props.min);
58248 // max min
58249 if (max || min) {
58250 result.push({
58251 min: min,
58252 max: max,
58253 // minMessage maxMessage had been deprected, please use minmaxLength. TODO: removed in 2.0
58254 message: getCfgFromProps(props, 'minmaxMessage') || getCfgFromProps(props, 'minMessage') || getCfgFromProps(props, 'maxMessage'),
58255 trigger: getCfgFromProps(props, 'minmaxTrigger') || getCfgFromProps(props, 'minTrigger') || getCfgFromProps(props, 'maxTrigger')
58256 });
58257 }
58258
58259 if (props.validator && typeof props.validator === 'function') {
58260 result.push({
58261 validator: props.validator,
58262 trigger: getCfgFromProps(props, 'validatorTrigger')
58263 });
58264 }
58265
58266 if (labelForErrorMessage) {
58267 result.forEach(function (r) {
58268 r.aliasName = labelForErrorMessage;
58269 });
58270 }
58271
58272 return result;
58273}
58274
58275function getFieldInitCfg(props, displayName, labelForErrorMessage) {
58276 return {
58277 valueName: getValueName(props, displayName),
58278 trigger: props.trigger ? props.trigger : 'onChange',
58279 autoValidate: props.autoValidate,
58280 rules: getRules(props, labelForErrorMessage)
58281 };
58282}
58283
58284/***/ }),
58285/* 375 */
58286/***/ (function(module, exports, __webpack_require__) {
58287
58288"use strict";
58289
58290
58291exports.__esModule = true;
58292
58293var _extends2 = __webpack_require__(1);
58294
58295var _extends3 = _interopRequireDefault(_extends2);
58296
58297var _classCallCheck2 = __webpack_require__(2);
58298
58299var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
58300
58301var _possibleConstructorReturn2 = __webpack_require__(3);
58302
58303var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
58304
58305var _inherits2 = __webpack_require__(4);
58306
58307var _inherits3 = _interopRequireDefault(_inherits2);
58308
58309var _class, _temp2;
58310
58311var _react = __webpack_require__(0);
58312
58313var _react2 = _interopRequireDefault(_react);
58314
58315var _propTypes = __webpack_require__(5);
58316
58317var _propTypes2 = _interopRequireDefault(_propTypes);
58318
58319var _button = __webpack_require__(17);
58320
58321var _button2 = _interopRequireDefault(_button);
58322
58323var _util = __webpack_require__(6);
58324
58325function _interopRequireDefault(obj) {
58326 return obj && obj.__esModule ? obj : { default: obj };
58327}
58328
58329/**
58330 * Form.Submit
58331 * @description 继承 Button API
58332 * @order 2
58333 */
58334var Submit = (_temp2 = _class = function (_React$Component) {
58335 (0, _inherits3.default)(Submit, _React$Component);
58336
58337 function Submit() {
58338 var _temp, _this, _ret;
58339
58340 (0, _classCallCheck3.default)(this, Submit);
58341
58342 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
58343 args[_key] = arguments[_key];
58344 }
58345
58346 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function () {
58347 var _this$props = _this.props,
58348 onClick = _this$props.onClick,
58349 validate = _this$props.validate;
58350
58351 var field = _this.context._formField || _this.props.field;
58352
58353 if (!field) {
58354 onClick();
58355 return;
58356 }
58357
58358 if (validate === true) {
58359 field.validate(function (errors) {
58360 onClick(field.getValues(), errors, field);
58361 });
58362 } else if (Array.isArray(validate)) {
58363 field.validate(validate, function (errors) {
58364 onClick(field.getValues(), errors, field);
58365 });
58366 } else {
58367 onClick(field.getValues(), null, field);
58368 }
58369 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
58370 }
58371
58372 Submit.prototype.render = function render() {
58373 var children = this.props.children;
58374
58375 return _react2.default.createElement(_button2.default, (0, _extends3.default)({}, _util.obj.pickOthers(Submit.propTypes, this.props), {
58376 onClick: this.handleClick
58377 }), children);
58378 };
58379
58380 return Submit;
58381}(_react2.default.Component), _class.propTypes = {
58382 /**
58383 * 点击提交后触发
58384 * @param {Object} value 数据
58385 * @param {Object} errors 错误数据
58386 * @param {class} field 实例
58387 */
58388 onClick: _propTypes2.default.func,
58389 /**
58390 * 是否校验/需要校验的 name 数组
58391 */
58392 validate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.array]),
58393 /**
58394 * 自定义 field (在 Form 内不需要设置)
58395 */
58396 field: _propTypes2.default.object,
58397 children: _propTypes2.default.node
58398}, _class.defaultProps = {
58399 onClick: _util.func.noop
58400}, _class.contextTypes = {
58401 _formField: _propTypes2.default.object
58402}, _temp2);
58403Submit.displayName = 'Submit';
58404exports.default = Submit;
58405module.exports = exports['default'];
58406
58407/***/ }),
58408/* 376 */
58409/***/ (function(module, exports, __webpack_require__) {
58410
58411"use strict";
58412
58413
58414exports.__esModule = true;
58415
58416var _extends2 = __webpack_require__(1);
58417
58418var _extends3 = _interopRequireDefault(_extends2);
58419
58420var _classCallCheck2 = __webpack_require__(2);
58421
58422var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
58423
58424var _possibleConstructorReturn2 = __webpack_require__(3);
58425
58426var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
58427
58428var _inherits2 = __webpack_require__(4);
58429
58430var _inherits3 = _interopRequireDefault(_inherits2);
58431
58432var _class, _temp2;
58433
58434var _react = __webpack_require__(0);
58435
58436var _react2 = _interopRequireDefault(_react);
58437
58438var _propTypes = __webpack_require__(5);
58439
58440var _propTypes2 = _interopRequireDefault(_propTypes);
58441
58442var _button = __webpack_require__(17);
58443
58444var _button2 = _interopRequireDefault(_button);
58445
58446var _util = __webpack_require__(6);
58447
58448function _interopRequireDefault(obj) {
58449 return obj && obj.__esModule ? obj : { default: obj };
58450}
58451
58452/**
58453 * Form.Reset
58454 * @description 继承 Button API
58455 * @order 3
58456 */
58457var Reset = (_temp2 = _class = function (_React$Component) {
58458 (0, _inherits3.default)(Reset, _React$Component);
58459
58460 function Reset() {
58461 var _temp, _this, _ret;
58462
58463 (0, _classCallCheck3.default)(this, Reset);
58464
58465 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
58466 args[_key] = arguments[_key];
58467 }
58468
58469 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function () {
58470 var _this$props = _this.props,
58471 names = _this$props.names,
58472 toDefault = _this$props.toDefault,
58473 onClick = _this$props.onClick;
58474
58475 var field = _this.context._formField || _this.props.field;
58476
58477 if (!field) {
58478 onClick();
58479 return;
58480 }
58481
58482 if (toDefault) {
58483 field.resetToDefault(names);
58484 } else {
58485 field.reset(names);
58486 }
58487
58488 onClick();
58489 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
58490 }
58491
58492 Reset.prototype.render = function render() {
58493 var children = this.props.children;
58494
58495 return _react2.default.createElement(_button2.default, (0, _extends3.default)({}, _util.obj.pickOthers(Reset.propTypes, this.props), {
58496 onClick: this.handleClick
58497 }), children);
58498 };
58499
58500 return Reset;
58501}(_react2.default.Component), _class.propTypes = {
58502 /**
58503 * 自定义重置的字段
58504 */
58505 names: _propTypes2.default.array,
58506 /**
58507 * 点击提交后触发
58508 */
58509 onClick: _propTypes2.default.func,
58510 /**
58511 * 返回默认值
58512 */
58513 toDefault: _propTypes2.default.bool,
58514 /**
58515 * 自定义 field (在 Form 内不需要设置)
58516 */
58517 field: _propTypes2.default.object,
58518 children: _propTypes2.default.node
58519}, _class.defaultProps = {
58520 onClick: _util.func.noop
58521}, _class.contextTypes = {
58522 _formField: _propTypes2.default.object
58523}, _temp2);
58524Reset.displayName = 'Reset';
58525exports.default = Reset;
58526module.exports = exports['default'];
58527
58528/***/ }),
58529/* 377 */
58530/***/ (function(module, exports, __webpack_require__) {
58531
58532"use strict";
58533
58534
58535exports.__esModule = true;
58536
58537var _extends2 = __webpack_require__(1);
58538
58539var _extends3 = _interopRequireDefault(_extends2);
58540
58541var _objectWithoutProperties2 = __webpack_require__(8);
58542
58543var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
58544
58545var _classCallCheck2 = __webpack_require__(2);
58546
58547var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
58548
58549var _possibleConstructorReturn2 = __webpack_require__(3);
58550
58551var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
58552
58553var _inherits2 = __webpack_require__(4);
58554
58555var _inherits3 = _interopRequireDefault(_inherits2);
58556
58557var _class, _temp;
58558
58559var _react = __webpack_require__(0);
58560
58561var _react2 = _interopRequireDefault(_react);
58562
58563var _reactDom = __webpack_require__(12);
58564
58565var _propTypes = __webpack_require__(5);
58566
58567var _propTypes2 = _interopRequireDefault(_propTypes);
58568
58569var _reactLifecyclesCompat = __webpack_require__(10);
58570
58571var _classnames3 = __webpack_require__(7);
58572
58573var _classnames4 = _interopRequireDefault(_classnames3);
58574
58575var _button = __webpack_require__(17);
58576
58577var _button2 = _interopRequireDefault(_button);
58578
58579var _icon = __webpack_require__(11);
58580
58581var _icon2 = _interopRequireDefault(_icon);
58582
58583var _menu = __webpack_require__(16);
58584
58585var _menu2 = _interopRequireDefault(_menu);
58586
58587var _overlay = __webpack_require__(15);
58588
58589var _overlay2 = _interopRequireDefault(_overlay);
58590
58591var _configProvider = __webpack_require__(9);
58592
58593var _configProvider2 = _interopRequireDefault(_configProvider);
58594
58595var _util = __webpack_require__(6);
58596
58597function _interopRequireDefault(obj) {
58598 return obj && obj.__esModule ? obj : { default: obj };
58599}
58600
58601var Popup = _overlay2.default.Popup;
58602
58603/**
58604 * MenuButton
58605 */
58606
58607var MenuButton = (_temp = _class = function (_React$Component) {
58608 (0, _inherits3.default)(MenuButton, _React$Component);
58609
58610 function MenuButton(props, context) {
58611 (0, _classCallCheck3.default)(this, MenuButton);
58612
58613 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
58614
58615 _this.clickMenuItem = function (key) {
58616 var _this$props;
58617
58618 for (var _len = arguments.length, others = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
58619 others[_key - 1] = arguments[_key];
58620 }
58621
58622 var selectMode = _this.props.selectMode;
58623
58624 (_this$props = _this.props).onItemClick.apply(_this$props, [key].concat(others));
58625
58626 if (selectMode === 'multiple') {
58627 return;
58628 }
58629
58630 _this.onPopupVisibleChange(false, 'menuSelect');
58631 };
58632
58633 _this.selectMenu = function (keys) {
58634 var _this$props2;
58635
58636 for (var _len2 = arguments.length, others = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
58637 others[_key2 - 1] = arguments[_key2];
58638 }
58639
58640 if (!('selectedKeys' in _this.props)) {
58641 _this.setState({
58642 selectedKeys: keys
58643 });
58644 }
58645 (_this$props2 = _this.props).onSelect.apply(_this$props2, [keys].concat(others));
58646 };
58647
58648 _this.onPopupOpen = function () {
58649 var button = (0, _reactDom.findDOMNode)(_this);
58650 if (_this.props.autoWidth && button && _this.menu) {
58651 _this.menu.style.width = button.offsetWidth + 'px';
58652 }
58653 };
58654
58655 _this.onPopupVisibleChange = function (visible, type) {
58656 if (!('visible' in _this.props)) {
58657 _this.setState({
58658 visible: visible
58659 });
58660 }
58661 _this.props.onVisibleChange(visible, type);
58662 };
58663
58664 _this._menuRefHandler = function (ref) {
58665 _this.menu = (0, _reactDom.findDOMNode)(ref);
58666
58667 var refFn = _this.props.menuProps.ref;
58668 if (typeof refFn === 'function') {
58669 refFn(ref);
58670 }
58671 };
58672
58673 _this.state = {
58674 selectedKeys: props.defaultSelectedKeys,
58675 visible: props.defaultVisible
58676 };
58677 return _this;
58678 }
58679
58680 MenuButton.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
58681 var st = {};
58682
58683 if ('visible' in props) {
58684 st.visible = props.visible;
58685 }
58686
58687 if ('selectedKeys' in props) {
58688 st.selectedKeys = props.selectedKeys;
58689 }
58690
58691 return st;
58692 };
58693
58694 MenuButton.prototype.render = function render() {
58695 var _classnames, _classnames2;
58696
58697 var _props = this.props,
58698 prefix = _props.prefix,
58699 style = _props.style,
58700 className = _props.className,
58701 label = _props.label,
58702 popupTriggerType = _props.popupTriggerType,
58703 popupContainer = _props.popupContainer,
58704 popupStyle = _props.popupStyle,
58705 popupClassName = _props.popupClassName,
58706 popupProps = _props.popupProps,
58707 followTrigger = _props.followTrigger,
58708 selectMode = _props.selectMode,
58709 menuProps = _props.menuProps,
58710 children = _props.children,
58711 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'style', 'className', 'label', 'popupTriggerType', 'popupContainer', 'popupStyle', 'popupClassName', 'popupProps', 'followTrigger', 'selectMode', 'menuProps', 'children']);
58712
58713 var state = this.state;
58714
58715 var classNames = (0, _classnames4.default)((_classnames = {}, _classnames[prefix + 'menu-btn'] = true, _classnames[prefix + 'expand'] = state.visible, _classnames.opened = state.visible, _classnames), className);
58716
58717 var popupClassNames = (0, _classnames4.default)((_classnames2 = {}, _classnames2[prefix + 'menu-btn-popup'] = true, _classnames2), popupClassName);
58718
58719 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' }));
58720
58721 return _react2.default.createElement(Popup, (0, _extends3.default)({}, popupProps, {
58722 followTrigger: followTrigger,
58723 visible: state.visible,
58724 onVisibleChange: this.onPopupVisibleChange,
58725 trigger: trigger,
58726 triggerType: popupTriggerType,
58727 container: popupContainer,
58728 onOpen: this.onPopupOpen,
58729 style: popupStyle,
58730 className: popupClassNames
58731 }), _react2.default.createElement('div', { className: prefix + 'menu-btn-spacing-tb' }, _react2.default.createElement(_menu2.default, (0, _extends3.default)({}, menuProps, {
58732 ref: this._menuRefHandler,
58733 selectedKeys: state.selectedKeys,
58734 selectMode: selectMode,
58735 onSelect: this.selectMenu,
58736 onItemClick: this.clickMenuItem
58737 }), children)));
58738 };
58739
58740 return MenuButton;
58741}(_react2.default.Component), _class.propTypes = {
58742 prefix: _propTypes2.default.string,
58743 /**
58744 * 按钮上的文本内容
58745 */
58746 label: _propTypes2.default.node,
58747 /**
58748 * 弹层是否与按钮宽度相同
58749 */
58750 autoWidth: _propTypes2.default.bool,
58751 /**
58752 * 弹层触发方式
58753 */
58754 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
58755 /**
58756 * 弹层容器
58757 */
58758 popupContainer: _propTypes2.default.any,
58759 /**
58760 * 弹层展开状态
58761 */
58762 visible: _propTypes2.default.bool,
58763 /**
58764 * 弹层默认是否展开
58765 */
58766 defaultVisible: _propTypes2.default.bool,
58767 /**
58768 * 弹层在显示和隐藏触发的事件
58769 */
58770 onVisibleChange: _propTypes2.default.func,
58771 /**
58772 * 弹层自定义样式
58773 */
58774 popupStyle: _propTypes2.default.object,
58775 /**
58776 * 弹层自定义样式类
58777 */
58778 popupClassName: _propTypes2.default.string,
58779 /**
58780 * 弹层属性透传
58781 */
58782 popupProps: _propTypes2.default.object,
58783 /**
58784 * 是否跟随滚动
58785 */
58786 followTrigger: _propTypes2.default.bool,
58787 /**
58788 * 默认激活的菜单项(用法同 Menu 非受控)
58789 */
58790 defaultSelectedKeys: _propTypes2.default.array,
58791 /**
58792 * 激活的菜单项(用法同 Menu 受控)
58793 */
58794 selectedKeys: _propTypes2.default.array,
58795 /**
58796 * 菜单的选择模式,同 Menu
58797 */
58798 selectMode: _propTypes2.default.oneOf(['single', 'multiple']),
58799 /**
58800 * 点击菜单项后的回调,同 Menu
58801 */
58802 onItemClick: _propTypes2.default.func,
58803 /**
58804 * 选择菜单后的回调,同 Menu
58805 */
58806 onSelect: _propTypes2.default.func,
58807 /**
58808 * 菜单属性透传
58809 */
58810 menuProps: _propTypes2.default.object,
58811 style: _propTypes2.default.object,
58812 className: _propTypes2.default.string,
58813 children: _propTypes2.default.any
58814}, _class.defaultProps = {
58815 prefix: 'next-',
58816 autoWidth: true,
58817 popupTriggerType: 'click',
58818 onVisibleChange: _util.func.noop,
58819 onItemClick: _util.func.noop,
58820 onSelect: _util.func.noop,
58821 defaultSelectedKeys: [],
58822 menuProps: {}
58823}, _temp);
58824MenuButton.displayName = 'MenuButton';
58825
58826MenuButton.Item = _menu2.default.Item;
58827MenuButton.Group = _menu2.default.Group;
58828MenuButton.Divider = _menu2.default.Divider;
58829
58830exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(MenuButton), {
58831 componentName: 'MenuButton'
58832});
58833module.exports = exports['default'];
58834
58835/***/ }),
58836/* 378 */
58837/***/ (function(module, exports, __webpack_require__) {
58838
58839"use strict";
58840
58841
58842exports.__esModule = true;
58843
58844var _menu = __webpack_require__(16);
58845
58846var _menu2 = _interopRequireDefault(_menu);
58847
58848var _nav = __webpack_require__(379);
58849
58850var _nav2 = _interopRequireDefault(_nav);
58851
58852var _item = __webpack_require__(380);
58853
58854var _item2 = _interopRequireDefault(_item);
58855
58856var _group = __webpack_require__(381);
58857
58858var _group2 = _interopRequireDefault(_group);
58859
58860var _subNav = __webpack_require__(382);
58861
58862var _subNav2 = _interopRequireDefault(_subNav);
58863
58864var _popupItem = __webpack_require__(383);
58865
58866var _popupItem2 = _interopRequireDefault(_popupItem);
58867
58868function _interopRequireDefault(obj) {
58869 return obj && obj.__esModule ? obj : { default: obj };
58870}
58871
58872_nav2.default.Item = _item2.default;
58873_nav2.default.Group = _group2.default;
58874_nav2.default.SubNav = _subNav2.default;
58875_nav2.default.PopupItem = _popupItem2.default;
58876_nav2.default.Divider = _menu2.default.Divider;
58877
58878exports.default = _nav2.default;
58879module.exports = exports['default'];
58880
58881/***/ }),
58882/* 379 */
58883/***/ (function(module, exports, __webpack_require__) {
58884
58885"use strict";
58886
58887
58888exports.__esModule = true;
58889
58890var _extends2 = __webpack_require__(1);
58891
58892var _extends3 = _interopRequireDefault(_extends2);
58893
58894var _objectWithoutProperties2 = __webpack_require__(8);
58895
58896var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
58897
58898var _classCallCheck2 = __webpack_require__(2);
58899
58900var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
58901
58902var _possibleConstructorReturn2 = __webpack_require__(3);
58903
58904var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
58905
58906var _inherits2 = __webpack_require__(4);
58907
58908var _inherits3 = _interopRequireDefault(_inherits2);
58909
58910var _class, _temp;
58911
58912var _react = __webpack_require__(0);
58913
58914var _react2 = _interopRequireDefault(_react);
58915
58916var _propTypes = __webpack_require__(5);
58917
58918var _propTypes2 = _interopRequireDefault(_propTypes);
58919
58920var _classnames = __webpack_require__(7);
58921
58922var _classnames2 = _interopRequireDefault(_classnames);
58923
58924var _configProvider = __webpack_require__(9);
58925
58926var _configProvider2 = _interopRequireDefault(_configProvider);
58927
58928var _menu = __webpack_require__(16);
58929
58930var _menu2 = _interopRequireDefault(_menu);
58931
58932function _interopRequireDefault(obj) {
58933 return obj && obj.__esModule ? obj : { default: obj };
58934}
58935
58936/**
58937 * Nav
58938 * @description 继承自 `Menu` 的能力请查看 `Menu` 文档
58939 */
58940var Nav = (_temp = _class = function (_Component) {
58941 (0, _inherits3.default)(Nav, _Component);
58942
58943 function Nav(props) {
58944 (0, _classCallCheck3.default)(this, Nav);
58945
58946 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
58947
58948 _this.getMenuRef = _this.getMenuRef.bind(_this);
58949 return _this;
58950 }
58951
58952 Nav.prototype.getChildContext = function getChildContext() {
58953 var _props = this.props,
58954 prefix = _props.prefix,
58955 direction = _props.direction,
58956 mode = _props.mode,
58957 iconOnly = _props.iconOnly,
58958 iconOnlyWidth = _props.iconOnlyWidth,
58959 iconTextOnly = _props.iconTextOnly,
58960 hasTooltip = _props.hasTooltip,
58961 hasArrow = _props.hasArrow;
58962 var isCollapse = this.context.isCollapse;
58963
58964 return {
58965 prefix: prefix,
58966 mode: direction === 'hoz' ? 'popup' : mode,
58967 iconOnly: 'iconOnly' in this.props ? iconOnly : isCollapse,
58968 iconOnlyWidth: 'iconOnlyWidth' in this.props ? iconOnlyWidth : undefined,
58969 iconTextOnly: iconTextOnly,
58970 hasTooltip: hasTooltip,
58971 hasArrow: hasArrow
58972 };
58973 };
58974
58975 Nav.prototype.getMenuRef = function getMenuRef(ref) {
58976 this.menu = ref;
58977 };
58978
58979 Nav.prototype.render = function render() {
58980 var _classNames, _classNames2;
58981
58982 // eslint-disable-next-line
58983 var _props2 = this.props,
58984 prefix = _props2.prefix,
58985 className = _props2.className,
58986 style = _props2.style,
58987 children = _props2.children,
58988 type = _props2.type,
58989 direction = _props2.direction,
58990 activeDirection = _props2.activeDirection,
58991 mode = _props2.mode,
58992 triggerType = _props2.triggerType,
58993 inlineIndent = _props2.inlineIndent,
58994 openMode = _props2.openMode,
58995 popupAlign = _props2.popupAlign,
58996 popupClassName = _props2.popupClassName,
58997 iconOnly = _props2.iconOnly,
58998 iconOnlyWidth = _props2.iconOnlyWidth,
58999 iconTextOnly = _props2.iconTextOnly,
59000 hasArrow = _props2.hasArrow,
59001 hasTooltip = _props2.hasTooltip,
59002 embeddable = _props2.embeddable,
59003 _popupProps = _props2.popupProps,
59004 rtl = _props2.rtl,
59005 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']);
59006 var isCollapse = this.context.isCollapse;
59007
59008 var newIconOnly = 'iconOnly' in this.props ? iconOnly : isCollapse;
59009
59010 var realActiveDirection = activeDirection;
59011 if (realActiveDirection && (direction === 'hoz' && (realActiveDirection === 'left' || realActiveDirection === 'right') || direction === 'ver' && (realActiveDirection === 'top' || realActiveDirection === 'bottom'))) {
59012 realActiveDirection = null;
59013 }
59014
59015 if (!newIconOnly && realActiveDirection === undefined) {
59016 realActiveDirection = direction === 'hoz' ? 'bottom' : type === 'line' ? 'right' : 'left';
59017 }
59018
59019 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));
59020 var newStyle = newIconOnly ? (0, _extends3.default)({}, style, { width: iconOnlyWidth || 58 }) : style;
59021
59022 var props = {
59023 prefix: prefix,
59024 direction: direction,
59025 openMode: openMode,
59026 triggerType: triggerType,
59027 mode: direction === 'hoz' ? 'popup' : mode,
59028 popupAlign: direction === 'hoz' ? 'follow' : popupAlign,
59029 inlineIndent: newIconOnly ? 0 : inlineIndent,
59030 hasSelectedIcon: false,
59031 popupAutoWidth: true,
59032 selectMode: 'single',
59033 itemClassName: prefix + 'nav-item',
59034 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)),
59035 popupProps: function popupProps() {
59036 return (0, _extends3.default)({}, _popupProps);
59037 }
59038 };
59039
59040 return _react2.default.createElement(_menu2.default, (0, _extends3.default)({ className: cls, style: newStyle }, props, others, { ref: this.getMenuRef }), children);
59041 };
59042
59043 return Nav;
59044}(_react.Component), _class.propTypes = {
59045 prefix: _propTypes2.default.string,
59046 pure: _propTypes2.default.bool,
59047 rtl: _propTypes2.default.bool,
59048 className: _propTypes2.default.string,
59049 style: _propTypes2.default.object,
59050 /**
59051 * 导航项和子导航
59052 */
59053 children: _propTypes2.default.node,
59054 /**
59055 * 导航类型
59056 * @enumdesc 普通, 主要, 次要, 线形
59057 */
59058 type: _propTypes2.default.oneOf(['normal', 'primary', 'secondary', 'line']),
59059 /**
59060 * 导航布局
59061 * @enumdesc 水平, 垂直
59062 */
59063 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
59064 /**
59065 * 横向导航条 items 和 footer 的对齐方向,在 direction 设置为 'hoz' 并且 header 存在时生效
59066 */
59067 hozAlign: _propTypes2.default.oneOf(['left', 'right']),
59068 /**
59069 * 设置组件选中状态的 active 边方向
59070 * @enumdesc 无, 上, 下, 左, 右
59071 * @default 当 direction 为 'hoz' 时,默认值为 'bottom',当 direction 为 'ver' 时,默认值为 'left'
59072 */
59073 activeDirection: _propTypes2.default.oneOf([null, 'top', 'bottom', 'left', 'right']),
59074 /**
59075 * 子导航打开的模式(水平导航只支持弹出)
59076 * @eumdesc 行内, 弹出
59077 */
59078 mode: _propTypes2.default.oneOf(['inline', 'popup']),
59079 /**
59080 * 子导航打开的触发方式
59081 */
59082 triggerType: _propTypes2.default.oneOf(['click', 'hover']),
59083 /**
59084 * 内联子导航缩进距离
59085 */
59086 inlineIndent: _propTypes2.default.number,
59087 /**
59088 * 首次渲染展开所有的子导航,只在 mode 设置为 'inline' 以及 openMode 设置为 'multiple' 下生效
59089 */
59090 defaultOpenAll: _propTypes2.default.bool,
59091 /**
59092 * 内联子导航的展开模式,同时可以展开一个同级子导航还是多个同级子导航,该属性仅在 mode 为 inline 时生效
59093 * @eumdesc 一个, 多个
59094 */
59095 openMode: _propTypes2.default.oneOf(['single', 'multiple']),
59096 /**
59097 * 当前选中导航项的 key 值
59098 */
59099 selectedKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
59100 /**
59101 * 初始选中导航项的 key 值
59102 */
59103 defaultSelectedKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
59104 /**
59105 * 选中或取消选中导航项触发的回调函数
59106 * @param {Array} selectedKeys 选中的所有导航项的 key
59107 * @param {Object} item 选中或取消选中的导航项
59108 * @param {Object} extra 额外参数
59109 * @param {Boolean} extra.select 是否是选中
59110 * @param {Array} extra.key 导航项的 key
59111 * @param {Object} extra.label 导航项的文本
59112 * @param {Array} extra.keyPath 导航项 key 的路径
59113 */
59114 onSelect: _propTypes2.default.func,
59115 /**
59116 * 弹出子导航的对齐方式(水平导航只支持 follow )
59117 * @eumdesc Item 顶端对齐, Nav 顶端对齐
59118 */
59119 popupAlign: _propTypes2.default.oneOf(['follow', 'outside']),
59120 /**
59121 * 弹出子导航的自定义类名
59122 */
59123 popupClassName: _propTypes2.default.string,
59124 /**
59125 * 是否只显示图标
59126 */
59127 iconOnly: _propTypes2.default.bool,
59128 /**
59129 * iconOnly 模式下的宽度(仅在 iconOnly=true 时生效) 如果传入了iconOnlyWidth,那么会隐藏文本,例如 Nav.Item 的 label
59130 */
59131 iconOnlyWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
59132 /**
59133 * iconOnly模式下是否展示文字(仅在 iconOnly=true 时生效)
59134 */
59135 iconTextOnly: _propTypes2.default.bool,
59136 /**
59137 * 是否显示右侧的箭头(仅在 iconOnly=true 时生效)
59138 */
59139 hasArrow: _propTypes2.default.bool,
59140 /**
59141 * 是否有 ToolTips (仅在 iconOnly=true 时生效)
59142 */
59143 hasTooltip: _propTypes2.default.bool,
59144 /**
59145 * 自定义导航头部
59146 */
59147 header: _propTypes2.default.node,
59148 /**
59149 * 自定义导航尾部
59150 */
59151 footer: _propTypes2.default.node,
59152 /**
59153 * 是否开启嵌入式模式,一般用于Layout的布局中,开启后没有默认背景、外层border、box-shadow,可以配合`<Nav style={{lineHeight: '100px'}}>` 自定义高度
59154 * @version 1.18
59155 */
59156 embeddable: _propTypes2.default.bool,
59157 popupProps: _propTypes2.default.object
59158}, _class.defaultProps = {
59159 prefix: 'next-',
59160 pure: false,
59161 type: 'normal',
59162 direction: 'ver',
59163 hozAlign: 'left',
59164 mode: 'inline',
59165 triggerType: 'click',
59166 inlineIndent: 20,
59167 defaultOpenAll: false,
59168 openMode: 'multiple',
59169 defaultSelectedKeys: [],
59170 popupAlign: 'follow',
59171 hasTooltip: false,
59172 embeddable: false,
59173 hasArrow: true,
59174 popupProps: {}
59175}, _class.childContextTypes = {
59176 prefix: _propTypes2.default.string,
59177 mode: _propTypes2.default.string,
59178 iconOnly: _propTypes2.default.bool,
59179 iconOnlyWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
59180 iconTextOnly: _propTypes2.default.bool,
59181 hasTooltip: _propTypes2.default.bool,
59182 hasArrow: _propTypes2.default.bool
59183}, _class.contextTypes = {
59184 isCollapse: _propTypes2.default.bool
59185}, _temp);
59186Nav.displayName = 'Nav';
59187exports.default = _configProvider2.default.config(Nav);
59188module.exports = exports['default'];
59189
59190/***/ }),
59191/* 380 */
59192/***/ (function(module, exports, __webpack_require__) {
59193
59194"use strict";
59195
59196
59197exports.__esModule = true;
59198
59199var _extends2 = __webpack_require__(1);
59200
59201var _extends3 = _interopRequireDefault(_extends2);
59202
59203var _objectWithoutProperties2 = __webpack_require__(8);
59204
59205var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
59206
59207var _classCallCheck2 = __webpack_require__(2);
59208
59209var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
59210
59211var _possibleConstructorReturn2 = __webpack_require__(3);
59212
59213var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
59214
59215var _inherits2 = __webpack_require__(4);
59216
59217var _inherits3 = _interopRequireDefault(_inherits2);
59218
59219var _class, _temp;
59220
59221var _react = __webpack_require__(0);
59222
59223var _react2 = _interopRequireDefault(_react);
59224
59225var _propTypes = __webpack_require__(5);
59226
59227var _propTypes2 = _interopRequireDefault(_propTypes);
59228
59229var _classnames = __webpack_require__(7);
59230
59231var _classnames2 = _interopRequireDefault(_classnames);
59232
59233var _menu = __webpack_require__(16);
59234
59235var _menu2 = _interopRequireDefault(_menu);
59236
59237var _icon = __webpack_require__(11);
59238
59239var _icon2 = _interopRequireDefault(_icon);
59240
59241var _balloon = __webpack_require__(59);
59242
59243var _balloon2 = _interopRequireDefault(_balloon);
59244
59245function _interopRequireDefault(obj) {
59246 return obj && obj.__esModule ? obj : { default: obj };
59247}
59248
59249var Tooltip = _balloon2.default.Tooltip;
59250
59251/**
59252 * Nav.Item
59253 * @description 继承自 `Menu.Item` 的能力请查看 `Menu.Item` 文档
59254 */
59255
59256var Item = (_temp = _class = function (_Component) {
59257 (0, _inherits3.default)(Item, _Component);
59258
59259 function Item() {
59260 (0, _classCallCheck3.default)(this, Item);
59261 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
59262 }
59263
59264 Item.prototype.render = function render() {
59265 var _classNames;
59266
59267 var _context = this.context,
59268 prefix = _context.prefix,
59269 iconOnly = _context.iconOnly,
59270 iconOnlyWidth = _context.iconOnlyWidth,
59271 hasTooltip = _context.hasTooltip,
59272 iconTextOnly = _context.iconTextOnly;
59273 var _props = this.props,
59274 icon = _props.icon,
59275 children = _props.children,
59276 className = _props.className,
59277 others = (0, _objectWithoutProperties3.default)(_props, ['icon', 'children', 'className']);
59278
59279 var iconEl = typeof icon === 'string' ? _react2.default.createElement(_icon2.default, { className: prefix + 'nav-icon', type: icon }) : icon;
59280
59281 var title = void 0;
59282
59283 if (typeof children === 'string') {
59284 title = children;
59285 }
59286
59287 var showChildren = !iconOnly || iconOnly && !iconOnlyWidth || iconTextOnly;
59288 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'nav-with-title'] = iconOnly && iconTextOnly, _classNames[className] = !!className, _classNames));
59289
59290 var newChildren = showChildren ? iconTextOnly ? _react2.default.createElement('span', { className: prefix + 'nav-text' }, children) : children : null;
59291
59292 var item = _react2.default.createElement(_menu2.default.Item, (0, _extends3.default)({ title: title, className: cls }, others), iconEl, newChildren);
59293
59294 if (iconOnly && hasTooltip && others.parentMode !== 'popup') {
59295 return _react2.default.createElement(Tooltip, { align: 'r', trigger: item }, children);
59296 }
59297
59298 return item;
59299 };
59300
59301 return Item;
59302}(_react.Component), _class.menuChildType = 'item', _class.propTypes = {
59303 /**
59304 * 自定义图标,可以使用 Icon 的 type,也可以使用组件 `<Icon type="icon type" />`
59305 */
59306 icon: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
59307 /**
59308 * 导航内容
59309 */
59310 children: _propTypes2.default.node,
59311 parentMode: _propTypes2.default.oneOf(['inline', 'popup'])
59312}, _class.contextTypes = {
59313 prefix: _propTypes2.default.string,
59314 iconOnly: _propTypes2.default.bool,
59315 iconOnlyWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
59316 iconTextOnly: _propTypes2.default.bool,
59317 hasTooltip: _propTypes2.default.bool
59318}, _temp);
59319Item.displayName = 'Item';
59320exports.default = Item;
59321module.exports = exports['default'];
59322
59323/***/ }),
59324/* 381 */
59325/***/ (function(module, exports, __webpack_require__) {
59326
59327"use strict";
59328
59329
59330exports.__esModule = true;
59331
59332var _extends2 = __webpack_require__(1);
59333
59334var _extends3 = _interopRequireDefault(_extends2);
59335
59336var _objectWithoutProperties2 = __webpack_require__(8);
59337
59338var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
59339
59340var _classCallCheck2 = __webpack_require__(2);
59341
59342var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
59343
59344var _possibleConstructorReturn2 = __webpack_require__(3);
59345
59346var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
59347
59348var _inherits2 = __webpack_require__(4);
59349
59350var _inherits3 = _interopRequireDefault(_inherits2);
59351
59352var _class, _temp;
59353
59354var _react = __webpack_require__(0);
59355
59356var _react2 = _interopRequireDefault(_react);
59357
59358var _propTypes = __webpack_require__(5);
59359
59360var _propTypes2 = _interopRequireDefault(_propTypes);
59361
59362var _classnames = __webpack_require__(7);
59363
59364var _classnames2 = _interopRequireDefault(_classnames);
59365
59366var _menu = __webpack_require__(16);
59367
59368var _menu2 = _interopRequireDefault(_menu);
59369
59370function _interopRequireDefault(obj) {
59371 return obj && obj.__esModule ? obj : { default: obj };
59372}
59373
59374/**
59375 * Nav.Group
59376 * @description 继承自 `Menu.Group` 的能力请查看 `Menu.Group` 文档
59377 */
59378var Group = (_temp = _class = function (_Component) {
59379 (0, _inherits3.default)(Group, _Component);
59380
59381 function Group() {
59382 (0, _classCallCheck3.default)(this, Group);
59383 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
59384 }
59385
59386 Group.prototype.render = function render() {
59387 var _classNames;
59388
59389 var _context = this.context,
59390 prefix = _context.prefix,
59391 iconOnly = _context.iconOnly;
59392 var _props = this.props,
59393 className = _props.className,
59394 children = _props.children,
59395 label = _props.label,
59396 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'children', 'label']);
59397
59398 var newLabel = label;
59399 if (iconOnly) {
59400 // TODO: add a group icon ?
59401 newLabel = [_react2.default.createElement('span', { key: 'label' }, label)];
59402 }
59403
59404 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'nav-group-label'] = true, _classNames[className] = !!className, _classNames));
59405
59406 return _react2.default.createElement(_menu2.default.Group, (0, _extends3.default)({ className: cls, label: newLabel }, others), children);
59407 };
59408
59409 return Group;
59410}(_react.Component), _class.menuChildType = 'group', _class.propTypes = {
59411 /**
59412 * 自定义类名
59413 */
59414 className: _propTypes2.default.string,
59415 /**
59416 * 标签内容
59417 */
59418 label: _propTypes2.default.node,
59419 /**
59420 * 导航项和子导航
59421 */
59422 children: _propTypes2.default.node
59423}, _class.contextTypes = {
59424 prefix: _propTypes2.default.string,
59425 iconOnly: _propTypes2.default.bool
59426}, _temp);
59427Group.displayName = 'Group';
59428exports.default = Group;
59429module.exports = exports['default'];
59430
59431/***/ }),
59432/* 382 */
59433/***/ (function(module, exports, __webpack_require__) {
59434
59435"use strict";
59436
59437
59438exports.__esModule = true;
59439
59440var _extends2 = __webpack_require__(1);
59441
59442var _extends3 = _interopRequireDefault(_extends2);
59443
59444var _objectWithoutProperties2 = __webpack_require__(8);
59445
59446var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
59447
59448var _classCallCheck2 = __webpack_require__(2);
59449
59450var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
59451
59452var _possibleConstructorReturn2 = __webpack_require__(3);
59453
59454var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
59455
59456var _inherits2 = __webpack_require__(4);
59457
59458var _inherits3 = _interopRequireDefault(_inherits2);
59459
59460var _class, _temp;
59461
59462var _react = __webpack_require__(0);
59463
59464var _react2 = _interopRequireDefault(_react);
59465
59466var _propTypes = __webpack_require__(5);
59467
59468var _propTypes2 = _interopRequireDefault(_propTypes);
59469
59470var _classnames = __webpack_require__(7);
59471
59472var _classnames2 = _interopRequireDefault(_classnames);
59473
59474var _menu = __webpack_require__(16);
59475
59476var _menu2 = _interopRequireDefault(_menu);
59477
59478var _icon = __webpack_require__(11);
59479
59480var _icon2 = _interopRequireDefault(_icon);
59481
59482function _interopRequireDefault(obj) {
59483 return obj && obj.__esModule ? obj : { default: obj };
59484}
59485
59486/**
59487 * Nav.SubNav
59488 * @description 继承自 `Menu.SubMenu` 的能力请查看 `Menu.SubMenu` 文档
59489 */
59490var SubNav = (_temp = _class = function (_Component) {
59491 (0, _inherits3.default)(SubNav, _Component);
59492
59493 function SubNav() {
59494 (0, _classCallCheck3.default)(this, SubNav);
59495 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
59496 }
59497
59498 SubNav.prototype.render = function render() {
59499 var _classNames;
59500
59501 var _context = this.context,
59502 prefix = _context.prefix,
59503 iconOnly = _context.iconOnly,
59504 iconOnlyWidth = _context.iconOnlyWidth,
59505 hasArrow = _context.hasArrow,
59506 noIcon = _context.noIcon,
59507 mode = _context.mode;
59508 var _props = this.props,
59509 className = _props.className,
59510 icon = _props.icon,
59511 label = _props.label,
59512 children = _props.children,
59513 level = _props.level,
59514 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'icon', 'label', 'children', 'level']);
59515
59516 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'nav-sub-nav-item'] = true, _classNames[prefix + 'nav-popup'] = mode === 'popup', _classNames[className] = !!className, _classNames));
59517 var iconEl = typeof icon === 'string' ? _react2.default.createElement(_icon2.default, { className: prefix + 'nav-icon', type: icon }) : icon;
59518 // 这里是为 iconOnly 模式下,添加默认的展开按钮
59519 // 只有在 inline 模式下 或 popup模式的第一层级,才需要添加默认的按钮
59520 if (iconOnly && hasArrow && (mode === 'inline' || level === 1 && mode === 'popup')) {
59521 iconEl = _react2.default.createElement(_icon2.default, {
59522 className: prefix + 'nav-icon-only-arrow',
59523 type: mode === 'popup' ? 'arrow-right' : 'arrow-down'
59524 });
59525 }
59526
59527 var newLabel = [iconEl ? (0, _react.cloneElement)(iconEl, { key: 'icon' }) : null];
59528
59529 var showLabel = !iconOnly || iconOnly && !iconOnlyWidth;
59530
59531 if (showLabel) {
59532 newLabel.push(_react2.default.createElement('span', { key: 'label' }, label));
59533 }
59534
59535 var title = void 0;
59536
59537 if (typeof label === 'string') {
59538 title = label;
59539 }
59540
59541 return _react2.default.createElement(_menu2.default.SubMenu, (0, _extends3.default)({ className: cls, label: newLabel, level: level, title: title, noIcon: noIcon }, others), children);
59542 };
59543
59544 return SubNav;
59545}(_react.Component), _class.menuChildType = 'submenu', _class.propTypes = {
59546 /**
59547 * 自定义类名
59548 */
59549 className: _propTypes2.default.string,
59550 /**
59551 * 自定义图标,可以使用 Icon 的 type,也可以使用组件 `<Icon type="your type" />`
59552 */
59553 icon: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
59554 /**
59555 * 标签内容
59556 */
59557 label: _propTypes2.default.node,
59558 /**
59559 * 是否可选
59560 */
59561 selectable: _propTypes2.default.bool,
59562 /**
59563 * 导航项和子导航
59564 */
59565 children: _propTypes2.default.node,
59566 /**
59567 * 是否需要提示当前项可展开的 icon,默认是有的
59568 */
59569 noIcon: _propTypes2.default.bool
59570}, _class.defaultProps = {
59571 selectable: false
59572}, _class.contextTypes = {
59573 prefix: _propTypes2.default.string,
59574 mode: _propTypes2.default.string,
59575 iconOnly: _propTypes2.default.bool,
59576 iconOnlyWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
59577 hasArrow: _propTypes2.default.bool
59578}, _temp);
59579SubNav.displayName = 'SubNav';
59580exports.default = SubNav;
59581module.exports = exports['default'];
59582
59583/***/ }),
59584/* 383 */
59585/***/ (function(module, exports, __webpack_require__) {
59586
59587"use strict";
59588
59589
59590exports.__esModule = true;
59591
59592var _extends2 = __webpack_require__(1);
59593
59594var _extends3 = _interopRequireDefault(_extends2);
59595
59596var _objectWithoutProperties2 = __webpack_require__(8);
59597
59598var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
59599
59600var _classCallCheck2 = __webpack_require__(2);
59601
59602var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
59603
59604var _possibleConstructorReturn2 = __webpack_require__(3);
59605
59606var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
59607
59608var _inherits2 = __webpack_require__(4);
59609
59610var _inherits3 = _interopRequireDefault(_inherits2);
59611
59612var _class, _temp;
59613
59614var _react = __webpack_require__(0);
59615
59616var _react2 = _interopRequireDefault(_react);
59617
59618var _propTypes = __webpack_require__(5);
59619
59620var _propTypes2 = _interopRequireDefault(_propTypes);
59621
59622var _classnames = __webpack_require__(7);
59623
59624var _classnames2 = _interopRequireDefault(_classnames);
59625
59626var _menu = __webpack_require__(16);
59627
59628var _menu2 = _interopRequireDefault(_menu);
59629
59630var _icon = __webpack_require__(11);
59631
59632var _icon2 = _interopRequireDefault(_icon);
59633
59634function _interopRequireDefault(obj) {
59635 return obj && obj.__esModule ? obj : { default: obj };
59636}
59637
59638/**
59639 * Nav.PopupItem
59640 * @description 继承自 `Menu.PopupItem` 的能力请查看 `Menu.PopupItem` 文档
59641 */
59642var PopupItem = (_temp = _class = function (_Component) {
59643 (0, _inherits3.default)(PopupItem, _Component);
59644
59645 function PopupItem() {
59646 (0, _classCallCheck3.default)(this, PopupItem);
59647 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
59648 }
59649
59650 PopupItem.prototype.render = function render() {
59651 var _classNames;
59652
59653 var _context = this.context,
59654 prefix = _context.prefix,
59655 iconOnly = _context.iconOnly,
59656 iconOnlyWidth = _context.iconOnlyWidth,
59657 hasArrow = _context.hasArrow;
59658 var _props = this.props,
59659 className = _props.className,
59660 icon = _props.icon,
59661 label = _props.label,
59662 children = _props.children,
59663 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'icon', 'label', 'children']);
59664
59665 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'nav-popup-item'] = true, _classNames[className] = !!className, _classNames));
59666
59667 var iconEl = typeof icon === 'string' ? _react2.default.createElement(_icon2.default, { className: prefix + 'nav-icon', type: icon }) : icon;
59668 if (iconOnly) {
59669 if (hasArrow) {
59670 iconEl = _react2.default.createElement(_icon2.default, { className: prefix + 'nav-icon-only-arrow', type: 'arrow-right' });
59671 }
59672 }
59673 var newLabel = [iconEl ? (0, _react.cloneElement)(iconEl, { key: 'icon' }) : null];
59674
59675 var showLabel = !iconOnly || iconOnly && !iconOnlyWidth;
59676
59677 if (showLabel) {
59678 newLabel.push(_react2.default.createElement('span', { key: 'label' }, label));
59679 }
59680
59681 return _react2.default.createElement(_menu2.default.PopupItem, (0, _extends3.default)({ className: cls, label: newLabel }, others), children);
59682 };
59683
59684 return PopupItem;
59685}(_react.Component), _class.menuChildType = 'submenu', _class.propTypes = {
59686 /**
59687 * 自定义类名
59688 */
59689 className: _propTypes2.default.string,
59690 /**
59691 * 自定义图标,可以使用 Icon 的 type, 也可以使用组件 `<Icon type="icon type" />`
59692 */
59693 icon: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
59694 /**
59695 * 标签内容
59696 */
59697 label: _propTypes2.default.node,
59698 /**
59699 * 弹出内容
59700 */
59701 children: _propTypes2.default.node
59702}, _class.contextTypes = {
59703 prefix: _propTypes2.default.string,
59704 iconOnly: _propTypes2.default.bool,
59705 iconOnlyWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
59706 hasArrow: _propTypes2.default.bool
59707}, _temp);
59708PopupItem.displayName = 'PopupItem';
59709exports.default = PopupItem;
59710module.exports = exports['default'];
59711
59712/***/ }),
59713/* 384 */
59714/***/ (function(module, exports, __webpack_require__) {
59715
59716"use strict";
59717
59718
59719exports.__esModule = true;
59720
59721var _configProvider = __webpack_require__(9);
59722
59723var _configProvider2 = _interopRequireDefault(_configProvider);
59724
59725var _numberPicker = __webpack_require__(385);
59726
59727var _numberPicker2 = _interopRequireDefault(_numberPicker);
59728
59729var _util = __webpack_require__(6);
59730
59731function _interopRequireDefault(obj) {
59732 return obj && obj.__esModule ? obj : { default: obj };
59733}
59734
59735exports.default = _configProvider2.default.config(_numberPicker2.default, {
59736 transform: /* istanbul ignore next */function transform(props) {
59737 if ('onDisabled' in props && typeof props.onDisabled === 'function') {
59738 _util.log.warning('[NumberPicker]: onDisabled is deleted!');
59739 }
59740
59741 if ('state' in props && props.state === 'success') {
59742 delete props.state;
59743 }
59744
59745 return props;
59746 },
59747 exportNames: ['getInputNode']
59748});
59749module.exports = exports['default'];
59750
59751/***/ }),
59752/* 385 */
59753/***/ (function(module, exports, __webpack_require__) {
59754
59755"use strict";
59756
59757
59758exports.__esModule = true;
59759
59760var _extends2 = __webpack_require__(1);
59761
59762var _extends3 = _interopRequireDefault(_extends2);
59763
59764var _classCallCheck2 = __webpack_require__(2);
59765
59766var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
59767
59768var _possibleConstructorReturn2 = __webpack_require__(3);
59769
59770var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
59771
59772var _inherits2 = __webpack_require__(4);
59773
59774var _inherits3 = _interopRequireDefault(_inherits2);
59775
59776var _class, _temp;
59777
59778var _react = __webpack_require__(0);
59779
59780var _react2 = _interopRequireDefault(_react);
59781
59782var _propTypes = __webpack_require__(5);
59783
59784var _propTypes2 = _interopRequireDefault(_propTypes);
59785
59786var _classnames = __webpack_require__(7);
59787
59788var _classnames2 = _interopRequireDefault(_classnames);
59789
59790var _bignumber = __webpack_require__(386);
59791
59792var _bignumber2 = _interopRequireDefault(_bignumber);
59793
59794var _reactLifecyclesCompat = __webpack_require__(10);
59795
59796var _icon = __webpack_require__(11);
59797
59798var _icon2 = _interopRequireDefault(_icon);
59799
59800var _button = __webpack_require__(17);
59801
59802var _button2 = _interopRequireDefault(_button);
59803
59804var _input = __webpack_require__(18);
59805
59806var _input2 = _interopRequireDefault(_input);
59807
59808var _util = __webpack_require__(6);
59809
59810function _interopRequireDefault(obj) {
59811 return obj && obj.__esModule ? obj : { default: obj };
59812}
59813
59814var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;
59815var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -Math.pow(2, 53) + 1;
59816
59817var isNil = _util.obj.isNil;
59818/** NumberPicker */
59819
59820var NumberPicker = (_temp = _class = function (_React$Component) {
59821 (0, _inherits3.default)(NumberPicker, _React$Component);
59822
59823 function NumberPicker(props) {
59824 (0, _classCallCheck3.default)(this, NumberPicker);
59825
59826 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
59827
59828 var defaultValue = props.defaultValue,
59829 stringMode = props.stringMode;
59830
59831 var value = void 0;
59832 if ('value' in props) {
59833 value = props.value;
59834 } else {
59835 value = defaultValue;
59836 }
59837 value = value === undefined || value === null ? '' : stringMode ? '' + value : value;
59838 _this.state = {
59839 value: value,
59840 hasFocused: false,
59841 onlyDisplay: false,
59842 displayValue: value,
59843 max: stringMode ? Infinity : MAX_SAFE_INTEGER,
59844 min: stringMode ? -Infinity : MIN_SAFE_INTEGER
59845 };
59846 return _this;
59847 }
59848
59849 NumberPicker.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
59850 // 用户键入非法值后render逻辑,未触发onChange,业务组件无感知,不强制受控value
59851 if (prevState.onlyDisplay) {
59852 return {
59853 value: prevState.value,
59854 displayValue: prevState.displayValue,
59855 onlyDisplay: false
59856 };
59857 }
59858
59859 var state = {};
59860 var value = nextProps.value,
59861 stringMode = nextProps.stringMode;
59862 // 一般受控render逻辑
59863
59864 if ('value' in nextProps && '' + nextProps.value !== '' + prevState.value) {
59865 var newValue = value === undefined || value === null ? '' : stringMode ? '' + value : value;
59866 state.value = newValue;
59867 // 因为 Number('') === 0,所以会导致value=0赋值不生效
59868 if (prevState.displayValue === '' || Number(prevState.displayValue) !== nextProps.value) {
59869 state.displayValue = newValue;
59870 }
59871 }
59872
59873 // 如果是undefined或null,应该不限制最大最小值
59874 var min = nextProps.min,
59875 max = nextProps.max;
59876
59877 if ('min' in nextProps && min !== prevState.min) {
59878 state.min = !isNil(min) ? min : stringMode ? Infinity : MIN_SAFE_INTEGER;
59879 }
59880
59881 if ('max' in nextProps && max !== prevState.max) {
59882 state.max = !isNil(max) ? max : stringMode ? Infinity : MAX_SAFE_INTEGER;
59883 }
59884
59885 if (Object.keys(state).length) {
59886 return state;
59887 }
59888
59889 return null;
59890 };
59891
59892 NumberPicker.prototype.isGreaterThan = function isGreaterThan(v1, v2) {
59893 var stringMode = this.props.stringMode;
59894
59895 if (stringMode) return (0, _bignumber2.default)(v1).isGreaterThan((0, _bignumber2.default)(v2));
59896 return Number(v1) > Number(v2);
59897 };
59898
59899 NumberPicker.prototype.correctBoundary = function correctBoundary(value) {
59900 var _state = this.state,
59901 max = _state.max,
59902 min = _state.min;
59903
59904 return this.isGreaterThan(min, value) ? min : this.isGreaterThan(value, max) ? max : value;
59905 };
59906
59907 NumberPicker.prototype.setFocus = function setFocus(status) {
59908 var format = this.props.format;
59909 // Only trigger `setState` if `format` is settled to avoid unnecessary rendering
59910
59911 if (typeof format === 'function') {
59912 this.setState({
59913 hasFocused: status
59914 });
59915 }
59916 };
59917
59918 NumberPicker.prototype.onFocus = function onFocus(e) {
59919 var onFocus = this.props.onFocus;
59920
59921 this.setFocus(true);
59922
59923 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
59924 args[_key - 1] = arguments[_key];
59925 }
59926
59927 onFocus && onFocus.apply(undefined, [e].concat(args));
59928 };
59929
59930 NumberPicker.prototype.onBlur = function onBlur(e) {
59931 var _props = this.props,
59932 editable = _props.editable,
59933 stringMode = _props.stringMode;
59934
59935 var displayValue = '' + this.state.displayValue;
59936 // 展示值合法但超出边界时,额外在Blur时触发onChange
59937 // 展示值非法时,回退前一个有效值
59938 if (editable === true && !isNaN(displayValue) && !this.shouldFireOnChange(displayValue) && !this.withinMinMax(displayValue)) {
59939 var valueCorrected = this.correctValue(displayValue);
59940 valueCorrected = stringMode ? (0, _bignumber2.default)(valueCorrected).toFixed(this.getPrecision()) : valueCorrected;
59941 if (this.state.value !== valueCorrected) {
59942 this.setValue({ value: valueCorrected, e: e });
59943 }
59944 this.setDisplayValue({ displayValue: valueCorrected });
59945 } else {
59946 this.setDisplayValue({ displayValue: this.state.value });
59947 }
59948
59949 this.setFocus(false);
59950 var onBlur = this.props.onBlur;
59951
59952 for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
59953 args[_key2 - 1] = arguments[_key2];
59954 }
59955
59956 onBlur && onBlur.apply(undefined, [e].concat(args));
59957 };
59958
59959 NumberPicker.prototype.withinMinMax = function withinMinMax(value) {
59960 var _state2 = this.state,
59961 max = _state2.max,
59962 min = _state2.min;
59963
59964 if (isNaN(value) || this.isGreaterThan(value, max) || this.isGreaterThan(min, value)) return false;
59965 return true;
59966 };
59967
59968 NumberPicker.prototype.setDisplayValue = function setDisplayValue(_ref) {
59969 var displayValue = _ref.displayValue,
59970 _ref$onlyDisplay = _ref.onlyDisplay,
59971 onlyDisplay = _ref$onlyDisplay === undefined ? false : _ref$onlyDisplay;
59972
59973 this.setState({ displayValue: displayValue, onlyDisplay: onlyDisplay });
59974 };
59975
59976 NumberPicker.prototype.getDisplayValue = function getDisplayValue() {
59977 var _state3 = this.state,
59978 displayValue = _state3.displayValue,
59979 hasFocused = _state3.hasFocused;
59980 var format = this.props.format;
59981
59982 return typeof format === 'function' && !hasFocused ? format(displayValue) : // 避免原生input将number类型的-0,渲染为0
59983 typeof displayValue === 'number' && 1 / displayValue === -Infinity ? '-0' : displayValue;
59984 };
59985
59986 NumberPicker.prototype.shouldFireOnChange = function shouldFireOnChange(value) {
59987 // 不触发onChange:a.非数字 b.超出边界的数字输入
59988 if (isNaN(value) || !this.withinMinMax(value)) {
59989 return false;
59990 }
59991 return true;
59992 };
59993
59994 NumberPicker.prototype.onChange = function onChange(value, e) {
59995 // ignore space & Compatible Chinese Input Method
59996 value = value.replace('。', '.').trim();
59997 var onlyDisplay = false;
59998 if (this.props.editable === true && this.shouldFireOnChange(value)) {
59999 var valueCorrected = this.correctValue(value);
60000 if (this.state.value !== valueCorrected) {
60001 this.setValue({ value: valueCorrected, e: e });
60002 }
60003 } else {
60004 onlyDisplay = true;
60005 }
60006
60007 // 【不应支持】如果输入为满足精度要求的纯数字,底层input.value设置为数字类型而非string
60008 // if (`${valueCorrected}` === value) value = valueCorrected;
60009
60010 this.setDisplayValue({ displayValue: value, onlyDisplay: onlyDisplay });
60011 };
60012
60013 NumberPicker.prototype.correctValue = function correctValue(value) {
60014 var val = value;
60015
60016 // take care of isNaN('')=false
60017 if (val !== '') {
60018 // 精度订正:直接cut,不四舍五入
60019 var precisionSet = this.getPrecision();
60020 var precisionCurrent = value.length - value.indexOf('.') - 1;
60021 var dotIndex = value.indexOf('.');
60022 // precision === 0 should cut '.' for stringMode
60023 var cutPosition = precisionSet !== 0 ? dotIndex + 1 + precisionSet : dotIndex + precisionSet;
60024 if (dotIndex > -1 && precisionCurrent > precisionSet) val = val.substr(0, cutPosition);
60025
60026 // 边界订正:
60027 val = this.correctBoundary(val);
60028 val = this.props.stringMode ? (0, _bignumber2.default)(val).toFixed() : Number(val);
60029 }
60030
60031 if (isNaN(val)) val = this.state.value;
60032
60033 if ('' + val !== '' + value) {
60034 // .0* 到 .x0* 不该触发onCorrect
60035 if (!/\.[0-9]*0+$/g.test(value)) {
60036 this.props.onCorrect({
60037 currentValue: val,
60038 oldValue: value
60039 });
60040 }
60041 }
60042
60043 return val;
60044 };
60045
60046 NumberPicker.prototype.setValue = function setValue(_ref2) {
60047 var value = _ref2.value,
60048 e = _ref2.e,
60049 triggerType = _ref2.triggerType;
60050
60051 if (!('value' in this.props) || value === this.props.value) {
60052 this.setState({
60053 value: value
60054 });
60055 }
60056
60057 this.props.onChange(isNaN(value) || value === '' ? undefined : value, (0, _extends3.default)({}, e, {
60058 triggerType: triggerType
60059 }));
60060 };
60061
60062 NumberPicker.prototype.getPrecision = function getPrecision() {
60063 var stepString = this.props.step.toString();
60064 if (stepString.indexOf('e-') >= 0) {
60065 return parseInt(stepString.slice(stepString.indexOf('e-')), 10);
60066 }
60067 var precision = 0;
60068 if (stepString.indexOf('.') >= 0) {
60069 precision = stepString.length - stepString.indexOf('.') - 1;
60070 }
60071
60072 return Math.max(precision, this.props.precision);
60073 };
60074
60075 NumberPicker.prototype.getPrecisionFactor = function getPrecisionFactor() {
60076 var precision = this.getPrecision();
60077 return Math.pow(10, precision);
60078 };
60079
60080 NumberPicker.prototype.onKeyDown = function onKeyDown(e) {
60081 var _props2;
60082
60083 if (e.keyCode === 38) {
60084 this.up(false, e);
60085 } else if (e.keyCode === 40) {
60086 this.down(false, e);
60087 }
60088
60089 for (var _len3 = arguments.length, args = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
60090 args[_key3 - 1] = arguments[_key3];
60091 }
60092
60093 (_props2 = this.props).onKeyDown.apply(_props2, [e].concat(args));
60094 };
60095
60096 NumberPicker.prototype.up = function up(disabled, e) {
60097 this.step('up', disabled, e);
60098 };
60099
60100 NumberPicker.prototype.down = function down(disabled, e) {
60101 this.step('down', disabled, e);
60102 };
60103
60104 NumberPicker.prototype.step = function step(type, disabled, e) {
60105 if (e) {
60106 e.preventDefault();
60107 }
60108
60109 var onDisabled = this.props.onDisabled;
60110
60111 if (disabled) {
60112 return onDisabled(e);
60113 }
60114
60115 var value = this.state.value;
60116 // 受控下,可能强制回填非法值
60117 if (isNaN(value)) {
60118 return;
60119 }
60120
60121 if (value === '' && !this.props.stringMode) {
60122 value = 0;
60123 }
60124
60125 var val = this[type + 'Step'](value);
60126 val = this.correctBoundary(val);
60127 // 受控下,显示的值应为受控value
60128 if (!('value' in this.props)) {
60129 this.setDisplayValue({ displayValue: val });
60130 }
60131
60132 this.setValue({ value: val, e: e, triggerType: type });
60133 };
60134
60135 NumberPicker.prototype.upStep = function upStep(val) {
60136 var _props3 = this.props,
60137 step = _props3.step,
60138 stringMode = _props3.stringMode;
60139
60140 var precisionFactor = this.getPrecisionFactor();
60141 if (typeof val === 'number' && !stringMode) {
60142 var result = (precisionFactor * val + precisionFactor * step) / precisionFactor;
60143 return this.hackChrome(result);
60144 }
60145 return (0, _bignumber2.default)(val || '0').plus(step).toFixed(this.getPrecision());
60146 };
60147
60148 NumberPicker.prototype.downStep = function downStep(val) {
60149 var _props4 = this.props,
60150 step = _props4.step,
60151 stringMode = _props4.stringMode;
60152
60153 var precisionFactor = this.getPrecisionFactor();
60154 if (typeof val === 'number' && !stringMode) {
60155 var result = (precisionFactor * val - precisionFactor * step) / precisionFactor;
60156 return this.hackChrome(result);
60157 }
60158 return (0, _bignumber2.default)(val || '0').minus(step).toFixed(this.getPrecision());
60159 };
60160
60161 /**
60162 * fix bug in chrome browser
60163 * 0.28 + 0.01 = 0.29000000000000004
60164 * 0.29 - 0.01 = 0.27999999999999997
60165 * @param {Number} value value
60166 */
60167
60168 NumberPicker.prototype.hackChrome = function hackChrome(value) {
60169 var precision = this.getPrecision();
60170 if (precision > 0) {
60171 return Number(Number(value).toFixed(precision));
60172 }
60173 return value;
60174 };
60175
60176 NumberPicker.prototype.focus = function focus() {
60177 this.inputRef.getInstance().focus();
60178 };
60179
60180 NumberPicker.prototype.saveInputRef = function saveInputRef(ref) {
60181 this.inputRef = ref;
60182 };
60183
60184 NumberPicker.prototype.getInputNode = function getInputNode() {
60185 return this.inputRef;
60186 };
60187
60188 NumberPicker.prototype.handleMouseDown = function handleMouseDown(e) {
60189 e.preventDefault();
60190 };
60191
60192 NumberPicker.prototype.render = function render() {
60193 var _classNames, _classNames2;
60194
60195 var _props5 = this.props,
60196 device = _props5.device,
60197 prefix = _props5.prefix,
60198 rtl = _props5.rtl,
60199 disabled = _props5.disabled,
60200 style = _props5.style,
60201 className = _props5.className,
60202 size = _props5.size,
60203 autoFocus = _props5.autoFocus,
60204 editable = _props5.editable,
60205 state = _props5.state,
60206 label = _props5.label,
60207 _props5$upBtnProps = _props5.upBtnProps,
60208 upBtnProps = _props5$upBtnProps === undefined ? {} : _props5$upBtnProps,
60209 _props5$downBtnProps = _props5.downBtnProps,
60210 downBtnProps = _props5$downBtnProps === undefined ? {} : _props5$downBtnProps,
60211 innerAfter = _props5.innerAfter,
60212 isPreview = _props5.isPreview,
60213 renderPreview = _props5.renderPreview,
60214 hasTrigger = _props5.hasTrigger,
60215 alwaysShowTrigger = _props5.alwaysShowTrigger;
60216 var _state4 = this.state,
60217 max = _state4.max,
60218 min = _state4.min;
60219
60220 var type = device === 'phone' || this.props.type === 'inline' ? 'inline' : 'normal';
60221
60222 var prefixCls = prefix + 'number-picker';
60223
60224 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));
60225
60226 var upDisabled = false;
60227 var downDisabled = false;
60228 var value = this.state.value;
60229 if (!isNaN(value)) {
60230 if (!this.isGreaterThan(max, value)) {
60231 upDisabled = true;
60232 }
60233 if (this.isGreaterThan(min, value) || min === value) {
60234 downDisabled = true;
60235 }
60236 }
60237
60238 var extra = null,
60239 innerAfterClassName = null,
60240 addonBefore = null,
60241 addonAfter = null;
60242 if (type === 'normal') {
60243 extra = _react2.default.createElement('span', { className: prefixCls + '-handler' }, _react2.default.createElement(_button2.default, (0, _extends3.default)({}, upBtnProps, {
60244 onMouseDown: this.handleMouseDown,
60245 disabled: disabled,
60246 className: (upBtnProps.className || '') + ' ' + (upDisabled ? 'disabled' : ''),
60247 onClick: this.up.bind(this, upDisabled),
60248 tabIndex: -1
60249 }), _react2.default.createElement(_icon2.default, { type: 'arrow-up', className: prefixCls + '-up-icon' })), _react2.default.createElement(_button2.default, (0, _extends3.default)({}, downBtnProps, {
60250 onMouseDown: this.handleMouseDown,
60251 disabled: disabled,
60252 className: (downBtnProps.className || '') + ' ' + (downDisabled ? 'disabled' : ''),
60253 onClick: this.down.bind(this, downDisabled),
60254 tabIndex: -1
60255 }), _react2.default.createElement(_icon2.default, { type: 'arrow-down', className: prefixCls + '-down-icon' })));
60256 } else {
60257 addonBefore = _react2.default.createElement(_button2.default, (0, _extends3.default)({}, downBtnProps, {
60258 size: size,
60259 disabled: disabled,
60260 className: (downBtnProps.className || '') + ' ' + (downDisabled ? 'disabled' : ''),
60261 onClick: this.down.bind(this, downDisabled),
60262 tabIndex: -1
60263 }), _react2.default.createElement(_icon2.default, { type: 'minus', className: prefixCls + '-minus-icon' }));
60264 addonAfter = _react2.default.createElement(_button2.default, (0, _extends3.default)({}, upBtnProps, {
60265 size: size,
60266 disabled: disabled,
60267 className: (upBtnProps.className || '') + ' ' + (upDisabled ? 'disabled' : ''),
60268 onClick: this.up.bind(this, upDisabled),
60269 tabIndex: -1
60270 }), _react2.default.createElement(_icon2.default, { type: 'add', className: prefixCls + '-add-icon' }));
60271 }
60272
60273 var others = _util.obj.pickOthers(NumberPicker.propTypes, this.props);
60274 var dataAttrs = _util.obj.pickAttrsWith(this.props, 'data-');
60275
60276 var previewCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'form-preview'] = true, _classNames2[className] = !!className, _classNames2));
60277
60278 if (isPreview) {
60279 if (typeof renderPreview === 'function') {
60280 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { style: style, className: previewCls }), renderPreview(this.getDisplayValue(), this.props));
60281 }
60282 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { style: { style: style }, className: previewCls }), this.getDisplayValue(), '\xA0', innerAfter);
60283 }
60284
60285 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, {
60286 hasClear: false,
60287 'aria-valuemax': max,
60288 'aria-valuemin': min,
60289 state: state === 'error' ? 'error' : null,
60290 onBlur: this.onBlur.bind(this),
60291 onFocus: this.onFocus.bind(this),
60292 onKeyDown: this.onKeyDown.bind(this),
60293 autoFocus: autoFocus,
60294 readOnly: !editable,
60295 value: this.getDisplayValue(),
60296 disabled: disabled,
60297 size: size,
60298 onChange: this.onChange.bind(this),
60299 ref: this.saveInputRef.bind(this),
60300 label: label,
60301 innerAfter: innerAfter,
60302 extra: hasTrigger ? extra : null,
60303 addonBefore: addonBefore,
60304 addonAfter: addonAfter,
60305 composition: true
60306 })));
60307 };
60308
60309 return NumberPicker;
60310}(_react2.default.Component), _class.propTypes = {
60311 /**
60312 * 样式前缀
60313 */
60314 prefix: _propTypes2.default.string,
60315 /**
60316 * 设置类型(当 device 为 phone 时,NumberPicker 的类型强制为 normal,不可通过 type 修改)
60317 * @enumdesc 普通, 内联
60318 */
60319 type: _propTypes2.default.oneOf(['normal', 'inline']),
60320 /**
60321 * 大小
60322 */
60323 size: _propTypes2.default.oneOf(['large', 'medium', 'small']),
60324 /**
60325 * 当前值
60326 */
60327 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
60328 /**
60329 * 默认值
60330 */
60331 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
60332 /**
60333 * 是否禁用
60334 */
60335 disabled: _propTypes2.default.bool,
60336 /**
60337 * 步长
60338 */
60339 step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
60340 /**
60341 * 保留小数点后位数
60342 */
60343 precision: _propTypes2.default.number,
60344 /**
60345 * 用户是否可以输入
60346 */
60347 editable: _propTypes2.default.bool,
60348 /**
60349 * 自动焦点
60350 */
60351 autoFocus: _propTypes2.default.bool,
60352 /**
60353 * 数值被改变的事件
60354 * @param {Number|String} value 数据
60355 * @param {Event} e DOM事件对象
60356 */
60357 onChange: _propTypes2.default.func,
60358 /**
60359 * 键盘按下
60360 * @param {Event} e DOM事件对象
60361 */
60362 onKeyDown: _propTypes2.default.func,
60363 /**
60364 * 焦点获得
60365 * @param {Event} e DOM事件对象
60366 */
60367 onFocus: _propTypes2.default.func,
60368 /**
60369 * 焦点失去
60370 * @param {Event} e DOM事件对象
60371 */
60372 onBlur: _propTypes2.default.func,
60373 /**
60374 * 数值订正后的回调
60375 * @param {Object} obj {currentValue,oldValue:String}
60376 */
60377 onCorrect: _propTypes2.default.func,
60378 onDisabled: _propTypes2.default.func, // 兼容0.x onDisabled
60379 /**
60380 * 最大值
60381 */
60382 max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
60383 /**
60384 * 最小值
60385 */
60386 min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
60387 /**
60388 * 自定义class
60389 */
60390 className: _propTypes2.default.string,
60391 /**
60392 * 自定义内联样式
60393 */
60394 style: _propTypes2.default.object,
60395 state: _propTypes2.default.oneOf(['error']),
60396 /**
60397 * 格式化当前值
60398 * @param {Number} value
60399 * @return {String|Number}
60400 */
60401 format: _propTypes2.default.func,
60402 /**
60403 * 增加按钮的props
60404 */
60405 upBtnProps: _propTypes2.default.object,
60406 /**
60407 * 减少按钮的props
60408 */
60409 downBtnProps: _propTypes2.default.object,
60410 /**
60411 * 内联 左侧label
60412 */
60413 label: _propTypes2.default.node,
60414 /**
60415 * 内联 右侧附加内容
60416 */
60417 innerAfter: _propTypes2.default.node,
60418 rtl: _propTypes2.default.bool,
60419 /**
60420 * 是否为预览态
60421 */
60422 isPreview: _propTypes2.default.bool,
60423 /**
60424 * 预览态模式下渲染的内容
60425 * @param {Number|String} value 当前值
60426 * @param {Object} props 传入的组件参数
60427 * @returns {reactNode} Element 渲染内容
60428 */
60429 renderPreview: _propTypes2.default.func,
60430 /**
60431 * 预设屏幕宽度
60432 */
60433 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
60434 /**
60435 * 是否展示点击按钮
60436 */
60437 hasTrigger: _propTypes2.default.bool,
60438 /**
60439 * 是否一直显示点击按钮(无须hover)
60440 */
60441 alwaysShowTrigger: _propTypes2.default.bool,
60442 /**
60443 * 开启大数支持,输入输出均为string类型
60444 * @version 1.24
60445 */
60446 stringMode: _propTypes2.default.bool
60447}, _class.defaultProps = {
60448 prefix: 'next-',
60449 // max: MAX_SAFE_INTEGER,
60450 // min: MIN_SAFE_INTEGER,
60451 type: 'normal',
60452 size: 'medium',
60453 step: 1,
60454 style: {},
60455 precision: 0,
60456 editable: true,
60457 onChange: _util.func.noop,
60458 onKeyDown: _util.func.noop,
60459 onBlur: _util.func.noop,
60460 onCorrect: _util.func.noop,
60461 onDisabled: _util.func.noop,
60462 hasTrigger: true,
60463 alwaysShowTrigger: false,
60464 stringMode: false
60465}, _temp);
60466NumberPicker.displayName = 'NumberPicker';
60467exports.default = (0, _reactLifecyclesCompat.polyfill)(NumberPicker);
60468module.exports = exports['default'];
60469
60470/***/ }),
60471/* 386 */
60472/***/ (function(module, exports, __webpack_require__) {
60473
60474var __WEBPACK_AMD_DEFINE_RESULT__;;(function (globalObject) {
60475 'use strict';
60476
60477/*
60478 * bignumber.js v9.0.2
60479 * A JavaScript library for arbitrary-precision arithmetic.
60480 * https://github.com/MikeMcl/bignumber.js
60481 * Copyright (c) 2021 Michael Mclaughlin <M8ch88l@gmail.com>
60482 * MIT Licensed.
60483 *
60484 * BigNumber.prototype methods | BigNumber methods
60485 * |
60486 * absoluteValue abs | clone
60487 * comparedTo | config set
60488 * decimalPlaces dp | DECIMAL_PLACES
60489 * dividedBy div | ROUNDING_MODE
60490 * dividedToIntegerBy idiv | EXPONENTIAL_AT
60491 * exponentiatedBy pow | RANGE
60492 * integerValue | CRYPTO
60493 * isEqualTo eq | MODULO_MODE
60494 * isFinite | POW_PRECISION
60495 * isGreaterThan gt | FORMAT
60496 * isGreaterThanOrEqualTo gte | ALPHABET
60497 * isInteger | isBigNumber
60498 * isLessThan lt | maximum max
60499 * isLessThanOrEqualTo lte | minimum min
60500 * isNaN | random
60501 * isNegative | sum
60502 * isPositive |
60503 * isZero |
60504 * minus |
60505 * modulo mod |
60506 * multipliedBy times |
60507 * negated |
60508 * plus |
60509 * precision sd |
60510 * shiftedBy |
60511 * squareRoot sqrt |
60512 * toExponential |
60513 * toFixed |
60514 * toFormat |
60515 * toFraction |
60516 * toJSON |
60517 * toNumber |
60518 * toPrecision |
60519 * toString |
60520 * valueOf |
60521 *
60522 */
60523
60524
60525 var BigNumber,
60526 isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,
60527 mathceil = Math.ceil,
60528 mathfloor = Math.floor,
60529
60530 bignumberError = '[BigNumber Error] ',
60531 tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',
60532
60533 BASE = 1e14,
60534 LOG_BASE = 14,
60535 MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1
60536 // MAX_INT32 = 0x7fffffff, // 2^31 - 1
60537 POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],
60538 SQRT_BASE = 1e7,
60539
60540 // EDITABLE
60541 // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and
60542 // the arguments to toExponential, toFixed, toFormat, and toPrecision.
60543 MAX = 1E9; // 0 to MAX_INT32
60544
60545
60546 /*
60547 * Create and return a BigNumber constructor.
60548 */
60549 function clone(configObject) {
60550 var div, convertBase, parseNumeric,
60551 P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },
60552 ONE = new BigNumber(1),
60553
60554
60555 //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------
60556
60557
60558 // The default values below must be integers within the inclusive ranges stated.
60559 // The values can also be changed at run-time using BigNumber.set.
60560
60561 // The maximum number of decimal places for operations involving division.
60562 DECIMAL_PLACES = 20, // 0 to MAX
60563
60564 // The rounding mode used when rounding to the above decimal places, and when using
60565 // toExponential, toFixed, toFormat and toPrecision, and round (default value).
60566 // UP 0 Away from zero.
60567 // DOWN 1 Towards zero.
60568 // CEIL 2 Towards +Infinity.
60569 // FLOOR 3 Towards -Infinity.
60570 // HALF_UP 4 Towards nearest neighbour. If equidistant, up.
60571 // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.
60572 // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.
60573 // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.
60574 // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.
60575 ROUNDING_MODE = 4, // 0 to 8
60576
60577 // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]
60578
60579 // The exponent value at and beneath which toString returns exponential notation.
60580 // Number type: -7
60581 TO_EXP_NEG = -7, // 0 to -MAX
60582
60583 // The exponent value at and above which toString returns exponential notation.
60584 // Number type: 21
60585 TO_EXP_POS = 21, // 0 to MAX
60586
60587 // RANGE : [MIN_EXP, MAX_EXP]
60588
60589 // The minimum exponent value, beneath which underflow to zero occurs.
60590 // Number type: -324 (5e-324)
60591 MIN_EXP = -1e7, // -1 to -MAX
60592
60593 // The maximum exponent value, above which overflow to Infinity occurs.
60594 // Number type: 308 (1.7976931348623157e+308)
60595 // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.
60596 MAX_EXP = 1e7, // 1 to MAX
60597
60598 // Whether to use cryptographically-secure random number generation, if available.
60599 CRYPTO = false, // true or false
60600
60601 // The modulo mode used when calculating the modulus: a mod n.
60602 // The quotient (q = a / n) is calculated according to the corresponding rounding mode.
60603 // The remainder (r) is calculated as: r = a - n * q.
60604 //
60605 // UP 0 The remainder is positive if the dividend is negative, else is negative.
60606 // DOWN 1 The remainder has the same sign as the dividend.
60607 // This modulo mode is commonly known as 'truncated division' and is
60608 // equivalent to (a % n) in JavaScript.
60609 // FLOOR 3 The remainder has the same sign as the divisor (Python %).
60610 // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.
60611 // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).
60612 // The remainder is always positive.
60613 //
60614 // The truncated division, floored division, Euclidian division and IEEE 754 remainder
60615 // modes are commonly used for the modulus operation.
60616 // Although the other rounding modes can also be used, they may not give useful results.
60617 MODULO_MODE = 1, // 0 to 9
60618
60619 // The maximum number of significant digits of the result of the exponentiatedBy operation.
60620 // If POW_PRECISION is 0, there will be unlimited significant digits.
60621 POW_PRECISION = 0, // 0 to MAX
60622
60623 // The format specification used by the BigNumber.prototype.toFormat method.
60624 FORMAT = {
60625 prefix: '',
60626 groupSize: 3,
60627 secondaryGroupSize: 0,
60628 groupSeparator: ',',
60629 decimalSeparator: '.',
60630 fractionGroupSize: 0,
60631 fractionGroupSeparator: '\xA0', // non-breaking space
60632 suffix: ''
60633 },
60634
60635 // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',
60636 // '-', '.', whitespace, or repeated character.
60637 // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'
60638 ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',
60639 alphabetHasNormalDecimalDigits = true;
60640
60641
60642 //------------------------------------------------------------------------------------------
60643
60644
60645 // CONSTRUCTOR
60646
60647
60648 /*
60649 * The BigNumber constructor and exported function.
60650 * Create and return a new instance of a BigNumber object.
60651 *
60652 * v {number|string|BigNumber} A numeric value.
60653 * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.
60654 */
60655 function BigNumber(v, b) {
60656 var alphabet, c, caseChanged, e, i, isNum, len, str,
60657 x = this;
60658
60659 // Enable constructor call without `new`.
60660 if (!(x instanceof BigNumber)) return new BigNumber(v, b);
60661
60662 if (b == null) {
60663
60664 if (v && v._isBigNumber === true) {
60665 x.s = v.s;
60666
60667 if (!v.c || v.e > MAX_EXP) {
60668 x.c = x.e = null;
60669 } else if (v.e < MIN_EXP) {
60670 x.c = [x.e = 0];
60671 } else {
60672 x.e = v.e;
60673 x.c = v.c.slice();
60674 }
60675
60676 return;
60677 }
60678
60679 if ((isNum = typeof v == 'number') && v * 0 == 0) {
60680
60681 // Use `1 / n` to handle minus zero also.
60682 x.s = 1 / v < 0 ? (v = -v, -1) : 1;
60683
60684 // Fast path for integers, where n < 2147483648 (2**31).
60685 if (v === ~~v) {
60686 for (e = 0, i = v; i >= 10; i /= 10, e++);
60687
60688 if (e > MAX_EXP) {
60689 x.c = x.e = null;
60690 } else {
60691 x.e = e;
60692 x.c = [v];
60693 }
60694
60695 return;
60696 }
60697
60698 str = String(v);
60699 } else {
60700
60701 if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);
60702
60703 x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;
60704 }
60705
60706 // Decimal point?
60707 if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');
60708
60709 // Exponential form?
60710 if ((i = str.search(/e/i)) > 0) {
60711
60712 // Determine exponent.
60713 if (e < 0) e = i;
60714 e += +str.slice(i + 1);
60715 str = str.substring(0, i);
60716 } else if (e < 0) {
60717
60718 // Integer.
60719 e = str.length;
60720 }
60721
60722 } else {
60723
60724 // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'
60725 intCheck(b, 2, ALPHABET.length, 'Base');
60726
60727 // Allow exponential notation to be used with base 10 argument, while
60728 // also rounding to DECIMAL_PLACES as with other bases.
60729 if (b == 10 && alphabetHasNormalDecimalDigits) {
60730 x = new BigNumber(v);
60731 return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);
60732 }
60733
60734 str = String(v);
60735
60736 if (isNum = typeof v == 'number') {
60737
60738 // Avoid potential interpretation of Infinity and NaN as base 44+ values.
60739 if (v * 0 != 0) return parseNumeric(x, str, isNum, b);
60740
60741 x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;
60742
60743 // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'
60744 if (BigNumber.DEBUG && str.replace(/^0\.0*|\./, '').length > 15) {
60745 throw Error
60746 (tooManyDigits + v);
60747 }
60748 } else {
60749 x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;
60750 }
60751
60752 alphabet = ALPHABET.slice(0, b);
60753 e = i = 0;
60754
60755 // Check that str is a valid base b number.
60756 // Don't use RegExp, so alphabet can contain special characters.
60757 for (len = str.length; i < len; i++) {
60758 if (alphabet.indexOf(c = str.charAt(i)) < 0) {
60759 if (c == '.') {
60760
60761 // If '.' is not the first character and it has not be found before.
60762 if (i > e) {
60763 e = len;
60764 continue;
60765 }
60766 } else if (!caseChanged) {
60767
60768 // Allow e.g. hexadecimal 'FF' as well as 'ff'.
60769 if (str == str.toUpperCase() && (str = str.toLowerCase()) ||
60770 str == str.toLowerCase() && (str = str.toUpperCase())) {
60771 caseChanged = true;
60772 i = -1;
60773 e = 0;
60774 continue;
60775 }
60776 }
60777
60778 return parseNumeric(x, String(v), isNum, b);
60779 }
60780 }
60781
60782 // Prevent later check for length on converted number.
60783 isNum = false;
60784 str = convertBase(str, b, 10, x.s);
60785
60786 // Decimal point?
60787 if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');
60788 else e = str.length;
60789 }
60790
60791 // Determine leading zeros.
60792 for (i = 0; str.charCodeAt(i) === 48; i++);
60793
60794 // Determine trailing zeros.
60795 for (len = str.length; str.charCodeAt(--len) === 48;);
60796
60797 if (str = str.slice(i, ++len)) {
60798 len -= i;
60799
60800 // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'
60801 if (isNum && BigNumber.DEBUG &&
60802 len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {
60803 throw Error
60804 (tooManyDigits + (x.s * v));
60805 }
60806
60807 // Overflow?
60808 if ((e = e - i - 1) > MAX_EXP) {
60809
60810 // Infinity.
60811 x.c = x.e = null;
60812
60813 // Underflow?
60814 } else if (e < MIN_EXP) {
60815
60816 // Zero.
60817 x.c = [x.e = 0];
60818 } else {
60819 x.e = e;
60820 x.c = [];
60821
60822 // Transform base
60823
60824 // e is the base 10 exponent.
60825 // i is where to slice str to get the first element of the coefficient array.
60826 i = (e + 1) % LOG_BASE;
60827 if (e < 0) i += LOG_BASE; // i < 1
60828
60829 if (i < len) {
60830 if (i) x.c.push(+str.slice(0, i));
60831
60832 for (len -= LOG_BASE; i < len;) {
60833 x.c.push(+str.slice(i, i += LOG_BASE));
60834 }
60835
60836 i = LOG_BASE - (str = str.slice(i)).length;
60837 } else {
60838 i -= len;
60839 }
60840
60841 for (; i--; str += '0');
60842 x.c.push(+str);
60843 }
60844 } else {
60845
60846 // Zero.
60847 x.c = [x.e = 0];
60848 }
60849 }
60850
60851
60852 // CONSTRUCTOR PROPERTIES
60853
60854
60855 BigNumber.clone = clone;
60856
60857 BigNumber.ROUND_UP = 0;
60858 BigNumber.ROUND_DOWN = 1;
60859 BigNumber.ROUND_CEIL = 2;
60860 BigNumber.ROUND_FLOOR = 3;
60861 BigNumber.ROUND_HALF_UP = 4;
60862 BigNumber.ROUND_HALF_DOWN = 5;
60863 BigNumber.ROUND_HALF_EVEN = 6;
60864 BigNumber.ROUND_HALF_CEIL = 7;
60865 BigNumber.ROUND_HALF_FLOOR = 8;
60866 BigNumber.EUCLID = 9;
60867
60868
60869 /*
60870 * Configure infrequently-changing library-wide settings.
60871 *
60872 * Accept an object with the following optional properties (if the value of a property is
60873 * a number, it must be an integer within the inclusive range stated):
60874 *
60875 * DECIMAL_PLACES {number} 0 to MAX
60876 * ROUNDING_MODE {number} 0 to 8
60877 * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]
60878 * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]
60879 * CRYPTO {boolean} true or false
60880 * MODULO_MODE {number} 0 to 9
60881 * POW_PRECISION {number} 0 to MAX
60882 * ALPHABET {string} A string of two or more unique characters which does
60883 * not contain '.'.
60884 * FORMAT {object} An object with some of the following properties:
60885 * prefix {string}
60886 * groupSize {number}
60887 * secondaryGroupSize {number}
60888 * groupSeparator {string}
60889 * decimalSeparator {string}
60890 * fractionGroupSize {number}
60891 * fractionGroupSeparator {string}
60892 * suffix {string}
60893 *
60894 * (The values assigned to the above FORMAT object properties are not checked for validity.)
60895 *
60896 * E.g.
60897 * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })
60898 *
60899 * Ignore properties/parameters set to null or undefined, except for ALPHABET.
60900 *
60901 * Return an object with the properties current values.
60902 */
60903 BigNumber.config = BigNumber.set = function (obj) {
60904 var p, v;
60905
60906 if (obj != null) {
60907
60908 if (typeof obj == 'object') {
60909
60910 // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.
60911 // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'
60912 if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {
60913 v = obj[p];
60914 intCheck(v, 0, MAX, p);
60915 DECIMAL_PLACES = v;
60916 }
60917
60918 // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.
60919 // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'
60920 if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {
60921 v = obj[p];
60922 intCheck(v, 0, 8, p);
60923 ROUNDING_MODE = v;
60924 }
60925
60926 // EXPONENTIAL_AT {number|number[]}
60927 // Integer, -MAX to MAX inclusive or
60928 // [integer -MAX to 0 inclusive, 0 to MAX inclusive].
60929 // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'
60930 if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {
60931 v = obj[p];
60932 if (v && v.pop) {
60933 intCheck(v[0], -MAX, 0, p);
60934 intCheck(v[1], 0, MAX, p);
60935 TO_EXP_NEG = v[0];
60936 TO_EXP_POS = v[1];
60937 } else {
60938 intCheck(v, -MAX, MAX, p);
60939 TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);
60940 }
60941 }
60942
60943 // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or
60944 // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].
60945 // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'
60946 if (obj.hasOwnProperty(p = 'RANGE')) {
60947 v = obj[p];
60948 if (v && v.pop) {
60949 intCheck(v[0], -MAX, -1, p);
60950 intCheck(v[1], 1, MAX, p);
60951 MIN_EXP = v[0];
60952 MAX_EXP = v[1];
60953 } else {
60954 intCheck(v, -MAX, MAX, p);
60955 if (v) {
60956 MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);
60957 } else {
60958 throw Error
60959 (bignumberError + p + ' cannot be zero: ' + v);
60960 }
60961 }
60962 }
60963
60964 // CRYPTO {boolean} true or false.
60965 // '[BigNumber Error] CRYPTO not true or false: {v}'
60966 // '[BigNumber Error] crypto unavailable'
60967 if (obj.hasOwnProperty(p = 'CRYPTO')) {
60968 v = obj[p];
60969 if (v === !!v) {
60970 if (v) {
60971 if (typeof crypto != 'undefined' && crypto &&
60972 (crypto.getRandomValues || crypto.randomBytes)) {
60973 CRYPTO = v;
60974 } else {
60975 CRYPTO = !v;
60976 throw Error
60977 (bignumberError + 'crypto unavailable');
60978 }
60979 } else {
60980 CRYPTO = v;
60981 }
60982 } else {
60983 throw Error
60984 (bignumberError + p + ' not true or false: ' + v);
60985 }
60986 }
60987
60988 // MODULO_MODE {number} Integer, 0 to 9 inclusive.
60989 // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'
60990 if (obj.hasOwnProperty(p = 'MODULO_MODE')) {
60991 v = obj[p];
60992 intCheck(v, 0, 9, p);
60993 MODULO_MODE = v;
60994 }
60995
60996 // POW_PRECISION {number} Integer, 0 to MAX inclusive.
60997 // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'
60998 if (obj.hasOwnProperty(p = 'POW_PRECISION')) {
60999 v = obj[p];
61000 intCheck(v, 0, MAX, p);
61001 POW_PRECISION = v;
61002 }
61003
61004 // FORMAT {object}
61005 // '[BigNumber Error] FORMAT not an object: {v}'
61006 if (obj.hasOwnProperty(p = 'FORMAT')) {
61007 v = obj[p];
61008 if (typeof v == 'object') FORMAT = v;
61009 else throw Error
61010 (bignumberError + p + ' not an object: ' + v);
61011 }
61012
61013 // ALPHABET {string}
61014 // '[BigNumber Error] ALPHABET invalid: {v}'
61015 if (obj.hasOwnProperty(p = 'ALPHABET')) {
61016 v = obj[p];
61017
61018 // Disallow if less than two characters,
61019 // or if it contains '+', '-', '.', whitespace, or a repeated character.
61020 if (typeof v == 'string' && !/^.?$|[+\-.\s]|(.).*\1/.test(v)) {
61021 alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';
61022 ALPHABET = v;
61023 } else {
61024 throw Error
61025 (bignumberError + p + ' invalid: ' + v);
61026 }
61027 }
61028
61029 } else {
61030
61031 // '[BigNumber Error] Object expected: {v}'
61032 throw Error
61033 (bignumberError + 'Object expected: ' + obj);
61034 }
61035 }
61036
61037 return {
61038 DECIMAL_PLACES: DECIMAL_PLACES,
61039 ROUNDING_MODE: ROUNDING_MODE,
61040 EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],
61041 RANGE: [MIN_EXP, MAX_EXP],
61042 CRYPTO: CRYPTO,
61043 MODULO_MODE: MODULO_MODE,
61044 POW_PRECISION: POW_PRECISION,
61045 FORMAT: FORMAT,
61046 ALPHABET: ALPHABET
61047 };
61048 };
61049
61050
61051 /*
61052 * Return true if v is a BigNumber instance, otherwise return false.
61053 *
61054 * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.
61055 *
61056 * v {any}
61057 *
61058 * '[BigNumber Error] Invalid BigNumber: {v}'
61059 */
61060 BigNumber.isBigNumber = function (v) {
61061 if (!v || v._isBigNumber !== true) return false;
61062 if (!BigNumber.DEBUG) return true;
61063
61064 var i, n,
61065 c = v.c,
61066 e = v.e,
61067 s = v.s;
61068
61069 out: if ({}.toString.call(c) == '[object Array]') {
61070
61071 if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {
61072
61073 // If the first element is zero, the BigNumber value must be zero.
61074 if (c[0] === 0) {
61075 if (e === 0 && c.length === 1) return true;
61076 break out;
61077 }
61078
61079 // Calculate number of digits that c[0] should have, based on the exponent.
61080 i = (e + 1) % LOG_BASE;
61081 if (i < 1) i += LOG_BASE;
61082
61083 // Calculate number of digits of c[0].
61084 //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {
61085 if (String(c[0]).length == i) {
61086
61087 for (i = 0; i < c.length; i++) {
61088 n = c[i];
61089 if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;
61090 }
61091
61092 // Last element cannot be zero, unless it is the only element.
61093 if (n !== 0) return true;
61094 }
61095 }
61096
61097 // Infinity/NaN
61098 } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {
61099 return true;
61100 }
61101
61102 throw Error
61103 (bignumberError + 'Invalid BigNumber: ' + v);
61104 };
61105
61106
61107 /*
61108 * Return a new BigNumber whose value is the maximum of the arguments.
61109 *
61110 * arguments {number|string|BigNumber}
61111 */
61112 BigNumber.maximum = BigNumber.max = function () {
61113 return maxOrMin(arguments, P.lt);
61114 };
61115
61116
61117 /*
61118 * Return a new BigNumber whose value is the minimum of the arguments.
61119 *
61120 * arguments {number|string|BigNumber}
61121 */
61122 BigNumber.minimum = BigNumber.min = function () {
61123 return maxOrMin(arguments, P.gt);
61124 };
61125
61126
61127 /*
61128 * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,
61129 * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing
61130 * zeros are produced).
61131 *
61132 * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.
61133 *
61134 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'
61135 * '[BigNumber Error] crypto unavailable'
61136 */
61137 BigNumber.random = (function () {
61138 var pow2_53 = 0x20000000000000;
61139
61140 // Return a 53 bit integer n, where 0 <= n < 9007199254740992.
61141 // Check if Math.random() produces more than 32 bits of randomness.
61142 // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.
61143 // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.
61144 var random53bitInt = (Math.random() * pow2_53) & 0x1fffff
61145 ? function () { return mathfloor(Math.random() * pow2_53); }
61146 : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +
61147 (Math.random() * 0x800000 | 0); };
61148
61149 return function (dp) {
61150 var a, b, e, k, v,
61151 i = 0,
61152 c = [],
61153 rand = new BigNumber(ONE);
61154
61155 if (dp == null) dp = DECIMAL_PLACES;
61156 else intCheck(dp, 0, MAX);
61157
61158 k = mathceil(dp / LOG_BASE);
61159
61160 if (CRYPTO) {
61161
61162 // Browsers supporting crypto.getRandomValues.
61163 if (crypto.getRandomValues) {
61164
61165 a = crypto.getRandomValues(new Uint32Array(k *= 2));
61166
61167 for (; i < k;) {
61168
61169 // 53 bits:
61170 // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)
61171 // 11111 11111111 11111111 11111111 11100000 00000000 00000000
61172 // ((Math.pow(2, 32) - 1) >>> 11).toString(2)
61173 // 11111 11111111 11111111
61174 // 0x20000 is 2^21.
61175 v = a[i] * 0x20000 + (a[i + 1] >>> 11);
61176
61177 // Rejection sampling:
61178 // 0 <= v < 9007199254740992
61179 // Probability that v >= 9e15, is
61180 // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251
61181 if (v >= 9e15) {
61182 b = crypto.getRandomValues(new Uint32Array(2));
61183 a[i] = b[0];
61184 a[i + 1] = b[1];
61185 } else {
61186
61187 // 0 <= v <= 8999999999999999
61188 // 0 <= (v % 1e14) <= 99999999999999
61189 c.push(v % 1e14);
61190 i += 2;
61191 }
61192 }
61193 i = k / 2;
61194
61195 // Node.js supporting crypto.randomBytes.
61196 } else if (crypto.randomBytes) {
61197
61198 // buffer
61199 a = crypto.randomBytes(k *= 7);
61200
61201 for (; i < k;) {
61202
61203 // 0x1000000000000 is 2^48, 0x10000000000 is 2^40
61204 // 0x100000000 is 2^32, 0x1000000 is 2^24
61205 // 11111 11111111 11111111 11111111 11111111 11111111 11111111
61206 // 0 <= v < 9007199254740992
61207 v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +
61208 (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +
61209 (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];
61210
61211 if (v >= 9e15) {
61212 crypto.randomBytes(7).copy(a, i);
61213 } else {
61214
61215 // 0 <= (v % 1e14) <= 99999999999999
61216 c.push(v % 1e14);
61217 i += 7;
61218 }
61219 }
61220 i = k / 7;
61221 } else {
61222 CRYPTO = false;
61223 throw Error
61224 (bignumberError + 'crypto unavailable');
61225 }
61226 }
61227
61228 // Use Math.random.
61229 if (!CRYPTO) {
61230
61231 for (; i < k;) {
61232 v = random53bitInt();
61233 if (v < 9e15) c[i++] = v % 1e14;
61234 }
61235 }
61236
61237 k = c[--i];
61238 dp %= LOG_BASE;
61239
61240 // Convert trailing digits to zeros according to dp.
61241 if (k && dp) {
61242 v = POWS_TEN[LOG_BASE - dp];
61243 c[i] = mathfloor(k / v) * v;
61244 }
61245
61246 // Remove trailing elements which are zero.
61247 for (; c[i] === 0; c.pop(), i--);
61248
61249 // Zero?
61250 if (i < 0) {
61251 c = [e = 0];
61252 } else {
61253
61254 // Remove leading elements which are zero and adjust exponent accordingly.
61255 for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);
61256
61257 // Count the digits of the first element of c to determine leading zeros, and...
61258 for (i = 1, v = c[0]; v >= 10; v /= 10, i++);
61259
61260 // adjust the exponent accordingly.
61261 if (i < LOG_BASE) e -= LOG_BASE - i;
61262 }
61263
61264 rand.e = e;
61265 rand.c = c;
61266 return rand;
61267 };
61268 })();
61269
61270
61271 /*
61272 * Return a BigNumber whose value is the sum of the arguments.
61273 *
61274 * arguments {number|string|BigNumber}
61275 */
61276 BigNumber.sum = function () {
61277 var i = 1,
61278 args = arguments,
61279 sum = new BigNumber(args[0]);
61280 for (; i < args.length;) sum = sum.plus(args[i++]);
61281 return sum;
61282 };
61283
61284
61285 // PRIVATE FUNCTIONS
61286
61287
61288 // Called by BigNumber and BigNumber.prototype.toString.
61289 convertBase = (function () {
61290 var decimal = '0123456789';
61291
61292 /*
61293 * Convert string of baseIn to an array of numbers of baseOut.
61294 * Eg. toBaseOut('255', 10, 16) returns [15, 15].
61295 * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].
61296 */
61297 function toBaseOut(str, baseIn, baseOut, alphabet) {
61298 var j,
61299 arr = [0],
61300 arrL,
61301 i = 0,
61302 len = str.length;
61303
61304 for (; i < len;) {
61305 for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);
61306
61307 arr[0] += alphabet.indexOf(str.charAt(i++));
61308
61309 for (j = 0; j < arr.length; j++) {
61310
61311 if (arr[j] > baseOut - 1) {
61312 if (arr[j + 1] == null) arr[j + 1] = 0;
61313 arr[j + 1] += arr[j] / baseOut | 0;
61314 arr[j] %= baseOut;
61315 }
61316 }
61317 }
61318
61319 return arr.reverse();
61320 }
61321
61322 // Convert a numeric string of baseIn to a numeric string of baseOut.
61323 // If the caller is toString, we are converting from base 10 to baseOut.
61324 // If the caller is BigNumber, we are converting from baseIn to base 10.
61325 return function (str, baseIn, baseOut, sign, callerIsToString) {
61326 var alphabet, d, e, k, r, x, xc, y,
61327 i = str.indexOf('.'),
61328 dp = DECIMAL_PLACES,
61329 rm = ROUNDING_MODE;
61330
61331 // Non-integer.
61332 if (i >= 0) {
61333 k = POW_PRECISION;
61334
61335 // Unlimited precision.
61336 POW_PRECISION = 0;
61337 str = str.replace('.', '');
61338 y = new BigNumber(baseIn);
61339 x = y.pow(str.length - i);
61340 POW_PRECISION = k;
61341
61342 // Convert str as if an integer, then restore the fraction part by dividing the
61343 // result by its base raised to a power.
61344
61345 y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),
61346 10, baseOut, decimal);
61347 y.e = y.c.length;
61348 }
61349
61350 // Convert the number as integer.
61351
61352 xc = toBaseOut(str, baseIn, baseOut, callerIsToString
61353 ? (alphabet = ALPHABET, decimal)
61354 : (alphabet = decimal, ALPHABET));
61355
61356 // xc now represents str as an integer and converted to baseOut. e is the exponent.
61357 e = k = xc.length;
61358
61359 // Remove trailing zeros.
61360 for (; xc[--k] == 0; xc.pop());
61361
61362 // Zero?
61363 if (!xc[0]) return alphabet.charAt(0);
61364
61365 // Does str represent an integer? If so, no need for the division.
61366 if (i < 0) {
61367 --e;
61368 } else {
61369 x.c = xc;
61370 x.e = e;
61371
61372 // The sign is needed for correct rounding.
61373 x.s = sign;
61374 x = div(x, y, dp, rm, baseOut);
61375 xc = x.c;
61376 r = x.r;
61377 e = x.e;
61378 }
61379
61380 // xc now represents str converted to baseOut.
61381
61382 // THe index of the rounding digit.
61383 d = e + dp + 1;
61384
61385 // The rounding digit: the digit to the right of the digit that may be rounded up.
61386 i = xc[d];
61387
61388 // Look at the rounding digits and mode to determine whether to round up.
61389
61390 k = baseOut / 2;
61391 r = r || d < 0 || xc[d + 1] != null;
61392
61393 r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))
61394 : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||
61395 rm == (x.s < 0 ? 8 : 7));
61396
61397 // If the index of the rounding digit is not greater than zero, or xc represents
61398 // zero, then the result of the base conversion is zero or, if rounding up, a value
61399 // such as 0.00001.
61400 if (d < 1 || !xc[0]) {
61401
61402 // 1^-dp or 0
61403 str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);
61404 } else {
61405
61406 // Truncate xc to the required number of decimal places.
61407 xc.length = d;
61408
61409 // Round up?
61410 if (r) {
61411
61412 // Rounding up may mean the previous digit has to be rounded up and so on.
61413 for (--baseOut; ++xc[--d] > baseOut;) {
61414 xc[d] = 0;
61415
61416 if (!d) {
61417 ++e;
61418 xc = [1].concat(xc);
61419 }
61420 }
61421 }
61422
61423 // Determine trailing zeros.
61424 for (k = xc.length; !xc[--k];);
61425
61426 // E.g. [4, 11, 15] becomes 4bf.
61427 for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));
61428
61429 // Add leading zeros, decimal point and trailing zeros as required.
61430 str = toFixedPoint(str, e, alphabet.charAt(0));
61431 }
61432
61433 // The caller will add the sign.
61434 return str;
61435 };
61436 })();
61437
61438
61439 // Perform division in the specified base. Called by div and convertBase.
61440 div = (function () {
61441
61442 // Assume non-zero x and k.
61443 function multiply(x, k, base) {
61444 var m, temp, xlo, xhi,
61445 carry = 0,
61446 i = x.length,
61447 klo = k % SQRT_BASE,
61448 khi = k / SQRT_BASE | 0;
61449
61450 for (x = x.slice(); i--;) {
61451 xlo = x[i] % SQRT_BASE;
61452 xhi = x[i] / SQRT_BASE | 0;
61453 m = khi * xlo + xhi * klo;
61454 temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;
61455 carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;
61456 x[i] = temp % base;
61457 }
61458
61459 if (carry) x = [carry].concat(x);
61460
61461 return x;
61462 }
61463
61464 function compare(a, b, aL, bL) {
61465 var i, cmp;
61466
61467 if (aL != bL) {
61468 cmp = aL > bL ? 1 : -1;
61469 } else {
61470
61471 for (i = cmp = 0; i < aL; i++) {
61472
61473 if (a[i] != b[i]) {
61474 cmp = a[i] > b[i] ? 1 : -1;
61475 break;
61476 }
61477 }
61478 }
61479
61480 return cmp;
61481 }
61482
61483 function subtract(a, b, aL, base) {
61484 var i = 0;
61485
61486 // Subtract b from a.
61487 for (; aL--;) {
61488 a[aL] -= i;
61489 i = a[aL] < b[aL] ? 1 : 0;
61490 a[aL] = i * base + a[aL] - b[aL];
61491 }
61492
61493 // Remove leading zeros.
61494 for (; !a[0] && a.length > 1; a.splice(0, 1));
61495 }
61496
61497 // x: dividend, y: divisor.
61498 return function (x, y, dp, rm, base) {
61499 var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,
61500 yL, yz,
61501 s = x.s == y.s ? 1 : -1,
61502 xc = x.c,
61503 yc = y.c;
61504
61505 // Either NaN, Infinity or 0?
61506 if (!xc || !xc[0] || !yc || !yc[0]) {
61507
61508 return new BigNumber(
61509
61510 // Return NaN if either NaN, or both Infinity or 0.
61511 !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :
61512
61513 // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.
61514 xc && xc[0] == 0 || !yc ? s * 0 : s / 0
61515 );
61516 }
61517
61518 q = new BigNumber(s);
61519 qc = q.c = [];
61520 e = x.e - y.e;
61521 s = dp + e + 1;
61522
61523 if (!base) {
61524 base = BASE;
61525 e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);
61526 s = s / LOG_BASE | 0;
61527 }
61528
61529 // Result exponent may be one less then the current value of e.
61530 // The coefficients of the BigNumbers from convertBase may have trailing zeros.
61531 for (i = 0; yc[i] == (xc[i] || 0); i++);
61532
61533 if (yc[i] > (xc[i] || 0)) e--;
61534
61535 if (s < 0) {
61536 qc.push(1);
61537 more = true;
61538 } else {
61539 xL = xc.length;
61540 yL = yc.length;
61541 i = 0;
61542 s += 2;
61543
61544 // Normalise xc and yc so highest order digit of yc is >= base / 2.
61545
61546 n = mathfloor(base / (yc[0] + 1));
61547
61548 // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.
61549 // if (n > 1 || n++ == 1 && yc[0] < base / 2) {
61550 if (n > 1) {
61551 yc = multiply(yc, n, base);
61552 xc = multiply(xc, n, base);
61553 yL = yc.length;
61554 xL = xc.length;
61555 }
61556
61557 xi = yL;
61558 rem = xc.slice(0, yL);
61559 remL = rem.length;
61560
61561 // Add zeros to make remainder as long as divisor.
61562 for (; remL < yL; rem[remL++] = 0);
61563 yz = yc.slice();
61564 yz = [0].concat(yz);
61565 yc0 = yc[0];
61566 if (yc[1] >= base / 2) yc0++;
61567 // Not necessary, but to prevent trial digit n > base, when using base 3.
61568 // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;
61569
61570 do {
61571 n = 0;
61572
61573 // Compare divisor and remainder.
61574 cmp = compare(yc, rem, yL, remL);
61575
61576 // If divisor < remainder.
61577 if (cmp < 0) {
61578
61579 // Calculate trial digit, n.
61580
61581 rem0 = rem[0];
61582 if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);
61583
61584 // n is how many times the divisor goes into the current remainder.
61585 n = mathfloor(rem0 / yc0);
61586
61587 // Algorithm:
61588 // product = divisor multiplied by trial digit (n).
61589 // Compare product and remainder.
61590 // If product is greater than remainder:
61591 // Subtract divisor from product, decrement trial digit.
61592 // Subtract product from remainder.
61593 // If product was less than remainder at the last compare:
61594 // Compare new remainder and divisor.
61595 // If remainder is greater than divisor:
61596 // Subtract divisor from remainder, increment trial digit.
61597
61598 if (n > 1) {
61599
61600 // n may be > base only when base is 3.
61601 if (n >= base) n = base - 1;
61602
61603 // product = divisor * trial digit.
61604 prod = multiply(yc, n, base);
61605 prodL = prod.length;
61606 remL = rem.length;
61607
61608 // Compare product and remainder.
61609 // If product > remainder then trial digit n too high.
61610 // n is 1 too high about 5% of the time, and is not known to have
61611 // ever been more than 1 too high.
61612 while (compare(prod, rem, prodL, remL) == 1) {
61613 n--;
61614
61615 // Subtract divisor from product.
61616 subtract(prod, yL < prodL ? yz : yc, prodL, base);
61617 prodL = prod.length;
61618 cmp = 1;
61619 }
61620 } else {
61621
61622 // n is 0 or 1, cmp is -1.
61623 // If n is 0, there is no need to compare yc and rem again below,
61624 // so change cmp to 1 to avoid it.
61625 // If n is 1, leave cmp as -1, so yc and rem are compared again.
61626 if (n == 0) {
61627
61628 // divisor < remainder, so n must be at least 1.
61629 cmp = n = 1;
61630 }
61631
61632 // product = divisor
61633 prod = yc.slice();
61634 prodL = prod.length;
61635 }
61636
61637 if (prodL < remL) prod = [0].concat(prod);
61638
61639 // Subtract product from remainder.
61640 subtract(rem, prod, remL, base);
61641 remL = rem.length;
61642
61643 // If product was < remainder.
61644 if (cmp == -1) {
61645
61646 // Compare divisor and new remainder.
61647 // If divisor < new remainder, subtract divisor from remainder.
61648 // Trial digit n too low.
61649 // n is 1 too low about 5% of the time, and very rarely 2 too low.
61650 while (compare(yc, rem, yL, remL) < 1) {
61651 n++;
61652
61653 // Subtract divisor from remainder.
61654 subtract(rem, yL < remL ? yz : yc, remL, base);
61655 remL = rem.length;
61656 }
61657 }
61658 } else if (cmp === 0) {
61659 n++;
61660 rem = [0];
61661 } // else cmp === 1 and n will be 0
61662
61663 // Add the next digit, n, to the result array.
61664 qc[i++] = n;
61665
61666 // Update the remainder.
61667 if (rem[0]) {
61668 rem[remL++] = xc[xi] || 0;
61669 } else {
61670 rem = [xc[xi]];
61671 remL = 1;
61672 }
61673 } while ((xi++ < xL || rem[0] != null) && s--);
61674
61675 more = rem[0] != null;
61676
61677 // Leading zero?
61678 if (!qc[0]) qc.splice(0, 1);
61679 }
61680
61681 if (base == BASE) {
61682
61683 // To calculate q.e, first get the number of digits of qc[0].
61684 for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);
61685
61686 round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);
61687
61688 // Caller is convertBase.
61689 } else {
61690 q.e = e;
61691 q.r = +more;
61692 }
61693
61694 return q;
61695 };
61696 })();
61697
61698
61699 /*
61700 * Return a string representing the value of BigNumber n in fixed-point or exponential
61701 * notation rounded to the specified decimal places or significant digits.
61702 *
61703 * n: a BigNumber.
61704 * i: the index of the last digit required (i.e. the digit that may be rounded up).
61705 * rm: the rounding mode.
61706 * id: 1 (toExponential) or 2 (toPrecision).
61707 */
61708 function format(n, i, rm, id) {
61709 var c0, e, ne, len, str;
61710
61711 if (rm == null) rm = ROUNDING_MODE;
61712 else intCheck(rm, 0, 8);
61713
61714 if (!n.c) return n.toString();
61715
61716 c0 = n.c[0];
61717 ne = n.e;
61718
61719 if (i == null) {
61720 str = coeffToString(n.c);
61721 str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)
61722 ? toExponential(str, ne)
61723 : toFixedPoint(str, ne, '0');
61724 } else {
61725 n = round(new BigNumber(n), i, rm);
61726
61727 // n.e may have changed if the value was rounded up.
61728 e = n.e;
61729
61730 str = coeffToString(n.c);
61731 len = str.length;
61732
61733 // toPrecision returns exponential notation if the number of significant digits
61734 // specified is less than the number of digits necessary to represent the integer
61735 // part of the value in fixed-point notation.
61736
61737 // Exponential notation.
61738 if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {
61739
61740 // Append zeros?
61741 for (; len < i; str += '0', len++);
61742 str = toExponential(str, e);
61743
61744 // Fixed-point notation.
61745 } else {
61746 i -= ne;
61747 str = toFixedPoint(str, e, '0');
61748
61749 // Append zeros?
61750 if (e + 1 > len) {
61751 if (--i > 0) for (str += '.'; i--; str += '0');
61752 } else {
61753 i += e - len;
61754 if (i > 0) {
61755 if (e + 1 == len) str += '.';
61756 for (; i--; str += '0');
61757 }
61758 }
61759 }
61760 }
61761
61762 return n.s < 0 && c0 ? '-' + str : str;
61763 }
61764
61765
61766 // Handle BigNumber.max and BigNumber.min.
61767 function maxOrMin(args, method) {
61768 var n,
61769 i = 1,
61770 m = new BigNumber(args[0]);
61771
61772 for (; i < args.length; i++) {
61773 n = new BigNumber(args[i]);
61774
61775 // If any number is NaN, return NaN.
61776 if (!n.s) {
61777 m = n;
61778 break;
61779 } else if (method.call(m, n)) {
61780 m = n;
61781 }
61782 }
61783
61784 return m;
61785 }
61786
61787
61788 /*
61789 * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.
61790 * Called by minus, plus and times.
61791 */
61792 function normalise(n, c, e) {
61793 var i = 1,
61794 j = c.length;
61795
61796 // Remove trailing zeros.
61797 for (; !c[--j]; c.pop());
61798
61799 // Calculate the base 10 exponent. First get the number of digits of c[0].
61800 for (j = c[0]; j >= 10; j /= 10, i++);
61801
61802 // Overflow?
61803 if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {
61804
61805 // Infinity.
61806 n.c = n.e = null;
61807
61808 // Underflow?
61809 } else if (e < MIN_EXP) {
61810
61811 // Zero.
61812 n.c = [n.e = 0];
61813 } else {
61814 n.e = e;
61815 n.c = c;
61816 }
61817
61818 return n;
61819 }
61820
61821
61822 // Handle values that fail the validity test in BigNumber.
61823 parseNumeric = (function () {
61824 var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i,
61825 dotAfter = /^([^.]+)\.$/,
61826 dotBefore = /^\.([^.]+)$/,
61827 isInfinityOrNaN = /^-?(Infinity|NaN)$/,
61828 whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g;
61829
61830 return function (x, str, isNum, b) {
61831 var base,
61832 s = isNum ? str : str.replace(whitespaceOrPlus, '');
61833
61834 // No exception on ±Infinity or NaN.
61835 if (isInfinityOrNaN.test(s)) {
61836 x.s = isNaN(s) ? null : s < 0 ? -1 : 1;
61837 } else {
61838 if (!isNum) {
61839
61840 // basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i
61841 s = s.replace(basePrefix, function (m, p1, p2) {
61842 base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;
61843 return !b || b == base ? p1 : m;
61844 });
61845
61846 if (b) {
61847 base = b;
61848
61849 // E.g. '1.' to '1', '.1' to '0.1'
61850 s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');
61851 }
61852
61853 if (str != s) return new BigNumber(s, base);
61854 }
61855
61856 // '[BigNumber Error] Not a number: {n}'
61857 // '[BigNumber Error] Not a base {b} number: {n}'
61858 if (BigNumber.DEBUG) {
61859 throw Error
61860 (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);
61861 }
61862
61863 // NaN
61864 x.s = null;
61865 }
61866
61867 x.c = x.e = null;
61868 }
61869 })();
61870
61871
61872 /*
61873 * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.
61874 * If r is truthy, it is known that there are more digits after the rounding digit.
61875 */
61876 function round(x, sd, rm, r) {
61877 var d, i, j, k, n, ni, rd,
61878 xc = x.c,
61879 pows10 = POWS_TEN;
61880
61881 // if x is not Infinity or NaN...
61882 if (xc) {
61883
61884 // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.
61885 // n is a base 1e14 number, the value of the element of array x.c containing rd.
61886 // ni is the index of n within x.c.
61887 // d is the number of digits of n.
61888 // i is the index of rd within n including leading zeros.
61889 // j is the actual index of rd within n (if < 0, rd is a leading zero).
61890 out: {
61891
61892 // Get the number of digits of the first element of xc.
61893 for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);
61894 i = sd - d;
61895
61896 // If the rounding digit is in the first element of xc...
61897 if (i < 0) {
61898 i += LOG_BASE;
61899 j = sd;
61900 n = xc[ni = 0];
61901
61902 // Get the rounding digit at index j of n.
61903 rd = n / pows10[d - j - 1] % 10 | 0;
61904 } else {
61905 ni = mathceil((i + 1) / LOG_BASE);
61906
61907 if (ni >= xc.length) {
61908
61909 if (r) {
61910
61911 // Needed by sqrt.
61912 for (; xc.length <= ni; xc.push(0));
61913 n = rd = 0;
61914 d = 1;
61915 i %= LOG_BASE;
61916 j = i - LOG_BASE + 1;
61917 } else {
61918 break out;
61919 }
61920 } else {
61921 n = k = xc[ni];
61922
61923 // Get the number of digits of n.
61924 for (d = 1; k >= 10; k /= 10, d++);
61925
61926 // Get the index of rd within n.
61927 i %= LOG_BASE;
61928
61929 // Get the index of rd within n, adjusted for leading zeros.
61930 // The number of leading zeros of n is given by LOG_BASE - d.
61931 j = i - LOG_BASE + d;
61932
61933 // Get the rounding digit at index j of n.
61934 rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;
61935 }
61936 }
61937
61938 r = r || sd < 0 ||
61939
61940 // Are there any non-zero digits after the rounding digit?
61941 // The expression n % pows10[d - j - 1] returns all digits of n to the right
61942 // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.
61943 xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);
61944
61945 r = rm < 4
61946 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))
61947 : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&
61948
61949 // Check whether the digit to the left of the rounding digit is odd.
61950 ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||
61951 rm == (x.s < 0 ? 8 : 7));
61952
61953 if (sd < 1 || !xc[0]) {
61954 xc.length = 0;
61955
61956 if (r) {
61957
61958 // Convert sd to decimal places.
61959 sd -= x.e + 1;
61960
61961 // 1, 0.1, 0.01, 0.001, 0.0001 etc.
61962 xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];
61963 x.e = -sd || 0;
61964 } else {
61965
61966 // Zero.
61967 xc[0] = x.e = 0;
61968 }
61969
61970 return x;
61971 }
61972
61973 // Remove excess digits.
61974 if (i == 0) {
61975 xc.length = ni;
61976 k = 1;
61977 ni--;
61978 } else {
61979 xc.length = ni + 1;
61980 k = pows10[LOG_BASE - i];
61981
61982 // E.g. 56700 becomes 56000 if 7 is the rounding digit.
61983 // j > 0 means i > number of leading zeros of n.
61984 xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;
61985 }
61986
61987 // Round up?
61988 if (r) {
61989
61990 for (; ;) {
61991
61992 // If the digit to be rounded up is in the first element of xc...
61993 if (ni == 0) {
61994
61995 // i will be the length of xc[0] before k is added.
61996 for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);
61997 j = xc[0] += k;
61998 for (k = 1; j >= 10; j /= 10, k++);
61999
62000 // if i != k the length has increased.
62001 if (i != k) {
62002 x.e++;
62003 if (xc[0] == BASE) xc[0] = 1;
62004 }
62005
62006 break;
62007 } else {
62008 xc[ni] += k;
62009 if (xc[ni] != BASE) break;
62010 xc[ni--] = 0;
62011 k = 1;
62012 }
62013 }
62014 }
62015
62016 // Remove trailing zeros.
62017 for (i = xc.length; xc[--i] === 0; xc.pop());
62018 }
62019
62020 // Overflow? Infinity.
62021 if (x.e > MAX_EXP) {
62022 x.c = x.e = null;
62023
62024 // Underflow? Zero.
62025 } else if (x.e < MIN_EXP) {
62026 x.c = [x.e = 0];
62027 }
62028 }
62029
62030 return x;
62031 }
62032
62033
62034 function valueOf(n) {
62035 var str,
62036 e = n.e;
62037
62038 if (e === null) return n.toString();
62039
62040 str = coeffToString(n.c);
62041
62042 str = e <= TO_EXP_NEG || e >= TO_EXP_POS
62043 ? toExponential(str, e)
62044 : toFixedPoint(str, e, '0');
62045
62046 return n.s < 0 ? '-' + str : str;
62047 }
62048
62049
62050 // PROTOTYPE/INSTANCE METHODS
62051
62052
62053 /*
62054 * Return a new BigNumber whose value is the absolute value of this BigNumber.
62055 */
62056 P.absoluteValue = P.abs = function () {
62057 var x = new BigNumber(this);
62058 if (x.s < 0) x.s = 1;
62059 return x;
62060 };
62061
62062
62063 /*
62064 * Return
62065 * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),
62066 * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),
62067 * 0 if they have the same value,
62068 * or null if the value of either is NaN.
62069 */
62070 P.comparedTo = function (y, b) {
62071 return compare(this, new BigNumber(y, b));
62072 };
62073
62074
62075 /*
62076 * If dp is undefined or null or true or false, return the number of decimal places of the
62077 * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.
62078 *
62079 * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this
62080 * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or
62081 * ROUNDING_MODE if rm is omitted.
62082 *
62083 * [dp] {number} Decimal places: integer, 0 to MAX inclusive.
62084 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
62085 *
62086 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'
62087 */
62088 P.decimalPlaces = P.dp = function (dp, rm) {
62089 var c, n, v,
62090 x = this;
62091
62092 if (dp != null) {
62093 intCheck(dp, 0, MAX);
62094 if (rm == null) rm = ROUNDING_MODE;
62095 else intCheck(rm, 0, 8);
62096
62097 return round(new BigNumber(x), dp + x.e + 1, rm);
62098 }
62099
62100 if (!(c = x.c)) return null;
62101 n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;
62102
62103 // Subtract the number of trailing zeros of the last number.
62104 if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);
62105 if (n < 0) n = 0;
62106
62107 return n;
62108 };
62109
62110
62111 /*
62112 * n / 0 = I
62113 * n / N = N
62114 * n / I = 0
62115 * 0 / n = 0
62116 * 0 / 0 = N
62117 * 0 / N = N
62118 * 0 / I = 0
62119 * N / n = N
62120 * N / 0 = N
62121 * N / N = N
62122 * N / I = N
62123 * I / n = I
62124 * I / 0 = I
62125 * I / N = N
62126 * I / I = N
62127 *
62128 * Return a new BigNumber whose value is the value of this BigNumber divided by the value of
62129 * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.
62130 */
62131 P.dividedBy = P.div = function (y, b) {
62132 return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);
62133 };
62134
62135
62136 /*
62137 * Return a new BigNumber whose value is the integer part of dividing the value of this
62138 * BigNumber by the value of BigNumber(y, b).
62139 */
62140 P.dividedToIntegerBy = P.idiv = function (y, b) {
62141 return div(this, new BigNumber(y, b), 0, 1);
62142 };
62143
62144
62145 /*
62146 * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.
62147 *
62148 * If m is present, return the result modulo m.
62149 * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.
62150 * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.
62151 *
62152 * The modular power operation works efficiently when x, n, and m are integers, otherwise it
62153 * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.
62154 *
62155 * n {number|string|BigNumber} The exponent. An integer.
62156 * [m] {number|string|BigNumber} The modulus.
62157 *
62158 * '[BigNumber Error] Exponent not an integer: {n}'
62159 */
62160 P.exponentiatedBy = P.pow = function (n, m) {
62161 var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,
62162 x = this;
62163
62164 n = new BigNumber(n);
62165
62166 // Allow NaN and ±Infinity, but not other non-integers.
62167 if (n.c && !n.isInteger()) {
62168 throw Error
62169 (bignumberError + 'Exponent not an integer: ' + valueOf(n));
62170 }
62171
62172 if (m != null) m = new BigNumber(m);
62173
62174 // Exponent of MAX_SAFE_INTEGER is 15.
62175 nIsBig = n.e > 14;
62176
62177 // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.
62178 if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {
62179
62180 // The sign of the result of pow when x is negative depends on the evenness of n.
62181 // If +n overflows to ±Infinity, the evenness of n would be not be known.
62182 y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n)));
62183 return m ? y.mod(m) : y;
62184 }
62185
62186 nIsNeg = n.s < 0;
62187
62188 if (m) {
62189
62190 // x % m returns NaN if abs(m) is zero, or m is NaN.
62191 if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);
62192
62193 isModExp = !nIsNeg && x.isInteger() && m.isInteger();
62194
62195 if (isModExp) x = x.mod(m);
62196
62197 // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.
62198 // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.
62199 } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0
62200 // [1, 240000000]
62201 ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7
62202 // [80000000000000] [99999750000000]
62203 : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {
62204
62205 // If x is negative and n is odd, k = -0, else k = 0.
62206 k = x.s < 0 && isOdd(n) ? -0 : 0;
62207
62208 // If x >= 1, k = ±Infinity.
62209 if (x.e > -1) k = 1 / k;
62210
62211 // If n is negative return ±0, else return ±Infinity.
62212 return new BigNumber(nIsNeg ? 1 / k : k);
62213
62214 } else if (POW_PRECISION) {
62215
62216 // Truncating each coefficient array to a length of k after each multiplication
62217 // equates to truncating significant digits to POW_PRECISION + [28, 41],
62218 // i.e. there will be a minimum of 28 guard digits retained.
62219 k = mathceil(POW_PRECISION / LOG_BASE + 2);
62220 }
62221
62222 if (nIsBig) {
62223 half = new BigNumber(0.5);
62224 if (nIsNeg) n.s = 1;
62225 nIsOdd = isOdd(n);
62226 } else {
62227 i = Math.abs(+valueOf(n));
62228 nIsOdd = i % 2;
62229 }
62230
62231 y = new BigNumber(ONE);
62232
62233 // Performs 54 loop iterations for n of 9007199254740991.
62234 for (; ;) {
62235
62236 if (nIsOdd) {
62237 y = y.times(x);
62238 if (!y.c) break;
62239
62240 if (k) {
62241 if (y.c.length > k) y.c.length = k;
62242 } else if (isModExp) {
62243 y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));
62244 }
62245 }
62246
62247 if (i) {
62248 i = mathfloor(i / 2);
62249 if (i === 0) break;
62250 nIsOdd = i % 2;
62251 } else {
62252 n = n.times(half);
62253 round(n, n.e + 1, 1);
62254
62255 if (n.e > 14) {
62256 nIsOdd = isOdd(n);
62257 } else {
62258 i = +valueOf(n);
62259 if (i === 0) break;
62260 nIsOdd = i % 2;
62261 }
62262 }
62263
62264 x = x.times(x);
62265
62266 if (k) {
62267 if (x.c && x.c.length > k) x.c.length = k;
62268 } else if (isModExp) {
62269 x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));
62270 }
62271 }
62272
62273 if (isModExp) return y;
62274 if (nIsNeg) y = ONE.div(y);
62275
62276 return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;
62277 };
62278
62279
62280 /*
62281 * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer
62282 * using rounding mode rm, or ROUNDING_MODE if rm is omitted.
62283 *
62284 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
62285 *
62286 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'
62287 */
62288 P.integerValue = function (rm) {
62289 var n = new BigNumber(this);
62290 if (rm == null) rm = ROUNDING_MODE;
62291 else intCheck(rm, 0, 8);
62292 return round(n, n.e + 1, rm);
62293 };
62294
62295
62296 /*
62297 * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),
62298 * otherwise return false.
62299 */
62300 P.isEqualTo = P.eq = function (y, b) {
62301 return compare(this, new BigNumber(y, b)) === 0;
62302 };
62303
62304
62305 /*
62306 * Return true if the value of this BigNumber is a finite number, otherwise return false.
62307 */
62308 P.isFinite = function () {
62309 return !!this.c;
62310 };
62311
62312
62313 /*
62314 * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),
62315 * otherwise return false.
62316 */
62317 P.isGreaterThan = P.gt = function (y, b) {
62318 return compare(this, new BigNumber(y, b)) > 0;
62319 };
62320
62321
62322 /*
62323 * Return true if the value of this BigNumber is greater than or equal to the value of
62324 * BigNumber(y, b), otherwise return false.
62325 */
62326 P.isGreaterThanOrEqualTo = P.gte = function (y, b) {
62327 return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;
62328
62329 };
62330
62331
62332 /*
62333 * Return true if the value of this BigNumber is an integer, otherwise return false.
62334 */
62335 P.isInteger = function () {
62336 return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;
62337 };
62338
62339
62340 /*
62341 * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),
62342 * otherwise return false.
62343 */
62344 P.isLessThan = P.lt = function (y, b) {
62345 return compare(this, new BigNumber(y, b)) < 0;
62346 };
62347
62348
62349 /*
62350 * Return true if the value of this BigNumber is less than or equal to the value of
62351 * BigNumber(y, b), otherwise return false.
62352 */
62353 P.isLessThanOrEqualTo = P.lte = function (y, b) {
62354 return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;
62355 };
62356
62357
62358 /*
62359 * Return true if the value of this BigNumber is NaN, otherwise return false.
62360 */
62361 P.isNaN = function () {
62362 return !this.s;
62363 };
62364
62365
62366 /*
62367 * Return true if the value of this BigNumber is negative, otherwise return false.
62368 */
62369 P.isNegative = function () {
62370 return this.s < 0;
62371 };
62372
62373
62374 /*
62375 * Return true if the value of this BigNumber is positive, otherwise return false.
62376 */
62377 P.isPositive = function () {
62378 return this.s > 0;
62379 };
62380
62381
62382 /*
62383 * Return true if the value of this BigNumber is 0 or -0, otherwise return false.
62384 */
62385 P.isZero = function () {
62386 return !!this.c && this.c[0] == 0;
62387 };
62388
62389
62390 /*
62391 * n - 0 = n
62392 * n - N = N
62393 * n - I = -I
62394 * 0 - n = -n
62395 * 0 - 0 = 0
62396 * 0 - N = N
62397 * 0 - I = -I
62398 * N - n = N
62399 * N - 0 = N
62400 * N - N = N
62401 * N - I = N
62402 * I - n = I
62403 * I - 0 = I
62404 * I - N = N
62405 * I - I = N
62406 *
62407 * Return a new BigNumber whose value is the value of this BigNumber minus the value of
62408 * BigNumber(y, b).
62409 */
62410 P.minus = function (y, b) {
62411 var i, j, t, xLTy,
62412 x = this,
62413 a = x.s;
62414
62415 y = new BigNumber(y, b);
62416 b = y.s;
62417
62418 // Either NaN?
62419 if (!a || !b) return new BigNumber(NaN);
62420
62421 // Signs differ?
62422 if (a != b) {
62423 y.s = -b;
62424 return x.plus(y);
62425 }
62426
62427 var xe = x.e / LOG_BASE,
62428 ye = y.e / LOG_BASE,
62429 xc = x.c,
62430 yc = y.c;
62431
62432 if (!xe || !ye) {
62433
62434 // Either Infinity?
62435 if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);
62436
62437 // Either zero?
62438 if (!xc[0] || !yc[0]) {
62439
62440 // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.
62441 return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :
62442
62443 // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity
62444 ROUNDING_MODE == 3 ? -0 : 0);
62445 }
62446 }
62447
62448 xe = bitFloor(xe);
62449 ye = bitFloor(ye);
62450 xc = xc.slice();
62451
62452 // Determine which is the bigger number.
62453 if (a = xe - ye) {
62454
62455 if (xLTy = a < 0) {
62456 a = -a;
62457 t = xc;
62458 } else {
62459 ye = xe;
62460 t = yc;
62461 }
62462
62463 t.reverse();
62464
62465 // Prepend zeros to equalise exponents.
62466 for (b = a; b--; t.push(0));
62467 t.reverse();
62468 } else {
62469
62470 // Exponents equal. Check digit by digit.
62471 j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;
62472
62473 for (a = b = 0; b < j; b++) {
62474
62475 if (xc[b] != yc[b]) {
62476 xLTy = xc[b] < yc[b];
62477 break;
62478 }
62479 }
62480 }
62481
62482 // x < y? Point xc to the array of the bigger number.
62483 if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s;
62484
62485 b = (j = yc.length) - (i = xc.length);
62486
62487 // Append zeros to xc if shorter.
62488 // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.
62489 if (b > 0) for (; b--; xc[i++] = 0);
62490 b = BASE - 1;
62491
62492 // Subtract yc from xc.
62493 for (; j > a;) {
62494
62495 if (xc[--j] < yc[j]) {
62496 for (i = j; i && !xc[--i]; xc[i] = b);
62497 --xc[i];
62498 xc[j] += BASE;
62499 }
62500
62501 xc[j] -= yc[j];
62502 }
62503
62504 // Remove leading zeros and adjust exponent accordingly.
62505 for (; xc[0] == 0; xc.splice(0, 1), --ye);
62506
62507 // Zero?
62508 if (!xc[0]) {
62509
62510 // Following IEEE 754 (2008) 6.3,
62511 // n - n = +0 but n - n = -0 when rounding towards -Infinity.
62512 y.s = ROUNDING_MODE == 3 ? -1 : 1;
62513 y.c = [y.e = 0];
62514 return y;
62515 }
62516
62517 // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity
62518 // for finite x and y.
62519 return normalise(y, xc, ye);
62520 };
62521
62522
62523 /*
62524 * n % 0 = N
62525 * n % N = N
62526 * n % I = n
62527 * 0 % n = 0
62528 * -0 % n = -0
62529 * 0 % 0 = N
62530 * 0 % N = N
62531 * 0 % I = 0
62532 * N % n = N
62533 * N % 0 = N
62534 * N % N = N
62535 * N % I = N
62536 * I % n = N
62537 * I % 0 = N
62538 * I % N = N
62539 * I % I = N
62540 *
62541 * Return a new BigNumber whose value is the value of this BigNumber modulo the value of
62542 * BigNumber(y, b). The result depends on the value of MODULO_MODE.
62543 */
62544 P.modulo = P.mod = function (y, b) {
62545 var q, s,
62546 x = this;
62547
62548 y = new BigNumber(y, b);
62549
62550 // Return NaN if x is Infinity or NaN, or y is NaN or zero.
62551 if (!x.c || !y.s || y.c && !y.c[0]) {
62552 return new BigNumber(NaN);
62553
62554 // Return x if y is Infinity or x is zero.
62555 } else if (!y.c || x.c && !x.c[0]) {
62556 return new BigNumber(x);
62557 }
62558
62559 if (MODULO_MODE == 9) {
62560
62561 // Euclidian division: q = sign(y) * floor(x / abs(y))
62562 // r = x - qy where 0 <= r < abs(y)
62563 s = y.s;
62564 y.s = 1;
62565 q = div(x, y, 0, 3);
62566 y.s = s;
62567 q.s *= s;
62568 } else {
62569 q = div(x, y, 0, MODULO_MODE);
62570 }
62571
62572 y = x.minus(q.times(y));
62573
62574 // To match JavaScript %, ensure sign of zero is sign of dividend.
62575 if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;
62576
62577 return y;
62578 };
62579
62580
62581 /*
62582 * n * 0 = 0
62583 * n * N = N
62584 * n * I = I
62585 * 0 * n = 0
62586 * 0 * 0 = 0
62587 * 0 * N = N
62588 * 0 * I = N
62589 * N * n = N
62590 * N * 0 = N
62591 * N * N = N
62592 * N * I = N
62593 * I * n = I
62594 * I * 0 = N
62595 * I * N = N
62596 * I * I = I
62597 *
62598 * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value
62599 * of BigNumber(y, b).
62600 */
62601 P.multipliedBy = P.times = function (y, b) {
62602 var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,
62603 base, sqrtBase,
62604 x = this,
62605 xc = x.c,
62606 yc = (y = new BigNumber(y, b)).c;
62607
62608 // Either NaN, ±Infinity or ±0?
62609 if (!xc || !yc || !xc[0] || !yc[0]) {
62610
62611 // Return NaN if either is NaN, or one is 0 and the other is Infinity.
62612 if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {
62613 y.c = y.e = y.s = null;
62614 } else {
62615 y.s *= x.s;
62616
62617 // Return ±Infinity if either is ±Infinity.
62618 if (!xc || !yc) {
62619 y.c = y.e = null;
62620
62621 // Return ±0 if either is ±0.
62622 } else {
62623 y.c = [0];
62624 y.e = 0;
62625 }
62626 }
62627
62628 return y;
62629 }
62630
62631 e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);
62632 y.s *= x.s;
62633 xcL = xc.length;
62634 ycL = yc.length;
62635
62636 // Ensure xc points to longer array and xcL to its length.
62637 if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;
62638
62639 // Initialise the result array with zeros.
62640 for (i = xcL + ycL, zc = []; i--; zc.push(0));
62641
62642 base = BASE;
62643 sqrtBase = SQRT_BASE;
62644
62645 for (i = ycL; --i >= 0;) {
62646 c = 0;
62647 ylo = yc[i] % sqrtBase;
62648 yhi = yc[i] / sqrtBase | 0;
62649
62650 for (k = xcL, j = i + k; j > i;) {
62651 xlo = xc[--k] % sqrtBase;
62652 xhi = xc[k] / sqrtBase | 0;
62653 m = yhi * xlo + xhi * ylo;
62654 xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;
62655 c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;
62656 zc[j--] = xlo % base;
62657 }
62658
62659 zc[j] = c;
62660 }
62661
62662 if (c) {
62663 ++e;
62664 } else {
62665 zc.splice(0, 1);
62666 }
62667
62668 return normalise(y, zc, e);
62669 };
62670
62671
62672 /*
62673 * Return a new BigNumber whose value is the value of this BigNumber negated,
62674 * i.e. multiplied by -1.
62675 */
62676 P.negated = function () {
62677 var x = new BigNumber(this);
62678 x.s = -x.s || null;
62679 return x;
62680 };
62681
62682
62683 /*
62684 * n + 0 = n
62685 * n + N = N
62686 * n + I = I
62687 * 0 + n = n
62688 * 0 + 0 = 0
62689 * 0 + N = N
62690 * 0 + I = I
62691 * N + n = N
62692 * N + 0 = N
62693 * N + N = N
62694 * N + I = N
62695 * I + n = I
62696 * I + 0 = I
62697 * I + N = N
62698 * I + I = I
62699 *
62700 * Return a new BigNumber whose value is the value of this BigNumber plus the value of
62701 * BigNumber(y, b).
62702 */
62703 P.plus = function (y, b) {
62704 var t,
62705 x = this,
62706 a = x.s;
62707
62708 y = new BigNumber(y, b);
62709 b = y.s;
62710
62711 // Either NaN?
62712 if (!a || !b) return new BigNumber(NaN);
62713
62714 // Signs differ?
62715 if (a != b) {
62716 y.s = -b;
62717 return x.minus(y);
62718 }
62719
62720 var xe = x.e / LOG_BASE,
62721 ye = y.e / LOG_BASE,
62722 xc = x.c,
62723 yc = y.c;
62724
62725 if (!xe || !ye) {
62726
62727 // Return ±Infinity if either ±Infinity.
62728 if (!xc || !yc) return new BigNumber(a / 0);
62729
62730 // Either zero?
62731 // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.
62732 if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);
62733 }
62734
62735 xe = bitFloor(xe);
62736 ye = bitFloor(ye);
62737 xc = xc.slice();
62738
62739 // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.
62740 if (a = xe - ye) {
62741 if (a > 0) {
62742 ye = xe;
62743 t = yc;
62744 } else {
62745 a = -a;
62746 t = xc;
62747 }
62748
62749 t.reverse();
62750 for (; a--; t.push(0));
62751 t.reverse();
62752 }
62753
62754 a = xc.length;
62755 b = yc.length;
62756
62757 // Point xc to the longer array, and b to the shorter length.
62758 if (a - b < 0) t = yc, yc = xc, xc = t, b = a;
62759
62760 // Only start adding at yc.length - 1 as the further digits of xc can be ignored.
62761 for (a = 0; b;) {
62762 a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;
62763 xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;
62764 }
62765
62766 if (a) {
62767 xc = [a].concat(xc);
62768 ++ye;
62769 }
62770
62771 // No need to check for zero, as +x + +y != 0 && -x + -y != 0
62772 // ye = MAX_EXP + 1 possible
62773 return normalise(y, xc, ye);
62774 };
62775
62776
62777 /*
62778 * If sd is undefined or null or true or false, return the number of significant digits of
62779 * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.
62780 * If sd is true include integer-part trailing zeros in the count.
62781 *
62782 * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this
62783 * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or
62784 * ROUNDING_MODE if rm is omitted.
62785 *
62786 * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.
62787 * boolean: whether to count integer-part trailing zeros: true or false.
62788 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
62789 *
62790 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'
62791 */
62792 P.precision = P.sd = function (sd, rm) {
62793 var c, n, v,
62794 x = this;
62795
62796 if (sd != null && sd !== !!sd) {
62797 intCheck(sd, 1, MAX);
62798 if (rm == null) rm = ROUNDING_MODE;
62799 else intCheck(rm, 0, 8);
62800
62801 return round(new BigNumber(x), sd, rm);
62802 }
62803
62804 if (!(c = x.c)) return null;
62805 v = c.length - 1;
62806 n = v * LOG_BASE + 1;
62807
62808 if (v = c[v]) {
62809
62810 // Subtract the number of trailing zeros of the last element.
62811 for (; v % 10 == 0; v /= 10, n--);
62812
62813 // Add the number of digits of the first element.
62814 for (v = c[0]; v >= 10; v /= 10, n++);
62815 }
62816
62817 if (sd && x.e + 1 > n) n = x.e + 1;
62818
62819 return n;
62820 };
62821
62822
62823 /*
62824 * Return a new BigNumber whose value is the value of this BigNumber shifted by k places
62825 * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.
62826 *
62827 * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.
62828 *
62829 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'
62830 */
62831 P.shiftedBy = function (k) {
62832 intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);
62833 return this.times('1e' + k);
62834 };
62835
62836
62837 /*
62838 * sqrt(-n) = N
62839 * sqrt(N) = N
62840 * sqrt(-I) = N
62841 * sqrt(I) = I
62842 * sqrt(0) = 0
62843 * sqrt(-0) = -0
62844 *
62845 * Return a new BigNumber whose value is the square root of the value of this BigNumber,
62846 * rounded according to DECIMAL_PLACES and ROUNDING_MODE.
62847 */
62848 P.squareRoot = P.sqrt = function () {
62849 var m, n, r, rep, t,
62850 x = this,
62851 c = x.c,
62852 s = x.s,
62853 e = x.e,
62854 dp = DECIMAL_PLACES + 4,
62855 half = new BigNumber('0.5');
62856
62857 // Negative/NaN/Infinity/zero?
62858 if (s !== 1 || !c || !c[0]) {
62859 return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);
62860 }
62861
62862 // Initial estimate.
62863 s = Math.sqrt(+valueOf(x));
62864
62865 // Math.sqrt underflow/overflow?
62866 // Pass x to Math.sqrt as integer, then adjust the exponent of the result.
62867 if (s == 0 || s == 1 / 0) {
62868 n = coeffToString(c);
62869 if ((n.length + e) % 2 == 0) n += '0';
62870 s = Math.sqrt(+n);
62871 e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);
62872
62873 if (s == 1 / 0) {
62874 n = '5e' + e;
62875 } else {
62876 n = s.toExponential();
62877 n = n.slice(0, n.indexOf('e') + 1) + e;
62878 }
62879
62880 r = new BigNumber(n);
62881 } else {
62882 r = new BigNumber(s + '');
62883 }
62884
62885 // Check for zero.
62886 // r could be zero if MIN_EXP is changed after the this value was created.
62887 // This would cause a division by zero (x/t) and hence Infinity below, which would cause
62888 // coeffToString to throw.
62889 if (r.c[0]) {
62890 e = r.e;
62891 s = e + dp;
62892 if (s < 3) s = 0;
62893
62894 // Newton-Raphson iteration.
62895 for (; ;) {
62896 t = r;
62897 r = half.times(t.plus(div(x, t, dp, 1)));
62898
62899 if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {
62900
62901 // The exponent of r may here be one less than the final result exponent,
62902 // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits
62903 // are indexed correctly.
62904 if (r.e < e) --s;
62905 n = n.slice(s - 3, s + 1);
62906
62907 // The 4th rounding digit may be in error by -1 so if the 4 rounding digits
62908 // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the
62909 // iteration.
62910 if (n == '9999' || !rep && n == '4999') {
62911
62912 // On the first iteration only, check to see if rounding up gives the
62913 // exact result as the nines may infinitely repeat.
62914 if (!rep) {
62915 round(t, t.e + DECIMAL_PLACES + 2, 0);
62916
62917 if (t.times(t).eq(x)) {
62918 r = t;
62919 break;
62920 }
62921 }
62922
62923 dp += 4;
62924 s += 4;
62925 rep = 1;
62926 } else {
62927
62928 // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact
62929 // result. If not, then there are further digits and m will be truthy.
62930 if (!+n || !+n.slice(1) && n.charAt(0) == '5') {
62931
62932 // Truncate to the first rounding digit.
62933 round(r, r.e + DECIMAL_PLACES + 2, 1);
62934 m = !r.times(r).eq(x);
62935 }
62936
62937 break;
62938 }
62939 }
62940 }
62941 }
62942
62943 return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);
62944 };
62945
62946
62947 /*
62948 * Return a string representing the value of this BigNumber in exponential notation and
62949 * rounded using ROUNDING_MODE to dp fixed decimal places.
62950 *
62951 * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.
62952 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
62953 *
62954 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'
62955 */
62956 P.toExponential = function (dp, rm) {
62957 if (dp != null) {
62958 intCheck(dp, 0, MAX);
62959 dp++;
62960 }
62961 return format(this, dp, rm, 1);
62962 };
62963
62964
62965 /*
62966 * Return a string representing the value of this BigNumber in fixed-point notation rounding
62967 * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.
62968 *
62969 * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',
62970 * but e.g. (-0.00001).toFixed(0) is '-0'.
62971 *
62972 * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.
62973 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
62974 *
62975 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'
62976 */
62977 P.toFixed = function (dp, rm) {
62978 if (dp != null) {
62979 intCheck(dp, 0, MAX);
62980 dp = dp + this.e + 1;
62981 }
62982 return format(this, dp, rm);
62983 };
62984
62985
62986 /*
62987 * Return a string representing the value of this BigNumber in fixed-point notation rounded
62988 * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties
62989 * of the format or FORMAT object (see BigNumber.set).
62990 *
62991 * The formatting object may contain some or all of the properties shown below.
62992 *
62993 * FORMAT = {
62994 * prefix: '',
62995 * groupSize: 3,
62996 * secondaryGroupSize: 0,
62997 * groupSeparator: ',',
62998 * decimalSeparator: '.',
62999 * fractionGroupSize: 0,
63000 * fractionGroupSeparator: '\xA0', // non-breaking space
63001 * suffix: ''
63002 * };
63003 *
63004 * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.
63005 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
63006 * [format] {object} Formatting options. See FORMAT pbject above.
63007 *
63008 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'
63009 * '[BigNumber Error] Argument not an object: {format}'
63010 */
63011 P.toFormat = function (dp, rm, format) {
63012 var str,
63013 x = this;
63014
63015 if (format == null) {
63016 if (dp != null && rm && typeof rm == 'object') {
63017 format = rm;
63018 rm = null;
63019 } else if (dp && typeof dp == 'object') {
63020 format = dp;
63021 dp = rm = null;
63022 } else {
63023 format = FORMAT;
63024 }
63025 } else if (typeof format != 'object') {
63026 throw Error
63027 (bignumberError + 'Argument not an object: ' + format);
63028 }
63029
63030 str = x.toFixed(dp, rm);
63031
63032 if (x.c) {
63033 var i,
63034 arr = str.split('.'),
63035 g1 = +format.groupSize,
63036 g2 = +format.secondaryGroupSize,
63037 groupSeparator = format.groupSeparator || '',
63038 intPart = arr[0],
63039 fractionPart = arr[1],
63040 isNeg = x.s < 0,
63041 intDigits = isNeg ? intPart.slice(1) : intPart,
63042 len = intDigits.length;
63043
63044 if (g2) i = g1, g1 = g2, g2 = i, len -= i;
63045
63046 if (g1 > 0 && len > 0) {
63047 i = len % g1 || g1;
63048 intPart = intDigits.substr(0, i);
63049 for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);
63050 if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);
63051 if (isNeg) intPart = '-' + intPart;
63052 }
63053
63054 str = fractionPart
63055 ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)
63056 ? fractionPart.replace(new RegExp('\\d{' + g2 + '}\\B', 'g'),
63057 '$&' + (format.fractionGroupSeparator || ''))
63058 : fractionPart)
63059 : intPart;
63060 }
63061
63062 return (format.prefix || '') + str + (format.suffix || '');
63063 };
63064
63065
63066 /*
63067 * Return an array of two BigNumbers representing the value of this BigNumber as a simple
63068 * fraction with an integer numerator and an integer denominator.
63069 * The denominator will be a positive non-zero value less than or equal to the specified
63070 * maximum denominator. If a maximum denominator is not specified, the denominator will be
63071 * the lowest value necessary to represent the number exactly.
63072 *
63073 * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.
63074 *
63075 * '[BigNumber Error] Argument {not an integer|out of range} : {md}'
63076 */
63077 P.toFraction = function (md) {
63078 var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,
63079 x = this,
63080 xc = x.c;
63081
63082 if (md != null) {
63083 n = new BigNumber(md);
63084
63085 // Throw if md is less than one or is not an integer, unless it is Infinity.
63086 if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {
63087 throw Error
63088 (bignumberError + 'Argument ' +
63089 (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));
63090 }
63091 }
63092
63093 if (!xc) return new BigNumber(x);
63094
63095 d = new BigNumber(ONE);
63096 n1 = d0 = new BigNumber(ONE);
63097 d1 = n0 = new BigNumber(ONE);
63098 s = coeffToString(xc);
63099
63100 // Determine initial denominator.
63101 // d is a power of 10 and the minimum max denominator that specifies the value exactly.
63102 e = d.e = s.length - x.e - 1;
63103 d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];
63104 md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;
63105
63106 exp = MAX_EXP;
63107 MAX_EXP = 1 / 0;
63108 n = new BigNumber(s);
63109
63110 // n0 = d1 = 0
63111 n0.c[0] = 0;
63112
63113 for (; ;) {
63114 q = div(n, d, 0, 1);
63115 d2 = d0.plus(q.times(d1));
63116 if (d2.comparedTo(md) == 1) break;
63117 d0 = d1;
63118 d1 = d2;
63119 n1 = n0.plus(q.times(d2 = n1));
63120 n0 = d2;
63121 d = n.minus(q.times(d2 = d));
63122 n = d2;
63123 }
63124
63125 d2 = div(md.minus(d0), d1, 0, 1);
63126 n0 = n0.plus(d2.times(n1));
63127 d0 = d0.plus(d2.times(d1));
63128 n0.s = n1.s = x.s;
63129 e = e * 2;
63130
63131 // Determine which fraction is closer to x, n0/d0 or n1/d1
63132 r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(
63133 div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];
63134
63135 MAX_EXP = exp;
63136
63137 return r;
63138 };
63139
63140
63141 /*
63142 * Return the value of this BigNumber converted to a number primitive.
63143 */
63144 P.toNumber = function () {
63145 return +valueOf(this);
63146 };
63147
63148
63149 /*
63150 * Return a string representing the value of this BigNumber rounded to sd significant digits
63151 * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits
63152 * necessary to represent the integer part of the value in fixed-point notation, then use
63153 * exponential notation.
63154 *
63155 * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.
63156 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
63157 *
63158 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'
63159 */
63160 P.toPrecision = function (sd, rm) {
63161 if (sd != null) intCheck(sd, 1, MAX);
63162 return format(this, sd, rm, 2);
63163 };
63164
63165
63166 /*
63167 * Return a string representing the value of this BigNumber in base b, or base 10 if b is
63168 * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and
63169 * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent
63170 * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than
63171 * TO_EXP_NEG, return exponential notation.
63172 *
63173 * [b] {number} Integer, 2 to ALPHABET.length inclusive.
63174 *
63175 * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'
63176 */
63177 P.toString = function (b) {
63178 var str,
63179 n = this,
63180 s = n.s,
63181 e = n.e;
63182
63183 // Infinity or NaN?
63184 if (e === null) {
63185 if (s) {
63186 str = 'Infinity';
63187 if (s < 0) str = '-' + str;
63188 } else {
63189 str = 'NaN';
63190 }
63191 } else {
63192 if (b == null) {
63193 str = e <= TO_EXP_NEG || e >= TO_EXP_POS
63194 ? toExponential(coeffToString(n.c), e)
63195 : toFixedPoint(coeffToString(n.c), e, '0');
63196 } else if (b === 10 && alphabetHasNormalDecimalDigits) {
63197 n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);
63198 str = toFixedPoint(coeffToString(n.c), n.e, '0');
63199 } else {
63200 intCheck(b, 2, ALPHABET.length, 'Base');
63201 str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);
63202 }
63203
63204 if (s < 0 && n.c[0]) str = '-' + str;
63205 }
63206
63207 return str;
63208 };
63209
63210
63211 /*
63212 * Return as toString, but do not accept a base argument, and include the minus sign for
63213 * negative zero.
63214 */
63215 P.valueOf = P.toJSON = function () {
63216 return valueOf(this);
63217 };
63218
63219
63220 P._isBigNumber = true;
63221
63222 if (configObject != null) BigNumber.set(configObject);
63223
63224 return BigNumber;
63225 }
63226
63227
63228 // PRIVATE HELPER FUNCTIONS
63229
63230 // These functions don't need access to variables,
63231 // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.
63232
63233
63234 function bitFloor(n) {
63235 var i = n | 0;
63236 return n > 0 || n === i ? i : i - 1;
63237 }
63238
63239
63240 // Return a coefficient array as a string of base 10 digits.
63241 function coeffToString(a) {
63242 var s, z,
63243 i = 1,
63244 j = a.length,
63245 r = a[0] + '';
63246
63247 for (; i < j;) {
63248 s = a[i++] + '';
63249 z = LOG_BASE - s.length;
63250 for (; z--; s = '0' + s);
63251 r += s;
63252 }
63253
63254 // Determine trailing zeros.
63255 for (j = r.length; r.charCodeAt(--j) === 48;);
63256
63257 return r.slice(0, j + 1 || 1);
63258 }
63259
63260
63261 // Compare the value of BigNumbers x and y.
63262 function compare(x, y) {
63263 var a, b,
63264 xc = x.c,
63265 yc = y.c,
63266 i = x.s,
63267 j = y.s,
63268 k = x.e,
63269 l = y.e;
63270
63271 // Either NaN?
63272 if (!i || !j) return null;
63273
63274 a = xc && !xc[0];
63275 b = yc && !yc[0];
63276
63277 // Either zero?
63278 if (a || b) return a ? b ? 0 : -j : i;
63279
63280 // Signs differ?
63281 if (i != j) return i;
63282
63283 a = i < 0;
63284 b = k == l;
63285
63286 // Either Infinity?
63287 if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;
63288
63289 // Compare exponents.
63290 if (!b) return k > l ^ a ? 1 : -1;
63291
63292 j = (k = xc.length) < (l = yc.length) ? k : l;
63293
63294 // Compare digit by digit.
63295 for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;
63296
63297 // Compare lengths.
63298 return k == l ? 0 : k > l ^ a ? 1 : -1;
63299 }
63300
63301
63302 /*
63303 * Check that n is a primitive number, an integer, and in range, otherwise throw.
63304 */
63305 function intCheck(n, min, max, name) {
63306 if (n < min || n > max || n !== mathfloor(n)) {
63307 throw Error
63308 (bignumberError + (name || 'Argument') + (typeof n == 'number'
63309 ? n < min || n > max ? ' out of range: ' : ' not an integer: '
63310 : ' not a primitive number: ') + String(n));
63311 }
63312 }
63313
63314
63315 // Assumes finite n.
63316 function isOdd(n) {
63317 var k = n.c.length - 1;
63318 return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;
63319 }
63320
63321
63322 function toExponential(str, e) {
63323 return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +
63324 (e < 0 ? 'e' : 'e+') + e;
63325 }
63326
63327
63328 function toFixedPoint(str, e, z) {
63329 var len, zs;
63330
63331 // Negative exponent?
63332 if (e < 0) {
63333
63334 // Prepend zeros.
63335 for (zs = z + '.'; ++e; zs += z);
63336 str = zs + str;
63337
63338 // Positive exponent
63339 } else {
63340 len = str.length;
63341
63342 // Append zeros.
63343 if (++e > len) {
63344 for (zs = z, e -= len; --e; zs += z);
63345 str += zs;
63346 } else if (e < len) {
63347 str = str.slice(0, e) + '.' + str.slice(e);
63348 }
63349 }
63350
63351 return str;
63352 }
63353
63354
63355 // EXPORT
63356
63357
63358 BigNumber = clone();
63359 BigNumber['default'] = BigNumber.BigNumber = BigNumber;
63360
63361 // AMD.
63362 if (true) {
63363 !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () { return BigNumber; }).call(exports, __webpack_require__, exports, module),
63364 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
63365
63366 // Node.js and other environments that support module.exports.
63367 } else if (typeof module != 'undefined' && module.exports) {
63368 module.exports = BigNumber;
63369
63370 // Browser.
63371 } else {
63372 if (!globalObject) {
63373 globalObject = typeof self != 'undefined' && self ? self : window;
63374 }
63375
63376 globalObject.BigNumber = BigNumber;
63377 }
63378})(this);
63379
63380
63381/***/ }),
63382/* 387 */
63383/***/ (function(module, exports, __webpack_require__) {
63384
63385"use strict";
63386
63387
63388exports.__esModule = true;
63389
63390var _pagination = __webpack_require__(388);
63391
63392var _pagination2 = _interopRequireDefault(_pagination);
63393
63394function _interopRequireDefault(obj) {
63395 return obj && obj.__esModule ? obj : { default: obj };
63396}
63397
63398exports.default = _pagination2.default;
63399module.exports = exports['default'];
63400
63401/***/ }),
63402/* 388 */
63403/***/ (function(module, exports, __webpack_require__) {
63404
63405"use strict";
63406
63407
63408exports.__esModule = true;
63409
63410var _objectWithoutProperties2 = __webpack_require__(8);
63411
63412var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
63413
63414var _extends2 = __webpack_require__(1);
63415
63416var _extends3 = _interopRequireDefault(_extends2);
63417
63418var _classCallCheck2 = __webpack_require__(2);
63419
63420var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
63421
63422var _possibleConstructorReturn2 = __webpack_require__(3);
63423
63424var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
63425
63426var _inherits2 = __webpack_require__(4);
63427
63428var _inherits3 = _interopRequireDefault(_inherits2);
63429
63430var _class, _temp;
63431
63432var _react = __webpack_require__(0);
63433
63434var _react2 = _interopRequireDefault(_react);
63435
63436var _propTypes = __webpack_require__(5);
63437
63438var _propTypes2 = _interopRequireDefault(_propTypes);
63439
63440var _reactLifecyclesCompat = __webpack_require__(10);
63441
63442var _classnames = __webpack_require__(7);
63443
63444var _classnames2 = _interopRequireDefault(_classnames);
63445
63446var _configProvider = __webpack_require__(9);
63447
63448var _configProvider2 = _interopRequireDefault(_configProvider);
63449
63450var _icon = __webpack_require__(11);
63451
63452var _icon2 = _interopRequireDefault(_icon);
63453
63454var _button = __webpack_require__(17);
63455
63456var _button2 = _interopRequireDefault(_button);
63457
63458var _input = __webpack_require__(18);
63459
63460var _input2 = _interopRequireDefault(_input);
63461
63462var _select = __webpack_require__(29);
63463
63464var _select2 = _interopRequireDefault(_select);
63465
63466var _util = __webpack_require__(6);
63467
63468var _zhCn = __webpack_require__(13);
63469
63470var _zhCn2 = _interopRequireDefault(_zhCn);
63471
63472function _interopRequireDefault(obj) {
63473 return obj && obj.__esModule ? obj : { default: obj };
63474}
63475
63476var Option = _select2.default.Option;
63477
63478var noop = function noop() {};
63479
63480function correctCurrent(currentPage, total, currentPageSize) {
63481 var totalPage = getTotalPage(total, currentPageSize);
63482 return currentPage > totalPage ? totalPage : currentPage;
63483}
63484
63485function getTotalPage(total, currentPageSize) {
63486 var totalPage = Math.ceil(total / currentPageSize);
63487 return totalPage <= 0 ? 1 : totalPage;
63488}
63489
63490/**
63491 * Pagination
63492 */
63493var Pagination = (_temp = _class = function (_Component) {
63494 (0, _inherits3.default)(Pagination, _Component);
63495
63496 function Pagination(props, context) {
63497 (0, _classCallCheck3.default)(this, Pagination);
63498
63499 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
63500
63501 _this.handleJump = function (e) {
63502 var total = _this.props.total;
63503 var _this$state = _this.state,
63504 current = _this$state.current,
63505 currentPageSize = _this$state.currentPageSize,
63506 inputValue = _this$state.inputValue;
63507
63508 var totalPage = getTotalPage(total, currentPageSize);
63509 var value = parseInt(inputValue, 10);
63510
63511 if (isNaN(value)) {
63512 value = '';
63513 } else if (value < 1) {
63514 value = 1;
63515 } else if (value > totalPage) {
63516 value = totalPage;
63517 }
63518
63519 if (value && value !== current) {
63520 _this.onPageItemClick(value, e);
63521 }
63522
63523 _this.setState({
63524 inputValue: ''
63525 });
63526 };
63527
63528 _this.state = {
63529 current: props.defaultCurrent || 1,
63530 currentPageSize: 0,
63531 inputValue: ''
63532 };
63533 return _this;
63534 }
63535
63536 Pagination.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
63537 var current = props.current,
63538 total = props.total,
63539 pageSize = props.pageSize;
63540
63541 var st = {};
63542 var newCurrent = correctCurrent(current || state.current, total, pageSize);
63543 if (state.current !== newCurrent) {
63544 st.current = newCurrent;
63545 }
63546 if (state.currentPageSize !== pageSize) {
63547 st.currentPageSize = pageSize;
63548 }
63549
63550 return st;
63551 };
63552
63553 Pagination.prototype.onPageItemClick = function onPageItemClick(page, e) {
63554 if (!('current' in this.props)) {
63555 this.setState({
63556 current: page
63557 });
63558 }
63559 this.props.onChange(page, e);
63560 };
63561
63562 Pagination.prototype.onInputChange = function onInputChange(value) {
63563 this.setState({
63564 inputValue: value
63565 });
63566 };
63567
63568 Pagination.prototype.onSelectSize = function onSelectSize(pageSize) {
63569 var newState = {
63570 currentPageSize: pageSize
63571 };
63572
63573 var totalPage = getTotalPage(this.props.total, pageSize);
63574 if (this.state.current > totalPage) {
63575 newState.current = totalPage;
63576 }
63577
63578 this.setState(newState);
63579 this.props.onPageSizeChange(pageSize);
63580 };
63581
63582 Pagination.prototype.renderPageTotal = function renderPageTotal() {
63583 var _props = this.props,
63584 prefix = _props.prefix,
63585 total = _props.total,
63586 totalRender = _props.totalRender;
63587 var _state = this.state,
63588 currentPageSize = _state.currentPageSize,
63589 current = _state.current;
63590
63591 var range = [(current - 1) * currentPageSize + 1, current * currentPageSize];
63592
63593 return _react2.default.createElement('div', { className: prefix + 'pagination-total' }, totalRender(total, range));
63594 };
63595
63596 Pagination.prototype.renderPageItem = function renderPageItem(index) {
63597 var _cx;
63598
63599 var _props2 = this.props,
63600 prefix = _props2.prefix,
63601 size = _props2.size,
63602 link = _props2.link,
63603 pageNumberRender = _props2.pageNumberRender,
63604 total = _props2.total,
63605 pageSize = _props2.pageSize,
63606 locale = _props2.locale;
63607 var current = this.state.current;
63608
63609 var totalPage = getTotalPage(total, pageSize);
63610 var isCurrent = parseInt(index, 10) === current;
63611 var props = {
63612 size: size,
63613 className: (0, _classnames2.default)((_cx = {}, _cx[prefix + 'pagination-item'] = true, _cx[prefix + 'current'] = isCurrent, _cx)),
63614 onClick: isCurrent ? noop : this.onPageItemClick.bind(this, index)
63615 };
63616 if (link) {
63617 props.component = 'a';
63618 props.href = link.replace('{page}', index);
63619 }
63620
63621 return _react2.default.createElement(_button2.default, (0, _extends3.default)({
63622 'aria-label': _util.str.template(locale.total, {
63623 current: index,
63624 total: totalPage
63625 })
63626 }, props, {
63627 key: index
63628 }), pageNumberRender(index));
63629 };
63630
63631 Pagination.prototype.renderPageFirst = function renderPageFirst(current) {
63632 var _cx2;
63633
63634 var _props3 = this.props,
63635 prefix = _props3.prefix,
63636 size = _props3.size,
63637 shape = _props3.shape,
63638 locale = _props3.locale;
63639
63640 var isFirst = current <= 1;
63641 var props = {
63642 disabled: isFirst,
63643 size: size,
63644 className: (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'pagination-item'] = true, _cx2[prefix + 'prev'] = true, _cx2)),
63645 onClick: this.onPageItemClick.bind(this, current - 1)
63646 };
63647
63648 var icon = _react2.default.createElement(_icon2.default, { type: 'arrow-left', className: prefix + 'pagination-icon-prev' });
63649
63650 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);
63651 };
63652
63653 Pagination.prototype.renderPageLast = function renderPageLast(current, totalPage) {
63654 var _cx3;
63655
63656 var _props4 = this.props,
63657 prefix = _props4.prefix,
63658 size = _props4.size,
63659 shape = _props4.shape,
63660 locale = _props4.locale;
63661
63662 var isLast = current >= totalPage;
63663 var props = {
63664 disabled: isLast,
63665 size: size,
63666 className: (0, _classnames2.default)((_cx3 = {}, _cx3[prefix + 'pagination-item'] = true, _cx3[prefix + 'next'] = true, _cx3)),
63667 onClick: this.onPageItemClick.bind(this, current + 1)
63668 };
63669
63670 var icon = _react2.default.createElement(_icon2.default, { type: 'arrow-right', className: prefix + 'pagination-icon-next' });
63671
63672 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);
63673 };
63674
63675 Pagination.prototype.renderPageEllipsis = function renderPageEllipsis(idx) {
63676 var prefix = this.props.prefix;
63677
63678 return _react2.default.createElement(_icon2.default, {
63679 className: prefix + 'pagination-ellipsis ' + prefix + 'pagination-icon-ellipsis',
63680 type: 'ellipsis',
63681 key: 'ellipsis-' + idx
63682 });
63683 };
63684
63685 Pagination.prototype.renderPageJump = function renderPageJump() {
63686 var _this2 = this;
63687
63688 var _props5 = this.props,
63689 prefix = _props5.prefix,
63690 size = _props5.size,
63691 locale = _props5.locale;
63692 var inputValue = this.state.inputValue;
63693
63694 /* eslint-disable react/jsx-key */
63695
63696 return [_react2.default.createElement('span', { className: prefix + 'pagination-jump-text' }, locale.goTo), _react2.default.createElement(_input2.default, {
63697 className: prefix + 'pagination-jump-input',
63698 type: 'text',
63699 'aria-label': locale.inputAriaLabel,
63700 size: size,
63701 value: inputValue,
63702 onChange: this.onInputChange.bind(this),
63703 onKeyDown: function onKeyDown(e) {
63704 if (e.keyCode === _util.KEYCODE.ENTER) {
63705 _this2.handleJump(e);
63706 }
63707 }
63708 }), _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)];
63709 /* eslint-enable react/jsx-key */
63710 };
63711
63712 Pagination.prototype.renderPageDisplay = function renderPageDisplay(current, totalPage) {
63713 var _props6 = this.props,
63714 prefix = _props6.prefix,
63715 pageNumberRender = _props6.pageNumberRender;
63716
63717 return _react2.default.createElement('span', { className: prefix + 'pagination-display' }, _react2.default.createElement('em', null, pageNumberRender(current)), '/', pageNumberRender(totalPage));
63718 };
63719
63720 Pagination.prototype.renderPageList = function renderPageList(current, totalPage) {
63721 var _props7 = this.props,
63722 prefix = _props7.prefix,
63723 pageShowCount = _props7.pageShowCount;
63724
63725 var pages = [];
63726
63727 if (totalPage <= pageShowCount) {
63728 for (var i = 1; i <= totalPage; i++) {
63729 pages.push(this.renderPageItem(i));
63730 }
63731 } else {
63732 // 除去第一页,最后一页以及当前页,剩下的页数
63733 var othersCount = pageShowCount - 3;
63734 var halfCount = parseInt(othersCount / 2, 10);
63735 var start = void 0,
63736 end = void 0;
63737
63738 pages.push(this.renderPageItem(1));
63739
63740 start = current - halfCount;
63741 end = current + halfCount;
63742 if (start <= 1) {
63743 start = 2;
63744 end = start + othersCount;
63745 }
63746 if (start > 2) {
63747 pages.push(this.renderPageEllipsis(1));
63748 }
63749 if (end >= totalPage - 1) {
63750 end = totalPage - 1;
63751 start = totalPage - 1 - othersCount;
63752 }
63753 for (var j = start; j <= end; j++) {
63754 pages.push(this.renderPageItem(j));
63755 }
63756 if (end < totalPage - 1) {
63757 pages.push(this.renderPageEllipsis(2));
63758 }
63759
63760 pages.push(this.renderPageItem(totalPage));
63761 }
63762
63763 return _react2.default.createElement('div', { className: prefix + 'pagination-list' }, pages);
63764 };
63765
63766 Pagination.prototype.renderPageSizeSelector = function renderPageSizeSelector() {
63767 var _props8 = this.props,
63768 prefix = _props8.prefix,
63769 pageSizeSelector = _props8.pageSizeSelector,
63770 locale = _props8.locale;
63771
63772 var pageSizeSpan = _react2.default.createElement('span', { className: prefix + 'pagination-size-selector-title' }, locale.pageSize);
63773
63774 switch (pageSizeSelector) {
63775 case 'filter':
63776 return _react2.default.createElement('div', { className: prefix + 'pagination-size-selector' }, pageSizeSpan, this.renderPageSizeFilter());
63777 case 'dropdown':
63778 return _react2.default.createElement('div', { className: prefix + 'pagination-size-selector' }, pageSizeSpan, this.renderPageSizeDropdown());
63779 default:
63780 return null;
63781 }
63782 };
63783
63784 Pagination.prototype.renderPageSizeFilter = function renderPageSizeFilter() {
63785 var _this3 = this;
63786
63787 var _props9 = this.props,
63788 prefix = _props9.prefix,
63789 size = _props9.size,
63790 pageSizeList = _props9.pageSizeList;
63791 var currentPageSize = this.state.currentPageSize;
63792
63793 return _react2.default.createElement('div', { className: prefix + 'pagination-size-selector-filter' }, pageSizeList.map(function (item, index) {
63794 var _cx4;
63795
63796 var label = void 0;
63797 var pageSize = void 0;
63798 if (item.value) {
63799 // {label: '', value: 5}
63800 label = item.label;
63801 pageSize = item.value;
63802 } else {
63803 // number
63804 label = pageSize = item;
63805 }
63806 var classes = (0, _classnames2.default)((_cx4 = {}, _cx4[prefix + 'pagination-size-selector-btn'] = true, _cx4[prefix + 'current'] = pageSize === currentPageSize, _cx4));
63807
63808 return _react2.default.createElement(_button2.default, {
63809 key: index,
63810 text: true,
63811 size: size,
63812 className: classes,
63813 onClick: pageSize !== currentPageSize ? _this3.onSelectSize.bind(_this3, pageSize) : null
63814 }, label);
63815 }));
63816 };
63817
63818 Pagination.prototype.renderPageSizeDropdown = function renderPageSizeDropdown() {
63819 var _props10 = this.props,
63820 prefix = _props10.prefix,
63821 size = _props10.size,
63822 pageSizeList = _props10.pageSizeList,
63823 locale = _props10.locale,
63824 popupProps = _props10.popupProps,
63825 selectProps = _props10.selectProps;
63826 var currentPageSize = this.state.currentPageSize;
63827
63828 return _react2.default.createElement(_select2.default, (0, _extends3.default)({
63829 className: prefix + 'pagination-size-selector-dropdown',
63830 popupClassName: prefix + 'pagination-size-selector-popup',
63831 popupProps: popupProps,
63832 'aria-label': locale.selectAriaLabel,
63833 autoWidth: false,
63834 size: size,
63835 value: currentPageSize,
63836 onChange: this.onSelectSize.bind(this)
63837 }, selectProps), pageSizeList.map(function (item, index) {
63838 var label = void 0;
63839 var pageSize = void 0;
63840 if (item.value) {
63841 // {label: '', value: 5}
63842 label = item.label;
63843 pageSize = item.value;
63844 } else {
63845 // number
63846 label = pageSize = item;
63847 }
63848 return _react2.default.createElement(Option, { key: index, value: pageSize }, label);
63849 }));
63850 };
63851
63852 Pagination.prototype.render = function render() {
63853 var _cx5,
63854 _this4 = this;
63855
63856 /* eslint-disable no-unused-vars */
63857 var _props11 = this.props,
63858 prefix = _props11.prefix,
63859 pure = _props11.pure,
63860 rtl = _props11.rtl,
63861 device = _props11.device,
63862 paginationType = _props11.type,
63863 size = _props11.size,
63864 shape = _props11.shape,
63865 className = _props11.className,
63866 total = _props11.total,
63867 totalRender = _props11.totalRender,
63868 pageSize = _props11.pageSize,
63869 pageSizeSelector = _props11.pageSizeSelector,
63870 pageSizeList = _props11.pageSizeList,
63871 pageSizePosition = _props11.pageSizePosition,
63872 useFloatLayout = _props11.useFloatLayout,
63873 onPageSizeChange = _props11.onPageSizeChange,
63874 hideOnlyOnePage = _props11.hideOnlyOnePage,
63875 showJump = _props11.showJump,
63876 locale = _props11.locale,
63877 current = _props11.current,
63878 defaultCurrent = _props11.defaultCurrent,
63879 pageShowCount = _props11.pageShowCount,
63880 pageNumberRender = _props11.pageNumberRender,
63881 link = _props11.link,
63882 onChange = _props11.onChange,
63883 popupProps = _props11.popupProps,
63884 selectProps = _props11.selectProps,
63885 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']);
63886 /* eslint-enable */
63887
63888 var _state2 = this.state,
63889 currentPage = _state2.current,
63890 currentPageSize = _state2.currentPageSize;
63891
63892 var totalPage = getTotalPage(total, currentPageSize);
63893 var pageFirst = this.renderPageFirst(currentPage);
63894 var pageLast = this.renderPageLast(currentPage, totalPage);
63895 var sizeSelector = this.renderPageSizeSelector();
63896 var isStart = pageSizePosition === 'start';
63897
63898 var type = paginationType;
63899
63900 if (device === 'phone' && type === 'normal') {
63901 type = 'simple';
63902 }
63903
63904 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));
63905
63906 if (rtl) {
63907 others.dir = 'rtl';
63908 }
63909
63910 var buildComponent = function buildComponent() {
63911 for (var _len = arguments.length, coms = Array(_len), _key = 0; _key < _len; _key++) {
63912 coms[_key] = arguments[_key];
63913 }
63914
63915 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) {
63916 return com && _react2.default.cloneElement(com, { key: index });
63917 })), !isStart && sizeSelector);
63918 };
63919
63920 switch (type) {
63921 case 'mini':
63922 return buildComponent(pageFirst, pageLast);
63923 case 'simple':
63924 {
63925 var pageDisplay = this.renderPageDisplay(currentPage, totalPage);
63926 return buildComponent(pageFirst, pageDisplay, pageLast);
63927 }
63928 case 'normal':
63929 {
63930 var pageList = this.renderPageList(currentPage, totalPage);
63931 var _pageDisplay = showJump && total > pageSize * pageShowCount ? this.renderPageDisplay(currentPage, totalPage) : null;
63932 var pageJump = showJump && total > pageSize * pageShowCount ? this.renderPageJump(currentPage, totalPage) : null;
63933 return buildComponent.apply(undefined, [pageFirst, pageList, pageLast, _pageDisplay].concat(pageJump));
63934 }
63935 default:
63936 return null;
63937 }
63938 };
63939
63940 return Pagination;
63941}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
63942 prefix: _propTypes2.default.string,
63943 pure: _propTypes2.default.bool,
63944 rtl: _propTypes2.default.bool,
63945 device: _propTypes2.default.oneOf(['desktop', 'tablet', 'phone']),
63946 className: _propTypes2.default.string,
63947 /**
63948 * 自定义国际化文案对象
63949 */
63950 locale: _propTypes2.default.object,
63951 /**
63952 * 分页组件类型
63953 */
63954 type: _propTypes2.default.oneOf(['normal', 'simple', 'mini']),
63955 /**
63956 * 前进后退按钮样式
63957 */
63958 shape: _propTypes2.default.oneOf(['normal', 'arrow-only', 'arrow-prev-only', 'no-border']),
63959 /**
63960 * 分页组件大小
63961 */
63962 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
63963 /**
63964 * (受控)当前页码
63965 */
63966 current: _propTypes2.default.number,
63967 /**
63968 * (非受控)初始页码
63969 */
63970 defaultCurrent: _propTypes2.default.number,
63971 /**
63972 * 页码发生改变时的回调函数
63973 * @param {Number} current 改变后的页码数
63974 * @param {Object} e 点击事件对象
63975 */
63976 onChange: _propTypes2.default.func,
63977 /**
63978 * 总记录数
63979 */
63980 total: _propTypes2.default.number,
63981 /**
63982 * 总数的渲染函数
63983 * @param {Number} total 总数
63984 * @param {Array} range 当前数据在总数中的区间
63985 */
63986 totalRender: _propTypes2.default.func,
63987 /**
63988 * 页码显示的数量,更多的使用...代替
63989 */
63990 pageShowCount: _propTypes2.default.number,
63991 /**
63992 * 一页中的记录数
63993 */
63994 pageSize: _propTypes2.default.number,
63995 /**
63996 * 每页显示选择器类型
63997 */
63998 pageSizeSelector: _propTypes2.default.oneOf([false, 'filter', 'dropdown']),
63999 /**
64000 * 每页显示选择器可选值
64001 */
64002 pageSizeList: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.arrayOf(_propTypes2.default.shape({
64003 label: _propTypes2.default.string,
64004 value: _propTypes2.default.number
64005 }))]),
64006 /**
64007 * 自定义页码渲染函数,函数作用于页码button以及当前页/总页数的数字渲染
64008 * @param {Number} index 分页的页码,从1开始
64009 * @return {ReactNode} 返回渲染结果
64010 */
64011 pageNumberRender: _propTypes2.default.func,
64012 /**
64013 * 每页显示选择器在组件中的位置
64014 */
64015 pageSizePosition: _propTypes2.default.oneOf(['start', 'end']),
64016 /**
64017 * 存在每页显示选择器时是否使用浮动布局
64018 */
64019 useFloatLayout: _propTypes2.default.bool,
64020 /**
64021 * 每页显示记录数量改变时的回调函数
64022 * @param {Number} pageSize 改变后的每页显示记录数
64023 */
64024 onPageSizeChange: _propTypes2.default.func,
64025 /**
64026 * 当分页数为1时,是否隐藏分页器
64027 */
64028 hideOnlyOnePage: _propTypes2.default.bool,
64029 /**
64030 * type 设置为 normal 时,在页码数超过5页后,会显示跳转输入框与按钮,当设置 showJump 为 false 时,不再显示该跳转区域
64031 */
64032 showJump: _propTypes2.default.bool,
64033 /**
64034 * 设置页码按钮的跳转链接,它的值为一个包含 {page} 的模版字符串,如:https://www.taobao.com/{page}
64035 */
64036 link: _propTypes2.default.string,
64037 /**
64038 * 弹层组件属性,透传给Popup
64039 */
64040 popupProps: _propTypes2.default.object,
64041 selectProps: _propTypes2.default.object
64042}), _class.defaultProps = {
64043 prefix: 'next-',
64044 pure: false,
64045 rtl: false,
64046 locale: _zhCn2.default.Pagination,
64047 type: 'normal',
64048 shape: 'normal',
64049 size: 'medium',
64050 defaultCurrent: 1,
64051 onChange: noop,
64052 pageSize: 10,
64053 pageSizeSelector: false,
64054 pageSizeList: [5, 10, 20],
64055 pageSizePosition: 'start',
64056 onPageSizeChange: noop,
64057 useFloatLayout: false,
64058 total: 100,
64059 pageShowCount: 5,
64060 hideOnlyOnePage: false,
64061 showJump: true,
64062 pageNumberRender: function pageNumberRender(index) {
64063 return index;
64064 }
64065}, _temp);
64066Pagination.displayName = 'Pagination';
64067exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Pagination));
64068module.exports = exports['default'];
64069
64070/***/ }),
64071/* 389 */
64072/***/ (function(module, exports, __webpack_require__) {
64073
64074"use strict";
64075
64076
64077exports.__esModule = true;
64078
64079var _extends2 = __webpack_require__(1);
64080
64081var _extends3 = _interopRequireDefault(_extends2);
64082
64083var _objectWithoutProperties2 = __webpack_require__(8);
64084
64085var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
64086
64087var _classCallCheck2 = __webpack_require__(2);
64088
64089var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
64090
64091var _possibleConstructorReturn2 = __webpack_require__(3);
64092
64093var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
64094
64095var _inherits2 = __webpack_require__(4);
64096
64097var _inherits3 = _interopRequireDefault(_inherits2);
64098
64099var _class, _temp;
64100
64101var _react = __webpack_require__(0);
64102
64103var _react2 = _interopRequireDefault(_react);
64104
64105var _propTypes = __webpack_require__(5);
64106
64107var _propTypes2 = _interopRequireDefault(_propTypes);
64108
64109var _classnames = __webpack_require__(7);
64110
64111var _classnames2 = _interopRequireDefault(_classnames);
64112
64113var _configProvider = __webpack_require__(9);
64114
64115var _configProvider2 = _interopRequireDefault(_configProvider);
64116
64117var _util = __webpack_require__(6);
64118
64119function _interopRequireDefault(obj) {
64120 return obj && obj.__esModule ? obj : { default: obj };
64121}
64122
64123/* eslint-disable */
64124
64125/** Paragraph */
64126var Paragraph = (_temp = _class = function (_React$Component) {
64127 (0, _inherits3.default)(Paragraph, _React$Component);
64128
64129 function Paragraph(props) {
64130 (0, _classCallCheck3.default)(this, Paragraph);
64131
64132 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
64133
64134 _util.log.warning('[Paragraph] is deprecated, please use Typography.Paragraph instead!');
64135 return _this;
64136 }
64137
64138 Paragraph.prototype.render = function render() {
64139 var _props = this.props,
64140 prefix = _props.prefix,
64141 className = _props.className,
64142 type = _props.type,
64143 size = _props.size,
64144 rtl = _props.rtl,
64145 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'type', 'size', 'rtl']);
64146
64147 var cls = (0, _classnames2.default)(prefix + 'paragraph', type === 'short' ? prefix + 'paragraph-short' : prefix + 'paragraph-long', size === 'small' ? prefix + 'paragraph-small' : prefix + 'paragraph-medium', className);
64148 if (rtl) {
64149 others.dir = 'rtl';
64150 }
64151
64152 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: cls }), this.props.children);
64153 };
64154
64155 return Paragraph;
64156}(_react2.default.Component), _class.propTypes = {
64157 prefix: _propTypes2.default.string,
64158 /**
64159 * 额外的样式名 会附加到 root dom 上
64160 */
64161 className: _propTypes2.default.string,
64162 /**
64163 * 什么方式展示段落
64164 * @enumdesc 展示所有文本, 展示三行以内(非强制)
64165 */
64166 type: _propTypes2.default.oneOf(['long', 'short']),
64167 /**
64168 * 组件大小。
64169 * @enumdesc 中号, 小号
64170 */
64171 size: _propTypes2.default.oneOf(['medium', 'small']),
64172 rtl: _propTypes2.default.bool
64173}, _class.defaultProps = {
64174 prefix: 'next-',
64175 type: 'long',
64176 size: 'medium'
64177}, _temp);
64178Paragraph.displayName = 'Paragraph';
64179exports.default = _configProvider2.default.config(Paragraph);
64180module.exports = exports['default'];
64181
64182/***/ }),
64183/* 390 */
64184/***/ (function(module, exports, __webpack_require__) {
64185
64186"use strict";
64187
64188
64189exports.__esModule = true;
64190exports.default = undefined;
64191
64192var _extends2 = __webpack_require__(1);
64193
64194var _extends3 = _interopRequireDefault(_extends2);
64195
64196var _objectWithoutProperties2 = __webpack_require__(8);
64197
64198var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
64199
64200var _classCallCheck2 = __webpack_require__(2);
64201
64202var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
64203
64204var _possibleConstructorReturn2 = __webpack_require__(3);
64205
64206var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
64207
64208var _inherits2 = __webpack_require__(4);
64209
64210var _inherits3 = _interopRequireDefault(_inherits2);
64211
64212var _class, _temp;
64213
64214var _react = __webpack_require__(0);
64215
64216var _react2 = _interopRequireDefault(_react);
64217
64218var _propTypes = __webpack_require__(5);
64219
64220var _propTypes2 = _interopRequireDefault(_propTypes);
64221
64222var _progressLine = __webpack_require__(391);
64223
64224var _progressLine2 = _interopRequireDefault(_progressLine);
64225
64226var _progressCircle = __webpack_require__(392);
64227
64228var _progressCircle2 = _interopRequireDefault(_progressCircle);
64229
64230function _interopRequireDefault(obj) {
64231 return obj && obj.__esModule ? obj : { default: obj };
64232}
64233
64234/**
64235 * Progress
64236 */
64237var Progress = (_temp = _class = function (_Component) {
64238 (0, _inherits3.default)(Progress, _Component);
64239
64240 function Progress() {
64241 (0, _classCallCheck3.default)(this, Progress);
64242 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
64243 }
64244
64245 Progress.prototype.render = function render() {
64246 var _props = this.props,
64247 shape = _props.shape,
64248 hasBorder = _props.hasBorder,
64249 others = (0, _objectWithoutProperties3.default)(_props, ['shape', 'hasBorder']);
64250
64251 return shape === 'circle' ? _react2.default.createElement(_progressCircle2.default, others) : _react2.default.createElement(_progressLine2.default, (0, _extends3.default)({}, others, { hasBorder: hasBorder }));
64252 };
64253
64254 return Progress;
64255}(_react.Component), _class.propTypes = {
64256 prefix: _propTypes2.default.string,
64257 /**
64258 * 形态
64259 */
64260 shape: _propTypes2.default.oneOf(['circle', 'line']),
64261 /**
64262 * 尺寸
64263 */
64264 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
64265 /**
64266 * 所占百分比
64267 */
64268 percent: _propTypes2.default.number,
64269 /**
64270 * 进度状态, 显示优先级: color > progressive > state
64271 */
64272 state: _propTypes2.default.oneOf(['normal', 'success', 'error']),
64273 /**
64274 * 是否为色彩阶段变化模式, 显示优先级: color > progressive > state
64275 */
64276 progressive: _propTypes2.default.bool,
64277 /**
64278 * 是否添加 Border(只适用于 Line Progress)
64279 */
64280 hasBorder: _propTypes2.default.bool,
64281 /**
64282 * 文本渲染函数
64283 * @param {Number} percent 当前的进度信息
64284 * @param {Object} option 额外的参数
64285 * @property {Boolean} option.rtl 是否在rtl 模式下渲染
64286 * @return {ReactNode} 返回文本节点
64287 */
64288 textRender: _propTypes2.default.func,
64289 /**
64290 * 进度条颜色, 显示优先级: color > progressive > state
64291 */
64292 color: _propTypes2.default.string,
64293 /**
64294 * 背景色
64295 */
64296 backgroundColor: _propTypes2.default.string,
64297 rtl: _propTypes2.default.bool
64298}, _class.defaultProps = {
64299 prefix: 'next-',
64300 shape: 'line',
64301 state: 'normal',
64302 size: 'medium',
64303 percent: 0,
64304 progressive: false,
64305 hasBorder: false,
64306 textRender: function textRender(percent) {
64307 return Math.floor(percent) + '%';
64308 }
64309}, _class.contextTypes = {
64310 prefix: _propTypes2.default.string
64311}, _temp);
64312Progress.displayName = 'Progress';
64313exports.default = Progress;
64314module.exports = exports['default'];
64315
64316/***/ }),
64317/* 391 */
64318/***/ (function(module, exports, __webpack_require__) {
64319
64320"use strict";
64321
64322
64323exports.__esModule = true;
64324exports.default = undefined;
64325
64326var _extends2 = __webpack_require__(1);
64327
64328var _extends3 = _interopRequireDefault(_extends2);
64329
64330var _objectWithoutProperties2 = __webpack_require__(8);
64331
64332var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
64333
64334var _classCallCheck2 = __webpack_require__(2);
64335
64336var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
64337
64338var _possibleConstructorReturn2 = __webpack_require__(3);
64339
64340var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
64341
64342var _inherits2 = __webpack_require__(4);
64343
64344var _inherits3 = _interopRequireDefault(_inherits2);
64345
64346var _class, _temp;
64347
64348var _react = __webpack_require__(0);
64349
64350var _react2 = _interopRequireDefault(_react);
64351
64352var _propTypes = __webpack_require__(5);
64353
64354var _propTypes2 = _interopRequireDefault(_propTypes);
64355
64356var _classnames = __webpack_require__(7);
64357
64358var _classnames2 = _interopRequireDefault(_classnames);
64359
64360function _interopRequireDefault(obj) {
64361 return obj && obj.__esModule ? obj : { default: obj };
64362}
64363
64364var Line = (_temp = _class = function (_React$PureComponent) {
64365 (0, _inherits3.default)(Line, _React$PureComponent);
64366
64367 function Line() {
64368 (0, _classCallCheck3.default)(this, Line);
64369 return (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.apply(this, arguments));
64370 }
64371
64372 Line.prototype.render = function render() {
64373 var _classNames, _classNames2;
64374
64375 var _props = this.props,
64376 prefix = _props.prefix,
64377 size = _props.size,
64378 state = _props.state,
64379 color = _props.color,
64380 percent = _props.percent,
64381 progressive = _props.progressive,
64382 hasBorder = _props.hasBorder,
64383 textRender = _props.textRender,
64384 className = _props.className,
64385 rtl = _props.rtl,
64386 backgroundColor = _props.backgroundColor,
64387 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'size', 'state', 'color', 'percent', 'progressive', 'hasBorder', 'textRender', 'className', 'rtl', 'backgroundColor']);
64388
64389 var suffixText = textRender(percent, { rtl: rtl });
64390
64391 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));
64392 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));
64393
64394 var lineStyle = {
64395 width: (percent > 100 ? 100 : percent < 0 ? 0 : percent) + '%',
64396 backgroundColor: color
64397 };
64398 var underlayStyle = { backgroundColor: backgroundColor };
64399
64400 return _react2.default.createElement('div', (0, _extends3.default)({
64401 dir: rtl ? 'rtl' : undefined,
64402 role: 'progressbar',
64403 'aria-valuenow': percent,
64404 'aria-valuemin': '0',
64405 'aria-valuemax': '100',
64406 className: wrapCls
64407 }, others), _react2.default.createElement('div', { className: prefix + 'progress-line-container' }, _react2.default.createElement('div', {
64408 className: prefix + 'progress-line-underlay',
64409 style: underlayStyle
64410 }, _react2.default.createElement('div', { className: lineCls, style: lineStyle }))), suffixText ? _react2.default.createElement('div', { className: prefix + 'progress-line-text' }, suffixText) : null);
64411 };
64412
64413 return Line;
64414}(_react2.default.PureComponent), _class.propTypes = {
64415 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
64416 percent: _propTypes2.default.number,
64417 state: _propTypes2.default.oneOf(['normal', 'success', 'error']),
64418 progressive: _propTypes2.default.bool,
64419 hasBorder: _propTypes2.default.bool,
64420 textRender: _propTypes2.default.func,
64421 color: _propTypes2.default.string,
64422 backgroundColor: _propTypes2.default.string,
64423 rtl: _propTypes2.default.bool,
64424 prefix: _propTypes2.default.string,
64425 className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object])
64426}, _temp);
64427exports.default = Line;
64428module.exports = exports['default'];
64429
64430/***/ }),
64431/* 392 */
64432/***/ (function(module, exports, __webpack_require__) {
64433
64434"use strict";
64435
64436
64437exports.__esModule = true;
64438exports.default = undefined;
64439
64440var _extends2 = __webpack_require__(1);
64441
64442var _extends3 = _interopRequireDefault(_extends2);
64443
64444var _objectWithoutProperties2 = __webpack_require__(8);
64445
64446var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
64447
64448var _classCallCheck2 = __webpack_require__(2);
64449
64450var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
64451
64452var _possibleConstructorReturn2 = __webpack_require__(3);
64453
64454var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
64455
64456var _inherits2 = __webpack_require__(4);
64457
64458var _inherits3 = _interopRequireDefault(_inherits2);
64459
64460var _class, _temp;
64461
64462var _react = __webpack_require__(0);
64463
64464var _react2 = _interopRequireDefault(_react);
64465
64466var _propTypes = __webpack_require__(5);
64467
64468var _propTypes2 = _interopRequireDefault(_propTypes);
64469
64470var _classnames = __webpack_require__(7);
64471
64472var _classnames2 = _interopRequireDefault(_classnames);
64473
64474function _interopRequireDefault(obj) {
64475 return obj && obj.__esModule ? obj : { default: obj };
64476}
64477
64478var VIEWBOX_WIDTH = 100; // width of viewBox
64479var HALF_VIEWBOX_WIDTH = VIEWBOX_WIDTH / 2;
64480var DEFAULT_STROKE_WIDTH = 8;
64481
64482var viewBox = '0 0 ' + VIEWBOX_WIDTH + ' ' + VIEWBOX_WIDTH;
64483
64484var Circle = (_temp = _class = function (_Component) {
64485 (0, _inherits3.default)(Circle, _Component);
64486
64487 function Circle(props) {
64488 (0, _classCallCheck3.default)(this, Circle);
64489
64490 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
64491
64492 _this._underlayRefHandler = function (ref) {
64493 _this.underlay = ref;
64494 };
64495
64496 _this._overlayRefHandler = function (ref) {
64497 _this.overlay = ref;
64498 };
64499
64500 _this.state = {
64501 underlayStrokeWidth: DEFAULT_STROKE_WIDTH,
64502 overlayStrokeWidth: DEFAULT_STROKE_WIDTH
64503 };
64504 return _this;
64505 }
64506
64507 Circle.prototype.componentDidMount = function componentDidMount() {
64508 if (this.underlay && this.overlay) {
64509 // eslint-disable-next-line
64510 this.setState({
64511 underlayStrokeWidth: this._getCssValue(this.underlay, 'stroke-width') || DEFAULT_STROKE_WIDTH,
64512 overlayStrokeWidth: this._getCssValue(this.overlay, 'stroke-width') || DEFAULT_STROKE_WIDTH
64513 });
64514 }
64515 };
64516
64517 Circle.prototype._getCssValue = function _getCssValue(dom, name) {
64518 var css = window.getComputedStyle(dom).getPropertyValue(name);
64519 var regExp = /(\d*)px/g;
64520 var result = regExp.exec(css);
64521
64522 return Array.isArray(result) ? Number(result[1]) : 0;
64523 };
64524
64525 Circle.prototype._computeOverlayStrokeDashOffset = function _computeOverlayStrokeDashOffset() {
64526 var _state = this.state,
64527 underlayStrokeWidth = _state.underlayStrokeWidth,
64528 overlayStrokeWidth = _state.overlayStrokeWidth;
64529
64530 var overlayRadius = HALF_VIEWBOX_WIDTH - overlayStrokeWidth / 2 - (underlayStrokeWidth - overlayStrokeWidth) / 2;
64531 var overlayLen = Math.PI * 2 * overlayRadius;
64532 return (VIEWBOX_WIDTH - this.props.percent) / VIEWBOX_WIDTH * overlayLen;
64533 };
64534
64535 Circle.prototype._getPath = function _getPath(radius) {
64536 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;
64537 };
64538
64539 Circle.prototype.render = function render() {
64540 var _classNames, _classNames2;
64541
64542 var _props = this.props,
64543 prefix = _props.prefix,
64544 size = _props.size,
64545 state = _props.state,
64546 percent = _props.percent,
64547 className = _props.className,
64548 textRender = _props.textRender,
64549 progressive = _props.progressive,
64550 color = _props.color,
64551 backgroundColor = _props.backgroundColor,
64552 rtl = _props.rtl,
64553 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'size', 'state', 'percent', 'className', 'textRender', 'progressive', 'color', 'backgroundColor', 'rtl']);
64554 var _state2 = this.state,
64555 underlayStrokeWidth = _state2.underlayStrokeWidth,
64556 overlayStrokeWidth = _state2.overlayStrokeWidth;
64557
64558 // underlay path
64559
64560 var underlayRadius = HALF_VIEWBOX_WIDTH - underlayStrokeWidth / 2;
64561 var underlayPath = this._getPath(underlayRadius);
64562
64563 // overlay path (为居中,减去相对于underlay的宽度)
64564 var overlayRadius = HALF_VIEWBOX_WIDTH - overlayStrokeWidth / 2 - (underlayStrokeWidth - overlayStrokeWidth) / 2;
64565 var overlayPath = this._getPath(overlayRadius);
64566 var overlayLen = Math.PI * 2 * overlayRadius;
64567 var overlayStrokeDasharray = overlayLen + 'px ' + overlayLen + 'px';
64568 var overlayStrokeDashoffset = this._computeOverlayStrokeDashOffset() + 'px';
64569
64570 var suffixText = textRender(percent, { rtl: rtl });
64571
64572 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));
64573
64574 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));
64575
64576 var underlayStyle = { stroke: backgroundColor };
64577
64578 return _react2.default.createElement('div', (0, _extends3.default)({
64579 className: wrapCls,
64580 dir: rtl ? 'rtl' : undefined,
64581 role: 'progressbar',
64582 'aria-valuenow': percent,
64583 'aria-valuemin': '0',
64584 'aria-valuemax': '100'
64585 }, others), _react2.default.createElement('svg', {
64586 className: prefix + 'progress-circle-container',
64587 viewBox: viewBox
64588 }, _react2.default.createElement('path', {
64589 className: prefix + 'progress-circle-underlay',
64590 d: underlayPath,
64591 fillOpacity: '0',
64592 ref: this._underlayRefHandler,
64593 style: underlayStyle
64594 }), _react2.default.createElement('path', {
64595 className: pathCls,
64596 d: overlayPath,
64597 fillOpacity: '0',
64598 strokeDasharray: overlayStrokeDasharray,
64599 strokeDashoffset: overlayStrokeDashoffset,
64600 ref: this._overlayRefHandler,
64601 stroke: color
64602 })), suffixText ? _react2.default.createElement('div', { className: prefix + 'progress-circle-text' }, suffixText) : null);
64603 };
64604
64605 return Circle;
64606}(_react.Component), _class.propTypes = {
64607 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
64608 percent: _propTypes2.default.number,
64609 state: _propTypes2.default.oneOf(['normal', 'success', 'error']),
64610 progressive: _propTypes2.default.bool,
64611 textRender: _propTypes2.default.func,
64612 prefix: _propTypes2.default.string,
64613 className: _propTypes2.default.string,
64614 color: _propTypes2.default.string,
64615 backgroundColor: _propTypes2.default.string,
64616 rtl: _propTypes2.default.bool
64617}, _temp);
64618Circle.displayName = 'Circle';
64619exports.default = Circle;
64620module.exports = exports['default'];
64621
64622/***/ }),
64623/* 393 */
64624/***/ (function(module, exports, __webpack_require__) {
64625
64626"use strict";
64627
64628
64629exports.__esModule = true;
64630
64631var _extends2 = __webpack_require__(1);
64632
64633var _extends3 = _interopRequireDefault(_extends2);
64634
64635var _objectWithoutProperties2 = __webpack_require__(8);
64636
64637var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
64638
64639var _configProvider = __webpack_require__(9);
64640
64641var _configProvider2 = _interopRequireDefault(_configProvider);
64642
64643var _range = __webpack_require__(394);
64644
64645var _range2 = _interopRequireDefault(_range);
64646
64647function _interopRequireDefault(obj) {
64648 return obj && obj.__esModule ? obj : { default: obj };
64649}
64650
64651exports.default = _configProvider2.default.config(_range2.default, {
64652 transform: /* istanbul ignore next */function transform(props, deprecated) {
64653 if ('hasTips' in props) {
64654 deprecated('hasTips', 'hasTip', 'Range');
64655
64656 var _props = props,
64657 hasTips = _props.hasTips,
64658 others = (0, _objectWithoutProperties3.default)(_props, ['hasTips']);
64659
64660 props = (0, _extends3.default)({ hasTip: hasTips }, others);
64661 }
64662
64663 if ('tipFormatter' in props) {
64664 deprecated('tipFormatter', 'tipRender', 'Range');
64665
64666 var _props2 = props,
64667 tipFormatter = _props2.tipFormatter,
64668 _others = (0, _objectWithoutProperties3.default)(_props2, ['tipFormatter']);
64669
64670 props = (0, _extends3.default)({ tipRender: tipFormatter }, _others);
64671 }
64672
64673 return props;
64674 }
64675});
64676module.exports = exports['default'];
64677
64678/***/ }),
64679/* 394 */
64680/***/ (function(module, exports, __webpack_require__) {
64681
64682"use strict";
64683
64684
64685exports.__esModule = true;
64686
64687var _classCallCheck2 = __webpack_require__(2);
64688
64689var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
64690
64691var _possibleConstructorReturn2 = __webpack_require__(3);
64692
64693var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
64694
64695var _inherits2 = __webpack_require__(4);
64696
64697var _inherits3 = _interopRequireDefault(_inherits2);
64698
64699var _extends2 = __webpack_require__(1);
64700
64701var _extends3 = _interopRequireDefault(_extends2);
64702
64703var _class, _temp;
64704
64705var _classnames = __webpack_require__(7);
64706
64707var _classnames2 = _interopRequireDefault(_classnames);
64708
64709var _react = __webpack_require__(0);
64710
64711var _react2 = _interopRequireDefault(_react);
64712
64713var _propTypes = __webpack_require__(5);
64714
64715var _propTypes2 = _interopRequireDefault(_propTypes);
64716
64717var _reactLifecyclesCompat = __webpack_require__(10);
64718
64719var _util = __webpack_require__(6);
64720
64721var _balloon = __webpack_require__(59);
64722
64723var _balloon2 = _interopRequireDefault(_balloon);
64724
64725var _utils = __webpack_require__(41);
64726
64727var _scale = __webpack_require__(395);
64728
64729var _scale2 = _interopRequireDefault(_scale);
64730
64731var _track = __webpack_require__(396);
64732
64733var _track2 = _interopRequireDefault(_track);
64734
64735var _selected = __webpack_require__(397);
64736
64737var _selected2 = _interopRequireDefault(_selected);
64738
64739var _mark = __webpack_require__(398);
64740
64741var _mark2 = _interopRequireDefault(_mark);
64742
64743var _slider = __webpack_require__(399);
64744
64745var _slider2 = _interopRequireDefault(_slider);
64746
64747var _fixedSlider = __webpack_require__(400);
64748
64749var _fixedSlider2 = _interopRequireDefault(_fixedSlider);
64750
64751function _interopRequireDefault(obj) {
64752 return obj && obj.__esModule ? obj : { default: obj };
64753}
64754
64755var Tooltip = _balloon2.default.Tooltip;
64756var noop = _util.func.noop,
64757 bindCtx = _util.func.bindCtx;
64758var pickOthers = _util.obj.pickOthers;
64759
64760function _isMultiple(slider, isFixedWidth) {
64761 return isFixedWidth || slider === 'double';
64762}
64763
64764function LowerSlider(props) {
64765 var hasTip = props.hasTip,
64766 value = props.value,
64767 tipRender = props.tipRender,
64768 slider = props.slider,
64769 tooltipVisible = props.tooltipVisible,
64770 onTooltipVisibleChange = props.onTooltipVisibleChange,
64771 tooltipAnimation = props.tooltipAnimation;
64772
64773 if (_isMultiple(slider)) {
64774 return hasTip ? _react2.default.createElement(Tooltip, {
64775 popupContainer: function popupContainer(target) {
64776 return target.parentNode;
64777 },
64778 popupProps: {
64779 visible: tooltipVisible,
64780 onVisibleChange: onTooltipVisibleChange,
64781 animation: tooltipAnimation,
64782 needAdjust: false
64783 },
64784 trigger: (0, _slider2.default)((0, _extends3.default)({}, props, { value: value[0] })),
64785 align: 't'
64786 }, tipRender('' + value[0])) : (0, _slider2.default)((0, _extends3.default)({}, props, { value: value[0] }));
64787 }
64788 return null;
64789}
64790
64791LowerSlider.propTypes = {
64792 hasTip: _propTypes2.default.bool,
64793 tooltipVisible: _propTypes2.default.bool,
64794 onTooltipVisibleChange: _propTypes2.default.func,
64795 tooltipAnimation: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]),
64796 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
64797 tipRender: _propTypes2.default.func,
64798 slider: _propTypes2.default.oneOf(['single', 'double'])
64799};
64800
64801function UpperSlider(props) {
64802 var newprop = (0, _extends3.default)({}, props);
64803 var hasTip = newprop.hasTip,
64804 value = newprop.value,
64805 tipRender = newprop.tipRender,
64806 slider = newprop.slider,
64807 tooltipVisible = newprop.tooltipVisible,
64808 onTooltipVisibleChange = newprop.onTooltipVisibleChange,
64809 tooltipAnimation = newprop.tooltipAnimation;
64810
64811 if (_isMultiple(slider)) {
64812 delete newprop.onKeyDown;
64813 return hasTip ? _react2.default.createElement(Tooltip, {
64814 popupContainer: function popupContainer(target) {
64815 return target.parentNode;
64816 },
64817 popupProps: {
64818 visible: tooltipVisible,
64819 onVisibleChange: onTooltipVisibleChange,
64820 animation: tooltipAnimation,
64821 needAdjust: false
64822 },
64823 trigger: (0, _slider2.default)((0, _extends3.default)({}, newprop, { value: value[1] })),
64824 align: 't'
64825 }, tipRender(value[1])) : (0, _slider2.default)((0, _extends3.default)({}, newprop, { value: value[1] }));
64826 }
64827 return hasTip ? _react2.default.createElement(Tooltip, {
64828 popupContainer: function popupContainer(target) {
64829 return target.parentNode;
64830 },
64831 popupProps: {
64832 visible: tooltipVisible,
64833 onVisibleChange: onTooltipVisibleChange,
64834 animation: tooltipAnimation,
64835 needAdjust: false
64836 },
64837 animation: {
64838 in: 'fadeInUp',
64839 out: 'fadeOutDown'
64840 },
64841 trigger: (0, _slider2.default)(newprop),
64842 align: 't'
64843 }, tipRender(value)) : (0, _slider2.default)(newprop);
64844}
64845
64846UpperSlider.propTypes = {
64847 hasTip: _propTypes2.default.bool,
64848 tooltipVisible: _propTypes2.default.bool,
64849 onTooltipVisibleChange: _propTypes2.default.func,
64850 tooltipAnimation: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]),
64851 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
64852 tipRender: _propTypes2.default.func,
64853 slider: _propTypes2.default.oneOf(['single', 'double'])
64854};
64855
64856function pauseEvent(e) {
64857 e.stopPropagation();
64858 e.preventDefault();
64859}
64860
64861/** Range */
64862var Range = (_temp = _class = function (_React$Component) {
64863 (0, _inherits3.default)(Range, _React$Component);
64864
64865 function Range(props) {
64866 (0, _classCallCheck3.default)(this, Range);
64867
64868 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
64869
64870 var min = props.min;
64871
64872 var initialValue = _isMultiple(props.slider) ? [min, min] : min;
64873 var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;
64874 var value = props.value !== undefined ? props.value : defaultValue;
64875
64876 _this.state = {
64877 value: value,
64878 tempValue: value,
64879 hasMovingClass: false,
64880 lowerTooltipVisible: false,
64881 upperTooltipVisible: false,
64882 tooltipAnimation: true
64883 };
64884
64885 bindCtx(_this, ['handleLowerTooltipVisibleChange', 'handleUpperTooltipVisibleChange', 'onKeyDown']);
64886 return _this;
64887 }
64888
64889 Range.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
64890 if ('value' in props) {
64891 var min = props.min,
64892 slider = props.slider,
64893 value = props.value;
64894 var hasMovingClass = state.hasMovingClass;
64895
64896 var newState = {
64897 value: value
64898 };
64899
64900 if (value === undefined) {
64901 newState.value = _isMultiple(slider) ? [min, min] : min;
64902 }
64903
64904 if (!hasMovingClass) {
64905 newState.tempValue = newState.value;
64906 }
64907
64908 return newState;
64909 }
64910 return null;
64911 };
64912
64913 Range.prototype._marksToScales = function _marksToScales(marks) {
64914 var result = [];
64915 if (Object.prototype.toString.call(marks) === '[object Object]') {
64916 for (var key in marks) {
64917 if (Object.hasOwnProperty.call(marks, key)) {
64918 result.push(parseInt(key));
64919 }
64920 }
64921 } else {
64922 result = marks;
64923 }
64924 return result;
64925 };
64926
64927 Range.prototype._calcScales = function _calcScales() {
64928 var _props = this.props,
64929 min = _props.min,
64930 max = _props.max,
64931 marks = _props.marks;
64932
64933 var scales = this._marksToScales(marks);
64934
64935 if (scales !== false) {
64936 if (Array.isArray(scales)) {
64937 return scales;
64938 } else {
64939 var pace = (max - min) / scales;
64940 var result = [];
64941
64942 result.push(min);
64943 for (var i = 1; i < scales; i++) {
64944 result.push(min + i * pace);
64945 }
64946 result.push(max);
64947 return result;
64948 }
64949 } else {
64950 return [];
64951 }
64952 };
64953
64954 Range.prototype._calcMarks = function _calcMarks() {
64955 var _props2 = this.props,
64956 min = _props2.min,
64957 max = _props2.max,
64958 marks = _props2.marks;
64959
64960 var result = {};
64961
64962 if (Array.isArray(marks)) {
64963 marks.forEach(function (m) {
64964 result[m] = m.toString();
64965 });
64966 } else if (typeof marks === 'number') {
64967 var pace = (max - min) / marks;
64968
64969 result[min] = min;
64970 for (var i = 1; i < marks; i++) {
64971 var mark = min + i * pace;
64972 var precision = (0, _utils.getPrecision)(mark);
64973 if (precision > 2) {
64974 precision = 2;
64975 }
64976 mark = mark.toFixed(precision);
64977 result[mark] = mark;
64978 }
64979 result[max] = max;
64980 } else {
64981 result = marks;
64982 }
64983 return result;
64984 };
64985
64986 Range.prototype._onMouseDown = function _onMouseDown(e) {
64987 if (e.button === 0) {
64988 this._start(e.pageX);
64989 this._addDocumentMouseEvents();
64990 pauseEvent(e);
64991 }
64992 };
64993
64994 Range.prototype._onTouchStart = function _onTouchStart(e) {
64995 this._start(e.targetTouches[0].pageX);
64996 this._addDocumentTouchEvents();
64997 e.stopPropagation(); // preventDefault() will be ignored: https://www.chromestatus.com/features/5093566007214080
64998 };
64999
65000 Range.prototype.onKeyDown = function onKeyDown(e) {
65001 if (this.props.disabled) return;
65002
65003 if (e.keyCode === _util.KEYCODE.LEFT_ARROW || e.keyCode === _util.KEYCODE.RIGHT_ARROW) {
65004 e.stopPropagation();
65005 e.preventDefault();
65006 var newValue = void 0;
65007 if (e.keyCode === _util.KEYCODE.LEFT_ARROW) {
65008 newValue = this.state.value - this.props.step;
65009 } else {
65010 newValue = this.state.value + this.props.step;
65011 }
65012 if (newValue > this.props.max) {
65013 newValue = this.props.max;
65014 }
65015 if (newValue < this.props.min) {
65016 newValue = this.props.min;
65017 }
65018 if (newValue !== this.state.value) {
65019 this.setState({
65020 value: newValue
65021 });
65022 this.props.onChange(newValue);
65023 }
65024 }
65025 };
65026
65027 Range.prototype._start = function _start(position) {
65028 this.setState({
65029 hasMovingClass: true
65030 });
65031
65032 var tempValue = this.state.tempValue;
65033
65034 var range = this.dom;
65035 var start = _util.dom.getOffset(range).left;
65036 // used in unit test
65037 var width = range.clientWidth;
65038 if (!width) {
65039 if (range.style.width) {
65040 var index = range.style.width.indexOf('px');
65041 if (index !== -1) {
65042 width = Number(range.style.width.slice(0, index));
65043 }
65044 }
65045 }
65046
65047 this._moving = {
65048 start: start,
65049 end: start + width,
65050 startValue: tempValue
65051 };
65052
65053 // change on start
65054 this._onProcess(position, true);
65055 };
65056
65057 Range.prototype._end = function _end() {
65058 var startValue = this._moving.startValue;
65059 var _state = this.state,
65060 tempValue = _state.tempValue,
65061 value = _state.value;
65062
65063 this._moving = null;
65064 this._removeDocumentEvents();
65065 this.setState({
65066 hasMovingClass: false,
65067 lowerTooltipVisible: false,
65068 upperTooltipVisible: false,
65069 tooltipAnimation: true
65070 });
65071
65072 if (!(0, _utils.isEqual)(tempValue, startValue)) {
65073 // Not Controlled
65074 if (!('value' in this.props)) {
65075 this.setState({
65076 value: tempValue
65077 });
65078 } else {
65079 this.setState({
65080 // tooltipVisible: false,
65081 tempValue: value,
65082 value: value
65083 });
65084 }
65085 this.props.onChange(tempValue);
65086 }
65087 };
65088
65089 Range.prototype._move = function _move(e) {
65090 var position = e.type === 'mousemove' ? e.pageX : e.targetTouches[0].pageX;
65091 this._onProcess(position);
65092 };
65093
65094 Range.prototype._onProcess = function _onProcess(position, start) {
65095 var tempValue = this.state.tempValue;
65096
65097 var current = this._positionToCurrent(position); //current 为当前click的value
65098
65099 if (this.isFixedWidth) {
65100 if (start) {
65101 this.lastPosition = current;
65102 }
65103 } else if (start) {
65104 this.lastPosition = current;
65105 if (_isMultiple(this.props.slider)) {
65106 this._moving.dragging = (0, _utils.getDragging)(current, tempValue);
65107 } else {
65108 this._moving.dragging = 'upper';
65109 }
65110
65111 this.setState({
65112 lowerTooltipVisible: this._moving.dragging === 'lower',
65113 upperTooltipVisible: this._moving.dragging === 'upper',
65114 tooltipAnimation: false
65115 });
65116 } else if (this.oldDragging === 'lower' && this._moving.dragging === 'upper') {
65117 this.setState({
65118 upperTooltipVisible: true,
65119 lowerTooltipVisible: false
65120 });
65121 } else if (this.oldDragging === 'upper' && this._moving.dragging === 'lower') {
65122 this.setState({
65123 upperTooltipVisible: false,
65124 lowerTooltipVisible: true
65125 });
65126 }
65127
65128 this.oldDragging = this._moving.dragging;
65129
65130 var nextValue = this._currentToValue(current, tempValue, this.lastPosition, this.isFixedWidth); //计算range的新value,可能是数组,可能是单个值
65131 this.lastPosition = current;
65132
65133 if (!(0, _utils.isEqual)(nextValue, tempValue)) {
65134 this.setState({
65135 tempValue: nextValue
65136 });
65137 this.props.onProcess(nextValue);
65138 }
65139 };
65140
65141 Range.prototype._addDocumentMouseEvents = function _addDocumentMouseEvents() {
65142 this._onMouseMoveListener = _util.events.on(document, 'mousemove', this._move.bind(this));
65143 this._onMouseUpListener = _util.events.on(document, 'mouseup', this._end.bind(this));
65144 };
65145
65146 Range.prototype._addDocumentTouchEvents = function _addDocumentTouchEvents() {
65147 this._onTouchMoveListener = _util.events.on(document, 'touchmove', this._move.bind(this));
65148 this._onTouchEndListener = _util.events.on(document, 'touchend', this._end.bind(this));
65149 };
65150
65151 Range.prototype._removeDocumentEvents = function _removeDocumentEvents() {
65152 if (this._onMouseMoveListener) {
65153 this._onMouseMoveListener.off();
65154 this._onMouseMoveListener = null;
65155 }
65156
65157 if (this._onMouseUpListener) {
65158 this._onMouseUpListener.off();
65159 this._onMouseUpListener = null;
65160 }
65161
65162 if (this._onTouchMoveListener) {
65163 this._onTouchMoveListener.off();
65164 this._onTouchMoveListener = null;
65165 }
65166
65167 if (this._onTouchEndListener) {
65168 this._onTouchEndListener.off();
65169 this._onTouchEndListener = null;
65170 }
65171 };
65172
65173 // position => current (value type)
65174
65175
65176 Range.prototype._positionToCurrent = function _positionToCurrent(position) {
65177 var _moving = this._moving,
65178 start = _moving.start,
65179 end = _moving.end;
65180 var _props3 = this.props,
65181 step = _props3.step,
65182 min = _props3.min,
65183 max = _props3.max,
65184 rtl = _props3.rtl;
65185
65186 if (position < start) {
65187 position = start;
65188 } else if (position > end) {
65189 position = end;
65190 }
65191 var percent = (0, _utils.getPercent)(start, end, position);
65192 percent = rtl ? 100 - percent : percent;
65193 // reset by step
65194 var newValue = parseFloat((Math.round(percent / 100 * (max - min) / step) * step).toFixed((0, _utils.getPrecision)(step)));
65195 var currentValue = (min + newValue).toFixed((0, _utils.getPrecision)(step));
65196
65197 return Number(currentValue);
65198 };
65199
65200 Range.prototype._currentToValue = function _currentToValue(current, preValue, lastPosition, isFixedWidth) {
65201 var dragging = this._moving.dragging;
65202 var _props4 = this.props,
65203 min = _props4.min,
65204 max = _props4.max;
65205
65206 if (!_isMultiple(this.props.slider, isFixedWidth)) {
65207 return current;
65208 } else {
65209 var result = void 0;
65210
65211 var precision = (0, _utils.getPrecision)(this.props.step);
65212 var diff = current - lastPosition;
65213 var newLeft = +(+preValue[0] + diff).toFixed(precision);
65214 var newRight = +(+preValue[1] + diff).toFixed(precision);
65215
65216 var newMaxLeft = +(max - preValue[1] + preValue[0]).toFixed(precision);
65217 var newMinRight = +(min + preValue[1] - preValue[0]).toFixed(precision);
65218
65219 if (isFixedWidth) {
65220 if (newLeft < min) {
65221 result = [min, newMinRight];
65222 } else if (newRight > max) {
65223 result = [newMaxLeft, max];
65224 } else {
65225 result = [newLeft, newRight];
65226 }
65227 } else if (dragging === 'lower') {
65228 if (current > preValue[1]) {
65229 result = [preValue[1], current];
65230 this._moving.dragging = 'upper';
65231 } else {
65232 result = [current, preValue[1]];
65233 }
65234 } else if (dragging === 'upper') {
65235 if (current < preValue[0]) {
65236 result = [current, preValue[0]];
65237 this._moving.dragging = 'lower';
65238 } else {
65239 result = [preValue[0], current];
65240 }
65241 }
65242
65243 return result;
65244 }
65245 };
65246
65247 Range.prototype.handleLowerTooltipVisibleChange = function handleLowerTooltipVisibleChange(visible) {
65248 if (this.state.hasMovingClass) {
65249 return;
65250 }
65251 this.setState({
65252 lowerTooltipVisible: visible
65253 });
65254 };
65255
65256 Range.prototype.handleUpperTooltipVisibleChange = function handleUpperTooltipVisibleChange(visible) {
65257 if (this.state.hasMovingClass) {
65258 return;
65259 }
65260 this.setState({
65261 upperTooltipVisible: visible
65262 });
65263 };
65264
65265 Range.prototype.render = function render() {
65266 var _classNames,
65267 _this2 = this;
65268
65269 var value = this._moving ? this.state.tempValue : this.state.value;
65270
65271 var _props5 = this.props,
65272 prefix = _props5.prefix,
65273 min = _props5.min,
65274 max = _props5.max,
65275 disabled = _props5.disabled,
65276 style = _props5.style,
65277 id = _props5.id,
65278 slider = _props5.slider,
65279 reverse = _props5.reverse,
65280 className = _props5.className,
65281 marks = _props5.marks,
65282 marksPosition = _props5.marksPosition,
65283 hasTip = _props5.hasTip,
65284 tipRender = _props5.tipRender,
65285 fixedWidth = _props5.fixedWidth,
65286 defaultValue = _props5.defaultValue,
65287 tooltipVisible = _props5.tooltipVisible,
65288 rtl = _props5.rtl,
65289 isPreview = _props5.isPreview,
65290 renderPreview = _props5.renderPreview;
65291
65292 var others = pickOthers(Object.keys(Range.propTypes), this.props);
65293
65294 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range'] = true, _classNames.disabled = disabled, _classNames[className] = className, _classNames));
65295
65296 if (Array.isArray(value)) {
65297 value.forEach(function (item, index) {
65298 if (item > max) {
65299 value[index] = max;
65300 }
65301 });
65302 } else if (value > max) {
65303 value = max;
65304 }
65305
65306 var commonProps = {
65307 prefix: prefix,
65308 min: min,
65309 max: max,
65310 value: value,
65311 reverse: reverse,
65312 slider: slider,
65313 hasTip: hasTip,
65314 tipRender: tipRender,
65315 marksPosition: marksPosition,
65316 tooltipVisible: tooltipVisible,
65317 hasMovingClass: this.state.hasMovingClass,
65318 disabled: disabled,
65319 rtl: rtl
65320 };
65321
65322 this.isFixedWidth = fixedWidth && (value ? Array.isArray(value) : defaultValue ? Array.isArray(defaultValue) : false);
65323
65324 if (isPreview) {
65325 var previewCls = (0, _classnames2.default)(className, prefix + 'form-preview');
65326
65327 if ('renderPreview' in this.props) {
65328 return _react2.default.createElement('div', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : 'ltr' }, others, { className: previewCls }), renderPreview(value, this.props));
65329 }
65330
65331 return _react2.default.createElement('p', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : 'ltr' }, others, { className: previewCls }), Array.isArray(value) ? value.join('~') : value);
65332 }
65333
65334 return _react2.default.createElement('div', (0, _extends3.default)({
65335 ref: function ref(dom) {
65336 _this2.dom = dom;
65337 }
65338 }, others, {
65339 style: style,
65340 className: classes,
65341 id: id,
65342 dir: rtl ? 'rtl' : 'ltr',
65343 onMouseDown: disabled ? noop : this._onMouseDown.bind(this),
65344 onTouchStart: disabled ? noop : this._onTouchStart.bind(this)
65345 }), 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, {
65346 hasMovingClass: this.state.hasMovingClass && this._moving && this._moving.dragging === 'lower',
65347 tooltipVisible: tooltipVisible || this.state.lowerTooltipVisible,
65348 onTooltipVisibleChange: this.handleLowerTooltipVisibleChange,
65349 tooltipAnimation: this.state.tooltipAnimation ? {
65350 in: 'expandInUp',
65351 out: 'expandOutDown'
65352 } : false
65353 })), _react2.default.createElement(UpperSlider, (0, _extends3.default)({}, commonProps, {
65354 onKeyDown: this.onKeyDown,
65355 hasMovingClass: this.state.hasMovingClass && this._moving && this._moving.dragging === 'upper',
65356 tooltipVisible: tooltipVisible || this.state.upperTooltipVisible,
65357 onTooltipVisibleChange: this.handleUpperTooltipVisibleChange,
65358 tooltipAnimation: this.state.tooltipAnimation ? {
65359 in: 'expandInUp',
65360 out: 'expandOutDown'
65361 } : false
65362 })))), marks !== false && marksPosition === 'below' ? _react2.default.createElement(_mark2.default, (0, _extends3.default)({}, commonProps, { marks: this._calcMarks() })) : null);
65363 };
65364
65365 return Range;
65366}(_react2.default.Component), _class.contextTypes = {
65367 prefix: _propTypes2.default.string
65368}, _class.propTypes = {
65369 /**
65370 * 样式类名的品牌前缀
65371 */
65372 prefix: _propTypes2.default.string,
65373 /**
65374 * 自定义类名
65375 */
65376 className: _propTypes2.default.string,
65377 /**
65378 * 自定义内敛样式
65379 */
65380 style: _propTypes2.default.object,
65381 /**
65382 * 滑块个数
65383 * @enumdesc 单个, 两个
65384 */
65385 slider: _propTypes2.default.oneOf(['single', 'double']),
65386 /**
65387 * 最小值
65388 */
65389 min: _propTypes2.default.number,
65390 /**
65391 * 最大值
65392 */
65393 max: _propTypes2.default.number,
65394 /**
65395 * 步长,取值必须大于 0,并且可被 (max - min) 整除。
65396 */
65397 step: _propTypes2.default.number,
65398 /**
65399 * 设置当前取值。当 `slider` 为 `single` 时,使用 `Number`,否则用 `[Number, Number]`
65400 */
65401 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65402 tempValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65403 /**
65404 * 设置初始取值。当 `slider` 为 `single` 时,使用 `Number`,否则用 `[Number, Number]`
65405 */
65406 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65407 /**
65408 * 刻度数值显示逻辑(false 代表不显示,array 枚举显示的值,number 代表按 number 平分,object 表示按 key 划分,value 值显示)
65409 */
65410 marks: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.object]),
65411 /**
65412 * marks显示在上方('above')or下方('below')
65413 */
65414 marksPosition: _propTypes2.default.oneOf(['above', 'below']),
65415 /**
65416 * 值为 `true` 时,滑块为禁用状态
65417 */
65418 disabled: _propTypes2.default.bool,
65419 /**
65420 * 当 Range 的值发生改变后,会触发 onChange 事件,并把改变后的值作为参数传入, 如果设置了value, 要配合此函数做受控使用
65421 * @param {String/number} value
65422 */
65423 onChange: _propTypes2.default.func,
65424 /**
65425 * 滑块拖动的时候触发的事件,不建议在这里setState, 一般情况下不需要用, 滑动时有特殊需求时使用
65426 * @param {String/number} value
65427 */
65428 onProcess: _propTypes2.default.func,
65429 /**
65430 * 是否显示 tip
65431 */
65432 hasTip: _propTypes2.default.bool,
65433 /**
65434 * 自定义 tip 显示内容
65435 * @param {Number|String} value 值
65436 * @return {ReactNode} 显示内容
65437 */
65438 tipRender: _propTypes2.default.func,
65439 id: _propTypes2.default.string,
65440 /**
65441 * 选中态反转
65442 */
65443 reverse: _propTypes2.default.bool,
65444 /**
65445 * 是否pure render
65446 */
65447 pure: _propTypes2.default.bool,
65448 /**
65449 * 是否为拖动线段类型,默认slider为double, defaultValue必传且指定区间
65450 */
65451 fixedWidth: _propTypes2.default.bool,
65452 /**
65453 * tooltip是否默认展示
65454 */
65455 tooltipVisible: _propTypes2.default.bool,
65456 /**
65457 * 是否已rtl模式展示
65458 */
65459 rtl: _propTypes2.default.bool,
65460 /**
65461 * 是否为预览态
65462 */
65463 isPreview: _propTypes2.default.bool,
65464 /**
65465 * 预览态模式下渲染的内容
65466 * @param {number} value 评分值
65467 */
65468 renderPreview: _propTypes2.default.func
65469}, _class.defaultProps = {
65470 prefix: 'next-',
65471 slider: 'single',
65472 min: 0,
65473 max: 100,
65474 step: 1,
65475 marks: false,
65476 disabled: false,
65477 fixedWidth: false,
65478 tooltipVisible: false,
65479 hasTip: true,
65480 onChange: noop,
65481 onProcess: noop,
65482 tipRender: function tipRender(value) {
65483 return value;
65484 },
65485 reverse: false,
65486 pure: false,
65487 marksPosition: 'above',
65488 rtl: false,
65489 isPreview: false
65490}, _temp);
65491Range.displayName = 'Range';
65492exports.default = (0, _reactLifecyclesCompat.polyfill)(Range);
65493module.exports = exports['default'];
65494
65495/***/ }),
65496/* 395 */
65497/***/ (function(module, exports, __webpack_require__) {
65498
65499"use strict";
65500
65501
65502exports.__esModule = true;
65503exports.default = undefined;
65504
65505var _classCallCheck2 = __webpack_require__(2);
65506
65507var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
65508
65509var _possibleConstructorReturn2 = __webpack_require__(3);
65510
65511var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
65512
65513var _inherits2 = __webpack_require__(4);
65514
65515var _inherits3 = _interopRequireDefault(_inherits2);
65516
65517var _class, _temp;
65518
65519var _classnames = __webpack_require__(7);
65520
65521var _classnames2 = _interopRequireDefault(_classnames);
65522
65523var _react = __webpack_require__(0);
65524
65525var _react2 = _interopRequireDefault(_react);
65526
65527var _propTypes = __webpack_require__(5);
65528
65529var _propTypes2 = _interopRequireDefault(_propTypes);
65530
65531var _utils = __webpack_require__(41);
65532
65533function _interopRequireDefault(obj) {
65534 return obj && obj.__esModule ? obj : { default: obj };
65535}
65536
65537var Scale = (_temp = _class = function (_React$Component) {
65538 (0, _inherits3.default)(Scale, _React$Component);
65539
65540 function Scale() {
65541 (0, _classCallCheck3.default)(this, Scale);
65542 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
65543 }
65544
65545 Scale.prototype._renderItems = function _renderItems() {
65546 var _props = this.props,
65547 min = _props.min,
65548 max = _props.max,
65549 value = _props.value,
65550 prefix = _props.prefix,
65551 scales = _props.scales,
65552 rtl = _props.rtl;
65553
65554 var items = [];
65555
65556 scales.forEach(function (scale, i) {
65557 var _classNames;
65558
65559 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range-scale-item'] = true, _classNames.activated = (0, _utils.inRange)(scale, value, min), _classNames));
65560 var style = void 0;
65561 if (rtl) {
65562 style = {
65563 right: (0, _utils.getPercent)(min, max, scale) + '%',
65564 left: 'auto'
65565 };
65566 } else {
65567 style = {
65568 left: (0, _utils.getPercent)(min, max, scale) + '%',
65569 right: 'auto'
65570 };
65571 }
65572
65573 items.push(
65574 // "key" is for https://fb.me/react-warning-keys
65575 _react2.default.createElement('span', { className: classes, style: style, key: i }));
65576 });
65577
65578 return items;
65579 };
65580
65581 Scale.prototype.render = function render() {
65582 var _classNames2;
65583
65584 var prefix = this.props.prefix;
65585
65586 var classes = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'range-scale'] = true, _classNames2));
65587 var items = this._renderItems();
65588
65589 return _react2.default.createElement('div', { className: classes }, items);
65590 };
65591
65592 return Scale;
65593}(_react2.default.Component), _class.propTypes = {
65594 min: _propTypes2.default.number,
65595 max: _propTypes2.default.number,
65596 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65597 prefix: _propTypes2.default.string,
65598 scales: _propTypes2.default.arrayOf(_propTypes2.default.number),
65599 rtl: _propTypes2.default.bool
65600}, _class.defaultProps = {
65601 prefix: 'next-',
65602 min: 0,
65603 max: 100,
65604 value: 0,
65605 rtl: false
65606}, _temp);
65607Scale.displayName = 'Scale';
65608exports.default = Scale;
65609module.exports = exports['default'];
65610
65611/***/ }),
65612/* 396 */
65613/***/ (function(module, exports, __webpack_require__) {
65614
65615"use strict";
65616
65617
65618exports.__esModule = true;
65619
65620var _classnames = __webpack_require__(7);
65621
65622var _classnames2 = _interopRequireDefault(_classnames);
65623
65624var _react = __webpack_require__(0);
65625
65626var _react2 = _interopRequireDefault(_react);
65627
65628var _propTypes = __webpack_require__(5);
65629
65630var _propTypes2 = _interopRequireDefault(_propTypes);
65631
65632function _interopRequireDefault(obj) {
65633 return obj && obj.__esModule ? obj : { default: obj };
65634}
65635
65636var Track = function Track(_ref) {
65637 var _classNames;
65638
65639 var prefix = _ref.prefix;
65640
65641 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range-track'] = true, _classNames));
65642 return _react2.default.createElement('div', { className: classes });
65643};
65644
65645Track.propTypes = {
65646 prefix: _propTypes2.default.string
65647};
65648
65649Track.defaultProps = {
65650 prefix: 'next-'
65651};
65652
65653exports.default = Track;
65654module.exports = exports['default'];
65655
65656/***/ }),
65657/* 397 */
65658/***/ (function(module, exports, __webpack_require__) {
65659
65660"use strict";
65661
65662
65663exports.__esModule = true;
65664exports.default = undefined;
65665
65666var _classCallCheck2 = __webpack_require__(2);
65667
65668var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
65669
65670var _possibleConstructorReturn2 = __webpack_require__(3);
65671
65672var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
65673
65674var _inherits2 = __webpack_require__(4);
65675
65676var _inherits3 = _interopRequireDefault(_inherits2);
65677
65678var _class, _temp;
65679
65680var _classnames = __webpack_require__(7);
65681
65682var _classnames2 = _interopRequireDefault(_classnames);
65683
65684var _react = __webpack_require__(0);
65685
65686var _react2 = _interopRequireDefault(_react);
65687
65688var _propTypes = __webpack_require__(5);
65689
65690var _propTypes2 = _interopRequireDefault(_propTypes);
65691
65692var _utils = __webpack_require__(41);
65693
65694function _interopRequireDefault(obj) {
65695 return obj && obj.__esModule ? obj : { default: obj };
65696}
65697
65698var Selected = (_temp = _class = function (_React$Component) {
65699 (0, _inherits3.default)(Selected, _React$Component);
65700
65701 function Selected() {
65702 (0, _classCallCheck3.default)(this, Selected);
65703 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
65704 }
65705
65706 Selected.prototype._getStyle = function _getStyle() {
65707 var _props = this.props,
65708 min = _props.min,
65709 max = _props.max,
65710 reverse = _props.reverse,
65711 rtl = _props.rtl;
65712 var value = this.props.value;
65713
65714 if (!Array.isArray(value)) {
65715 value = [min, value];
65716 }
65717 var width = (value[1] - value[0]) * 100 / (max - min);
65718
65719 var style = void 0;
65720
65721 if (!rtl && !reverse) {
65722 // normal select
65723 style = {
65724 width: width + '%',
65725 left: (0, _utils.getPercent)(min, max, value[0]) + '%'
65726 };
65727 } else if (rtl && !reverse) {
65728 // select in rtl mode
65729 style = {
65730 width: width + '%',
65731 left: (0, _utils.getPercent)(min, max, max + min - value[1]) + '%'
65732 };
65733 } else if (!rtl && reverse) {
65734 // select in reverse mode
65735 style = {
65736 width: 100 - width + '%',
65737 left: (0, _utils.getPercent)(min, max, value[0]) + width + '%'
65738 };
65739 } else {
65740 // select in rtl & reverse mode
65741 style = {
65742 width: 100 - width + '%',
65743 left: (0, _utils.getPercent)(min, max, value[0]) + '%'
65744 };
65745 }
65746
65747 return style;
65748 };
65749
65750 Selected.prototype._getStyleLeft = function _getStyleLeft() {
65751 var _props2 = this.props,
65752 min = _props2.min,
65753 max = _props2.max,
65754 rtl = _props2.rtl;
65755 var value = this.props.value;
65756
65757 if (!Array.isArray(value)) {
65758 value = [min, value];
65759 }
65760
65761 var style = {
65762 width: (0, _utils.getPercent)(min, max, value[0]) + '%',
65763 left: 0
65764 };
65765 if (rtl) {
65766 style.width = 100 - (0, _utils.getPercent)(min, max, value[1]) + '%';
65767 }
65768 return style;
65769 };
65770
65771 Selected.prototype._getStyleRight = function _getStyleRight() {
65772 var _props3 = this.props,
65773 min = _props3.min,
65774 max = _props3.max,
65775 rtl = _props3.rtl;
65776 var value = this.props.value;
65777
65778 if (!Array.isArray(value)) {
65779 value = [min, value];
65780 }
65781 var width = (value[1] - value[0]) * 100 / (max - min);
65782
65783 var style = {
65784 width: 100 - (0, _utils.getPercent)(min, max, value[0]) - width + '%',
65785 left: (0, _utils.getPercent)(min, max, value[0]) + width + '%'
65786 };
65787
65788 if (rtl) {
65789 style = {
65790 width: (0, _utils.getPercent)(min, max, value[0]) + '%',
65791 left: 100 - (0, _utils.getPercent)(min, max, value[0]) + '%'
65792 };
65793 }
65794 return style;
65795 };
65796
65797 Selected.prototype.render = function render() {
65798 var _classNames;
65799
65800 var _props4 = this.props,
65801 prefix = _props4.prefix,
65802 slider = _props4.slider,
65803 reverse = _props4.reverse,
65804 rtl = _props4.rtl;
65805
65806 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range-selected'] = true, _classNames));
65807 var SeletedComps = _react2.default.createElement('div', { className: classes, style: this._getStyle() });
65808
65809 if (slider === 'double' && reverse) {
65810 SeletedComps = _react2.default.createElement('div', null, _react2.default.createElement('div', { className: classes, style: this._getStyleLeft() }), _react2.default.createElement('div', { className: classes, style: this._getStyleRight() }));
65811 }
65812
65813 return SeletedComps;
65814 };
65815
65816 return Selected;
65817}(_react2.default.Component), _class.propTypes = {
65818 min: _propTypes2.default.number,
65819 max: _propTypes2.default.number,
65820 slider: _propTypes2.default.string,
65821 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65822 prefix: _propTypes2.default.string,
65823 reverse: _propTypes2.default.bool,
65824 rtl: _propTypes2.default.bool
65825}, _class.defaultProps = {
65826 prefix: 'next-',
65827 slider: 'single',
65828 min: 0,
65829 max: 100,
65830 value: 0,
65831 reverse: false,
65832 rtl: false
65833}, _temp);
65834Selected.displayName = 'Selected';
65835exports.default = Selected;
65836module.exports = exports['default'];
65837
65838/***/ }),
65839/* 398 */
65840/***/ (function(module, exports, __webpack_require__) {
65841
65842"use strict";
65843
65844
65845exports.__esModule = true;
65846exports.default = undefined;
65847
65848var _classCallCheck2 = __webpack_require__(2);
65849
65850var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
65851
65852var _possibleConstructorReturn2 = __webpack_require__(3);
65853
65854var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
65855
65856var _inherits2 = __webpack_require__(4);
65857
65858var _inherits3 = _interopRequireDefault(_inherits2);
65859
65860var _class, _temp;
65861
65862var _classnames = __webpack_require__(7);
65863
65864var _classnames2 = _interopRequireDefault(_classnames);
65865
65866var _react = __webpack_require__(0);
65867
65868var _react2 = _interopRequireDefault(_react);
65869
65870var _propTypes = __webpack_require__(5);
65871
65872var _propTypes2 = _interopRequireDefault(_propTypes);
65873
65874var _utils = __webpack_require__(41);
65875
65876function _interopRequireDefault(obj) {
65877 return obj && obj.__esModule ? obj : { default: obj };
65878}
65879
65880var Mark = (_temp = _class = function (_React$Component) {
65881 (0, _inherits3.default)(Mark, _React$Component);
65882
65883 function Mark() {
65884 (0, _classCallCheck3.default)(this, Mark);
65885 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
65886 }
65887
65888 Mark.prototype._renderItems = function _renderItems() {
65889 var _props = this.props,
65890 min = _props.min,
65891 max = _props.max,
65892 value = _props.value,
65893 prefix = _props.prefix,
65894 marks = _props.marks,
65895 rtl = _props.rtl;
65896
65897 var items = [];
65898
65899 Object.keys(marks).forEach(function (mark, i) {
65900 var _classNames;
65901
65902 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range-mark-text'] = true, _classNames.activated = (0, _utils.inRange)(mark, value, min), _classNames));
65903 var style = void 0;
65904 if (rtl) {
65905 style = {
65906 right: (0, _utils.getPercent)(min, max, mark) + '%',
65907 left: 'auto'
65908 };
65909 } else {
65910 style = {
65911 left: (0, _utils.getPercent)(min, max, mark) + '%',
65912 right: 'auto'
65913 };
65914 }
65915
65916 items.push(
65917 // "key" is for https://fb.me/react-warning-keys
65918 _react2.default.createElement('span', { className: classes, style: style, key: i }, marks[mark]));
65919 });
65920
65921 return items;
65922 };
65923
65924 Mark.prototype.render = function render() {
65925 var _classNames2;
65926
65927 var _props2 = this.props,
65928 prefix = _props2.prefix,
65929 marksPosition = _props2.marksPosition;
65930
65931 var className = marksPosition === 'above' ? prefix + 'range-mark-above' : prefix + 'range-mark-below';
65932 var classes = (0, _classnames2.default)(className, (_classNames2 = {}, _classNames2[prefix + 'range-mark'] = true, _classNames2));
65933 var items = this._renderItems();
65934
65935 return _react2.default.createElement('div', { className: classes }, items);
65936 };
65937
65938 return Mark;
65939}(_react2.default.Component), _class.propTypes = {
65940 min: _propTypes2.default.number,
65941 max: _propTypes2.default.number,
65942 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65943 prefix: _propTypes2.default.string,
65944 marks: _propTypes2.default.object,
65945 marksPosition: _propTypes2.default.string,
65946 rtl: _propTypes2.default.bool
65947}, _class.defaultProps = {
65948 prefix: 'next-',
65949 min: 0,
65950 max: 100,
65951 value: 0,
65952 marksPosition: '',
65953 rtl: false
65954}, _temp);
65955Mark.displayName = 'Mark';
65956exports.default = Mark;
65957module.exports = exports['default'];
65958
65959/***/ }),
65960/* 399 */
65961/***/ (function(module, exports, __webpack_require__) {
65962
65963"use strict";
65964
65965
65966exports.__esModule = true;
65967
65968var _extends2 = __webpack_require__(1);
65969
65970var _extends3 = _interopRequireDefault(_extends2);
65971
65972var _react = __webpack_require__(0);
65973
65974var _react2 = _interopRequireDefault(_react);
65975
65976var _classnames = __webpack_require__(7);
65977
65978var _classnames2 = _interopRequireDefault(_classnames);
65979
65980var _propTypes = __webpack_require__(5);
65981
65982var _propTypes2 = _interopRequireDefault(_propTypes);
65983
65984var _utils = __webpack_require__(41);
65985
65986function _interopRequireDefault(obj) {
65987 return obj && obj.__esModule ? obj : { default: obj };
65988}
65989
65990function _getProps(min, max, value, rtl) {
65991 return {
65992 style: {
65993 left: rtl ? 100 - (0, _utils.getPercent)(min, max, value) + '%' : (0, _utils.getPercent)(min, max, value) + '%',
65994 zIndex: 100
65995 },
65996 'aria-valuenow': value,
65997 'aria-valuetext': value,
65998 'aria-valuemin': min,
65999 'aria-valuemax': max
66000 };
66001}
66002
66003function Slider(_ref) {
66004 var _classNames;
66005
66006 var prefix = _ref.prefix,
66007 hasMovingClass = _ref.hasMovingClass,
66008 min = _ref.min,
66009 max = _ref.max,
66010 value = _ref.value,
66011 onKeyDown = _ref.onKeyDown,
66012 rtl = _ref.rtl;
66013
66014 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range-slider'] = true, _classNames[prefix + 'range-slider-moving'] = hasMovingClass, _classNames));
66015 return _react2.default.createElement('div', (0, _extends3.default)({
66016 className: classes,
66017 onKeyDown: onKeyDown,
66018 role: 'slider',
66019 tabIndex: 0
66020 }, _getProps(min, max, value, rtl)), _react2.default.createElement('div', { className: prefix + 'range-slider-inner' }));
66021}
66022
66023Slider.propTypes = {
66024 min: _propTypes2.default.number,
66025 max: _propTypes2.default.number,
66026 value: _propTypes2.default.number,
66027 prefix: _propTypes2.default.string,
66028 hasMovingClass: _propTypes2.default.bool,
66029 rtl: _propTypes2.default.bool
66030};
66031
66032Slider.defaultProps = {
66033 prefix: 'next-',
66034 min: 0,
66035 max: 100,
66036 value: 0,
66037 hasMovingClass: false,
66038 rtl: false
66039};
66040
66041exports.default = Slider;
66042module.exports = exports['default'];
66043
66044/***/ }),
66045/* 400 */
66046/***/ (function(module, exports, __webpack_require__) {
66047
66048"use strict";
66049
66050
66051exports.__esModule = true;
66052exports.default = undefined;
66053
66054var _extends2 = __webpack_require__(1);
66055
66056var _extends3 = _interopRequireDefault(_extends2);
66057
66058var _classCallCheck2 = __webpack_require__(2);
66059
66060var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
66061
66062var _possibleConstructorReturn2 = __webpack_require__(3);
66063
66064var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
66065
66066var _inherits2 = __webpack_require__(4);
66067
66068var _inherits3 = _interopRequireDefault(_inherits2);
66069
66070var _class, _temp;
66071
66072var _react = __webpack_require__(0);
66073
66074var _react2 = _interopRequireDefault(_react);
66075
66076var _propTypes = __webpack_require__(5);
66077
66078var _propTypes2 = _interopRequireDefault(_propTypes);
66079
66080var _util = __webpack_require__(6);
66081
66082var _balloon = __webpack_require__(59);
66083
66084var _balloon2 = _interopRequireDefault(_balloon);
66085
66086var _utils = __webpack_require__(41);
66087
66088function _interopRequireDefault(obj) {
66089 return obj && obj.__esModule ? obj : { default: obj };
66090}
66091
66092var Tooltip = _balloon2.default.Tooltip;
66093var noop = _util.func.noop;
66094
66095function _getStyle(min, max, value, rtl) {
66096 if (rtl) {
66097 return {
66098 left: (0, _utils.getPercent)(min, max, max + min - value[1]) + '%',
66099 right: (0, _utils.getPercent)(min, max, value[0]) + '%'
66100 };
66101 }
66102 return {
66103 left: (0, _utils.getPercent)(min, max, value[0]) + '%',
66104 right: 100 - (0, _utils.getPercent)(min, max, value[1]) + '%'
66105 };
66106}
66107
66108function sliderFrag(props) {
66109 var prefix = props.prefix,
66110 min = props.min,
66111 max = props.max,
66112 value = props.value,
66113 disabled = props.disabled,
66114 onMouseEnter = props.onMouseEnter,
66115 onMouseLeave = props.onMouseLeave,
66116 onMouseDown = props.onMouseDown,
66117 rtl = props.rtl;
66118
66119 var activeClass = !disabled && props.hasMovingClass ? prefix + 'range-active' : '';
66120
66121 return _react2.default.createElement('div', {
66122 className: prefix + 'range-frag ' + activeClass,
66123 style: _getStyle(min, max, value, rtl),
66124 onMouseEnter: onMouseEnter,
66125 onMouseLeave: onMouseLeave,
66126 onMouseDown: onMouseDown
66127 }, _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' })));
66128}
66129
66130sliderFrag.propTypes = {
66131 prefix: _propTypes2.default.string,
66132 min: _propTypes2.default.number,
66133 max: _propTypes2.default.number,
66134 hasMovingClass: _propTypes2.default.bool,
66135 onMouseEnter: _propTypes2.default.func,
66136 onMouseLeave: _propTypes2.default.func,
66137 onMouseDown: _propTypes2.default.func,
66138 value: _propTypes2.default.arrayOf(_propTypes2.default.number),
66139 disabled: _propTypes2.default.bool,
66140 rtl: _propTypes2.default.bool
66141};
66142
66143var FixedSlider = (_temp = _class = function (_React$Component) {
66144 (0, _inherits3.default)(FixedSlider, _React$Component);
66145
66146 function FixedSlider(props) {
66147 (0, _classCallCheck3.default)(this, FixedSlider);
66148
66149 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
66150
66151 _this.state = {
66152 hasMovingClass: false,
66153 onTooltipVisibleChange: false,
66154 tooltipAnimation: true
66155 };
66156 return _this;
66157 }
66158
66159 FixedSlider.prototype._onMouseEnter = function _onMouseEnter() {
66160 if (!(this.keyState === 'down')) {
66161 this.keyState = 'enter';
66162 }
66163 this.setState({
66164 hasMovingClass: true
66165 });
66166 };
66167
66168 FixedSlider.prototype._onMouseLeave = function _onMouseLeave() {
66169 if (this.keyState === 'enter') {
66170 this.setState({
66171 hasMovingClass: false
66172 });
66173 }
66174 };
66175
66176 FixedSlider.prototype._onMouseDown = function _onMouseDown() {
66177 this.keyState = 'down';
66178 this.setState({
66179 hasMovingClass: true
66180 });
66181 this._addDocumentEvents();
66182 };
66183
66184 FixedSlider.prototype._onMouseUp = function _onMouseUp() {
66185 if (this.keyState === 'down') {
66186 this.keyState = '';
66187 this._removeDocumentEvents();
66188 this.setState({
66189 hasMovingClass: false
66190 });
66191 }
66192 };
66193
66194 FixedSlider.prototype._addDocumentEvents = function _addDocumentEvents() {
66195 this._onMouseUpListener = _util.events.on(document, 'mouseup', this._onMouseUp.bind(this));
66196 };
66197
66198 FixedSlider.prototype._removeDocumentEvents = function _removeDocumentEvents() {
66199 if (this._onMouseUpListener) {
66200 this._onMouseUpListener.off();
66201 this._onMouseUpListener = null;
66202 }
66203 };
66204
66205 FixedSlider.prototype.render = function render() {
66206 var _props = this.props,
66207 hasTip = _props.hasTip,
66208 value = _props.value,
66209 tipRender = _props.tipRender,
66210 tooltipVisible = _props.tooltipVisible,
66211 hasMovingClass = _props.hasMovingClass;
66212
66213 var addedProps = {
66214 hasMovingClass: hasMovingClass || this.state.hasMovingClass,
66215 onMouseEnter: this._onMouseEnter.bind(this),
66216 onMouseLeave: this._onMouseLeave.bind(this),
66217 onMouseDown: this._onMouseDown.bind(this)
66218 };
66219
66220 return hasTip ? _react2.default.createElement(Tooltip, {
66221 popupContainer: function popupContainer(target) {
66222 return target.parentNode;
66223 },
66224 popupProps: {
66225 visible: tooltipVisible || hasMovingClass,
66226 animation: this.state.tooltipAnimation ? { in: 'expandInUp', out: 'expandOutDown' } : false
66227 },
66228 trigger: sliderFrag((0, _extends3.default)({}, this.props, addedProps)),
66229 align: 't'
66230 }, tipRender(value[0] + '-' + value[1])) : sliderFrag((0, _extends3.default)({}, this.props, addedProps));
66231 };
66232
66233 return FixedSlider;
66234}(_react2.default.Component), _class.propTypes = {
66235 hasTip: _propTypes2.default.bool,
66236 tooltipVisible: _propTypes2.default.bool,
66237 onTooltipVisibleChange: _propTypes2.default.func,
66238 tooltipAnimation: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]),
66239 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
66240 tipRender: _propTypes2.default.func,
66241 disabled: _propTypes2.default.bool,
66242 hasMovingClass: _propTypes2.default.bool,
66243 rtl: _propTypes2.default.bool
66244}, _class.defaultProps = {
66245 disabled: false,
66246 hasTip: true,
66247 onChange: noop,
66248 onProcess: noop,
66249 tipRender: function tipRender(value) {
66250 return value;
66251 },
66252 reverse: false,
66253 rtl: false
66254}, _temp);
66255FixedSlider.displayName = 'FixedSlider';
66256exports.default = FixedSlider;
66257module.exports = exports['default'];
66258
66259/***/ }),
66260/* 401 */
66261/***/ (function(module, exports, __webpack_require__) {
66262
66263"use strict";
66264
66265
66266exports.__esModule = true;
66267
66268var _extends2 = __webpack_require__(1);
66269
66270var _extends3 = _interopRequireDefault(_extends2);
66271
66272var _objectWithoutProperties2 = __webpack_require__(8);
66273
66274var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
66275
66276var _configProvider = __webpack_require__(9);
66277
66278var _configProvider2 = _interopRequireDefault(_configProvider);
66279
66280var _rating = __webpack_require__(402);
66281
66282var _rating2 = _interopRequireDefault(_rating);
66283
66284function _interopRequireDefault(obj) {
66285 return obj && obj.__esModule ? obj : { default: obj };
66286}
66287
66288exports.default = _configProvider2.default.config(_rating2.default, {
66289 transform: /* istanbul ignore next */function transform(props, deprecated) {
66290 if ('type' in props) {
66291 deprecated('type', 'showGrade', 'Rating');
66292
66293 var _props = props,
66294 type = _props.type,
66295 others = (0, _objectWithoutProperties3.default)(_props, ['type']);
66296
66297 props = (0, _extends3.default)({ showGrade: type === 'grade' }, others);
66298 }
66299
66300 var _props2 = props,
66301 disabled = _props2.disabled,
66302 readOnly = _props2.readOnly;
66303
66304 props.disabled = disabled || readOnly;
66305
66306 return props;
66307 }
66308});
66309module.exports = exports['default'];
66310
66311/***/ }),
66312/* 402 */
66313/***/ (function(module, exports, __webpack_require__) {
66314
66315"use strict";
66316
66317
66318exports.__esModule = true;
66319
66320var _extends2 = __webpack_require__(1);
66321
66322var _extends3 = _interopRequireDefault(_extends2);
66323
66324var _classCallCheck2 = __webpack_require__(2);
66325
66326var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
66327
66328var _possibleConstructorReturn2 = __webpack_require__(3);
66329
66330var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
66331
66332var _inherits2 = __webpack_require__(4);
66333
66334var _inherits3 = _interopRequireDefault(_inherits2);
66335
66336var _class, _temp;
66337
66338var _react = __webpack_require__(0);
66339
66340var _react2 = _interopRequireDefault(_react);
66341
66342var _propTypes = __webpack_require__(5);
66343
66344var _propTypes2 = _interopRequireDefault(_propTypes);
66345
66346var _classnames = __webpack_require__(7);
66347
66348var _classnames2 = _interopRequireDefault(_classnames);
66349
66350var _reactLifecyclesCompat = __webpack_require__(10);
66351
66352var _icon = __webpack_require__(11);
66353
66354var _icon2 = _interopRequireDefault(_icon);
66355
66356var _util = __webpack_require__(6);
66357
66358var _zhCn = __webpack_require__(13);
66359
66360var _zhCn2 = _interopRequireDefault(_zhCn);
66361
66362function _interopRequireDefault(obj) {
66363 return obj && obj.__esModule ? obj : { default: obj };
66364}
66365
66366var noop = _util.func.noop,
66367 bindCtx = _util.func.bindCtx;
66368var ENTER = _util.KEYCODE.ENTER,
66369 LEFT = _util.KEYCODE.LEFT,
66370 UP = _util.KEYCODE.UP,
66371 RIGHT = _util.KEYCODE.RIGHT,
66372 DOWN = _util.KEYCODE.DOWN;
66373
66374var supportKeys = [ENTER, LEFT, UP, RIGHT, DOWN];
66375
66376// 评分组件的大小与icon的大小映射关系
66377var ICON_SIZE_MAP = {
66378 small: 'xs',
66379 medium: 'small',
66380 large: 'medium'
66381};
66382
66383/** Rating */
66384var Rating = (_temp = _class = function (_Component) {
66385 (0, _inherits3.default)(Rating, _Component);
66386
66387 Rating.currentValue = function currentValue(min, max, hoverValue, stateValue) {
66388 var value = hoverValue ? hoverValue : stateValue;
66389
66390 value = value >= max ? max : value;
66391 value = value <= min ? min : value;
66392
66393 return value || 0;
66394 };
66395
66396 function Rating(props) {
66397 (0, _classCallCheck3.default)(this, Rating);
66398
66399 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
66400
66401 _this.saveRef = function (ref, i) {
66402 _this['refs-rating-icon-' + i] = ref;
66403 };
66404
66405 _this.state = {
66406 value: 'value' in props ? props.value : props.defaultValue,
66407 hoverValue: 0,
66408 cleanedValue: null,
66409 iconSpace: 0,
66410 iconSize: 0,
66411 clicked: false // 标记组件是否被点击过
66412 };
66413 _this.timer = null;
66414
66415 bindCtx(_this, ['handleClick', 'handleHover', 'handleLeave', 'onKeyDown']);
66416 return _this;
66417 }
66418
66419 Rating.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
66420 var state = {};
66421 if ('value' in nextProps) {
66422 state.value = nextProps.value || 0;
66423 }
66424
66425 if ('disabled' in nextProps || 'readOnly' in nextProps || 'isPreview' in nextProps || 'renderPreview' in nextProps) {
66426 state.disabled = nextProps.disabled || nextProps.readOnly || nextProps.isPreview && !('renderPreview' in nextProps);
66427 }
66428
66429 return state;
66430 };
66431
66432 Rating.prototype.componentDidMount = function componentDidMount() {
66433 this.getRenderResult();
66434 };
66435
66436 Rating.prototype.componentWillUnmount = function componentWillUnmount() {
66437 this.clearTimer();
66438 };
66439
66440 // 清除延时
66441
66442
66443 Rating.prototype.clearTimer = function clearTimer() {
66444 if (this.timer) {
66445 clearTimeout(this.timer);
66446 this.timer = null;
66447 }
66448 };
66449
66450 Rating.prototype.getRenderResult = function getRenderResult() {
66451 var count = this.props.count;
66452 var _state = this.state,
66453 iconSpace = _state.iconSpace,
66454 iconSize = _state.iconSize;
66455
66456 var icon = this['refs-rating-icon-0'];
66457
66458 if (icon && this.underlayNode) {
66459 var newIconSize = icon.offsetWidth;
66460 var newIconSpace = (this.underlayNode.offsetWidth - count * newIconSize) / (count + 1);
66461
66462 if (newIconSize !== iconSize || newIconSpace !== iconSpace) {
66463 this.setState({
66464 iconSpace: newIconSpace,
66465 iconSize: newIconSize
66466 });
66467 }
66468 }
66469 };
66470
66471 Rating.prototype.getValue = function getValue(e) {
66472 // 如定位不准,优先纠正定位
66473 this.getRenderResult();
66474
66475 var _props = this.props,
66476 allowHalf = _props.allowHalf,
66477 count = _props.count,
66478 rtl = _props.rtl;
66479 var _state2 = this.state,
66480 iconSpace = _state2.iconSpace,
66481 iconSize = _state2.iconSize;
66482
66483 var pos = e.pageX - this.underlayNode.getBoundingClientRect().left;
66484 var fullNum = Math.floor(pos / (iconSpace + iconSize));
66485 var surplusNum = (pos - fullNum * (iconSpace + iconSize) - iconSpace) / iconSize;
66486 var value = Number(fullNum) + Number(surplusNum.toFixed(1));
66487 if (value >= count) {
66488 value = count;
66489 } else if (allowHalf) {
66490 var floorValue = Math.floor(value);
66491 if (rtl) {
66492 value = value - 0.5 >= floorValue ? floorValue + 1.5 : floorValue + 1;
66493 } else {
66494 value = value - 0.5 >= floorValue ? floorValue + 1 : floorValue + 0.5;
66495 }
66496 } else {
66497 value = Math.floor(value) + 1;
66498 }
66499
66500 return rtl ? count - value + 1 : value;
66501 };
66502
66503 Rating.prototype.handleHover = function handleHover(e) {
66504 var _this2 = this;
66505
66506 if (this.state.disabled) {
66507 return;
66508 }
66509
66510 var value = this.getValue(e);
66511 var onHoverChange = this.props.onHoverChange;
66512 var cleanedValue = this.state.cleanedValue;
66513
66514 if (cleanedValue !== value) {
66515 this.clearTimer();
66516
66517 this.timer = setTimeout(function () {
66518 _this2.setState({ hoverValue: value, cleanedValue: null }, function () {
66519 onHoverChange(value);
66520 });
66521 }, 0);
66522 }
66523 };
66524
66525 Rating.prototype.handleLeave = function handleLeave() {
66526 var onHoverChange = this.props.onHoverChange;
66527
66528 if (this.state.disabled) {
66529 return;
66530 }
66531
66532 this.clearTimer();
66533
66534 this.setState({
66535 hoverValue: 0,
66536 cleanedValue: null
66537 });
66538 onHoverChange(undefined);
66539 };
66540
66541 Rating.prototype.onKeyDown = function onKeyDown(e) {
66542 if (this.state.disabled) {
66543 return;
66544 }
66545
66546 var _props2 = this.props,
66547 onKeyDown = _props2.onKeyDown,
66548 count = _props2.count;
66549 var disabled = this.state.disabled;
66550
66551 if (disabled || supportKeys.indexOf(e.keyCode) < 0) {
66552 return !onKeyDown || onKeyDown(e);
66553 }
66554
66555 var _state3 = this.state,
66556 hoverValue = _state3.hoverValue,
66557 value = _state3.value;
66558
66559 var changingValue = hoverValue;
66560 if (changingValue === 0) {
66561 changingValue = value;
66562 }
66563
66564 switch (e.keyCode) {
66565 case DOWN:
66566 case RIGHT:
66567 if (changingValue < count) {
66568 changingValue += 1;
66569 } else {
66570 changingValue = 1;
66571 }
66572 this.handleChecked(changingValue);
66573 break;
66574 case UP:
66575 case LEFT:
66576 if (changingValue > 1) {
66577 changingValue -= 1;
66578 } else {
66579 changingValue = count;
66580 }
66581 this.handleChecked(changingValue);
66582 break;
66583 case ENTER:
66584 this.props.onChange(changingValue);
66585 this.setState({
66586 value: changingValue,
66587 hoverValue: changingValue
66588 });
66589 break;
66590 }
66591 return !onKeyDown || onKeyDown(e);
66592 };
66593
66594 Rating.prototype.handleChecked = function handleChecked(index) {
66595 if (this.state.disabled) {
66596 return;
66597 }
66598
66599 this.setState({ hoverValue: index });
66600 };
66601
66602 Rating.prototype.handleClick = function handleClick(e) {
66603 var _this3 = this;
66604
66605 if (this.state.disabled) {
66606 return;
66607 }
66608 var allowClear = this.props.allowClear;
66609 var value = this.state.value;
66610
66611 var newValue = this.getValue(e);
66612 var isReset = false;
66613 if (allowClear) {
66614 isReset = newValue === value;
66615 }
66616 this.handleLeave();
66617 if (newValue < 0) {
66618 return;
66619 }
66620
66621 if (!('value' in this.props)) {
66622 this.setState({ value: isReset ? 0 : newValue, clicked: true });
66623 }
66624
66625 this.props.onChange(isReset ? 0 : newValue);
66626 setTimeout(function () {
66627 _this3.setState({ clicked: false });
66628 }, 100);
66629 this.setState({
66630 cleanedValue: isReset ? newValue : null
66631 });
66632 };
66633
66634 Rating.prototype.getOverlayWidth = function getOverlayWidth() {
66635 var _state4 = this.state,
66636 hoverValue = _state4.hoverValue,
66637 iconSpace = _state4.iconSpace,
66638 iconSize = _state4.iconSize;
66639
66640 if (!iconSpace || !iconSize) {
66641 return 'auto';
66642 }
66643
66644 var value = Rating.currentValue(0, this.props.count, hoverValue, this.state.value);
66645
66646 var floorValue = Math.floor(value);
66647
66648 return iconSize * value + (floorValue + 1) * iconSpace;
66649 };
66650
66651 Rating.prototype.getInfoLeft = function getInfoLeft() {
66652 var _state5 = this.state,
66653 value = _state5.value,
66654 hoverValue = _state5.hoverValue,
66655 iconSpace = _state5.iconSpace,
66656 iconSize = _state5.iconSize;
66657
66658 var infoValue = hoverValue || value;
66659 var ceilValue = Math.ceil(infoValue);
66660
66661 return iconSize * (ceilValue - 1) + ceilValue * iconSpace;
66662 };
66663
66664 Rating.prototype.render = function render() {
66665 var _classNames,
66666 _classNames2,
66667 _classNames3,
66668 _this4 = this;
66669
66670 var _props3 = this.props,
66671 id = _props3.id,
66672 prefix = _props3.prefix,
66673 className = _props3.className,
66674 showGrade = _props3.showGrade,
66675 count = _props3.count,
66676 size = _props3.size,
66677 iconType = _props3.iconType,
66678 strokeMode = _props3.strokeMode,
66679 readAs = _props3.readAs,
66680 rtl = _props3.rtl,
66681 isPreview = _props3.isPreview,
66682 renderPreview = _props3.renderPreview,
66683 locale = _props3.locale;
66684 var disabled = this.state.disabled;
66685
66686 var others = _util.obj.pickOthers(Rating.propTypes, this.props);
66687 var _state6 = this.state,
66688 hoverValue = _state6.hoverValue,
66689 clicked = _state6.clicked;
66690
66691 var underlay = [],
66692 overlay = [];
66693
66694 var enableA11y = !!id;
66695
66696 // 获得Value
66697 var value = Rating.currentValue(0, count, hoverValue, this.state.value);
66698
66699 // icon的sizeMap
66700 var sizeMap = ICON_SIZE_MAP[size];
66701
66702 var _loop = function _loop(i) {
66703 var _classNames4;
66704
66705 var isCurrent = Math.ceil(value - 1) === i;
66706 var iconCls = (0, _classnames2.default)((_classNames4 = {
66707 hover: hoverValue > 0 && isCurrent,
66708 clicked: clicked && isCurrent
66709 }, _classNames4[prefix + 'rating-symbol-icon'] = !iconType, _classNames4));
66710 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 });
66711
66712 var saveRefs = function saveRefs(ref) {
66713 _this4.saveRef(ref, i);
66714 };
66715
66716 underlay.push(_react2.default.createElement('span', { ref: saveRefs, key: 'underlay-' + i, className: prefix + 'rating-icon' }, iconNode));
66717 if (enableA11y) {
66718 overlay.push(_react2.default.createElement('input', {
66719 id: id + '-' + prefix + 'star' + (i + 1),
66720 key: 'input-' + i,
66721 className: prefix + 'sr-only',
66722 'aria-checked': i + 1 === parseInt(hoverValue),
66723 checked: i + 1 === parseInt(hoverValue),
66724 onChange: _this4.handleChecked.bind(_this4, i + 1),
66725 type: 'radio',
66726 name: 'rating'
66727 }));
66728 }
66729
66730 overlay.push(_react2.default.createElement('label', {
66731 key: 'overlay-' + i,
66732 htmlFor: enableA11y ? id + '-' + prefix + 'star' + (i + 1) : null,
66733 className: prefix + 'rating-icon'
66734 }, iconNode, enableA11y ? _react2.default.createElement('span', { className: prefix + 'sr-only' }, readAs(i + 1)) : null));
66735 };
66736
66737 for (var i = 0; i < count; i++) {
66738 _loop(i);
66739 }
66740
66741 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);
66742
66743 var baseCls = (0, _classnames2.default)(prefix + 'rating-base', (_classNames2 = {}, _classNames2[prefix + 'rating-base-disabled'] = disabled, _classNames2));
66744
66745 var previewCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'form-preview'] = true, _classNames3[className] = !!className, _classNames3));
66746
66747 var overlayStyle = {
66748 width: this.getOverlayWidth()
66749 };
66750 var infoStyle = {
66751 left: this.getInfoLeft(),
66752 display: hoverValue ? 'block' : 'none'
66753 };
66754
66755 var finalProps = disabled ? {} : {
66756 onClick: this.handleClick,
66757 onMouseOver: this.handleHover,
66758 onMouseMove: this.handleHover,
66759 onMouseLeave: this.handleLeave
66760 };
66761
66762 if (rtl) {
66763 others.dir = 'rtl';
66764 }
66765
66766 if (isPreview && 'renderPreview' in this.props) {
66767 return _react2.default.createElement('div', (0, _extends3.default)({ id: id }, others, { className: previewCls }), renderPreview(value, this.props));
66768 }
66769
66770 return _react2.default.createElement('div', (0, _extends3.default)({
66771 id: id
66772 }, others, {
66773 className: ratingCls,
66774 onKeyDown: this.onKeyDown,
66775 tabIndex: '0',
66776 role: 'group',
66777 'aria-label': locale.description
66778 }), _react2.default.createElement('div', (0, _extends3.default)({ className: baseCls }, finalProps), _react2.default.createElement('div', { className: prefix + 'rating-underlay', ref: function ref(n) {
66779 return _this4.underlayNode = n;
66780 }, 'aria-hidden': true }, underlay), _react2.default.createElement('div', { className: prefix + 'rating-overlay', style: overlayStyle, onClick: function onClick(e) {
66781 return e.preventDefault();
66782 } }, overlay)), showGrade ? _react2.default.createElement('div', { className: prefix + 'rating-info', style: infoStyle }, readAs(value)) : null);
66783 };
66784
66785 return Rating;
66786}(_react.Component), _class.propTypes = {
66787 prefix: _propTypes2.default.string,
66788 /**
66789 * 默认值
66790 */
66791 defaultValue: _propTypes2.default.number,
66792 /**
66793 * 值
66794 */
66795 value: _propTypes2.default.number,
66796 /**
66797 * 评分的总数
66798 */
66799 count: _propTypes2.default.number,
66800 /**
66801 * 是否显示 grade
66802 */
66803 showGrade: _propTypes2.default.bool,
66804 /**
66805 * 尺寸
66806 */
66807 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
66808 /**
66809 * 是否允许半星评分
66810 */
66811 allowHalf: _propTypes2.default.bool,
66812 /**
66813 * 是否允许再次点击后清除
66814 */
66815 allowClear: _propTypes2.default.bool,
66816 /**
66817 * 用户点击评分时触发的回调
66818 * @param {Number} value 评分值
66819 */
66820 onChange: _propTypes2.default.func,
66821 /**
66822 * 用户hover评分时触发的回调
66823 * @param {Number} value 评分值
66824 */
66825 onHoverChange: _propTypes2.default.func,
66826 /**
66827 * 是否禁用
66828 */
66829 disabled: _propTypes2.default.bool,
66830 /**
66831 * 评分文案生成方法,传入id支持无障碍时,读屏软件可读
66832 */
66833 readAs: _propTypes2.default.func,
66834 // 实验属性: 自定义评分icon
66835 iconType: _propTypes2.default.string,
66836 // 实验属性: 开启 `-webkit-text-stroke` 显示边框颜色,在IE中无效
66837 strokeMode: _propTypes2.default.bool,
66838 className: _propTypes2.default.string,
66839 id: _propTypes2.default.string,
66840 rtl: _propTypes2.default.bool,
66841 /**
66842 * 自定义国际化文案对象
66843 */
66844 locale: _propTypes2.default.object,
66845 /**
66846 * 是否为预览态
66847 */
66848 isPreview: _propTypes2.default.bool,
66849 /**
66850 * 预览态模式下渲染的内容
66851 * @param {number} value 评分值
66852 */
66853 renderPreview: _propTypes2.default.func,
66854 /**
66855 * 是否为只读态,效果上同 disabeld
66856 */
66857 readOnly: _propTypes2.default.bool
66858}, _class.defaultProps = {
66859 prefix: 'next-',
66860 size: 'medium',
66861 disabled: false,
66862 readOnly: false,
66863 isPreview: false,
66864 count: 5,
66865 showGrade: false,
66866 defaultValue: 0,
66867 readAs: function readAs(val) {
66868 return val;
66869 },
66870 allowHalf: false,
66871 allowClear: false,
66872 onChange: noop,
66873 onHoverChange: noop,
66874 locale: _zhCn2.default.Rating
66875}, _temp);
66876Rating.displayName = 'Rating';
66877exports.default = (0, _reactLifecyclesCompat.polyfill)(Rating);
66878module.exports = exports['default'];
66879
66880/***/ }),
66881/* 403 */
66882/***/ (function(module, exports, __webpack_require__) {
66883
66884"use strict";
66885
66886
66887exports.__esModule = true;
66888
66889var _extends2 = __webpack_require__(1);
66890
66891var _extends3 = _interopRequireDefault(_extends2);
66892
66893var _objectWithoutProperties2 = __webpack_require__(8);
66894
66895var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
66896
66897var _classCallCheck2 = __webpack_require__(2);
66898
66899var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
66900
66901var _possibleConstructorReturn2 = __webpack_require__(3);
66902
66903var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
66904
66905var _inherits2 = __webpack_require__(4);
66906
66907var _inherits3 = _interopRequireDefault(_inherits2);
66908
66909var _class, _temp, _initialiseProps;
66910
66911var _react = __webpack_require__(0);
66912
66913var _react2 = _interopRequireDefault(_react);
66914
66915var _propTypes = __webpack_require__(5);
66916
66917var _propTypes2 = _interopRequireDefault(_propTypes);
66918
66919var _classnames = __webpack_require__(7);
66920
66921var _classnames2 = _interopRequireDefault(_classnames);
66922
66923var _reactLifecyclesCompat = __webpack_require__(10);
66924
66925var _input = __webpack_require__(18);
66926
66927var _input2 = _interopRequireDefault(_input);
66928
66929var _select = __webpack_require__(29);
66930
66931var _select2 = _interopRequireDefault(_select);
66932
66933var _button = __webpack_require__(17);
66934
66935var _button2 = _interopRequireDefault(_button);
66936
66937var _icon = __webpack_require__(11);
66938
66939var _icon2 = _interopRequireDefault(_icon);
66940
66941var _util = __webpack_require__(6);
66942
66943var _zhCn = __webpack_require__(13);
66944
66945var _zhCn2 = _interopRequireDefault(_zhCn);
66946
66947function _interopRequireDefault(obj) {
66948 return obj && obj.__esModule ? obj : { default: obj };
66949}
66950
66951var Group = _input2.default.Group;
66952var AutoComplete = _select2.default.AutoComplete;
66953var noop = _util.func.noop;
66954
66955/**
66956 * Search
66957 * @description 输入框部分继承 Select.AutoComplete 的能力,可以直接用AutoComplete 的 api
66958 */
66959
66960var Search = (_temp = _class = function (_React$Component) {
66961 (0, _inherits3.default)(Search, _React$Component);
66962
66963 function Search(props) {
66964 (0, _classCallCheck3.default)(this, Search);
66965
66966 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
66967
66968 _initialiseProps.call(_this);
66969
66970 var value = 'value' in props ? props.value : props.defaultValue;
66971 var filterValue = 'filterValue' in props ? props.filterValue : props.defaultFilterValue;
66972
66973 _this.state = {
66974 value: typeof value === 'undefined' ? '' : value,
66975 filterValue: filterValue
66976 };
66977
66978 _this.highlightKey = null;
66979 return _this;
66980 }
66981
66982 Search.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
66983 var nextState = {};
66984 if ('value' in nextProps && nextProps.value !== prevState.value) {
66985 var value = nextProps.value;
66986 nextState.value = value === undefined || value === null ? '' : nextProps.value;
66987 }
66988
66989 if ('filterValue' in nextProps && nextProps.filterValue !== prevState.filterValue) {
66990 var filterValue = nextProps.filterValue;
66991 nextState.filterValue = filterValue === undefined ? '' : filterValue;
66992 }
66993
66994 if (Object.keys(nextState).length > 0) {
66995 return nextState;
66996 }
66997
66998 return null;
66999 };
67000
67001 Search.prototype.focus = function focus() {
67002 var _inputRef;
67003
67004 (_inputRef = this.inputRef).focus.apply(_inputRef, arguments);
67005 };
67006
67007 Search.prototype.render = function render() {
67008 var _classNames;
67009
67010 var _props = this.props,
67011 shape = _props.shape,
67012 filter = _props.filter,
67013 hasIcon = _props.hasIcon,
67014 disabled = _props.disabled,
67015 placeholder = _props.placeholder,
67016 type = _props.type,
67017 className = _props.className,
67018 style = _props.style,
67019 size = _props.size,
67020 prefix = _props.prefix,
67021 searchText = _props.searchText,
67022 dataSource = _props.dataSource,
67023 filterProps = _props.filterProps,
67024 buttonProps = _props.buttonProps,
67025 fillProps = _props.fillProps,
67026 popupContent = _props.popupContent,
67027 followTrigger = _props.followTrigger,
67028 hasClear = _props.hasClear,
67029 visible = _props.visible,
67030 locale = _props.locale,
67031 rtl = _props.rtl,
67032 icons = _props.icons,
67033 autoHighlightFirstItem = _props.autoHighlightFirstItem,
67034 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']);
67035
67036 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));
67037
67038 var searchIcon = null,
67039 filterSelect = null,
67040 searchBtn = null,
67041 iconsSearch = icons.search;
67042
67043 if (!(0, _react.isValidElement)(icons.search) && icons.search) {
67044 iconsSearch = _react2.default.createElement('span', null, icons.search);
67045 }
67046
67047 if (shape === 'simple') {
67048 var _classNames2;
67049
67050 var _cls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'search-icon'] = true, _classNames2[buttonProps.className] = !!buttonProps.className, _classNames2[prefix + 'search-symbol-icon'] = !iconsSearch, _classNames2));
67051 hasIcon && (searchIcon = _react2.default.cloneElement(iconsSearch || _react2.default.createElement(_icon2.default, { type: 'search' }), (0, _extends3.default)({
67052 role: 'button',
67053 'aria-disabled': disabled,
67054 'aria-label': locale.buttonText
67055 }, buttonProps, {
67056 className: _cls,
67057 onClick: this.onSearch,
67058 onKeyDown: this.onKeyDown
67059 })));
67060 } else {
67061 var _classNames3;
67062
67063 var _cls2 = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'search-btn'] = true, _classNames3[buttonProps.className] = !!buttonProps.className, _classNames3));
67064 searchBtn = _react2.default.createElement(_button2.default, (0, _extends3.default)({
67065 tabIndex: '0',
67066 'aria-disabled': disabled,
67067 'aria-label': locale.buttonText,
67068 className: _cls2,
67069 disabled: disabled
67070 }, buttonProps, {
67071 onClick: this.onSearch,
67072 onKeyDown: this.onKeyDown
67073 }), 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);
67074 }
67075
67076 if (filter.length > 0) {
67077 filterSelect = _react2.default.createElement(_select2.default, (0, _extends3.default)({}, filterProps, {
67078 followTrigger: followTrigger,
67079 hasBorder: false,
67080 dataSource: filter,
67081 size: size,
67082 disabled: disabled,
67083 value: this.state.filterValue,
67084 onChange: this.onFilterChange
67085 }));
67086 }
67087
67088 var othersAttributes = _util.obj.pickOthers(Search.propTypes, others);
67089 if (visible !== undefined) {
67090 // 受控属性 visible 不能直接写在组件上
67091 othersAttributes.visible = Boolean(visible);
67092 }
67093 var dataAttr = _util.obj.pickAttrsWith(others, 'data-');
67094
67095 var left = _react2.default.createElement(Group, {
67096 addonBefore: filterSelect,
67097 className: prefix + 'search-left',
67098 addonBeforeClassName: prefix + 'search-left-addon'
67099 }, _react2.default.createElement(AutoComplete, (0, _extends3.default)({
67100 'aria-label': locale.buttonText
67101 }, othersAttributes, {
67102 followTrigger: followTrigger,
67103 role: 'searchbox',
67104 hasClear: hasClear,
67105 className: prefix + 'search-input',
67106 size: size,
67107 fillProps: fillProps,
67108 placeholder: placeholder,
67109 dataSource: dataSource,
67110 innerAfter: searchIcon,
67111 onPressEnter: this.onPressEnter,
67112 value: this.state.value,
67113 onChange: this.onChange,
67114 onToggleHighlightItem: this.onToggleHighlightItem,
67115 autoHighlightFirstItem: autoHighlightFirstItem,
67116 popupContent: popupContent,
67117 disabled: disabled,
67118 ref: this.saveInputRef
67119 })));
67120
67121 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);
67122 };
67123
67124 return Search;
67125}(_react2.default.Component), _class.propTypes = {
67126 /**
67127 * 样式前缀
67128 */
67129 prefix: _propTypes2.default.string,
67130 /**
67131 * 形状
67132 */
67133 shape: _propTypes2.default.oneOf(['normal', 'simple']),
67134 /**
67135 * 类型 shape=normal: primary/secondary; shape=simple: normal/dark;
67136 */
67137 type: _propTypes2.default.oneOf(['primary', 'secondary', 'normal', 'dark']),
67138 /**
67139 * 大小
67140 * @enumdesc '大', '小'
67141 */
67142 size: _propTypes2.default.oneOf(['large', 'medium']),
67143 /**
67144 * 搜索框默认值
67145 */
67146 defaultValue: _propTypes2.default.string,
67147 /**
67148 * 搜索框数值
67149 */
67150 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
67151 /**
67152 * 输入关键字时的回掉
67153 * @param {Object} value 输入值
67154 */
67155 onChange: _propTypes2.default.func,
67156 /**
67157 * 点击搜索按钮触发的回调
67158 * @param {String} value 输入值
67159 * @param {String} filterValue 选项值
67160 */
67161 onSearch: _propTypes2.default.func,
67162 /**
67163 * 选择器默认值
67164 */
67165 defaultFilterValue: _propTypes2.default.string,
67166 /**
67167 * 填充到输入框里的值的 key ,默认是value
67168 */
67169 fillProps: _propTypes2.default.string,
67170 /**
67171 * 选择器
67172 */
67173 filter: _propTypes2.default.array,
67174 /**
67175 * 选择器值
67176 */
67177 filterValue: _propTypes2.default.string,
67178 /**
67179 * 选择器发生变化时回调
67180 * @param {Object} filter value
67181 */
67182 onFilterChange: _propTypes2.default.func,
67183 /**
67184 * 搜索框下拉联想列表
67185 */
67186 dataSource: _propTypes2.default.array,
67187 /**
67188 * 默认提示
67189 */
67190 placeholder: _propTypes2.default.string,
67191 /**
67192 * button 的内容
67193 */
67194 searchText: _propTypes2.default.node,
67195 /**
67196 * 自定义样式
67197 */
67198 style: _propTypes2.default.object,
67199 /**
67200 * 样式名称
67201 */
67202 className: _propTypes2.default.string,
67203 /**
67204 * 选择器的props
67205 */
67206 filterProps: _propTypes2.default.object,
67207 /**
67208 * 按钮的额外属性
67209 */
67210 buttonProps: _propTypes2.default.object,
67211 /**
67212 * 自定义渲染的的下拉框
67213 */
67214 popupContent: _propTypes2.default.node,
67215 /**
67216 * 是否跟随滚动
67217 */
67218 followTrigger: _propTypes2.default.bool,
67219 /**
67220 * 自定义渲染的的下拉框
67221 */
67222 visible: _propTypes2.default.bool,
67223 /**
67224 * 是否显示清除按钮
67225 */
67226 hasClear: _propTypes2.default.bool,
67227 /**
67228 * 是否显示搜索按钮
67229 */
67230 hasIcon: _propTypes2.default.bool,
67231 /**
67232 * 是否禁用
67233 */
67234 disabled: _propTypes2.default.bool,
67235 locale: _propTypes2.default.object,
67236 rtl: _propTypes2.default.bool,
67237 /**
67238 * 可配置的icons,包括 search 等
67239 */
67240 icons: _propTypes2.default.object,
67241 /**
67242 * 是否自动高亮第一个元素
67243 */
67244 autoHighlightFirstItem: _propTypes2.default.bool,
67245 /**
67246 * 上下箭头切换选项的回调
67247 */
67248 onToggleHighlightItem: _propTypes2.default.func
67249}, _class.defaultProps = {
67250 prefix: 'next-',
67251 shape: 'normal',
67252 type: 'normal',
67253 size: 'medium',
67254 hasIcon: true,
67255 filter: [],
67256 locale: _zhCn2.default.Search,
67257 buttonProps: {},
67258 onChange: noop,
67259 onSearch: noop,
67260 onFilterChange: noop,
67261 onToggleHighlightItem: noop,
67262 hasClear: false,
67263 disabled: false,
67264 icons: {},
67265 autoHighlightFirstItem: true
67266}, _initialiseProps = function _initialiseProps() {
67267 var _this2 = this;
67268
67269 this.onChange = function (value, type) {
67270 for (var _len = arguments.length, argv = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
67271 argv[_key - 2] = arguments[_key];
67272 }
67273
67274 var _props2;
67275
67276 if (_this2.props.disabled) {
67277 return;
67278 }
67279
67280 if (!('value' in _this2.props)) {
67281 _this2.setState({ value: value });
67282 }
67283
67284 (_props2 = _this2.props).onChange.apply(_props2, [value, type].concat(argv));
67285 if (type === 'enter') {
67286 _this2.highlightKey = '';
67287 _this2.props.onSearch(value, _this2.state.filterValue);
67288 }
67289 };
67290
67291 this.onPressEnter = function () {
67292 if (_this2.highlightKey) {
67293 return;
67294 }
67295 _this2.onSearch();
67296 };
67297
67298 this.onSearch = function () {
67299 if (_this2.props.disabled) {
67300 return;
67301 }
67302 _this2.props.onSearch(_this2.state.value, _this2.state.filterValue);
67303 };
67304
67305 this.onFilterChange = function (filterValue) {
67306 if (!('filterValue' in _this2.props)) {
67307 _this2.setState({ filterValue: filterValue });
67308 }
67309
67310 _this2.props.onFilterChange(filterValue);
67311 };
67312
67313 this.onToggleHighlightItem = function (highlightKey) {
67314 var _props3;
67315
67316 for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
67317 args[_key2 - 1] = arguments[_key2];
67318 }
67319
67320 _this2.highlightKey = highlightKey;
67321
67322 (_props3 = _this2.props).onToggleHighlightItem.apply(_props3, [highlightKey].concat(args));
67323 };
67324
67325 this.onKeyDown = function (e) {
67326 if (_this2.props.disabled) {
67327 return;
67328 }
67329 if (e.keyCode !== _util.KEYCODE.ENTER) {
67330 return;
67331 }
67332 _this2.onSearch();
67333 };
67334
67335 this.saveInputRef = function (ref) {
67336 if (ref && ref.getInstance()) {
67337 _this2.inputRef = ref.getInstance();
67338 }
67339 };
67340}, _temp);
67341Search.displayName = 'Search';
67342exports.default = (0, _reactLifecyclesCompat.polyfill)(Search);
67343module.exports = exports['default'];
67344
67345/***/ }),
67346/* 404 */
67347/***/ (function(module, exports, __webpack_require__) {
67348
67349"use strict";
67350
67351
67352exports.__esModule = true;
67353
67354var _extends2 = __webpack_require__(1);
67355
67356var _extends3 = _interopRequireDefault(_extends2);
67357
67358var _objectWithoutProperties2 = __webpack_require__(8);
67359
67360var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
67361
67362var _shell = __webpack_require__(405);
67363
67364var _shell2 = _interopRequireDefault(_shell);
67365
67366var _base = __webpack_require__(407);
67367
67368var _base2 = _interopRequireDefault(_base);
67369
67370var _configProvider = __webpack_require__(9);
67371
67372var _configProvider2 = _interopRequireDefault(_configProvider);
67373
67374function _interopRequireDefault(obj) {
67375 return obj && obj.__esModule ? obj : { default: obj };
67376}
67377
67378var Shell = (0, _shell2.default)({
67379 componentName: 'Shell'
67380});
67381
67382['Branding', 'Navigation', 'Action', 'MultiTask', 'LocalNavigation', 'AppBar', 'Content', 'Footer', 'Ancillary', 'ToolDock', 'ToolDockItem'].forEach(function (key) {
67383 Shell[key] = (0, _base2.default)({
67384 componentName: key
67385 });
67386});
67387
67388Shell.Page = _configProvider2.default.config((0, _shell2.default)({
67389 componentName: 'Page'
67390}));
67391
67392exports.default = _configProvider2.default.config(Shell, {
67393 transform: /* istanbul ignore next */function transform(props, deprecated) {
67394 if ('Component' in props) {
67395 deprecated('Component', 'component', 'Shell');
67396 var _props = props,
67397 Component = _props.Component,
67398 component = _props.component,
67399 others = (0, _objectWithoutProperties3.default)(_props, ['Component', 'component']);
67400
67401 if ('component' in props) {
67402 props = (0, _extends3.default)({ component: component }, others);
67403 } else {
67404 props = (0, _extends3.default)({ component: Component }, others);
67405 }
67406 }
67407 return props;
67408 }
67409});
67410module.exports = exports['default'];
67411
67412/***/ }),
67413/* 405 */
67414/***/ (function(module, exports, __webpack_require__) {
67415
67416"use strict";
67417
67418
67419exports.__esModule = true;
67420
67421var _objectWithoutProperties2 = __webpack_require__(8);
67422
67423var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
67424
67425var _extends3 = __webpack_require__(1);
67426
67427var _extends4 = _interopRequireDefault(_extends3);
67428
67429var _classCallCheck2 = __webpack_require__(2);
67430
67431var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
67432
67433var _possibleConstructorReturn2 = __webpack_require__(3);
67434
67435var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
67436
67437var _inherits2 = __webpack_require__(4);
67438
67439var _inherits3 = _interopRequireDefault(_inherits2);
67440
67441exports.default = ShellBase;
67442
67443var _react = __webpack_require__(0);
67444
67445var _react2 = _interopRequireDefault(_react);
67446
67447var _classnames12 = __webpack_require__(7);
67448
67449var _classnames13 = _interopRequireDefault(_classnames12);
67450
67451var _propTypes = __webpack_require__(5);
67452
67453var _propTypes2 = _interopRequireDefault(_propTypes);
67454
67455var _reactLifecyclesCompat = __webpack_require__(10);
67456
67457var _configProvider = __webpack_require__(9);
67458
67459var _configProvider2 = _interopRequireDefault(_configProvider);
67460
67461var _affix = __webpack_require__(69);
67462
67463var _affix2 = _interopRequireDefault(_affix);
67464
67465var _icon = __webpack_require__(11);
67466
67467var _icon2 = _interopRequireDefault(_icon);
67468
67469var _util = __webpack_require__(6);
67470
67471var _util2 = __webpack_require__(406);
67472
67473function _interopRequireDefault(obj) {
67474 return obj && obj.__esModule ? obj : { default: obj };
67475}
67476
67477/**
67478 * Shell
67479 */
67480function ShellBase(props) {
67481 var _class, _temp, _initialiseProps;
67482
67483 var componentName = props.componentName;
67484 var Shell = (_temp = _class = function (_Component) {
67485 (0, _inherits3.default)(Shell, _Component);
67486
67487 function Shell(props) {
67488 (0, _classCallCheck3.default)(this, Shell);
67489
67490 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
67491
67492 _initialiseProps.call(_this);
67493
67494 var deviceMap = (0, _util2.getCollapseMap)(props.device);
67495 _this.layout = {};
67496
67497 _this.state = {
67498 controll: false,
67499 collapseMap: deviceMap,
67500 device: props.device
67501 };
67502 return _this;
67503 }
67504
67505 Shell.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
67506 var device = prevState.device;
67507
67508 if (nextProps.device !== device) {
67509 var deviceMap = (0, _util2.getCollapseMap)(nextProps.device);
67510 return {
67511 controll: false,
67512 collapseMap: deviceMap,
67513 device: nextProps.device
67514 };
67515 }
67516
67517 return {};
67518 };
67519
67520 Shell.prototype.componentDidMount = function componentDidMount() {
67521 this.checkAsideFixed();
67522 };
67523
67524 Shell.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
67525 var _this2 = this;
67526
67527 if (prevProps.device !== this.props.device) {
67528 var deviceMapBefore = (0, _util2.getCollapseMap)(prevProps.device);
67529 var deviceMapAfter = (0, _util2.getCollapseMap)(this.props.device);
67530
67531 Object.keys(deviceMapAfter).forEach(function (block) {
67532 var _ref = _this2.layout[block] || {},
67533 props = _ref.props;
67534
67535 if (deviceMapBefore[block] !== deviceMapAfter[block]) {
67536 if (props && typeof props.onCollapseChange === 'function') {
67537 props.onCollapseChange(deviceMapAfter[block]);
67538 }
67539 }
67540 });
67541 }
67542
67543 setTimeout(function () {
67544 // 如果左侧边栏固定
67545 _this2.checkAsideFixed();
67546 }, 201);
67547 };
67548
67549 Shell.prototype.render = function render() {
67550 return this.renderShell(this.props);
67551 };
67552
67553 return Shell;
67554 }(_react.Component), _class.displayName = componentName, _class._typeMark = componentName, _class.propTypes = (0, _extends4.default)({}, _configProvider2.default.propTypes, {
67555 prefix: _propTypes2.default.string,
67556 /**
67557 * 设备类型
67558 * @enumdesc 手机, 平板, PC电脑
67559 */
67560 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
67561 /**
67562 * 设备类型
67563 * @enumdesc 浅色, 深色, 主题色
67564 */
67565 type: _propTypes2.default.oneOf(['light', 'dark', 'brand']),
67566 /**
67567 * 是否固定 header, 用sticky实现,IE下降级为Affix
67568 */
67569 fixedHeader: _propTypes2.default.bool
67570 }), _class.defaultProps = {
67571 prefix: 'next-',
67572 device: 'desktop',
67573 type: 'light',
67574 fixedHeader: false
67575 }, _initialiseProps = function _initialiseProps() {
67576 var _this3 = this;
67577
67578 this.checkAsideFixed = function () {
67579 var fixedHeader = _this3.props.fixedHeader;
67580
67581 if (!fixedHeader) {
67582 return;
67583 }
67584
67585 var headerHeight = void 0;
67586 if (_this3.headerRef && (_this3.navigationFixed || _this3.toolDockFixed)) {
67587 headerHeight = _util.dom.getStyle(_this3.headerRef, 'height');
67588 }
67589
67590 if (_this3.navigationFixed) {
67591 var style = {};
67592 style.marginLeft = _util.dom.getStyle(_this3.navRef, 'width');
67593 _util.dom.addClass(_this3.navRef, 'fixed');
67594 headerHeight && _util.dom.setStyle(_this3.navRef, { top: headerHeight });
67595 _util.dom.setStyle(_this3.localNavRef || _this3.submainRef, style);
67596 }
67597
67598 if (_this3.toolDockFixed) {
67599 var _style = {};
67600 _style.marginRight = _util.dom.getStyle(_this3.toolDockRef, 'width');
67601 _util.dom.addClass(_this3.toolDockRef, 'fixed');
67602 headerHeight && _util.dom.setStyle(_this3.toolDockRef, { top: headerHeight });
67603 _util.dom.setStyle(_this3.localNavRef || _this3.submainRef, _style);
67604 }
67605 };
67606
67607 this.setChildCollapse = function (child, mark) {
67608 var _state = _this3.state,
67609 device = _state.device,
67610 collapseMap = _state.collapseMap,
67611 controll = _state.controll;
67612 var collapse = child.props.collapse;
67613
67614 var deviceMap = (0, _util2.getCollapseMap)(device);
67615 var props = {};
67616
67617 // 非受控模式
67618 if ((0, _util2.isBoolean)(collapse) === false) {
67619 props.collapse = controll ? collapseMap[mark] : deviceMap[mark];
67620 // props.collapse = collapseMap[mark];
67621 }
67622
67623 if (device !== 'phone' && mark === 'Navigation') {
67624 props.miniable = true;
67625 }
67626
67627 return _react2.default.cloneElement(child, props);
67628 };
67629
67630 this.toggleAside = function (mark, props, e) {
67631 var _extends2;
67632
67633 var _state2 = _this3.state,
67634 device = _state2.device,
67635 collapseMap = _state2.collapseMap;
67636
67637 var deviceMap = (0, _util2.getCollapseMap)(device);
67638 var current = props.collapse;
67639
67640 var newCollapseMap = (0, _extends4.default)({}, deviceMap, collapseMap, (_extends2 = {}, _extends2[mark] = !current, _extends2));
67641 _this3.setState({
67642 controll: true,
67643 collapseMap: newCollapseMap
67644 });
67645
67646 if (props && typeof props.onCollapseChange === 'function') {
67647 props.onCollapseChange(newCollapseMap[mark]);
67648 }
67649
67650 var children = _this3.props.children;
67651
67652 var com = void 0;
67653 if (mark === 'Navigation') {
67654 com = children.filter(function (child) {
67655 return child && child.type._typeMark.replace('Shell_', '') === mark && child.props.direction !== 'hoz';
67656 }).pop();
67657 } else {
67658 com = children.filter(function (child) {
67659 return child && child.type._typeMark.replace('Shell_', '') === mark;
67660 }).pop();
67661 }
67662
67663 var _com$props$triggerPro = com.props.triggerProps,
67664 triggerProps = _com$props$triggerPro === undefined ? {} : _com$props$triggerPro;
67665
67666 if (typeof triggerProps.onClick === 'function') {
67667 triggerProps.onClick(e, _this3.state.collapseMap[mark]);
67668 }
67669 };
67670
67671 this.toggleNavigation = function (e) {
67672 var mark = 'Navigation';
67673 var props = _this3.layout[mark].props;
67674
67675 if ('keyCode' in e && e.keyCode !== _util.KEYCODE.ENTER) {
67676 return;
67677 }
67678
67679 _this3.toggleAside(mark, props, e);
67680 };
67681
67682 this.toggleLocalNavigation = function (e) {
67683 var mark = 'LocalNavigation';
67684 var props = _this3.layout[mark].props;
67685
67686 if ('keyCode' in e && e.keyCode !== _util.KEYCODE.ENTER) {
67687 return;
67688 }
67689
67690 _this3.toggleAside(mark, props, e);
67691 };
67692
67693 this.toggleAncillary = function (e) {
67694 var mark = 'Ancillary';
67695 var props = _this3.layout[mark].props;
67696
67697 if ('keyCode' in e && e.keyCode !== _util.KEYCODE.ENTER) {
67698 return;
67699 }
67700
67701 _this3.toggleAside(mark, props, e);
67702 };
67703
67704 this.toggleToolDock = function (e) {
67705 var mark = 'ToolDock';
67706 var props = _this3.layout[mark].props;
67707
67708 if ('keyCode' in e && e.keyCode !== _util.KEYCODE.ENTER) {
67709 return;
67710 }
67711
67712 _this3.toggleAside(mark, props, e);
67713 };
67714
67715 this.saveHeaderRef = function (ref) {
67716 _this3.headerRef = ref;
67717 };
67718
67719 this.saveLocalNavRef = function (ref) {
67720 _this3.localNavRef = ref;
67721 };
67722
67723 this.saveNavRef = function (ref) {
67724 _this3.navRef = ref;
67725 };
67726
67727 this.saveSubmainRef = function (ref) {
67728 _this3.submainRef = ref;
67729 };
67730
67731 this.saveToolDockRef = function (ref) {
67732 _this3.toolDockRef = ref;
67733 };
67734
67735 this.renderShell = function (props) {
67736 var _classnames, _classnames2, _classnames3, _classnames4, _classnames5, _classnames6, _classnames7, _classnames11;
67737
67738 var prefix = props.prefix,
67739 children = props.children,
67740 className = props.className,
67741 type = props.type,
67742 fixedHeader = props.fixedHeader,
67743 others = (0, _objectWithoutProperties3.default)(props, ['prefix', 'children', 'className', 'type', 'fixedHeader']);
67744 var device = _this3.state.device;
67745
67746 var layout = {};
67747 layout.header = {};
67748 var hasToolDock = false,
67749 needNavigationTrigger = false,
67750 needDockTrigger = false;
67751
67752 _react2.default.Children.map(children, function (child) {
67753 if (child && typeof child.type === 'function') {
67754 var mark = child.type._typeMark.replace('Shell_', '');
67755 switch (mark) {
67756 case 'Branding':
67757 case 'Action':
67758 layout.header[mark] = child;
67759 break;
67760 case 'MultiTask':
67761 layout.taskHeader = child;
67762 break;
67763 case 'LocalNavigation':
67764 if (!layout[mark]) {
67765 layout[mark] = [];
67766 }
67767 layout[mark] = _this3.setChildCollapse(child, mark);
67768 break;
67769 case 'Ancillary':
67770 if (!layout[mark]) {
67771 layout[mark] = [];
67772 }
67773
67774 layout[mark] = _this3.setChildCollapse(child, mark);
67775 break;
67776 case 'ToolDock':
67777 hasToolDock = true;
67778
67779 if (!layout[mark]) {
67780 layout[mark] = [];
67781 }
67782
67783 _this3.toolDockFixed = child.props.fixed;
67784 var childT = _this3.setChildCollapse(child, mark);
67785 layout[mark] = childT;
67786
67787 break;
67788 case 'AppBar':
67789 case 'Content':
67790 case 'Footer':
67791 layout.content || (layout.content = []);
67792 layout.content.push(child);
67793 break;
67794 case 'Page':
67795 layout.page || (layout.page = []);
67796 layout.page = child;
67797 break;
67798 case 'Navigation':
67799 if (child.props.direction === 'hoz') {
67800 layout.header[mark] = child;
67801 } else {
67802 if (!layout[mark]) {
67803 layout[mark] = [];
67804 }
67805
67806 needNavigationTrigger = true;
67807 _this3.navigationFixed = child.props.fixed;
67808 var childN = _this3.setChildCollapse(child, mark);
67809 layout[mark] = childN;
67810 }
67811 break;
67812 default:
67813 break;
67814 }
67815 }
67816 });
67817
67818 var headerCls = (0, _classnames13.default)((_classnames = {}, _classnames[prefix + 'shell-header'] = true, _classnames[prefix + 'shell-fixed-header'] = fixedHeader, _classnames));
67819
67820 var mainCls = (0, _classnames13.default)((_classnames2 = {}, _classnames2[prefix + 'shell-main'] = true, _classnames2));
67821
67822 var pageCls = (0, _classnames13.default)((_classnames3 = {}, _classnames3[prefix + 'shell-page'] = true, _classnames3));
67823
67824 var submainCls = (0, _classnames13.default)((_classnames4 = {}, _classnames4[prefix + 'shell-sub-main'] = true, _classnames4));
67825
67826 var asideCls = (0, _classnames13.default)((_classnames5 = {}, _classnames5[prefix + 'shell-aside'] = true, _classnames5));
67827
67828 var toolDockCls = (0, _classnames13.default)((_classnames6 = {}, _classnames6[prefix + 'aside-tooldock'] = true, _classnames6));
67829
67830 var navigationCls = (0, _classnames13.default)((_classnames7 = {}, _classnames7[prefix + 'aside-navigation'] = true, _classnames7[prefix + 'shell-collapse'] = layout.Navigation && layout.Navigation.props.collapse, _classnames7));
67831
67832 if (hasToolDock) {
67833 if (device === 'phone') {
67834 needDockTrigger = true;
67835 }
67836 }
67837
67838 // 如果存在垂直模式的 Navigation, 则需要在 Branding 上出现 trigger
67839 if (needNavigationTrigger) {
67840 var branding = layout.header.Branding;
67841 var _layout$Navigation$pr = layout.Navigation.props,
67842 trigger = _layout$Navigation$pr.trigger,
67843 collapse = _layout$Navigation$pr.collapse;
67844
67845 if ('trigger' in layout.Navigation.props) {
67846 trigger = trigger && _react2.default.cloneElement(trigger, {
67847 onClick: _this3.toggleNavigation,
67848 'aria-expanded': !collapse
67849 }) || trigger;
67850 } else {
67851 trigger = _react2.default.createElement('div', {
67852 key: 'nav-trigger',
67853 role: 'button',
67854 tabIndex: 0,
67855 'aria-expanded': !collapse,
67856 'aria-label': 'toggle',
67857 className: 'nav-trigger',
67858 onClick: _this3.toggleNavigation,
67859 onKeyDown: _this3.toggleNavigation
67860 }, collapse ? _react2.default.createElement(_icon2.default, { size: 'small', type: 'toggle-right' }) : _react2.default.createElement(_icon2.default, { size: 'small', type: 'toggle-left' }));
67861 }
67862
67863 if (!branding) {
67864 trigger && (layout.header.Branding = trigger);
67865 } else {
67866 layout.header.Branding = _react2.default.cloneElement(branding, {}, [trigger, branding.props.children]);
67867 }
67868 }
67869
67870 // 如果存在 toolDock, 则需要在 Action 上出现 trigger
67871 if (needDockTrigger) {
67872 var action = layout.header.Action;
67873 var _layout$ToolDock$prop = layout.ToolDock.props,
67874 _trigger = _layout$ToolDock$prop.trigger,
67875 _collapse = _layout$ToolDock$prop.collapse;
67876
67877 if ('trigger' in layout.ToolDock.props) {
67878 _trigger = _trigger && _react2.default.cloneElement(_trigger, {
67879 onClick: _this3.toggleToolDock,
67880 'aria-expanded': !_collapse
67881 }) || _trigger;
67882 } else {
67883 _trigger = _react2.default.createElement('div', {
67884 key: 'dock-trigger',
67885 tabIndex: 0,
67886 role: 'button',
67887 'aria-expanded': !_collapse,
67888 'aria-label': 'toggle',
67889 className: 'dock-trigger',
67890 onClick: _this3.toggleToolDock,
67891 onKeyDown: _this3.toggleToolDock
67892 }, _react2.default.createElement(_icon2.default, { size: 'small', type: 'add' }));
67893 }
67894
67895 if (!action) {
67896 layout.header.Action = _trigger;
67897 } else {
67898 layout.header.Action = _react2.default.cloneElement(action, {}, [action.props.children, _trigger]);
67899 }
67900 }
67901
67902 var headerDom = [],
67903 contentArr = [],
67904 innerArr = [],
67905 taskHeaderDom = null;
67906
67907 if (layout.taskHeader) {
67908 var _classnames8;
67909
67910 var taskHeaderCls = (0, _classnames13.default)((_classnames8 = {}, _classnames8[prefix + 'shell-task-header'] = true, _classnames8));
67911
67912 taskHeaderDom = _react2.default.createElement('section', { key: 'task-header', className: taskHeaderCls }, layout.taskHeader);
67913 }
67914
67915 // 按照dom结构,innerArr 包括 LocalNavigation content Ancillary
67916 if (layout.LocalNavigation) {
67917 var _classnames9;
67918
67919 var _layout$LocalNavigati = layout.LocalNavigation.props,
67920 _trigger2 = _layout$LocalNavigati.trigger,
67921 _collapse2 = _layout$LocalNavigati.collapse;
67922
67923 if ('trigger' in layout.LocalNavigation.props) {
67924 _trigger2 = _trigger2 && _react2.default.cloneElement(_trigger2, {
67925 onClick: _this3.toggleLocalNavigation,
67926 'aria-expanded': !_collapse2
67927 }) || _trigger2;
67928 } else {
67929 _trigger2 = _react2.default.createElement('div', {
67930 key: 'local-nav-trigger',
67931 role: 'button',
67932 tabIndex: 0,
67933 'aria-expanded': !_collapse2,
67934 'aria-label': 'toggle',
67935 className: 'local-nav-trigger aside-trigger',
67936 onClick: _this3.toggleLocalNavigation,
67937 onKeyDown: _this3.toggleLocalNavigation
67938 }, _collapse2 ? _react2.default.createElement(_icon2.default, { size: 'small', type: 'arrow-right' }) : _react2.default.createElement(_icon2.default, { size: 'small', type: 'arrow-left' }));
67939 }
67940
67941 var localNavCls = (0, _classnames13.default)(asideCls, (_classnames9 = {}, _classnames9[prefix + 'aside-localnavigation'] = true, _classnames9));
67942
67943 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])));
67944 }
67945
67946 if (layout.content) {
67947 innerArr.push(_react2.default.createElement('section', { key: 'submain', className: submainCls, ref: _this3.saveSubmainRef }, layout.content));
67948 }
67949
67950 if (layout.Ancillary) {
67951 var _classnames10;
67952
67953 var _layout$Ancillary$pro = layout.Ancillary.props,
67954 _trigger3 = _layout$Ancillary$pro.trigger,
67955 _collapse3 = _layout$Ancillary$pro.collapse;
67956
67957 if ('trigger' in layout.Ancillary.props) {
67958 _trigger3 = _trigger3 && _react2.default.cloneElement(_trigger3, {
67959 onClick: _this3.toggleAncillary,
67960 'aria-expanded': !_collapse3
67961 }) || _trigger3;
67962 } else {
67963 _trigger3 = _react2.default.createElement('div', {
67964 key: 'ancillary-trigger',
67965 role: 'button',
67966 tabIndex: 0,
67967 'aria-expanded': !_collapse3,
67968 'aria-label': 'toggle',
67969 className: 'ancillary-trigger aside-trigger',
67970 onClick: _this3.toggleAncillary,
67971 onKeyDown: _this3.toggleAncillary
67972 }, _collapse3 ? _react2.default.createElement(_icon2.default, { size: 'small', type: 'arrow-left' }) : _react2.default.createElement(_icon2.default, { size: 'small', type: 'arrow-right' }));
67973 }
67974
67975 var ancillaryCls = (0, _classnames13.default)(asideCls, (_classnames10 = {}, _classnames10[prefix + 'aside-ancillary'] = true, _classnames10));
67976
67977 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])));
67978 }
67979
67980 // 按照dom结构, arr 包括 header Navigation ToolDock 和 innerArr
67981 if (Object.keys(layout.header).length > 0) {
67982 var _dom = _react2.default.createElement('header', { key: 'header', className: headerCls, ref: _this3.saveHeaderRef }, layout.header.Branding, layout.header.Navigation, layout.header.Action);
67983 if (fixedHeader && _util.env.ieVersion) {
67984 headerDom = _react2.default.createElement(_affix2.default, { style: { zIndex: 9 } }, _dom);
67985 } else {
67986 headerDom = _dom;
67987 }
67988 }
67989
67990 layout.Navigation && contentArr.push(_react2.default.createElement('aside', { key: 'navigation', className: navigationCls, ref: _this3.saveNavRef }, _react2.default.cloneElement(layout.Navigation, {
67991 className: (0, _classnames13.default)(asideCls, layout.Navigation.props.className)
67992 })));
67993
67994 // const contentArea = innerArr.length > 0
67995 // ? <section key="main" className={mainCls}>{innerArr}</section>
67996 // : layout.page;
67997
67998 // contentArr.push(contentArea);
67999 contentArr = contentArr.concat(innerArr.length > 0 ? innerArr : [_react2.default.createElement('section', { key: 'page', ref: _this3.saveSubmainRef, className: submainCls }, layout.page)]);
68000
68001 layout.ToolDock && contentArr.push(_react2.default.createElement('aside', { key: 'tooldock', className: toolDockCls, ref: _this3.saveToolDockRef }, _react2.default.cloneElement(layout.ToolDock, {
68002 className: (0, _classnames13.default)(asideCls, layout.ToolDock.props.className),
68003 key: 'tooldock'
68004 })));
68005
68006 var cls = (0, _classnames13.default)((_classnames11 = {}, _classnames11[prefix + 'shell'] = true, _classnames11[prefix + 'shell-' + device] = true, _classnames11[prefix + 'shell-' + type] = true, _classnames11[className] = !!className, _classnames11));
68007
68008 if (componentName === 'Page') {
68009 return _react2.default.createElement('section', { className: pageCls }, children);
68010 }
68011
68012 _this3.layout = layout;
68013
68014 return _react2.default.createElement('section', (0, _extends4.default)({ className: cls }, others), headerDom, taskHeaderDom, _react2.default.createElement('section', { className: mainCls }, contentArr));
68015 };
68016 }, _temp);
68017 Shell.displayName = 'Shell';
68018
68019 return (0, _reactLifecyclesCompat.polyfill)(Shell);
68020}
68021module.exports = exports['default'];
68022
68023/***/ }),
68024/* 406 */
68025/***/ (function(module, exports, __webpack_require__) {
68026
68027"use strict";
68028
68029
68030exports.__esModule = true;
68031exports.isBoolean = isBoolean;
68032exports.getCollapseMap = getCollapseMap;
68033/**
68034 * 判断是否为布尔类型
68035 * @param {any} val 例:'str' / undefined / null / true / false / 0
68036 * @return {bool} 例: false / false / false / true / false / false
68037 */
68038function isBoolean(val) {
68039 return typeof val === 'boolean';
68040}
68041
68042function getCollapseMap(device) {
68043 // by default all of them are collapsed
68044 var origin = {
68045 Navigation: true,
68046 LocalNavigation: true,
68047 Ancillary: true,
68048 ToolDock: true
68049 };
68050
68051 var map = [];
68052
68053 switch (device) {
68054 case 'phone':
68055 break;
68056 case 'pad':
68057 case 'tablet':
68058 map = ['ToolDock'];
68059 break;
68060 case 'desktop':
68061 map = ['Navigation', 'LocalNavigation', 'Ancillary', 'ToolDock'];
68062 break;
68063 default:
68064 break;
68065 }
68066
68067 Object.keys(origin).forEach(function (key) {
68068 if (map.indexOf(key) > -1) {
68069 origin[key] = false;
68070 }
68071 });
68072
68073 return origin;
68074}
68075
68076/***/ }),
68077/* 407 */
68078/***/ (function(module, exports, __webpack_require__) {
68079
68080"use strict";
68081
68082
68083exports.__esModule = true;
68084
68085var _extends2 = __webpack_require__(1);
68086
68087var _extends3 = _interopRequireDefault(_extends2);
68088
68089var _objectWithoutProperties2 = __webpack_require__(8);
68090
68091var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
68092
68093var _classCallCheck2 = __webpack_require__(2);
68094
68095var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
68096
68097var _possibleConstructorReturn2 = __webpack_require__(3);
68098
68099var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
68100
68101var _inherits2 = __webpack_require__(4);
68102
68103var _inherits3 = _interopRequireDefault(_inherits2);
68104
68105exports.default = Base;
68106
68107var _react = __webpack_require__(0);
68108
68109var _react2 = _interopRequireDefault(_react);
68110
68111var _classnames2 = __webpack_require__(7);
68112
68113var _classnames3 = _interopRequireDefault(_classnames2);
68114
68115var _propTypes = __webpack_require__(5);
68116
68117var _propTypes2 = _interopRequireDefault(_propTypes);
68118
68119var _configProvider = __webpack_require__(9);
68120
68121var _configProvider2 = _interopRequireDefault(_configProvider);
68122
68123function _interopRequireDefault(obj) {
68124 return obj && obj.__esModule ? obj : { default: obj };
68125}
68126
68127function Base(props) {
68128 var _class, _temp;
68129
68130 var componentName = props.componentName;
68131 var Shell = (_temp = _class = function (_Component) {
68132 (0, _inherits3.default)(Shell, _Component);
68133
68134 function Shell() {
68135 (0, _classCallCheck3.default)(this, Shell);
68136 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
68137 }
68138
68139 Shell.prototype.getChildContext = function getChildContext() {
68140 var collapse = this.props.collapse;
68141
68142 return {
68143 isCollapse: collapse
68144 };
68145 };
68146
68147 Shell.prototype.render = function render() {
68148 var _classnames;
68149
68150 var _props = this.props,
68151 prefix = _props.prefix,
68152 className = _props.className,
68153 miniable = _props.miniable,
68154 device = _props.device,
68155 direction = _props.direction,
68156 children = _props.children,
68157 collapse = _props.collapse,
68158 triggerProps = _props.triggerProps,
68159 onCollapseChange = _props.onCollapseChange,
68160 component = _props.component,
68161 align = _props.align,
68162 fixed = _props.fixed,
68163 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'miniable', 'device', 'direction', 'children', 'collapse', 'triggerProps', 'onCollapseChange', 'component', 'align', 'fixed']);
68164
68165 var Tag = component;
68166
68167 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));
68168
68169 var newChildren = children;
68170 if (componentName === 'Content') {
68171 newChildren = _react2.default.createElement('div', { className: prefix + 'shell-content-inner' }, children);
68172 }
68173
68174 if (componentName === 'Page') {
68175 return children;
68176 }
68177
68178 return _react2.default.createElement(Tag, (0, _extends3.default)({ className: cls }, others), newChildren);
68179 };
68180
68181 return Shell;
68182 }(_react.Component), _class.displayName = componentName, _class._typeMark = 'Shell_' + componentName, _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
68183 prefix: _propTypes2.default.string,
68184 collapse: _propTypes2.default.bool,
68185 miniable: _propTypes2.default.bool,
68186 component: _propTypes2.default.string,
68187 trigger: _propTypes2.default.node,
68188 triggerProps: _propTypes2.default.object,
68189 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
68190 align: _propTypes2.default.oneOf(['left', 'right', 'center']),
68191 /**
68192 * 弹层显示或隐藏时触发的回调函数
68193 * @param {Boolean} collapse 弹层是否显示
68194 */
68195 onCollapseChange: _propTypes2.default.func,
68196 /**
68197 * 是否固定,仅对 Shell.Navigation Shell.ToolDock 生效,且需要在在 Shell fixedHeader时生效
68198 */
68199 fixed: _propTypes2.default.bool
68200 }), _class.defaultProps = {
68201 prefix: 'next-',
68202 component: 'div',
68203 onCollapseChange: function onCollapseChange() {},
68204 fixed: false
68205 }, _class.childContextTypes = {
68206 isCollapse: _propTypes2.default.bool
68207 }, _temp);
68208 Shell.displayName = 'Shell';
68209
68210 return _configProvider2.default.config(Shell);
68211}
68212module.exports = exports['default'];
68213
68214/***/ }),
68215/* 408 */
68216/***/ (function(module, exports, __webpack_require__) {
68217
68218"use strict";
68219
68220
68221exports.__esModule = true;
68222
68223var _extends2 = __webpack_require__(1);
68224
68225var _extends3 = _interopRequireDefault(_extends2);
68226
68227var _objectWithoutProperties2 = __webpack_require__(8);
68228
68229var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
68230
68231var _configProvider = __webpack_require__(9);
68232
68233var _configProvider2 = _interopRequireDefault(_configProvider);
68234
68235var _slider = __webpack_require__(409);
68236
68237var _slider2 = _interopRequireDefault(_slider);
68238
68239function _interopRequireDefault(obj) {
68240 return obj && obj.__esModule ? obj : { default: obj };
68241}
68242
68243exports.default = _configProvider2.default.config(_slider2.default, {
68244 exportNames: ['resize'],
68245 transform: /* istanbul ignore next */function transform(props, deprecated) {
68246 if ('fade' in props) {
68247 deprecated('fade', 'animation', 'Slider');
68248
68249 var _props = props,
68250 fade = _props.fade,
68251 others = (0, _objectWithoutProperties3.default)(_props, ['fade']);
68252
68253 if (fade) {
68254 props = (0, _extends3.default)({ animation: 'fade' }, others);
68255 } else {
68256 props = others;
68257 }
68258 }
68259 if ('arrowPos' in props) {
68260 if (props.arrowPos === 'inline') {
68261 deprecated('arrowPos=inline', 'arrowPosition=inner', 'Slider');
68262
68263 props.arrowPos = 'inner';
68264 } else {
68265 deprecated('arrowPos', 'arrowPosition', 'Slider');
68266 }
68267
68268 var _props2 = props,
68269 arrowPos = _props2.arrowPos,
68270 _others = (0, _objectWithoutProperties3.default)(_props2, ['arrowPos']);
68271
68272 props = (0, _extends3.default)({ arrowPosition: arrowPos }, _others);
68273 }
68274 ['arrowDirection', 'dotsDirection', 'slideDirection'].forEach(function (propName) {
68275 if (props[propName] === 'horizontal') {
68276 deprecated(propName + '=horizontal', propName + '=hoz', 'Slider');
68277
68278 props[propName] = 'hoz';
68279 } else if (props[propName] === 'vertical') {
68280 deprecated(propName + '=vertical', propName + '=ver', 'Slider');
68281
68282 props[propName] = 'ver';
68283 }
68284 });
68285 if ('initialSlide' in props) {
68286 deprecated('initialSlide', 'defaultActiveIndex', 'Slider');
68287
68288 var _props3 = props,
68289 initialSlide = _props3.initialSlide,
68290 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['initialSlide']);
68291
68292 props = (0, _extends3.default)({ defaultActiveIndex: initialSlide }, _others2);
68293 }
68294 if ('slickGoTo' in props) {
68295 deprecated('slickGoTo', 'activeIndex', 'Slider');
68296
68297 var _props4 = props,
68298 slickGoTo = _props4.slickGoTo,
68299 _others3 = (0, _objectWithoutProperties3.default)(_props4, ['slickGoTo']);
68300
68301 props = (0, _extends3.default)({ activeIndex: slickGoTo }, _others3);
68302 }
68303 if ('afterChange' in props) {
68304 deprecated('afterChange', 'onChange', 'Slider');
68305
68306 var _props5 = props,
68307 afterChange = _props5.afterChange,
68308 _others4 = (0, _objectWithoutProperties3.default)(_props5, ['afterChange']);
68309
68310 props = (0, _extends3.default)({ onChange: afterChange }, _others4);
68311 }
68312
68313 if ('beforeChange' in props) {
68314 deprecated('beforeChange', 'onBeforeChange', 'Slider');
68315
68316 var _props6 = props,
68317 beforeChange = _props6.beforeChange,
68318 _others5 = (0, _objectWithoutProperties3.default)(_props6, ['beforeChange']);
68319
68320 props = (0, _extends3.default)({ onBeforeChange: beforeChange }, _others5);
68321 }
68322
68323 return props;
68324 }
68325});
68326module.exports = exports['default'];
68327
68328/***/ }),
68329/* 409 */
68330/***/ (function(module, exports, __webpack_require__) {
68331
68332"use strict";
68333
68334
68335exports.__esModule = true;
68336exports.default = undefined;
68337
68338var _extends2 = __webpack_require__(1);
68339
68340var _extends3 = _interopRequireDefault(_extends2);
68341
68342var _classCallCheck2 = __webpack_require__(2);
68343
68344var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
68345
68346var _possibleConstructorReturn2 = __webpack_require__(3);
68347
68348var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
68349
68350var _inherits2 = __webpack_require__(4);
68351
68352var _inherits3 = _interopRequireDefault(_inherits2);
68353
68354var _class, _temp2;
68355
68356var _react = __webpack_require__(0);
68357
68358var _react2 = _interopRequireDefault(_react);
68359
68360var _classnames = __webpack_require__(7);
68361
68362var _classnames2 = _interopRequireDefault(_classnames);
68363
68364var _propTypes = __webpack_require__(5);
68365
68366var _propTypes2 = _interopRequireDefault(_propTypes);
68367
68368var _util = __webpack_require__(6);
68369
68370var _innerSlider = __webpack_require__(410);
68371
68372var _innerSlider2 = _interopRequireDefault(_innerSlider);
68373
68374var _configProvider = __webpack_require__(9);
68375
68376var _configProvider2 = _interopRequireDefault(_configProvider);
68377
68378function _interopRequireDefault(obj) {
68379 return obj && obj.__esModule ? obj : { default: obj };
68380}
68381
68382/**
68383 * Slider
68384 */
68385var Slider = (_temp2 = _class = function (_Component) {
68386 (0, _inherits3.default)(Slider, _Component);
68387
68388 function Slider() {
68389 var _temp, _this, _ret;
68390
68391 (0, _classCallCheck3.default)(this, Slider);
68392
68393 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
68394 args[_key] = arguments[_key];
68395 }
68396
68397 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.resize = function () {
68398 // export api
68399 _this.innerSlider.onWindowResized();
68400 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
68401 }
68402
68403 Slider.prototype.render = function render() {
68404 var _this2 = this;
68405
68406 var _props = this.props,
68407 prefix = _props.prefix,
68408 arrowPosition = _props.arrowPosition,
68409 slideDirection = _props.slideDirection,
68410 style = _props.style,
68411 className = _props.className,
68412 children = _props.children;
68413
68414 var globalProps = {};
68415 Object.keys(_configProvider2.default.propTypes).forEach(function (key) {
68416 globalProps[key] = _this2.props[key];
68417 });
68418
68419 var sliderProps = _util.obj.pickOthers(['className', 'style', 'slideDirection'], this.props);
68420 var slideCount = _react2.default.Children.count(children);
68421
68422 if (slideCount === 0) {
68423 // 没有 item 时不显示 slider
68424 return null;
68425 } else if (slideCount === 1) {
68426 // 单个 item 时不显示箭头和控制器
68427 sliderProps.arrows = false;
68428 sliderProps.autoplay = false;
68429 sliderProps.draggable = false;
68430 }
68431
68432 var clazz = (0, _classnames2.default)([prefix + 'slick', prefix + 'slick-' + arrowPosition, prefix + 'slick-' + slideDirection], className);
68433
68434 if (slideDirection === 'ver') {
68435 // 向下传递时使用 vertical 属性
68436 sliderProps.vertical = true;
68437 sliderProps.verticalSwiping = true;
68438 }
68439
68440 return _react2.default.createElement(_configProvider2.default, (0, _extends3.default)({}, globalProps, { rtl: false }), _react2.default.createElement('div', (0, _extends3.default)({
68441 dir: 'ltr',
68442 className: clazz,
68443 style: style
68444 }, _util.obj.pickOthers((0, _extends3.default)({}, Slider.propTypes, _innerSlider2.default.propTypes), sliderProps)), _react2.default.createElement(_innerSlider2.default, (0, _extends3.default)({
68445 ref: function ref(InnerSlider) {
68446 return _this2.innerSlider = InnerSlider;
68447 }
68448 }, sliderProps))));
68449 };
68450
68451 return Slider;
68452}(_react.Component), _class.propTypes = {
68453 prefix: _propTypes2.default.string,
68454 rtl: _propTypes2.default.bool,
68455 /**
68456 * 自定义传入的样式
68457 */
68458 className: _propTypes2.default.any,
68459 /**
68460 * 是否使用自适应高度
68461 */
68462 adaptiveHeight: _propTypes2.default.bool,
68463 /**
68464 * 动效类型,默认是'slide'
68465 */
68466 animation: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
68467 /**
68468 * 是否显示箭头
68469 */
68470 arrows: _propTypes2.default.bool,
68471 /**
68472 * 导航箭头大小 可选值: 'medium', 'large'
68473 */
68474 arrowSize: _propTypes2.default.oneOf(['medium', 'large']),
68475 /**
68476 * 导航箭头位置 可选值: 'inner', 'outer'
68477 */
68478 arrowPosition: _propTypes2.default.oneOf(['inner', 'outer']),
68479 /**
68480 * 导航箭头的方向 可选值: 'hoz', 'ver'
68481 */
68482 arrowDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
68483 /**
68484 * 是否自动播放
68485 */
68486 autoplay: _propTypes2.default.bool,
68487 /**
68488 * 自动播放的速度
68489 */
68490 autoplaySpeed: _propTypes2.default.number,
68491 /**
68492 * 向后箭头
68493 */
68494 nextArrow: _propTypes2.default.element,
68495 /**
68496 * 向前箭头
68497 */
68498 prevArrow: _propTypes2.default.element,
68499 /**
68500 * 是否启用居中模式
68501 */
68502 centerMode: _propTypes2.default.bool,
68503 /**
68504 * 是否显示导航锚点
68505 */
68506 dots: _propTypes2.default.bool,
68507 /**
68508 * 导航锚点位置
68509 */
68510 dotsDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
68511 dotsClass: _propTypes2.default.string,
68512 /**
68513 * 自定义导航锚点
68514 */
68515 dotsRender: _propTypes2.default.func,
68516 /**
68517 * 是否可拖拽
68518 */
68519 draggable: _propTypes2.default.bool,
68520 /**
68521 * 是否使用无穷循环模式
68522 */
68523 infinite: _propTypes2.default.bool,
68524 /**
68525 * 初始被激活的轮播图
68526 */
68527 defaultActiveIndex: _propTypes2.default.number,
68528 /**
68529 * 是否启用懒加载
68530 */
68531 lazyLoad: _propTypes2.default.bool,
68532 slide: _propTypes2.default.string,
68533 /**
68534 * 轮播方向
68535 */
68536 slideDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
68537 /**
68538 * 同时展示的图片数量
68539 */
68540 slidesToShow: _propTypes2.default.number,
68541 /**
68542 * 同时滑动的图片数量
68543 */
68544 slidesToScroll: _propTypes2.default.number,
68545 /**
68546 * 轮播速度
68547 */
68548 speed: _propTypes2.default.number,
68549 /**
68550 * 跳转到指定的轮播图(受控)
68551 */
68552 activeIndex: _propTypes2.default.number,
68553 /**
68554 * 锚点导航触发方式
68555 */
68556 triggerType: _propTypes2.default.oneOf(['click', 'hover']),
68557 /**
68558 * 轮播切换的回调函数
68559 * @param {Number} index 幻灯片的索引
68560 */
68561 onChange: _propTypes2.default.func,
68562 onBeforeChange: _propTypes2.default.func, // 兼容 0.x onBeforeChange
68563 children: _propTypes2.default.any,
68564 /**
68565 * 自定义传入的class
68566 */
68567 style: _propTypes2.default.object,
68568 /**
68569 * Side padding when in center mode (px or %); 展示部分为center,pading会产生前后预览
68570 */
68571 centerPadding: _propTypes2.default.string,
68572 /**
68573 * CSS3 Animation Easing,默认‘ease’
68574 */
68575 cssEase: _propTypes2.default.string, // used
68576 edgeFriction: _propTypes2.default.number, // 非无限轮播滑动到边缘时的阻力
68577 /**
68578 * 多图轮播时,点击选中后自动居中
68579 */
68580 focusOnSelect: _propTypes2.default.bool,
68581 pauseOnHover: _propTypes2.default.bool, // 鼠标经过时停止播放
68582 swipe: _propTypes2.default.bool,
68583 swipeToSlide: _propTypes2.default.bool,
68584 touchMove: _propTypes2.default.bool,
68585 touchThreshold: _propTypes2.default.number,
68586 useCSS: _propTypes2.default.bool,
68587 variableWidth: _propTypes2.default.bool, // used
68588 waitForAnimate: _propTypes2.default.bool,
68589 edgeEvent: _propTypes2.default.any,
68590 swipeEvent: _propTypes2.default.any
68591}, _class.defaultProps = {
68592 prefix: 'next-',
68593 animation: 'slide',
68594 arrowSize: 'medium',
68595 arrowPosition: 'inner',
68596 vertical: false,
68597 verticalSwiping: false,
68598 dots: true,
68599 dotsDirection: 'hoz',
68600 arrows: true,
68601 arrowDirection: 'hoz',
68602 infinite: true,
68603 autoplay: false,
68604 autoplaySpeed: 3000,
68605 speed: 600,
68606 adaptiveHeight: false,
68607 centerMode: false,
68608 centerPadding: '50px', // Side padding when in center mode (px or %); 展示部分为center,pading会产生前后预览
68609 cssEase: 'ease',
68610 draggable: true,
68611 edgeFriction: 0.35,
68612 focusOnSelect: false,
68613 defaultActiveIndex: 0,
68614 lazyLoad: false,
68615 pauseOnHover: false,
68616 rtl: false,
68617 slide: 'div',
68618 slideDirection: 'hoz',
68619 slidesToShow: 1,
68620 slidesToScroll: 1,
68621 swipe: true,
68622 swipeToSlide: false, // Allow users to drag or swipe directly to a slide irrespective of slidesToScroll
68623 touchMove: true, // 移动端touch
68624 touchThreshold: 5,
68625 useCSS: true,
68626 variableWidth: false,
68627 waitForAnimate: true,
68628 onChange: function onChange() {},
68629 onBeforeChange: function onBeforeChange() {},
68630 edgeEvent: null,
68631 swipeEvent: null,
68632 nextArrow: null, // nextArrow, prevArrow are react components
68633 prevArrow: null,
68634 style: null,
68635 dotsRender: null,
68636 triggerType: 'click'
68637}, _temp2);
68638Slider.displayName = 'Slider';
68639exports.default = Slider;
68640module.exports = exports['default'];
68641
68642/***/ }),
68643/* 410 */
68644/***/ (function(module, exports, __webpack_require__) {
68645
68646"use strict";
68647
68648
68649exports.__esModule = true;
68650
68651var _extends2 = __webpack_require__(1);
68652
68653var _extends3 = _interopRequireDefault(_extends2);
68654
68655var _classCallCheck2 = __webpack_require__(2);
68656
68657var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
68658
68659var _possibleConstructorReturn2 = __webpack_require__(3);
68660
68661var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
68662
68663var _inherits2 = __webpack_require__(4);
68664
68665var _inherits3 = _interopRequireDefault(_inherits2);
68666
68667var _class, _temp;
68668
68669var _react = __webpack_require__(0);
68670
68671var _react2 = _interopRequireDefault(_react);
68672
68673var _propTypes = __webpack_require__(5);
68674
68675var _propTypes2 = _interopRequireDefault(_propTypes);
68676
68677var _reactLifecyclesCompat = __webpack_require__(10);
68678
68679var _util = __webpack_require__(6);
68680
68681var _eventHandlers = __webpack_require__(411);
68682
68683var _eventHandlers2 = _interopRequireDefault(_eventHandlers);
68684
68685var _helpers = __webpack_require__(412);
68686
68687var _helpers2 = _interopRequireDefault(_helpers);
68688
68689var _arrow = __webpack_require__(413);
68690
68691var _arrow2 = _interopRequireDefault(_arrow);
68692
68693var _track = __webpack_require__(414);
68694
68695var _track2 = _interopRequireDefault(_track);
68696
68697var _dots = __webpack_require__(415);
68698
68699var _dots2 = _interopRequireDefault(_dots);
68700
68701function _interopRequireDefault(obj) {
68702 return obj && obj.__esModule ? obj : { default: obj };
68703}
68704
68705/**
68706 * Slider inner
68707 */
68708
68709var noop = _util.func.noop;
68710var InnerSlider = (_temp = _class = function (_React$Component) {
68711 (0, _inherits3.default)(InnerSlider, _React$Component);
68712
68713 function InnerSlider(props) {
68714 (0, _classCallCheck3.default)(this, InnerSlider);
68715
68716 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
68717
68718 _this.state = {
68719 animating: false,
68720 dragging: false,
68721 autoPlayTimer: null,
68722 currentDirection: 0,
68723 currentLeft: null,
68724 currentSlide: 'activeIndex' in props ? props.activeIndex : props.defaultActiveIndex,
68725 direction: 1,
68726 listWidth: null,
68727 listHeight: null,
68728 slideCount: null,
68729 slideWidth: null,
68730 slideHeight: null,
68731 swipeLeft: null,
68732 touchObject: {
68733 startX: 0,
68734 startY: 0,
68735 curX: 0,
68736 curY: 0
68737 },
68738
68739 lazyLoadedList: [],
68740
68741 // added for react
68742 initialized: false,
68743 edgeDragged: false,
68744 swiped: false, // used by swipeEvent. differentites between touch and swipe.
68745 trackStyle: {},
68746 trackWidth: 0
68747 };
68748
68749 // this.filterProps = Object.assign({}, sliderPropTypes, InnerSlider.propTypes);
68750
68751 _util.func.bindCtx(_this, ['onWindowResized', 'selectHandler', 'changeSlide', 'onInnerSliderEnter', 'onInnerSliderLeave', 'swipeStart', 'swipeMove', 'swipeEnd']);
68752 return _this;
68753 }
68754
68755 InnerSlider.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
68756 var state = {};
68757
68758 var lazyLoad = nextProps.lazyLoad,
68759 children = nextProps.children,
68760 slidesToShow = nextProps.slidesToShow,
68761 activeIndex = nextProps.activeIndex;
68762 var currentSlide = prevState.currentSlide;
68763
68764 var lazyLoadedList = [];
68765
68766 if (children !== prevState.children) {
68767 state.children = children;
68768 }
68769
68770 if (lazyLoad) {
68771 for (var i = 0, j = _react2.default.Children.count(children); i < j; i++) {
68772 if (i >= currentSlide && i < currentSlide + slidesToShow) {
68773 lazyLoadedList.push(i);
68774
68775 var pre = i - 1 < 0 ? j - 1 : i - 1;
68776 var next = i + 1 >= j ? 0 : i + 1;
68777
68778 lazyLoadedList.push(pre);
68779 lazyLoadedList.push(next);
68780 }
68781 }
68782
68783 if (prevState.lazyLoadedList.length === 0) {
68784 state.lazyLoadedList = lazyLoadedList;
68785 }
68786 }
68787
68788 return state;
68789 };
68790
68791 InnerSlider.prototype.componentDidMount = function componentDidMount() {
68792 this.hasMounted = true;
68793
68794 // TODO Hack for autoplay -- Inspect Later
68795 this.initialize(this.props);
68796 this.adaptHeight();
68797
68798 if (this.props.activeIndex) {
68799 this.slickGoTo(this.props.activeIndex);
68800 }
68801
68802 /* istanbul ignore if */
68803 if (window) {
68804 // To support server-side rendering
68805 _util.events.on(window, 'resize', this.onWindowResized);
68806 }
68807 };
68808
68809 InnerSlider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
68810 if (prevProps.activeIndex !== this.props.activeIndex) {
68811 this.slickGoTo(this.props.activeIndex);
68812 } else if (prevState.currentSlide >= this.props.children.length) {
68813 this.update(this.props);
68814 this.changeSlide({
68815 message: 'index',
68816 index: this.props.children.length - this.props.slidesToShow,
68817 currentSlide: this.state.currentSlide
68818 });
68819 } else {
68820 var update = !_util.obj.shallowEqual(prevProps, this.props);
68821 if (update) {
68822 this.update(this.props);
68823 }
68824 }
68825
68826 this.adaptHeight();
68827 };
68828
68829 InnerSlider.prototype.componentWillUnmount = function componentWillUnmount() {
68830 if (this.animationEndCallback) {
68831 clearTimeout(this.animationEndCallback);
68832 }
68833
68834 _util.events.off(window, 'resize', this.onWindowResized);
68835
68836 if (this.state.autoPlayTimer) {
68837 clearInterval(this.state.autoPlayTimer);
68838 }
68839 };
68840
68841 InnerSlider.prototype.onWindowResized = function onWindowResized() {
68842 this.update(this.props);
68843 // animating state should be cleared while resizing, otherwise autoplay stops working
68844 this.setState({ animating: false });
68845 clearTimeout(this.animationEndCallback);
68846 delete this.animationEndCallback;
68847 };
68848
68849 InnerSlider.prototype.slickGoTo = function slickGoTo(slide) {
68850 typeof slide === 'number' && this.changeSlide({
68851 message: 'index',
68852 index: slide,
68853 currentSlide: this.state.currentSlide
68854 });
68855 };
68856
68857 InnerSlider.prototype.onEnterArrow = function onEnterArrow(msg) {
68858 this.arrowHoverHandler(msg);
68859 };
68860
68861 InnerSlider.prototype.onLeaveArrow = function onLeaveArrow() {
68862 this.arrowHoverHandler();
68863 };
68864
68865 InnerSlider.prototype._instanceRefHandler = function _instanceRefHandler(attr, ref) {
68866 this[attr] = ref;
68867 };
68868
68869 InnerSlider.prototype.render = function render() {
68870 var _props = this.props,
68871 prefix = _props.prefix,
68872 animation = _props.animation,
68873 arrows = _props.arrows,
68874 arrowSize = _props.arrowSize,
68875 arrowPosition = _props.arrowPosition,
68876 arrowDirection = _props.arrowDirection,
68877 dots = _props.dots,
68878 dotsClass = _props.dotsClass,
68879 cssEase = _props.cssEase,
68880 speed = _props.speed,
68881 infinite = _props.infinite,
68882 centerMode = _props.centerMode,
68883 centerPadding = _props.centerPadding,
68884 lazyLoad = _props.lazyLoad,
68885 dotsDirection = _props.dotsDirection,
68886 rtl = _props.rtl,
68887 slidesToShow = _props.slidesToShow,
68888 slidesToScroll = _props.slidesToScroll,
68889 variableWidth = _props.variableWidth,
68890 vertical = _props.vertical,
68891 verticalSwiping = _props.verticalSwiping,
68892 focusOnSelect = _props.focusOnSelect,
68893 children = _props.children,
68894 dotsRender = _props.dotsRender,
68895 triggerType = _props.triggerType;
68896 var _state = this.state,
68897 currentSlide = _state.currentSlide,
68898 lazyLoadedList = _state.lazyLoadedList,
68899 slideCount = _state.slideCount,
68900 slideWidth = _state.slideWidth,
68901 slideHeight = _state.slideHeight,
68902 trackStyle = _state.trackStyle,
68903 listHeight = _state.listHeight,
68904 dragging = _state.dragging;
68905
68906 // TODO 需要精简一下
68907
68908 var trackProps = {
68909 prefix: prefix,
68910 animation: animation,
68911 cssEase: cssEase,
68912 speed: speed,
68913 infinite: infinite,
68914 centerMode: centerMode,
68915 focusOnSelect: focusOnSelect ? this.selectHandler : null,
68916 currentSlide: currentSlide,
68917 lazyLoad: lazyLoad,
68918 lazyLoadedList: lazyLoadedList,
68919 rtl: rtl,
68920 slideWidth: slideWidth,
68921 slideHeight: slideHeight,
68922 slidesToShow: slidesToShow,
68923 slidesToScroll: slidesToScroll,
68924 slideCount: slideCount,
68925 trackStyle: trackStyle,
68926 variableWidth: variableWidth,
68927 vertical: vertical,
68928 verticalSwiping: verticalSwiping,
68929 triggerType: triggerType
68930 // clickHandler: this.changeSlide, unused
68931 };
68932
68933 var dotsEle = void 0;
68934
68935 if (dots === true && slideCount > slidesToShow) {
68936 var dotProps = {
68937 prefix: prefix,
68938 rtl: rtl,
68939 dotsClass: dotsClass,
68940 slideCount: slideCount,
68941 slidesToShow: slidesToShow,
68942 currentSlide: currentSlide,
68943 slidesToScroll: slidesToScroll,
68944 dotsDirection: dotsDirection,
68945 changeSlide: this.changeSlide,
68946 dotsRender: dotsRender,
68947 triggerType: triggerType
68948 };
68949
68950 dotsEle = _react2.default.createElement(_dots2.default, dotProps);
68951 }
68952
68953 var prevArrow = void 0,
68954 nextArrow = void 0;
68955
68956 var arrowProps = {
68957 prefix: prefix,
68958 rtl: rtl,
68959 arrowSize: arrowSize,
68960 arrowPosition: arrowPosition,
68961 arrowDirection: arrowDirection,
68962 infinite: infinite,
68963 centerMode: centerMode,
68964 currentSlide: currentSlide,
68965 slideCount: slideCount,
68966 slidesToShow: slidesToShow,
68967 clickHandler: this.changeSlide
68968 };
68969
68970 if (arrows) {
68971 prevArrow = _react2.default.createElement(_arrow2.default, (0, _extends3.default)({}, arrowProps, {
68972 type: 'prev',
68973 'aria-label': 'Previous',
68974 ref: this._instanceRefHandler.bind(this, 'pArrow'),
68975 onMouseEnter: animation ? this.onEnterArrow.bind(this, 'prev') : noop,
68976 onMouseLeave: animation ? this.onLeaveArrow.bind(this, 'prev') : noop
68977 }), this.props.prevArrow);
68978
68979 nextArrow = _react2.default.createElement(_arrow2.default, (0, _extends3.default)({}, arrowProps, {
68980 type: 'next',
68981 'aria-label': 'Next',
68982 ref: this._instanceRefHandler.bind(this, 'nArrow'),
68983 onMouseEnter: animation ? this.onEnterArrow.bind(this, 'next') : noop,
68984 onMouseLeave: animation ? this.onLeaveArrow.bind(this, 'next') : noop
68985 }), this.props.nextArrow);
68986 }
68987
68988 var verticalHeightStyle = vertical ? {
68989 height: listHeight
68990 } : null;
68991
68992 var centerPaddingStyle = void 0;
68993 if (centerMode) {
68994 centerPaddingStyle = vertical ? { padding: centerPadding + ' 0px' } : { padding: '0px ' + centerPadding };
68995 }
68996
68997 return _react2.default.createElement('div', {
68998 className: prefix + 'slick-container ' + prefix + 'slick-initialized',
68999 onMouseEnter: this.onInnerSliderEnter,
69000 onMouseLeave: this.onInnerSliderLeave
69001 }, _react2.default.createElement('div', {
69002 ref: this._instanceRefHandler.bind(this, 'list'),
69003 className: prefix + 'slick-list',
69004 style: (0, _extends3.default)({}, verticalHeightStyle, centerPaddingStyle),
69005 onMouseDown: this.swipeStart,
69006 onMouseUp: this.swipeEnd,
69007 onTouchStart: this.swipeStart,
69008 onTouchEnd: this.swipeEnd,
69009 onMouseMove: dragging ? this.swipeMove : null,
69010 onMouseLeave: dragging ? this.swipeEnd : null,
69011 onTouchMove: dragging ? this.swipeMove : null,
69012 onTouchCancel: dragging ? this.swipeEnd : null
69013 }, _react2.default.createElement(_track2.default, (0, _extends3.default)({ ref: this._instanceRefHandler.bind(this, 'track') }, trackProps), children)), prevArrow, nextArrow, dotsEle);
69014 };
69015
69016 return InnerSlider;
69017}(_react2.default.Component), _class.propTypes = {
69018 prefix: _propTypes2.default.string,
69019 animation: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
69020 arrows: _propTypes2.default.bool,
69021 arrowSize: _propTypes2.default.oneOf(['medium', 'large']),
69022 arrowPosition: _propTypes2.default.oneOf(['inner', 'outer']),
69023 arrowDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
69024 centerPadding: _propTypes2.default.any,
69025 children: _propTypes2.default.any,
69026 centerMode: _propTypes2.default.bool,
69027 dots: _propTypes2.default.bool,
69028 dotsDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
69029 dotsClass: _propTypes2.default.string,
69030 focusOnSelect: _propTypes2.default.bool,
69031 cssEase: _propTypes2.default.string,
69032 speed: _propTypes2.default.number,
69033 infinite: _propTypes2.default.bool,
69034 defaultActiveIndex: _propTypes2.default.number,
69035 rtl: _propTypes2.default.bool,
69036 slidesToShow: _propTypes2.default.number,
69037 lazyLoad: _propTypes2.default.bool,
69038 activeIndex: _propTypes2.default.number,
69039 slidesToScroll: _propTypes2.default.number,
69040 variableWidth: _propTypes2.default.bool,
69041 vertical: _propTypes2.default.bool,
69042 verticalSwiping: _propTypes2.default.bool,
69043 prevArrow: _propTypes2.default.element,
69044 nextArrow: _propTypes2.default.element,
69045 dotsRender: _propTypes2.default.func,
69046 triggerType: _propTypes2.default.string
69047}, _class.defaultProps = {
69048 prefix: 'next-',
69049 arrowDirection: 'hoz',
69050 triggerType: 'click'
69051}, _temp);
69052
69053// extend prototype
69054
69055InnerSlider.displayName = 'InnerSlider';
69056(0, _extends3.default)(InnerSlider.prototype, _helpers2.default);
69057(0, _extends3.default)(InnerSlider.prototype, _eventHandlers2.default);
69058
69059exports.default = (0, _reactLifecyclesCompat.polyfill)(InnerSlider);
69060module.exports = exports['default'];
69061
69062/***/ }),
69063/* 411 */
69064/***/ (function(module, exports, __webpack_require__) {
69065
69066"use strict";
69067
69068
69069exports.__esModule = true;
69070
69071var _extends2 = __webpack_require__(1);
69072
69073var _extends3 = _interopRequireDefault(_extends2);
69074
69075var _reactDom = __webpack_require__(12);
69076
69077var _trackHelper = __webpack_require__(181);
69078
69079function _interopRequireDefault(obj) {
69080 return obj && obj.__esModule ? obj : { default: obj };
69081}
69082
69083/* istanbul ignore next */
69084var EventHandlers = {
69085 // Event handler for previous and next
69086 changeSlide: function changeSlide(options) {
69087 var slideOffset = void 0,
69088 targetSlide = void 0;
69089 var unevenOffset = this.state.slideCount % this.props.slidesToScroll !== 0;
69090 var indexOffset = unevenOffset ? 0 : (this.state.slideCount - this.state.currentSlide) % this.props.slidesToScroll;
69091
69092 if (options.message === 'previous') {
69093 slideOffset = indexOffset === 0 ? this.props.slidesToScroll : this.props.slidesToShow - indexOffset;
69094 targetSlide = this.state.currentSlide - slideOffset;
69095 } else if (options.message === 'next') {
69096 slideOffset = indexOffset === 0 ? this.props.slidesToScroll : indexOffset;
69097 targetSlide = this.state.currentSlide + slideOffset;
69098 } else if (options.message === 'dots' || options.message === 'children') {
69099 // Click on dots
69100 targetSlide = options.index * options.slidesToScroll;
69101 if (targetSlide === options.currentSlide) {
69102 return;
69103 }
69104 } else if (options.message === 'index') {
69105 targetSlide = options.index;
69106 if (targetSlide === options.currentSlide) {
69107 return;
69108 }
69109 }
69110 this.slideHandler(targetSlide);
69111 },
69112
69113 // Accessiblity handler for previous and next
69114 keyHandler: function keyHandler(e) {
69115 //Dont slide if the cursor is inside the form fields and arrow keys are pressed
69116 if (!e.target.tagName.match('TEXTAREA|INPUT|SELECT')) {
69117 if (e.keyCode === 37 && this.props.accessibility === true) {
69118 this.changeSlide({
69119 message: this.props.rtl === true ? 'next' : 'previous'
69120 });
69121 } else if (e.keyCode === 39 && this.props.accessibility === true) {
69122 this.changeSlide({
69123 message: this.props.rtl === true ? 'previous' : 'next'
69124 });
69125 }
69126 }
69127 },
69128
69129 // Focus on selecting a slide (click handler on track)
69130 selectHandler: function selectHandler(options) {
69131 this.changeSlide(options);
69132 },
69133 swipeStart: function swipeStart(e) {
69134 if (this.props.swipe === false || 'ontouchend' in document && this.props.swipe === false) {
69135 return;
69136 } else if (this.props.draggable === false && e.type.indexOf('mouse') !== -1) {
69137 return;
69138 }
69139 var posX = e.touches !== undefined ? e.touches[0].pageX : e.clientX;
69140 var posY = e.touches !== undefined ? e.touches[0].pageY : e.clientY;
69141 this.setState({
69142 dragging: true,
69143 touchObject: {
69144 startX: posX,
69145 startY: posY,
69146 curX: posX,
69147 curY: posY
69148 }
69149 });
69150 },
69151 swipeMove: function swipeMove(e) {
69152 if (!this.state.dragging) {
69153 return;
69154 }
69155 if (this.state.animating) {
69156 return;
69157 }
69158 var touchObject = this.state.touchObject;
69159
69160 var curLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69161 slideIndex: this.state.currentSlide,
69162 trackRef: this.refs.track
69163 }, this.props, this.state));
69164
69165 touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;
69166 touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;
69167 touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));
69168
69169 var positionOffset = (this.props.rtl === false ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);
69170
69171 if (this.props.verticalSwiping === true) {
69172 touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));
69173 positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;
69174 }
69175
69176 var currentSlide = this.state.currentSlide;
69177 var dotCount = Math.ceil(this.state.slideCount / this.props.slidesToScroll);
69178 var swipeDirection = this.swipeDirection(this.state.touchObject);
69179 var touchSwipeLength = touchObject.swipeLength;
69180
69181 if (this.props.infinite === false) {
69182 if (currentSlide === 0 && swipeDirection === 'right' || currentSlide + 1 >= dotCount && swipeDirection === 'left') {
69183 touchSwipeLength = touchObject.swipeLength * this.props.edgeFriction;
69184
69185 if (this.state.edgeDragged === false && this.props.edgeEvent) {
69186 this.props.edgeEvent(swipeDirection);
69187 this.setState({ edgeDragged: true });
69188 }
69189 }
69190 }
69191
69192 if (this.state.swiped === false && this.props.swipeEvent) {
69193 this.props.swipeEvent(swipeDirection);
69194 this.setState({ swiped: true });
69195 }
69196
69197 var swipeLeft = curLeft + touchSwipeLength * positionOffset;
69198 this.setState({
69199 touchObject: touchObject,
69200 swipeLeft: swipeLeft,
69201 trackStyle: (0, _trackHelper.getTrackCSS)((0, _extends3.default)({
69202 left: swipeLeft
69203 }, this.props, this.state))
69204 });
69205
69206 if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {
69207 return;
69208 }
69209 if (touchObject.swipeLength > 4) {
69210 e.preventDefault();
69211 }
69212 },
69213 getNavigableIndexes: function getNavigableIndexes() {
69214 var max = void 0;
69215 var breakPoint = 0;
69216 var counter = 0;
69217 var indexes = [];
69218
69219 if (!this.props.infinite) {
69220 max = this.state.slideCount;
69221 } else {
69222 breakPoint = this.props.slidesToShow * -1;
69223 counter = this.props.slidesToShow * -1;
69224 max = this.state.slideCount * 2;
69225 }
69226
69227 while (breakPoint < max) {
69228 indexes.push(breakPoint);
69229 breakPoint = counter + this.props.slidesToScroll;
69230
69231 counter += this.props.slidesToScroll <= this.props.slidesToShow ? this.props.slidesToScroll : this.props.slidesToShow;
69232 }
69233
69234 return indexes;
69235 },
69236 checkNavigable: function checkNavigable(index) {
69237 var navigables = this.getNavigableIndexes();
69238 var prevNavigable = 0;
69239
69240 if (index > navigables[navigables.length - 1]) {
69241 index = navigables[navigables.length - 1];
69242 } else {
69243 for (var n in navigables) {
69244 if (index < navigables[n]) {
69245 index = prevNavigable;
69246 break;
69247 }
69248
69249 prevNavigable = navigables[n];
69250 }
69251 }
69252
69253 return index;
69254 },
69255 getSlideCount: function getSlideCount() {
69256 var _this = this;
69257
69258 var centerOffset = this.props.centerMode ? this.state.slideWidth * Math.floor(this.props.slidesToShow / 2) : 0;
69259 if (this.props.swipeToSlide) {
69260 var swipedSlide = void 0;
69261 var slickList = (0, _reactDom.findDOMNode)(this.list);
69262
69263 var slides = slickList.querySelectorAll(this.props.prefix + 'slick-slide');
69264
69265 Array.from(slides).every(function (slide) {
69266 if (!_this.props.vertical) {
69267 if (slide.offsetLeft - centerOffset + (_this.getWidth(slide) || 0) / 2 > _this.state.swipeLeft * -1) {
69268 swipedSlide = slide;
69269 return false;
69270 }
69271 } else if (slide.offsetTop + (_this.getHeight(slide) || 0) / 2 > _this.state.swipeLeft * -1) {
69272 swipedSlide = slide;
69273 return false;
69274 }
69275
69276 return true;
69277 });
69278 var slidesTraversed = Math.abs(swipedSlide.dataset.index - this.state.currentSlide) || 1;
69279 return slidesTraversed;
69280 } else {
69281 return this.props.slidesToScroll;
69282 }
69283 },
69284 swipeEnd: function swipeEnd(e) {
69285 if (!this.state.dragging) {
69286 if (this.props.swipe) {
69287 e.preventDefault();
69288 }
69289 return;
69290 }
69291 var touchObject = this.state.touchObject;
69292 var minSwipe = this.state.listWidth / this.props.touchThreshold;
69293 var swipeDirection = this.swipeDirection(touchObject);
69294
69295 if (this.props.verticalSwiping) {
69296 minSwipe = this.state.listHeight / this.props.touchThreshold;
69297 }
69298
69299 // reset the state of touch related state variables.
69300 this.setState({
69301 dragging: false,
69302 edgeDragged: false,
69303 swiped: false,
69304 swipeLeft: null,
69305 touchObject: {}
69306 });
69307
69308 if (!touchObject.swipeLength) {
69309 return;
69310 }
69311
69312 if (touchObject.swipeLength > minSwipe) {
69313 e.preventDefault();
69314
69315 var slideCount = void 0;
69316 var newSlide = void 0;
69317
69318 switch (swipeDirection) {
69319 case 'left':
69320 case 'down':
69321 newSlide = this.state.currentSlide + this.getSlideCount();
69322 slideCount = this.props.swipeToSlide ? this.checkNavigable(newSlide) : newSlide;
69323 this.setState({ currentDirection: 0 });
69324 break;
69325 case 'right':
69326 case 'up':
69327 newSlide = this.state.currentSlide - this.getSlideCount();
69328 slideCount = this.props.swipeToSlide ? this.checkNavigable(newSlide) : newSlide;
69329 this.setState({ currentDirection: 1 });
69330 break;
69331 default:
69332 slideCount = this.state.currentSlide;
69333 }
69334 this.slideHandler(slideCount);
69335 } else {
69336 // Adjust the track back to it's original position.
69337 var currentLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69338 slideIndex: this.state.currentSlide,
69339 trackRef: this.track
69340 }, this.props, this.state));
69341
69342 this.setState({
69343 trackStyle: (0, _trackHelper.getTrackAnimateCSS)((0, _extends3.default)({
69344 left: currentLeft
69345 }, this.props, this.state))
69346 });
69347 }
69348 },
69349 onInnerSliderEnter: function onInnerSliderEnter() {
69350 if (this.props.autoplay && this.props.pauseOnHover) {
69351 this.pause();
69352 }
69353 },
69354 onInnerSliderLeave: function onInnerSliderLeave() {
69355 if (this.props.autoplay && this.props.pauseOnHover) {
69356 this.autoPlay();
69357 }
69358 }
69359};
69360
69361exports.default = EventHandlers;
69362module.exports = exports['default'];
69363
69364/***/ }),
69365/* 412 */
69366/***/ (function(module, exports, __webpack_require__) {
69367
69368"use strict";
69369
69370
69371exports.__esModule = true;
69372
69373var _extends2 = __webpack_require__(1);
69374
69375var _extends3 = _interopRequireDefault(_extends2);
69376
69377var _react = __webpack_require__(0);
69378
69379var _react2 = _interopRequireDefault(_react);
69380
69381var _reactDom = __webpack_require__(12);
69382
69383var _reactDom2 = _interopRequireDefault(_reactDom);
69384
69385var _trackHelper = __webpack_require__(181);
69386
69387function _interopRequireDefault(obj) {
69388 return obj && obj.__esModule ? obj : { default: obj };
69389}
69390
69391var helpers = {
69392 initialize: function initialize(props) {
69393 var _this = this;
69394
69395 var slickList = _reactDom2.default.findDOMNode(this.list);
69396 var slideCount = _react2.default.Children.count(props.children);
69397 var listWidth = this.getWidth(slickList) || 0;
69398 var trackWidth = this.getWidth(_reactDom2.default.findDOMNode(this.track)) || 0;
69399 var slideWidth = void 0;
69400
69401 if (!props.vertical) {
69402 var centerPaddingAdj = props.centerMode && parseInt(props.centerPadding) * 2;
69403 slideWidth = (listWidth - centerPaddingAdj) / props.slidesToShow;
69404 } else {
69405 slideWidth = listWidth;
69406 }
69407
69408 var slideHeight = this.getHeight(slickList.querySelector('[data-index="0"]')) || 0;
69409 var listHeight = slideHeight * props.slidesToShow;
69410
69411 var slidesToShow = props.slidesToShow || 1;
69412
69413 var activeIndex = 'activeIndex' in props ? props.activeIndex : props.defaultActiveIndex;
69414 var currentSlide = props.rtl ? slideCount - 1 - (slidesToShow - 1) - activeIndex : activeIndex;
69415
69416 this.setState({
69417 slideCount: slideCount,
69418 slideWidth: slideWidth,
69419 listWidth: listWidth,
69420 trackWidth: trackWidth,
69421 currentSlide: currentSlide,
69422 slideHeight: slideHeight,
69423 listHeight: listHeight
69424 }, function () {
69425 var targetLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69426 slideIndex: _this.state.currentSlide,
69427 trackRef: _this.track
69428 }, props, _this.state));
69429 // getCSS function needs previously set state
69430 var trackStyle = (0, _trackHelper.getTrackCSS)((0, _extends3.default)({
69431 left: targetLeft
69432 }, props, _this.state));
69433
69434 _this.setState({ trackStyle: trackStyle });
69435
69436 _this.autoPlay(); // once we're set up, trigger the initial autoplay.
69437 });
69438 },
69439 update: function update(props) {
69440 this.initialize(props);
69441 },
69442 getWidth: function getWidth(elem) {
69443 if ('clientWidth' in elem) {
69444 return elem.clientWidth;
69445 }
69446 return elem && elem.getBoundingClientRect().width;
69447 },
69448 getHeight: function getHeight(elem) {
69449 if ('clientHeight' in elem) {
69450 return elem.clientHeight;
69451 }
69452 return elem && elem.getBoundingClientRect().height;
69453 },
69454 adaptHeight: function adaptHeight() {
69455 if (this.props.adaptiveHeight) {
69456 var selector = '[data-index="' + this.state.currentSlide + '"]';
69457 if (this.list) {
69458 var slickList = _reactDom2.default.findDOMNode(this.list);
69459 var listHeight = slickList.querySelector(selector).offsetHeight;
69460 slickList.style.height = listHeight + 'px';
69461 }
69462 }
69463 },
69464 canGoNext: function canGoNext(opts) {
69465 var canGo = true;
69466 if (!opts.infinite) {
69467 if (opts.centerMode) {
69468 if (opts.currentSlide >= opts.slideCount - 1) {
69469 canGo = false;
69470 }
69471 } else if (opts.slideCount <= opts.slidesToShow || opts.currentSlide >= opts.slideCount - opts.slidesToShow) {
69472 // check if all slides are shown in slider
69473 canGo = false;
69474 }
69475 }
69476 return canGo;
69477 },
69478 slideHandler: function slideHandler(index) {
69479 var _this2 = this;
69480
69481 var rtl = this.props.rtl;
69482
69483 // Functionality of animateSlide and postSlide is merged into this function
69484
69485 var targetSlide = void 0,
69486 currentSlide = void 0;
69487 var callback = void 0;
69488
69489 if (this.props.waitForAnimate && this.state.animating) {
69490 return;
69491 }
69492
69493 if (this.props.animation === 'fade') {
69494 currentSlide = this.state.currentSlide;
69495
69496 // don't change slide if it's not infinite and current slide is the first or last slide'
69497 if (this.props.infinite === false && (index < 0 || index >= this.state.slideCount)) {
69498 return;
69499 }
69500
69501 // Shifting targetSlide back into the range
69502 if (index < 0) {
69503 targetSlide = index + this.state.slideCount;
69504 } else if (index >= this.state.slideCount) {
69505 targetSlide = index - this.state.slideCount;
69506 } else {
69507 targetSlide = index;
69508 }
69509
69510 if (this.props.lazyLoad && this.state.lazyLoadedList.indexOf(targetSlide) < 0) {
69511 this.setState({
69512 lazyLoadedList: this.state.lazyLoadedList.concat(targetSlide)
69513 });
69514 }
69515
69516 callback = function callback() {
69517 _this2.setState({
69518 animating: false
69519 });
69520 _this2.props.onChange(targetSlide);
69521 delete _this2.animationEndCallback;
69522 };
69523
69524 this.props.onBeforeChange(this.state.currentSlide, targetSlide);
69525
69526 this.setState({
69527 animating: true,
69528 currentSlide: targetSlide
69529 }, function () {
69530 this.animationEndCallback = setTimeout(callback, this.props.speed + 20);
69531 });
69532
69533 this.autoPlay();
69534 return;
69535 }
69536
69537 targetSlide = index;
69538
69539 if (rtl) {
69540 if (targetSlide < 0) {
69541 if (this.props.infinite === false) {
69542 currentSlide = 0;
69543 } else if (this.state.slideCount % this.props.slidesToScroll !== 0) {
69544 if (targetSlide + this.props.slidesToScroll <= 0) {
69545 currentSlide = this.state.slideCount + targetSlide;
69546 targetSlide = this.state.slideCount - this.props.slidesToScroll;
69547 } else {
69548 currentSlide = targetSlide = 0;
69549 }
69550 } else {
69551 // this.state.slideCount % this.props.slidesToScroll
69552 currentSlide = this.state.slideCount + targetSlide;
69553 }
69554 } else if (targetSlide >= this.state.slideCount) {
69555 if (this.props.infinite === false) {
69556 currentSlide = this.state.slideCount - this.props.slidesToShow;
69557 } else if (this.state.slideCount % this.props.slidesToScroll !== 0) {
69558 currentSlide = 0;
69559 } else {
69560 currentSlide = targetSlide - this.state.slideCount;
69561 }
69562 } else {
69563 currentSlide = targetSlide;
69564 }
69565 } else if (targetSlide < 0) {
69566 if (this.props.infinite === false) {
69567 currentSlide = 0;
69568 } else if (this.state.slideCount % this.props.slidesToScroll !== 0) {
69569 currentSlide = this.state.slideCount - this.state.slideCount % this.props.slidesToScroll;
69570 } else {
69571 currentSlide = this.state.slideCount + targetSlide;
69572 }
69573 } else if (targetSlide >= this.state.slideCount) {
69574 if (this.props.infinite === false) {
69575 currentSlide = this.state.slideCount - this.props.slidesToShow;
69576 } else if (this.state.slideCount % this.props.slidesToScroll !== 0) {
69577 currentSlide = 0;
69578 } else {
69579 currentSlide = targetSlide - this.state.slideCount;
69580 }
69581 } else {
69582 currentSlide = targetSlide;
69583 }
69584
69585 var targetLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69586 slideIndex: targetSlide,
69587 trackRef: this.track
69588 }, this.props, this.state));
69589
69590 var currentLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69591 slideIndex: currentSlide,
69592 trackRef: this.track
69593 }, this.props, this.state));
69594
69595 if (this.props.infinite === false) {
69596 targetLeft = currentLeft;
69597 }
69598
69599 if (this.props.lazyLoad) {
69600 var loaded = true;
69601 var slidesToLoad = [];
69602 var slidesLen = this.state.slideCount;
69603
69604 var sliderIndex = targetSlide < 0 ? slidesLen + targetSlide : currentSlide;
69605
69606 for (var i = sliderIndex; i < sliderIndex + this.props.slidesToShow; i++) {
69607 var k = i;
69608 if (rtl) {
69609 k = i >= slidesLen ? slidesLen * 2 - i - 1 : slidesLen - i - 1;
69610 }
69611
69612 var pre = k - 1 < 0 ? slidesLen - 1 : k - 1;
69613 var next = k + 1 >= slidesLen ? 0 : k + 1;
69614
69615 this.state.lazyLoadedList.indexOf(k) < 0 && slidesToLoad.push(k);
69616 this.state.lazyLoadedList.indexOf(pre) < 0 && slidesToLoad.push(pre);
69617 this.state.lazyLoadedList.indexOf(next) < 0 && slidesToLoad.push(next);
69618 }
69619
69620 slidesToLoad.forEach(function (i) {
69621 if (_this2.state.lazyLoadedList.indexOf(i) < 0) {
69622 loaded = false;
69623 }
69624 });
69625
69626 if (!loaded) {
69627 this.setState({
69628 lazyLoadedList: this.state.lazyLoadedList.concat(slidesToLoad)
69629 });
69630 }
69631 }
69632
69633 this.props.onBeforeChange(this.state.currentSlide, currentSlide);
69634
69635 // Slide Transition happens here.
69636 // animated transition happens to target Slide and
69637 // non - animated transition happens to current Slide
69638 // If CSS transitions are false, directly go the current slide.
69639 /* istanbul ignore if */
69640 if (this.props.useCSS === false) {
69641 this.setState({
69642 currentSlide: currentSlide,
69643 trackStyle: (0, _trackHelper.getTrackCSS)((0, _extends3.default)({
69644 left: currentLeft
69645 }, this.props, this.state))
69646 }, function () {
69647 _this2.props.onChange(currentSlide);
69648 });
69649 } else {
69650 var nextStateChanges = {
69651 animating: false,
69652 currentSlide: currentSlide,
69653 trackStyle: (0, _trackHelper.getTrackCSS)((0, _extends3.default)({
69654 left: currentLeft
69655 }, this.props, this.state)),
69656 swipeLeft: null
69657 };
69658
69659 callback = function callback() {
69660 _this2.setState(nextStateChanges);
69661 _this2.props.onChange(currentSlide);
69662 delete _this2.animationEndCallback;
69663 };
69664
69665 this.setState({
69666 animating: true,
69667 currentSlide: currentSlide,
69668 trackStyle: (0, _trackHelper.getTrackAnimateCSS)((0, _extends3.default)({
69669 left: targetLeft
69670 }, this.props, this.state))
69671 }, function () {
69672 this.animationEndCallback = setTimeout(callback, this.props.speed + 20);
69673 });
69674 }
69675
69676 this.autoPlay();
69677 },
69678
69679 // 鼠标悬浮在 arrow 上时作出动画反馈
69680 arrowHoverHandler: function arrowHoverHandler(msg) {
69681 var offset = 30; // slide 的位置偏移量
69682 var targetLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69683 slideIndex: this.state.currentSlide,
69684 trackRef: this.track
69685 }, this.props, this.state));
69686
69687 var left = void 0;
69688 /* istanbul ignore next */
69689 if (msg === 'next') {
69690 left = targetLeft - offset;
69691 } else if (msg === 'prev') {
69692 left = targetLeft + offset;
69693 } else {
69694 left = targetLeft;
69695 }
69696
69697 this.setState({
69698 trackStyle: (0, _trackHelper.getTrackAnimateCSS)((0, _extends3.default)({
69699 left: left
69700 }, this.props, this.state))
69701 });
69702 },
69703 swipeDirection: function swipeDirection(touchObject) {
69704 /* istanbul ignore next */
69705 var swipeAngle = void 0;
69706 /* istanbul ignore next */
69707 var xDist = touchObject.startX - touchObject.curX;
69708 /* istanbul ignore next */
69709 var yDist = touchObject.startY - touchObject.curY;
69710 /* istanbul ignore next */
69711 var r = Math.atan2(yDist, xDist);
69712 /* istanbul ignore next */
69713 swipeAngle = Math.round(r * 180 / Math.PI);
69714 /* istanbul ignore next */
69715 if (swipeAngle < 0) {
69716 swipeAngle = 360 - Math.abs(swipeAngle);
69717 }
69718 /* istanbul ignore next */
69719 if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {
69720 return this.props.rtl === false ? 'left' : 'right';
69721 }
69722 /* istanbul ignore next */
69723 if (swipeAngle >= 135 && swipeAngle <= 225) {
69724 return this.props.rtl === false ? 'right' : 'left';
69725 }
69726 /* istanbul ignore next */
69727 if (this.props.verticalSwiping === true) {
69728 if (swipeAngle >= 35 && swipeAngle <= 135) {
69729 return 'down';
69730 } else {
69731 return 'up';
69732 }
69733 }
69734
69735 /* istanbul ignore next */
69736 return 'vertical';
69737 },
69738 play: function play() {
69739 var nextIndex = void 0;
69740 if (!this.hasMounted) {
69741 /* istanbul ignore next */
69742 return false;
69743 }
69744 if (this.props.rtl) {
69745 nextIndex = this.state.currentSlide - this.props.slidesToScroll;
69746 } else if (this.canGoNext((0, _extends3.default)({}, this.props, this.state))) {
69747 nextIndex = this.state.currentSlide + this.props.slidesToScroll;
69748 } else {
69749 return false;
69750 }
69751 this.slideHandler(nextIndex);
69752 },
69753 autoPlay: function autoPlay() {
69754 if (this.state.autoPlayTimer) {
69755 clearTimeout(this.state.autoPlayTimer);
69756 }
69757 if (this.props.autoplay) {
69758 this.setState({
69759 autoPlayTimer: setTimeout(this.play.bind(this), this.props.autoplaySpeed)
69760 });
69761 }
69762 },
69763 pause: function pause() {
69764 /* istanbul ignore next */
69765 if (this.state.autoPlayTimer) {
69766 clearTimeout(this.state.autoPlayTimer);
69767 this.setState({
69768 autoPlayTimer: null
69769 });
69770 }
69771 }
69772};
69773
69774exports.default = helpers;
69775module.exports = exports['default'];
69776
69777/***/ }),
69778/* 413 */
69779/***/ (function(module, exports, __webpack_require__) {
69780
69781"use strict";
69782
69783
69784exports.__esModule = true;
69785exports.default = undefined;
69786
69787var _extends2 = __webpack_require__(1);
69788
69789var _extends3 = _interopRequireDefault(_extends2);
69790
69791var _classCallCheck2 = __webpack_require__(2);
69792
69793var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
69794
69795var _possibleConstructorReturn2 = __webpack_require__(3);
69796
69797var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
69798
69799var _inherits2 = __webpack_require__(4);
69800
69801var _inherits3 = _interopRequireDefault(_inherits2);
69802
69803var _class, _temp;
69804
69805var _react = __webpack_require__(0);
69806
69807var _react2 = _interopRequireDefault(_react);
69808
69809var _propTypes = __webpack_require__(5);
69810
69811var _propTypes2 = _interopRequireDefault(_propTypes);
69812
69813var _classnames = __webpack_require__(7);
69814
69815var _classnames2 = _interopRequireDefault(_classnames);
69816
69817var _icon = __webpack_require__(11);
69818
69819var _icon2 = _interopRequireDefault(_icon);
69820
69821var _util = __webpack_require__(6);
69822
69823function _interopRequireDefault(obj) {
69824 return obj && obj.__esModule ? obj : { default: obj };
69825}
69826
69827/**
69828 * slider arrow
69829 * 左右控制箭头
69830 */
69831
69832var noop = _util.func.noop;
69833var Arrow = (_temp = _class = function (_Component) {
69834 (0, _inherits3.default)(Arrow, _Component);
69835
69836 function Arrow() {
69837 (0, _classCallCheck3.default)(this, Arrow);
69838 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
69839 }
69840
69841 Arrow.isDisabled = function isDisabled(props) {
69842 var infinite = props.infinite,
69843 type = props.type,
69844 centerMode = props.centerMode,
69845 currentSlide = props.currentSlide,
69846 slideCount = props.slideCount,
69847 slidesToShow = props.slidesToShow;
69848
69849 if (infinite) {
69850 return false;
69851 }
69852
69853 // 下一个 index 大于总数??
69854 // if (slideCount <= slidesToShow) {
69855 // return true;
69856 // }
69857
69858 // 向前箭头:当前是第 0 个
69859 if (type === 'prev') {
69860 return currentSlide <= 0;
69861 }
69862
69863 if (centerMode && currentSlide >= slideCount - 1) {
69864 // 向后箭头:居中模式,当前 index 大于最大 index
69865 return true;
69866 } else if (currentSlide >= slideCount - slidesToShow) {
69867 // 向后箭头:普通模式,当前 index 大于 总数 - 下一个 index ???
69868 return true;
69869 }
69870
69871 return false;
69872 };
69873
69874 Arrow.prototype.handleClick = function handleClick(options, e) {
69875 e && e.preventDefault();
69876
69877 // TODO hack
69878 if (options.message === 'prev') {
69879 options.message = 'previous';
69880 }
69881
69882 this.props.clickHandler(options, e);
69883 };
69884
69885 Arrow.prototype.render = function render() {
69886 var _props = this.props,
69887 prefix = _props.prefix,
69888 type = _props.type,
69889 arrowSize = _props.arrowSize,
69890 arrowPosition = _props.arrowPosition,
69891 arrowDirection = _props.arrowDirection,
69892 onMouseEnter = _props.onMouseEnter,
69893 onMouseLeave = _props.onMouseLeave,
69894 children = _props.children;
69895
69896 var others = _util.obj.pickOthers(Arrow.propTypes, this.props);
69897 var iconType = Arrow.ARROW_ICON_TYPES[arrowDirection][type];
69898 var disabled = Arrow.isDisabled(this.props);
69899
69900 var arrowClazz = (0, _classnames2.default)([prefix + 'slick-arrow', prefix + 'slick-' + type, arrowPosition, arrowSize, arrowDirection], { disabled: disabled });
69901
69902 var arrowProps = (0, _extends3.default)({}, others, {
69903 key: type,
69904 'data-role': 'none',
69905 className: arrowClazz,
69906 style: { display: 'block' },
69907 onClick: disabled ? null : this.handleClick.bind(this, { message: type }),
69908 onMouseEnter: disabled ? null : onMouseEnter,
69909 onMouseLeave: disabled ? null : onMouseLeave
69910 });
69911
69912 if (children) {
69913 return _react2.default.cloneElement(_react2.default.Children.only(children), arrowProps);
69914 } else {
69915 return _react2.default.createElement('button', (0, _extends3.default)({ type: 'button', role: 'button' }, arrowProps), _react2.default.createElement(_icon2.default, { type: iconType }));
69916 }
69917 };
69918
69919 return Arrow;
69920}(_react.Component), _class.propTypes = {
69921 prefix: _propTypes2.default.string,
69922 rtl: _propTypes2.default.bool,
69923 type: _propTypes2.default.oneOf(['prev', 'next']).isRequired,
69924 centerMode: _propTypes2.default.bool,
69925 currentSlide: _propTypes2.default.number,
69926 infinite: _propTypes2.default.bool,
69927 clickHandler: _propTypes2.default.func,
69928 slideCount: _propTypes2.default.number,
69929 slidesToShow: _propTypes2.default.number,
69930 arrow: _propTypes2.default.element,
69931 arrowSize: _propTypes2.default.string,
69932 arrowPosition: _propTypes2.default.string,
69933 arrowDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
69934 onMouseEnter: _propTypes2.default.func,
69935 onMouseLeave: _propTypes2.default.func,
69936 children: _propTypes2.default.node
69937}, _class.defaultProps = {
69938 onMouseEnter: noop,
69939 onMouseLeave: noop
69940}, _class.ARROW_ICON_TYPES = {
69941 hoz: { prev: 'arrow-left', next: 'arrow-right' },
69942 ver: { prev: 'arrow-up', next: 'arrow-down' }
69943}, _temp);
69944Arrow.displayName = 'Arrow';
69945exports.default = Arrow;
69946module.exports = exports['default'];
69947
69948/***/ }),
69949/* 414 */
69950/***/ (function(module, exports, __webpack_require__) {
69951
69952"use strict";
69953
69954
69955exports.__esModule = true;
69956exports.default = undefined;
69957
69958var _classCallCheck2 = __webpack_require__(2);
69959
69960var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
69961
69962var _possibleConstructorReturn2 = __webpack_require__(3);
69963
69964var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
69965
69966var _inherits2 = __webpack_require__(4);
69967
69968var _inherits3 = _interopRequireDefault(_inherits2);
69969
69970var _extends2 = __webpack_require__(1);
69971
69972var _extends3 = _interopRequireDefault(_extends2);
69973
69974var _class, _temp;
69975
69976var _react = __webpack_require__(0);
69977
69978var _react2 = _interopRequireDefault(_react);
69979
69980var _propTypes = __webpack_require__(5);
69981
69982var _propTypes2 = _interopRequireDefault(_propTypes);
69983
69984var _classnames = __webpack_require__(7);
69985
69986var _classnames2 = _interopRequireDefault(_classnames);
69987
69988var _util = __webpack_require__(6);
69989
69990function _interopRequireDefault(obj) {
69991 return obj && obj.__esModule ? obj : { default: obj };
69992}
69993
69994/**
69995 * Slider Track
69996 * 内容轨道
69997 */
69998
69999var getSlideClasses = function getSlideClasses(specProps) {
70000 var _classNames;
70001
70002 var prefix = specProps.prefix;
70003 var slickActive = void 0,
70004 slickCenter = void 0;
70005 var centerOffset = void 0,
70006 index = void 0;
70007
70008 if (specProps.rtl) {
70009 index = specProps.slideCount - 1 - specProps.activeIndex;
70010 } else {
70011 index = specProps.activeIndex;
70012 }
70013
70014 var slickCloned = index < 0 || index >= specProps.slideCount;
70015 if (specProps.centerMode) {
70016 centerOffset = Math.floor(specProps.slidesToShow / 2);
70017 slickCenter = (index - specProps.currentSlide) % specProps.slideCount === 0;
70018 if (index > specProps.currentSlide - centerOffset - 1 && index <= specProps.currentSlide + centerOffset) {
70019 slickActive = true;
70020 }
70021 } else {
70022 slickActive = specProps.currentSlide <= index && index < specProps.currentSlide + specProps.slidesToShow;
70023 }
70024
70025 return (0, _classnames2.default)(prefix + 'slick-slide', (_classNames = {}, _classNames[prefix + 'slick-active'] = slickActive, _classNames[prefix + 'slick-center'] = slickCenter, _classNames[prefix + 'slick-cloned'] = slickCloned, _classNames));
70026};
70027
70028var getSlideStyle = function getSlideStyle(specProps) {
70029 var style = {};
70030
70031 if (specProps.variableWidth === undefined || specProps.variableWidth === false) {
70032 style.width = specProps.slideWidth;
70033 }
70034
70035 if (specProps.animation === 'fade') {
70036 style.position = 'relative';
70037
70038 style.opacity = specProps.currentSlide === specProps.activeIndex ? 1 : 0;
70039 style.visibility = specProps.currentSlide >= specProps.activeIndex ? 'visible' : 'hidden';
70040 style.transition = 'opacity ' + specProps.speed + 'ms ' + specProps.cssEase;
70041 style.WebkitTransition = 'opacity ' + specProps.speed + 'ms ' + specProps.cssEase;
70042
70043 if (specProps.vertical) {
70044 style.top = -specProps.activeIndex * specProps.slideHeight;
70045 } else {
70046 style.left = -specProps.activeIndex * specProps.slideWidth;
70047 }
70048 }
70049
70050 if (specProps.vertical) {
70051 style.width = '100%';
70052 }
70053
70054 return style;
70055};
70056
70057var getKey = function getKey(child, fallbackKey) {
70058 // key could be a zero
70059 return child.key === null || child.key === undefined ? fallbackKey : child.key;
70060};
70061
70062var renderSlides = function renderSlides(specProps) {
70063 var key = void 0;
70064 var slides = [];
70065 var preCloneSlides = [];
70066 var postCloneSlides = [];
70067 var count = _react2.default.Children.count(specProps.children);
70068 var child = void 0;
70069
70070 _react2.default.Children.forEach(specProps.children, function (elem, index) {
70071 var childOnClickOptions = {
70072 message: 'children',
70073 index: index,
70074 slidesToScroll: specProps.slidesToScroll,
70075 currentSlide: specProps.currentSlide
70076 };
70077
70078 if (!specProps.lazyLoad | (specProps.lazyLoad && specProps.lazyLoadedList.indexOf(index) >= 0)) {
70079 child = elem;
70080 } else {
70081 child = elem.key ? _react2.default.createElement('div', { key: elem.key }) : _react2.default.createElement('div', null);
70082 }
70083 var childStyle = getSlideStyle((0, _extends3.default)({}, specProps, { activeIndex: index }));
70084 var slickClasses = getSlideClasses((0, _extends3.default)({
70085 activeIndex: index
70086 }, specProps));
70087 var cssClasses = void 0;
70088
70089 if (child.props.className) {
70090 cssClasses = (0, _classnames2.default)(slickClasses, child.props.className);
70091 } else {
70092 cssClasses = slickClasses;
70093 }
70094
70095 var onClick = function onClick(e) {
70096 // only child === elem, it will has .props.onClick;
70097 child.props && child.props.onClick && elem.props.onClick(e);
70098 if (specProps.focusOnSelect) {
70099 specProps.focusOnSelect(childOnClickOptions);
70100 }
70101 };
70102
70103 slides.push(_react2.default.cloneElement(child, {
70104 key: 'original' + getKey(child, index),
70105 'data-index': index,
70106 className: cssClasses,
70107 tabIndex: '-1',
70108 'aria-posinset': index,
70109 'aria-setsize': count,
70110 role: 'listitem',
70111 dir: specProps.rtl ? 'rtl' : 'ltr',
70112 // server-side render depend on elements of their own style
70113 style: !_util.dom.hasDOM ? (0, _extends3.default)({ outline: 'none' }, childStyle, child.props.style) : (0, _extends3.default)({ outline: 'none' }, child.props.style, childStyle),
70114 onClick: onClick
70115 }));
70116
70117 // variableWidth doesn't wrap properly.
70118 if (specProps.infinite && specProps.animation !== 'fade') {
70119 var infiniteCount = specProps.variableWidth ? specProps.slidesToShow + 1 : specProps.slidesToShow;
70120
70121 if (index >= count - infiniteCount) {
70122 key = -(count - index);
70123 preCloneSlides.push(_react2.default.cloneElement(child, {
70124 key: 'precloned' + getKey(child, key),
70125 'data-index': key,
70126 className: cssClasses,
70127 style: (0, _extends3.default)({}, child.props.style, childStyle)
70128 }));
70129 }
70130
70131 if (index < infiniteCount) {
70132 key = count + index;
70133 postCloneSlides.push(_react2.default.cloneElement(child, {
70134 key: 'postcloned' + getKey(child, key),
70135 'data-index': key,
70136 className: cssClasses,
70137 style: (0, _extends3.default)({}, child.props.style, childStyle)
70138 }));
70139 }
70140 }
70141 });
70142 // To support server-side rendering
70143 if (!_util.dom.hasDOM) {
70144 return slides.slice(specProps.currentSlide, specProps.currentSlide + specProps.slidesToShow);
70145 }
70146 if (specProps.rtl) {
70147 return preCloneSlides.concat(slides, postCloneSlides).reverse();
70148 } else {
70149 return preCloneSlides.concat(slides, postCloneSlides);
70150 }
70151};
70152
70153var Track = (_temp = _class = function (_Component) {
70154 (0, _inherits3.default)(Track, _Component);
70155
70156 function Track() {
70157 (0, _classCallCheck3.default)(this, Track);
70158 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
70159 }
70160
70161 Track.prototype.render = function render() {
70162 var slides = renderSlides(this.props);
70163 return _react2.default.createElement('div', {
70164 role: 'list',
70165 className: this.props.prefix + 'slick-track',
70166 style: this.props.trackStyle
70167 }, slides);
70168 };
70169
70170 return Track;
70171}(_react.Component), _class.propTypes = {
70172 prefix: _propTypes2.default.string,
70173 trackStyle: _propTypes2.default.object
70174}, _class.defaultProps = {
70175 prefix: 'next-'
70176}, _temp);
70177Track.displayName = 'Track';
70178exports.default = Track;
70179module.exports = exports['default'];
70180
70181/***/ }),
70182/* 415 */
70183/***/ (function(module, exports, __webpack_require__) {
70184
70185"use strict";
70186
70187
70188exports.__esModule = true;
70189exports.default = undefined;
70190
70191var _extends2 = __webpack_require__(1);
70192
70193var _extends3 = _interopRequireDefault(_extends2);
70194
70195var _classCallCheck2 = __webpack_require__(2);
70196
70197var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
70198
70199var _possibleConstructorReturn2 = __webpack_require__(3);
70200
70201var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
70202
70203var _inherits2 = __webpack_require__(4);
70204
70205var _inherits3 = _interopRequireDefault(_inherits2);
70206
70207var _class, _temp;
70208
70209var _react = __webpack_require__(0);
70210
70211var _react2 = _interopRequireDefault(_react);
70212
70213var _propTypes = __webpack_require__(5);
70214
70215var _propTypes2 = _interopRequireDefault(_propTypes);
70216
70217var _classnames = __webpack_require__(7);
70218
70219var _classnames2 = _interopRequireDefault(_classnames);
70220
70221var _util = __webpack_require__(6);
70222
70223function _interopRequireDefault(obj) {
70224 return obj && obj.__esModule ? obj : { default: obj };
70225}
70226
70227/**
70228 * slider dots
70229 * 导航锚点
70230 */
70231
70232var noop = _util.func.noop;
70233var Dots = (_temp = _class = function (_React$Component) {
70234 (0, _inherits3.default)(Dots, _React$Component);
70235
70236 function Dots() {
70237 (0, _classCallCheck3.default)(this, Dots);
70238 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
70239 }
70240
70241 Dots.prototype.handleChangeSlide = function handleChangeSlide(options, e) {
70242 e.preventDefault();
70243
70244 this.props.changeSlide(options);
70245 };
70246
70247 Dots.prototype.render = function render() {
70248 var _props = this.props,
70249 prefix = _props.prefix,
70250 slideCount = _props.slideCount,
70251 slidesToScroll = _props.slidesToScroll,
70252 currentSlide = _props.currentSlide,
70253 dotsClass = _props.dotsClass,
70254 dotsDirection = _props.dotsDirection,
70255 dotsRender = _props.dotsRender,
70256 triggerType = _props.triggerType,
70257 rtl = _props.rtl;
70258
70259 var dotsClazz = (0, _classnames2.default)(prefix + 'slick-dots', dotsDirection, dotsClass);
70260 var dotCount = Math.ceil(slideCount / slidesToScroll);
70261 var children = [];
70262
70263 for (var i = 0; i < dotCount; i++) {
70264 var _handleProp;
70265
70266 var leftBound = i * slidesToScroll;
70267 var rightBound = leftBound + slidesToScroll - 1;
70268 var itemClazz = (0, _classnames2.default)(prefix + 'slick-dots-item', {
70269 active: currentSlide >= leftBound && currentSlide <= rightBound
70270 });
70271 var dotOptions = {
70272 message: 'dots',
70273 index: i,
70274 slidesToScroll: slidesToScroll,
70275 currentSlide: currentSlide
70276 };
70277 // 除非设置为hover,默认使用click触发
70278 var handleProp = (_handleProp = {}, _handleProp[triggerType.toLowerCase() === 'hover' ? 'onMouseEnter' : 'onClick'] = this.handleChangeSlide.bind(this, dotOptions), _handleProp);
70279
70280 var docIndex = i;
70281 var currentSlideIndex = currentSlide;
70282 if (rtl) {
70283 docIndex = dotCount - 1 - i;
70284 currentSlideIndex = dotCount - 1 - currentSlide;
70285 }
70286
70287 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)) :
70288 // Slider is navigated by right and left arrow buttons so the dots are not required functionality
70289 _react2.default.createElement('button', { tabIndex: '-1' })));
70290 }
70291
70292 return _react2.default.createElement('ul', { className: dotsClazz, 'aria-hidden': 'true' }, children);
70293 };
70294
70295 return Dots;
70296}(_react2.default.Component), _class.propTypes = {
70297 prefix: _propTypes2.default.string,
70298 currentSlide: _propTypes2.default.number,
70299 changeSlide: _propTypes2.default.func,
70300 dotsClass: _propTypes2.default.string,
70301 slideCount: _propTypes2.default.number,
70302 slidesToScroll: _propTypes2.default.number,
70303 dotsDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
70304 dotsRender: _propTypes2.default.func,
70305 triggerType: _propTypes2.default.string
70306}, _class.defaultProps = {
70307 changeSlide: noop
70308}, _temp);
70309Dots.displayName = 'Dots';
70310exports.default = Dots;
70311module.exports = exports['default'];
70312
70313/***/ }),
70314/* 416 */
70315/***/ (function(module, exports, __webpack_require__) {
70316
70317"use strict";
70318
70319
70320exports.__esModule = true;
70321
70322var _extends2 = __webpack_require__(1);
70323
70324var _extends3 = _interopRequireDefault(_extends2);
70325
70326var _objectWithoutProperties2 = __webpack_require__(8);
70327
70328var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
70329
70330var _classCallCheck2 = __webpack_require__(2);
70331
70332var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
70333
70334var _possibleConstructorReturn2 = __webpack_require__(3);
70335
70336var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
70337
70338var _inherits2 = __webpack_require__(4);
70339
70340var _inherits3 = _interopRequireDefault(_inherits2);
70341
70342var _class, _temp;
70343
70344var _react = __webpack_require__(0);
70345
70346var _react2 = _interopRequireDefault(_react);
70347
70348var _reactDom = __webpack_require__(12);
70349
70350var _propTypes = __webpack_require__(5);
70351
70352var _propTypes2 = _interopRequireDefault(_propTypes);
70353
70354var _reactLifecyclesCompat = __webpack_require__(10);
70355
70356var _classnames4 = __webpack_require__(7);
70357
70358var _classnames5 = _interopRequireDefault(_classnames4);
70359
70360var _icon = __webpack_require__(11);
70361
70362var _icon2 = _interopRequireDefault(_icon);
70363
70364var _button = __webpack_require__(17);
70365
70366var _button2 = _interopRequireDefault(_button);
70367
70368var _overlay = __webpack_require__(15);
70369
70370var _overlay2 = _interopRequireDefault(_overlay);
70371
70372var _menu = __webpack_require__(16);
70373
70374var _menu2 = _interopRequireDefault(_menu);
70375
70376var _configProvider = __webpack_require__(9);
70377
70378var _configProvider2 = _interopRequireDefault(_configProvider);
70379
70380var _util = __webpack_require__(6);
70381
70382function _interopRequireDefault(obj) {
70383 return obj && obj.__esModule ? obj : { default: obj };
70384}
70385
70386var Popup = _overlay2.default.Popup;
70387
70388/**
70389 * SplitButton
70390 */
70391
70392var SplitButton = (_temp = _class = function (_React$Component) {
70393 (0, _inherits3.default)(SplitButton, _React$Component);
70394
70395 function SplitButton(props, context) {
70396 (0, _classCallCheck3.default)(this, SplitButton);
70397
70398 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
70399
70400 _this.selectMenuItem = function (keys) {
70401 var _this$props;
70402
70403 for (var _len = arguments.length, others = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
70404 others[_key - 1] = arguments[_key];
70405 }
70406
70407 if (!('selectedKeys' in _this.props)) {
70408 _this.setState({
70409 selectedKeys: keys
70410 });
70411 }
70412 (_this$props = _this.props).onSelect.apply(_this$props, [keys].concat(others));
70413 };
70414
70415 _this.clickMenuItem = function (key) {
70416 var _this$props2;
70417
70418 for (var _len2 = arguments.length, others = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
70419 others[_key2 - 1] = arguments[_key2];
70420 }
70421
70422 (_this$props2 = _this.props).onItemClick.apply(_this$props2, [key].concat(others));
70423 _this.onVisibleChange(false, 'menuSelect');
70424 };
70425
70426 _this.onPopupOpen = function () {
70427 if (_this.props.autoWidth && _this.wrapper && _this.menu) {
70428 _util.dom.setStyle(_this.menu, {
70429 width: _this.wrapper.offsetWidth
70430 });
70431 }
70432 };
70433
70434 _this.onVisibleChange = function (visible, reason) {
70435 if (!('visible' in _this.props)) {
70436 _this.setState({
70437 visible: visible
70438 });
70439 }
70440 _this.props.onVisibleChange(visible, reason);
70441 };
70442
70443 _this._menuRefHandler = function (ref) {
70444 _this.menu = (0, _reactDom.findDOMNode)(ref);
70445
70446 var refFn = _this.props.menuProps.ref;
70447 if (typeof refFn === 'function') {
70448 refFn(ref);
70449 }
70450 };
70451
70452 _this._wrapperRefHandler = function (ref) {
70453 _this.wrapper = (0, _reactDom.findDOMNode)(ref);
70454 };
70455
70456 _this.state = {
70457 selectedKeys: props.defaultSelectedKeys,
70458 visible: props.defaultVisible
70459 };
70460 return _this;
70461 }
70462
70463 SplitButton.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
70464 var st = {};
70465
70466 if ('visible' in props) {
70467 st.visible = props.visible;
70468 }
70469
70470 if ('selectedKeys' in props) {
70471 st.selectedKeys = props.selectedKeys;
70472 }
70473
70474 return st;
70475 };
70476
70477 SplitButton.prototype.componentDidMount = function componentDidMount() {
70478 // 由于定位目标是 wrapper,如果弹层默认展开,wrapper 还未渲染,didMount 后强制再渲染一次,弹层重新定位
70479 if (this.state.visible) {
70480 this.forceUpdate();
70481 }
70482 };
70483
70484 SplitButton.prototype.render = function render() {
70485 var _classnames,
70486 _classnames2,
70487 _classnames3,
70488 _this2 = this;
70489
70490 var _props = this.props,
70491 prefix = _props.prefix,
70492 label = _props.label,
70493 size = _props.size,
70494 type = _props.type,
70495 component = _props.component,
70496 ghost = _props.ghost,
70497 className = _props.className,
70498 style = _props.style,
70499 children = _props.children,
70500 triggerProps = _props.triggerProps,
70501 popupAlign = _props.popupAlign,
70502 popupTriggerType = _props.popupTriggerType,
70503 popupStyle = _props.popupStyle,
70504 popupClassName = _props.popupClassName,
70505 popupProps = _props.popupProps,
70506 popupContainer = _props.popupContainer,
70507 followTrigger = _props.followTrigger,
70508 selectMode = _props.selectMode,
70509 menuProps = _props.menuProps,
70510 leftButtonProps = _props.leftButtonProps,
70511 disabled = _props.disabled,
70512 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']);
70513
70514 var state = this.state;
70515
70516 var classNames = (0, _classnames5.default)((_classnames = {}, _classnames[prefix + 'split-btn'] = true, _classnames), className);
70517
70518 var sharedBtnProps = {
70519 type: type,
70520 size: size,
70521 component: component,
70522 ghost: ghost,
70523 disabled: disabled
70524 };
70525
70526 var triggerClassNames = (0, _classnames5.default)((_classnames2 = {}, _classnames2[prefix + 'split-btn-trigger'] = true, _classnames2[prefix + 'expand'] = state.visible, _classnames2.opened = state.visible, _classnames2));
70527
70528 var iconCls = (0, _classnames5.default)((_classnames3 = {}, _classnames3[prefix + 'split-btn-symbol-fold'] = true, _classnames3));
70529
70530 var trigger = _react2.default.createElement(_button2.default, (0, _extends3.default)({}, sharedBtnProps, triggerProps, { className: triggerClassNames }), _react2.default.createElement(_icon2.default, { type: 'arrow-down', className: iconCls }));
70531
70532 return _react2.default.createElement(_button2.default.Group, (0, _extends3.default)({}, _util.obj.pickOthers(SplitButton.propTypes, others), {
70533 className: classNames,
70534 style: style,
70535 size: size,
70536 ref: this._wrapperRefHandler
70537 }), _react2.default.createElement(_button2.default, (0, _extends3.default)({}, sharedBtnProps, leftButtonProps), label), _react2.default.createElement(Popup, (0, _extends3.default)({}, popupProps, {
70538 followTrigger: followTrigger,
70539 visible: state.visible,
70540 onVisibleChange: this.onVisibleChange,
70541 trigger: trigger,
70542 triggerType: popupTriggerType,
70543 align: popupAlign,
70544 container: popupContainer,
70545 target: function target() {
70546 return _this2.wrapper;
70547 },
70548 style: popupStyle,
70549 shouldUpdatePosition: true,
70550 className: popupClassName,
70551 onOpen: this.onPopupOpen
70552 }), _react2.default.createElement('div', { className: prefix + 'split-btn-spacing-tb' }, _react2.default.createElement(_menu2.default, (0, _extends3.default)({}, menuProps, {
70553 selectMode: selectMode,
70554 selectedKeys: state.selectedKeys,
70555 onSelect: this.selectMenuItem,
70556 onItemClick: this.clickMenuItem,
70557 ref: this._menuRefHandler
70558 }), children))));
70559 };
70560
70561 return SplitButton;
70562}(_react2.default.Component), _class.propTypes = {
70563 prefix: _propTypes2.default.string,
70564 style: _propTypes2.default.object,
70565 /**
70566 * 按钮的类型
70567 */
70568 type: _propTypes2.default.oneOf(['normal', 'primary', 'secondary']),
70569 /**
70570 * 按钮组的尺寸
70571 */
70572 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
70573 /**
70574 * 主按钮的文案
70575 */
70576 label: _propTypes2.default.node,
70577 /**
70578 * 设置标签类型
70579 */
70580 component: _propTypes2.default.oneOf(['button', 'a']),
70581 /**
70582 * 是否为幽灵按钮
70583 */
70584 ghost: _propTypes2.default.oneOf(['light', 'dark', false, true]),
70585 /**
70586 * 默认激活的菜单项(用法同 Menu 非受控)
70587 */
70588 defaultSelectedKeys: _propTypes2.default.array,
70589 /**
70590 * 激活的菜单项(用法同 Menu 受控)
70591 */
70592 selectedKeys: _propTypes2.default.array,
70593 /**
70594 * 菜单的选择模式
70595 */
70596 selectMode: _propTypes2.default.oneOf(['single', 'multiple']),
70597 /**
70598 * 选择菜单项时的回调,参考 Menu
70599 */
70600 onSelect: _propTypes2.default.func,
70601 /**
70602 * 点击菜单项时的回调,参考 Menu
70603 */
70604 onItemClick: _propTypes2.default.func,
70605 /**
70606 * 触发按钮的属性(支持 Button 的所有属性透传)
70607 */
70608 triggerProps: _propTypes2.default.object,
70609 /**
70610 * 弹层菜单的宽度是否与按钮组一致
70611 */
70612 autoWidth: _propTypes2.default.bool,
70613 /**
70614 * 弹层是否显示
70615 */
70616 visible: _propTypes2.default.bool,
70617 /**
70618 * 弹层默认是否显示
70619 */
70620 defaultVisible: _propTypes2.default.bool,
70621 /**
70622 * 弹层显示状态变化时的回调函数
70623 * @param {Boolean} visible 弹层显示状态
70624 * @param {String} type 触发弹层显示或隐藏的来源 menuSelect 表示由menu触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
70625 */
70626 onVisibleChange: _propTypes2.default.func,
70627 /**
70628 * 弹层的触发方式
70629 */
70630 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
70631 /**
70632 * 弹层对齐方式, 详情见Overlay align
70633 */
70634 popupAlign: _propTypes2.default.string,
70635 /**
70636 * 弹层自定义样式
70637 */
70638 popupStyle: _propTypes2.default.object,
70639 /**
70640 * 弹层自定义样式类
70641 */
70642 popupClassName: _propTypes2.default.string,
70643 /**
70644 * 透传给弹层的属性
70645 */
70646 popupProps: _propTypes2.default.object,
70647 /**
70648 * 弹层容器
70649 */
70650 popupContainer: _propTypes2.default.any,
70651 /**
70652 * 是否跟随滚动
70653 */
70654 followTrigger: _propTypes2.default.bool,
70655 /**
70656 * 透传给 Menu 的属性
70657 */
70658 menuProps: _propTypes2.default.object,
70659 /**
70660 * 透传给 左侧按钮 的属性
70661 */
70662 leftButtonProps: _propTypes2.default.object,
70663 className: _propTypes2.default.string,
70664 children: _propTypes2.default.any
70665}, _class.defaultProps = {
70666 prefix: 'next-',
70667 type: 'normal',
70668 size: 'medium',
70669 autoWidth: true,
70670 popupTriggerType: 'click',
70671 onVisibleChange: _util.func.noop,
70672 onItemClick: _util.func.noop,
70673 onSelect: _util.func.noop,
70674 defaultSelectedKeys: [],
70675 menuProps: {},
70676 leftButtonProps: {}
70677}, _temp);
70678SplitButton.displayName = 'SplitButton';
70679
70680SplitButton.Item = _menu2.default.Item;
70681SplitButton.Divider = _menu2.default.Divider;
70682SplitButton.Group = _menu2.default.Group;
70683
70684exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(SplitButton));
70685module.exports = exports['default'];
70686
70687/***/ }),
70688/* 417 */
70689/***/ (function(module, exports, __webpack_require__) {
70690
70691"use strict";
70692
70693
70694exports.__esModule = true;
70695
70696var _extends2 = __webpack_require__(1);
70697
70698var _extends3 = _interopRequireDefault(_extends2);
70699
70700var _objectWithoutProperties2 = __webpack_require__(8);
70701
70702var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
70703
70704var _configProvider = __webpack_require__(9);
70705
70706var _configProvider2 = _interopRequireDefault(_configProvider);
70707
70708var _step = __webpack_require__(418);
70709
70710var _step2 = _interopRequireDefault(_step);
70711
70712var _stepItem = __webpack_require__(419);
70713
70714var _stepItem2 = _interopRequireDefault(_stepItem);
70715
70716function _interopRequireDefault(obj) {
70717 return obj && obj.__esModule ? obj : { default: obj };
70718}
70719
70720_step2.default.Item = _stepItem2.default;
70721
70722exports.default = _configProvider2.default.config(_step2.default, {
70723 transform: /* istanbul ignore next */function transform(props, deprecated) {
70724 if ('type' in props) {
70725 deprecated('type', 'shape', 'Step');
70726
70727 var _props = props,
70728 type = _props.type,
70729 direction = _props.direction,
70730 labelPlacement = _props.labelPlacement,
70731 others = (0, _objectWithoutProperties3.default)(_props, ['type', 'direction', 'labelPlacement']);
70732
70733 direction = direction === 'vertical' ? 'ver' : direction === 'horizontal' ? 'hoz' : direction;
70734 labelPlacement = labelPlacement === 'vertical' ? 'ver' : labelPlacement === 'horizontal' ? 'hoz' : labelPlacement;
70735 props = (0, _extends3.default)({ shape: type, direction: direction, labelPlacement: labelPlacement }, others);
70736 }
70737
70738 return props;
70739 }
70740});
70741module.exports = exports['default'];
70742
70743/***/ }),
70744/* 418 */
70745/***/ (function(module, exports, __webpack_require__) {
70746
70747"use strict";
70748
70749
70750exports.__esModule = true;
70751
70752var _extends2 = __webpack_require__(1);
70753
70754var _extends3 = _interopRequireDefault(_extends2);
70755
70756var _classCallCheck2 = __webpack_require__(2);
70757
70758var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
70759
70760var _possibleConstructorReturn2 = __webpack_require__(3);
70761
70762var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
70763
70764var _inherits2 = __webpack_require__(4);
70765
70766var _inherits3 = _interopRequireDefault(_inherits2);
70767
70768var _class, _temp;
70769
70770var _reactDom = __webpack_require__(12);
70771
70772var _reactDom2 = _interopRequireDefault(_reactDom);
70773
70774var _propTypes = __webpack_require__(5);
70775
70776var _propTypes2 = _interopRequireDefault(_propTypes);
70777
70778var _classnames = __webpack_require__(7);
70779
70780var _classnames2 = _interopRequireDefault(_classnames);
70781
70782var _react = __webpack_require__(0);
70783
70784var _react2 = _interopRequireDefault(_react);
70785
70786var _reactLifecyclesCompat = __webpack_require__(10);
70787
70788var _configProvider = __webpack_require__(9);
70789
70790var _configProvider2 = _interopRequireDefault(_configProvider);
70791
70792var _util = __webpack_require__(6);
70793
70794function _interopRequireDefault(obj) {
70795 return obj && obj.__esModule ? obj : { default: obj };
70796}
70797
70798var getHeight = function getHeight(el) {
70799 return _util.dom.getStyle(el, 'height');
70800};
70801var setHeight = function setHeight(el, height) {
70802 return _util.dom.setStyle(el, 'height', height);
70803};
70804
70805/** Step */
70806var Step = (_temp = _class = function (_Component) {
70807 (0, _inherits3.default)(Step, _Component);
70808
70809 Step.getDerivedStateFromProps = function getDerivedStateFromProps(newProps) {
70810 if ('current' in newProps) {
70811 return {
70812 current: newProps.current
70813 };
70814 }
70815 };
70816
70817 function Step(props, context) {
70818 (0, _classCallCheck3.default)(this, Step);
70819
70820 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
70821
70822 _this._stepRefHandler = function (ref) {
70823 _this.step = ref;
70824 };
70825
70826 _this.state = {
70827 parentWidth: 'auto',
70828 parentHeight: 'auto',
70829 currentfocus: 0
70830 };
70831 _this.resize = _this.resize.bind(_this);
70832 return _this;
70833 }
70834
70835 Step.prototype.componentDidMount = function componentDidMount() {
70836 /* istanbul ignore if */
70837 if (!_util.support.flex) {
70838 this.resize();
70839 _util.events.on(window, 'resize', this.resize);
70840 }
70841 this.adjustHeight();
70842 };
70843
70844 Step.prototype.componentDidUpdate = function componentDidUpdate() {
70845 this.adjustHeight();
70846 };
70847
70848 Step.prototype.componentWillUnmount = function componentWillUnmount() {
70849 /* istanbul ignore if */
70850 if (!_util.support.flex) {
70851 _util.events.off(window, 'resize', this.resize);
70852 }
70853 };
70854
70855 Step.prototype.adjustHeight = function adjustHeight() {
70856 var _props = this.props,
70857 shape = _props.shape,
70858 direction = _props.direction,
70859 prefix = _props.prefix,
70860 labelPlacement = _props.labelPlacement;
70861
70862 var step = _reactDom2.default.findDOMNode(this.step);
70863 if (shape !== 'arrow' && (direction === 'horizontal' || direction === 'hoz') && (labelPlacement === 'vertical' || labelPlacement === 'ver')) {
70864 var height = Array.prototype.slice.call(step.getElementsByClassName(prefix + 'step-item')).reduce(function (ret, re) {
70865 var itemHeight = getHeight(re.getElementsByClassName(prefix + 'step-item-container')[0]) + getHeight(re.getElementsByClassName(prefix + 'step-item-body')[0]);
70866 return Math.max(itemHeight, ret);
70867 }, 0);
70868 setHeight(step, height);
70869 } else {
70870 setHeight(step, '');
70871 }
70872 };
70873
70874 Step.prototype.resize = function resize() {
70875 if (this.step) {
70876 this.setState({
70877 parentWidth: this.step.offsetWidth || 0,
70878 parentHeight: this.step.offsetHeight || 0
70879 });
70880 }
70881 };
70882
70883 // set dir key for aria handle
70884 // handleKeyDown = e => {
70885 // const { shape, children } = this.props;
70886 // const { length: max } = children;
70887 // let { currentfocus } = this.state;
70888 // const initPosition = currentfocus;
70889 // switch (e.keyCode) {
70890 // case KEYCODE.RIGHT:
70891 // case KEYCODE.DOWN:
70892 // currentfocus++;
70893 // break;
70894 // case KEYCODE.LEFT:
70895 // case KEYCODE.UP:
70896 // currentfocus--;
70897 // break;
70898 // default:
70899 // break;
70900 // }
70901 // currentfocus =
70902 // currentfocus >= max ? 0 : currentfocus < 0 ? max - 1 : currentfocus;
70903 // this.setState({ currentfocus }, () => {
70904 // const child = this.step.children[currentfocus];
70905 // if (!child) return;
70906 // const focusItem =
70907 // shape === 'arrow'
70908 // ? child
70909 // : child.querySelector('.next-step-item-body');
70910 // focusItem && focusItem.focus();
70911 // });
70912 // if (initPosition !== currentfocus) {
70913 // e.preventDefault();
70914 // }
70915 // };
70916
70917 Step.prototype._getValidChildren = function _getValidChildren(children) {
70918 var result = [];
70919 _react2.default.Children.forEach(children, function (child) {
70920 if (_react2.default.isValidElement(child)) {
70921 result.push(child);
70922 }
70923 });
70924 return result;
70925 };
70926
70927 Step.prototype.render = function render() {
70928 var _this2 = this,
70929 _classNames;
70930
70931 // eslint-disable-next-line
70932 var _props2 = this.props,
70933 className = _props2.className,
70934 current = _props2.current,
70935 labelPlacement = _props2.labelPlacement,
70936 shape = _props2.shape,
70937 readOnly = _props2.readOnly,
70938 animation = _props2.animation,
70939 itemRender = _props2.itemRender,
70940 rtl = _props2.rtl,
70941 stretch = _props2.stretch;
70942
70943 var others = _util.obj.pickOthers(Step.propTypes, this.props);
70944 var _props3 = this.props,
70945 prefix = _props3.prefix,
70946 direction = _props3.direction,
70947 children = _props3.children;
70948
70949 prefix = this.context.prefix || prefix;
70950 var _state = this.state,
70951 parentWidth = _state.parentWidth,
70952 parentHeight = _state.parentHeight;
70953
70954 // type不同对应的direction不同
70955
70956 direction = shape === 'arrow' ? 'hoz' : direction;
70957
70958 // children去除null
70959 children = this._getValidChildren(children);
70960
70961 // 修改子节点属性
70962 var cloneChildren = _react.Children.map(children, function (child, index) {
70963 var status = index < current ? 'finish' : index === current ? 'process' : 'wait';
70964
70965 return _react2.default.cloneElement(child, {
70966 prefix: prefix,
70967 key: index,
70968 index: index,
70969 total: children.length,
70970 status: child.props.status || status,
70971 shape: shape,
70972 direction: direction,
70973 labelPlacement: labelPlacement,
70974 parentWidth: parentWidth,
70975 parentHeight: parentHeight,
70976 readOnly: readOnly,
70977 animation: animation,
70978 tabIndex: 0,
70979 // tabIndex: this.state.currentfocus === index ? '0' : '-1',
70980 'aria-current': status === 'process' ? 'step' : null,
70981 itemRender: child.props.itemRender ? child.props.itemRender : itemRender, // 优先使用Item的itemRender
70982 onResize: function onResize() {
70983 _this2.step && _this2.adjustHeight();
70984 },
70985 stretch: stretch
70986 });
70987 });
70988
70989 var _direction = direction === 'ver' || direction === 'vertical' ? 'vertical' : 'horizontal';
70990 var _labelPlacement = labelPlacement === 'ver' || labelPlacement === 'vertical' ? 'vertical' : 'horizontal';
70991 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));
70992
70993 if (rtl) {
70994 others.dir = 'rtl';
70995 }
70996
70997 // others.onKeyDown = makeChain(this.handleKeyDown, others.onKeyDown);
70998 return _react2.default.createElement('ol', (0, _extends3.default)({}, others, { className: stepCls, ref: this._stepRefHandler }), cloneChildren);
70999 };
71000
71001 return Step;
71002}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
71003 prefix: _propTypes2.default.string,
71004 rtl: _propTypes2.default.bool,
71005 /**
71006 * 当前步骤
71007 */
71008 current: _propTypes2.default.number,
71009 /**
71010 * 展示方向
71011 */
71012 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
71013 /**
71014 * 横向布局时( direction 为 hoz )的内容排列
71015 */
71016 labelPlacement: _propTypes2.default.oneOf(['hoz', 'ver']),
71017 /**
71018 * 类型
71019 */
71020 shape: _propTypes2.default.oneOf(['circle', 'arrow', 'dot']),
71021 /**
71022 * 是否只读模式
71023 */
71024 readOnly: _propTypes2.default.bool,
71025 /**
71026 * 是否开启动效
71027 */
71028 animation: _propTypes2.default.bool,
71029 /**
71030 * 自定义样式名
71031 */
71032 className: _propTypes2.default.string,
71033 /**
71034 * StepItem 的自定义渲染
71035 * @param {Number} index 节点索引
71036 * @param {String} status 节点状态
71037 * @returns {Node} 节点的渲染结果
71038 */
71039 itemRender: _propTypes2.default.func,
71040 /**
71041 * 宽度横向拉伸
71042 */
71043 stretch: _propTypes2.default.bool
71044}), _class.defaultProps = {
71045 prefix: 'next-',
71046 current: 0,
71047 direction: 'hoz',
71048 labelPlacement: 'ver',
71049 shape: 'circle',
71050 animation: true,
71051 itemRender: null,
71052 stretch: false
71053}, _class.contextTypes = {
71054 prefix: _propTypes2.default.string
71055}, _temp);
71056Step.displayName = 'Step';
71057exports.default = (0, _reactLifecyclesCompat.polyfill)(Step);
71058module.exports = exports['default'];
71059
71060/***/ }),
71061/* 419 */
71062/***/ (function(module, exports, __webpack_require__) {
71063
71064"use strict";
71065
71066
71067exports.__esModule = true;
71068
71069var _extends2 = __webpack_require__(1);
71070
71071var _extends3 = _interopRequireDefault(_extends2);
71072
71073var _classCallCheck2 = __webpack_require__(2);
71074
71075var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
71076
71077var _possibleConstructorReturn2 = __webpack_require__(3);
71078
71079var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
71080
71081var _inherits2 = __webpack_require__(4);
71082
71083var _inherits3 = _interopRequireDefault(_inherits2);
71084
71085var _class, _temp;
71086
71087var _reactDom = __webpack_require__(12);
71088
71089var _reactDom2 = _interopRequireDefault(_reactDom);
71090
71091var _react = __webpack_require__(0);
71092
71093var _react2 = _interopRequireDefault(_react);
71094
71095var _propTypes = __webpack_require__(5);
71096
71097var _propTypes2 = _interopRequireDefault(_propTypes);
71098
71099var _classnames = __webpack_require__(7);
71100
71101var _classnames2 = _interopRequireDefault(_classnames);
71102
71103var _resizeObserverPolyfill = __webpack_require__(58);
71104
71105var _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);
71106
71107var _icon = __webpack_require__(11);
71108
71109var _icon2 = _interopRequireDefault(_icon);
71110
71111var _progress = __webpack_require__(101);
71112
71113var _progress2 = _interopRequireDefault(_progress);
71114
71115var _configProvider = __webpack_require__(9);
71116
71117var _configProvider2 = _interopRequireDefault(_configProvider);
71118
71119var _util = __webpack_require__(6);
71120
71121function _interopRequireDefault(obj) {
71122 return obj && obj.__esModule ? obj : { default: obj };
71123}
71124
71125/** Step.Item */
71126var StepItem = (_temp = _class = function (_Component) {
71127 (0, _inherits3.default)(StepItem, _Component);
71128
71129 function StepItem(props) {
71130 (0, _classCallCheck3.default)(this, StepItem);
71131
71132 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
71133
71134 _this.onClick = function () {
71135 var _this$props = _this.props,
71136 index = _this$props.index,
71137 disabled = _this$props.disabled,
71138 readOnly = _this$props.readOnly,
71139 animation = _this$props.animation;
71140
71141 if (disabled || readOnly) {
71142 return false;
71143 }
71144
71145 if (animation && _this.stepNode) {
71146 _util.dom.hasClass(_this.stepNode, 'clicked') ? _util.dom.removeClass(_this.stepNode, 'clicked') : _util.dom.addClass(_this.stepNode, 'clicked');
71147 }
71148 _this.props.onClick(index);
71149 };
71150
71151 _this.removeClickedCls = _this.removeClickedCls.bind(_this);
71152 _this._refHandlerCreator = _this._refHandlerCreator.bind(_this);
71153 _this.resize = _this.resize.bind(_this);
71154 _this.ro = new _resizeObserverPolyfill2.default(function () {
71155 var _this$props2 = _this.props,
71156 shape = _this$props2.shape,
71157 direction = _this$props2.direction,
71158 onResize = _this$props2.onResize;
71159
71160 if (!_this.body || shape === 'arrow') {
71161 return;
71162 }
71163 if (direction === 'vertical' || direction === 'ver') {
71164 _this.resize();
71165 } else {
71166 onResize && onResize();
71167 }
71168 });
71169 return _this;
71170 }
71171
71172 StepItem.prototype.componentDidMount = function componentDidMount() {
71173 var _props = this.props,
71174 shape = _props.shape,
71175 direction = _props.direction,
71176 labelPlacement = _props.labelPlacement,
71177 index = _props.index,
71178 total = _props.total,
71179 stretch = _props.stretch;
71180
71181 this.body && this.ro.observe(_reactDom2.default.findDOMNode(this.body));
71182 if (shape === 'arrow') {
71183 return;
71184 }
71185 if (direction === 'vertical' || direction === 'ver') {
71186 this.resize();
71187 this.forceUpdate(); // 解决Step嵌套的情况下,嵌套节点宽度为0的问题
71188 this.eventHandler = _util.events.on(window, 'resize', this.resize); // 调整垂直Step
71189 } else if ((direction === 'horizontal' || direction === 'hoz') && (labelPlacement === 'horizontal' || labelPlacement === 'hoz') && index !== total - 1) {
71190 // 调整横向Content
71191 this.adjustTail();
71192 }
71193 if (stretch && (direction === 'horizontal' || direction === 'hoz')) {
71194 this.adjustItemWidth();
71195 }
71196 };
71197
71198 StepItem.prototype.componentDidUpdate = function componentDidUpdate() {
71199 var _this2 = this;
71200
71201 var _props2 = this.props,
71202 shape = _props2.shape,
71203 direction = _props2.direction,
71204 labelPlacement = _props2.labelPlacement,
71205 index = _props2.index,
71206 total = _props2.total,
71207 rtl = _props2.rtl,
71208 stretch = _props2.stretch;
71209
71210 if (shape === 'arrow') {
71211 return;
71212 }
71213 var resetTailStyle = function resetTailStyle() {
71214 _util.dom.setStyle(_this2.tail, {
71215 width: '',
71216 top: '',
71217 height: ''
71218 });
71219 };
71220
71221 if (direction === 'vertical' || direction === 'ver') {
71222 this.resize();
71223 } else if (direction === 'horizontal' || direction === 'hoz') {
71224 var _dom$setStyle;
71225
71226 var pos = rtl ? 'right' : 'left';
71227 _util.dom.setStyle(this.body, (_dom$setStyle = {
71228 width: ''
71229 }, _dom$setStyle[pos] = '', _dom$setStyle));
71230 if (shape === 'circle' && (labelPlacement === 'horizontal' || labelPlacement === 'hoz') && index !== total - 1) {
71231 // 调整横向Content
71232 this.adjustTail();
71233 } else {
71234 resetTailStyle();
71235 }
71236 if (stretch) {
71237 this.adjustItemWidth();
71238 }
71239 } else if (index !== total - 1) {
71240 resetTailStyle();
71241 }
71242 };
71243
71244 StepItem.prototype.componentWillUnmount = function componentWillUnmount() {
71245 this.eventHandler && this.eventHandler.off();
71246 };
71247
71248 StepItem.prototype.adjustItemWidth = function adjustItemWidth() {
71249 var _props3 = this.props,
71250 index = _props3.index,
71251 total = _props3.total,
71252 labelPlacement = _props3.labelPlacement;
71253
71254 var lastNodeWidth = labelPlacement === 'horizontal' || labelPlacement === 'hoz' ? this.container.offsetWidth + this.body.offsetWidth : this.title.offsetWidth;
71255 var width = total - 1 !== index ? 'calc((100% - ' + lastNodeWidth + 'px)/' + (total - 1) + ')' : 'auto';
71256 _util.dom.setStyle(this.step, {
71257 width: width
71258 });
71259 };
71260
71261 StepItem.prototype.adjustTail = function adjustTail() {
71262 var width = this.container.offsetWidth + this.title.offsetWidth;
71263 _util.dom.setStyle(this.tail, {
71264 width: 'calc(100% - ' + width + 'px)',
71265 top: _util.dom.getStyle(this.container, 'height') / 2 + 'px'
71266 });
71267 };
71268
71269 StepItem.prototype.resize = function resize() {
71270 var direction = this.props.direction;
71271
71272 if (direction === 'vertical' || direction === 'ver') {
71273 var stepWidth = _util.dom.getStyle(this.step, 'width');
71274 var stepHozWhitespace = _util.dom.getNodeHozWhitespace(this.step.parentNode);
71275 var stepBodyHozWhitespace = _util.dom.getNodeHozWhitespace(this.body);
71276 var rtl = this.props.rtl;
71277
71278 rtl ? this.body.style.right = stepWidth + 'px' : this.body.style.left = stepWidth + 'px';
71279 _util.dom.setStyle(this.body, {
71280 width: _util.dom.getStyle(this.step.parentNode.parentNode, 'width') - stepWidth - stepHozWhitespace - stepBodyHozWhitespace
71281 });
71282 _util.dom.setStyle(this.tail, 'height', _util.dom.getStyle(this.body, 'height') - _util.dom.getStyle(this.container, 'height'));
71283 }
71284 };
71285
71286 StepItem.prototype._getNode = function _getNode() {
71287 var _props4 = this.props,
71288 prefix = _props4.prefix,
71289 index = _props4.index,
71290 status = _props4.status,
71291 icon = _props4.icon,
71292 shape = _props4.shape,
71293 percent = _props4.percent,
71294 itemRender = _props4.itemRender;
71295
71296 var nodeElement = icon;
71297 if (shape === 'dot') {
71298 nodeElement = icon ? _react2.default.createElement(_icon2.default, { type: icon }) : _react2.default.createElement('div', { className: prefix + 'step-item-node-dot' }, ' ');
71299 } else if (shape === 'circle' && percent) {
71300 nodeElement = _react2.default.createElement(_progress2.default, { shape: 'circle', percent: percent, className: prefix + 'step-item-progress' });
71301 } else if (shape === 'circle' && !!itemRender && typeof itemRender === 'function') {
71302 nodeElement = null; // 如果是需要自定义节点,则不处理,返回空
71303 } else {
71304 nodeElement = _react2.default.createElement('div', { className: prefix + 'step-item-node-circle' }, icon ? _react2.default.createElement(_icon2.default, { type: icon }) : this._itemRender(index, status));
71305 }
71306
71307 return nodeElement;
71308 };
71309
71310 StepItem.prototype.getNode = function getNode(args) {
71311 var _props5 = this.props,
71312 prefix = _props5.prefix,
71313 itemRender = _props5.itemRender,
71314 index = _props5.index,
71315 status = _props5.status,
71316 title = _props5.title,
71317 content = _props5.content,
71318 shape = _props5.shape;
71319 var others = args.others,
71320 stepCls = args.stepCls,
71321 overlayCls = args.overlayCls;
71322
71323 var nodeElement = this._getNode();
71324 var containerStyle = shape === 'dot' && { fontSize: 'initial' } || {};
71325 var finalNodeElement = _react2.default.createElement('div', {
71326 className: prefix + 'step-item-container',
71327 style: containerStyle,
71328 ref: this._refHandlerCreator('container')
71329 }, _react2.default.createElement('div', { className: prefix + 'step-item-node-placeholder', onClick: this.onClick }, _react2.default.createElement('div', {
71330 className: prefix + 'step-item-node',
71331 ref: this._refHandlerCreator('stepNode'),
71332 onTransitionEnd: this.removeClickedCls
71333 }, nodeElement)));
71334
71335 if (!nodeElement) {
71336 // 需要自定义子节点
71337 finalNodeElement = _react2.default.createElement('div', {
71338 className: prefix + 'step-item-container',
71339 style: containerStyle,
71340 ref: this._refHandlerCreator('container')
71341 }, _react2.default.createElement('div', { className: prefix + 'step-item-node-placeholder', onClick: this.onClick }, itemRender(index, status, title, content)));
71342 }
71343 if (shape !== 'arrow') {
71344 delete others.tabIndex;
71345 delete others['aria-current'];
71346 }
71347
71348 return _react2.default.createElement('li', (0, _extends3.default)({}, others, { style: this.getStyle(), className: stepCls, ref: this._refHandlerCreator('step') }), finalNodeElement, _react2.default.createElement('div', {
71349 className: prefix + 'step-item-body',
71350 ref: this._refHandlerCreator('body'),
71351 tabIndex: this.props.tabIndex,
71352 'aria-current': this.props['aria-current']
71353 }, _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 }))));
71354 };
71355
71356 StepItem.prototype.getStyle = function getStyle() {
71357 var _props6 = this.props,
71358 parentWidth = _props6.parentWidth,
71359 parentHeight = _props6.parentHeight,
71360 direction = _props6.direction,
71361 total = _props6.total,
71362 index = _props6.index,
71363 shape = _props6.shape;
71364
71365 var width = 'auto';
71366
71367 if (Number(parentWidth) && Number(parentHeight)) {
71368 if (!_util.support.flex && shape === 'arrow') {
71369 width = Math.floor(parentWidth / total - parentHeight / 2 - parentHeight / 8);
71370 }
71371 }
71372 if (shape !== 'arrow' && (direction === 'horizontal' || direction === 'hoz')) {
71373 width = total - 1 !== index ? Math.floor(100 / total) + '%' : 'auto';
71374 }
71375 return {
71376 width: width
71377 };
71378 };
71379
71380 StepItem.prototype.removeClickedCls = function removeClickedCls() {
71381 var animation = this.props.animation;
71382
71383 if (animation && this.stepNode && _util.dom.hasClass(this.stepNode, 'clicked')) {
71384 _util.dom.removeClass(this.stepNode, 'clicked');
71385 }
71386 };
71387
71388 // 节点的渲染方法
71389
71390
71391 StepItem.prototype._itemRender = function _itemRender(index, status) {
71392 var itemRender = this.props.itemRender;
71393
71394 if (itemRender) {
71395 return itemRender(index, status);
71396 }
71397 return status === 'finish' ? _react2.default.createElement(_icon2.default, { type: 'select' }) : index + 1;
71398 };
71399
71400 StepItem.prototype._refHandlerCreator = function _refHandlerCreator(refName) {
71401 var self = this;
71402 return function (ref) {
71403 self[refName] = ref;
71404 };
71405 };
71406
71407 StepItem.prototype.render = function render() {
71408 var _classNames;
71409
71410 // eslint-disable-next-line
71411 var _props7 = this.props,
71412 prefix = _props7.prefix,
71413 locale = _props7.locale,
71414 className = _props7.className,
71415 status = _props7.status,
71416 title = _props7.title,
71417 icon = _props7.icon,
71418 index = _props7.index,
71419 total = _props7.total,
71420 shape = _props7.shape,
71421 content = _props7.content,
71422 direction = _props7.direction,
71423 disabled = _props7.disabled,
71424 onClick = _props7.onClick,
71425 readOnly = _props7.readOnly,
71426 animation = _props7.animation,
71427 parentHeight = _props7.parentHeight,
71428 itemRender = _props7.itemRender,
71429 parentWidth = _props7.parentWidth,
71430 labelPlacement = _props7.labelPlacement,
71431 rtl = _props7.rtl,
71432 onResize = _props7.onResize;
71433
71434 var others = _util.obj.pickOthers(StepItem.propTypes, this.props);
71435
71436 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));
71437
71438 var overlayCls = status === 'finish' ? { width: '100%' } : null;
71439 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)));
71440 var otherElement = this.getNode({ others: others, stepCls: stepCls, overlayCls: overlayCls });
71441
71442 return shape === 'arrow' ? arrowElement : otherElement;
71443 };
71444
71445 return StepItem;
71446}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
71447 prefix: _propTypes2.default.string,
71448 rtl: _propTypes2.default.bool,
71449 /**
71450 * 步骤的状态,如不传,会根据外层的 Step 的 current 属性生成,可选值为 `wait`, `process`, `finish`
71451 */
71452 status: _propTypes2.default.oneOf(['wait', 'process', 'finish']),
71453 /**
71454 * 标题
71455 */
71456 title: _propTypes2.default.node,
71457 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
71458 labelPlacement: _propTypes2.default.oneOf(['hoz', 'ver']),
71459 shape: _propTypes2.default.oneOf(['circle', 'arrow', 'dot']),
71460 /**
71461 * 图标
71462 */
71463 icon: _propTypes2.default.string,
71464 /**
71465 * 内容填充, shape为 arrow 时无效
71466 */
71467 content: _propTypes2.default.node,
71468 /**
71469 * StepItem 的自定义渲染, 会覆盖父节点设置的itemRender
71470 * @param {Number} index 节点索引
71471 * @param {String} status 节点状态
71472 * @returns {Node} 节点的渲染结果
71473 */
71474 itemRender: _propTypes2.default.func,
71475 /**
71476 * 百分比
71477 */
71478 percent: _propTypes2.default.number,
71479 index: _propTypes2.default.number,
71480 total: _propTypes2.default.number,
71481 animation: _propTypes2.default.bool, // 是否开启动效,由父级传入
71482 /**
71483 * 是否禁用
71484 */
71485 disabled: _propTypes2.default.bool,
71486 parentWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
71487 parentHeight: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
71488 /**
71489 * 点击步骤时的回调
71490 * @param {Number} index 节点索引
71491 */
71492 onClick: _propTypes2.default.func,
71493 /**
71494 * 自定义样式
71495 */
71496 className: _propTypes2.default.string,
71497 readOnly: _propTypes2.default.bool,
71498 onResize: _propTypes2.default.func,
71499 stretch: _propTypes2.default.bool
71500}), _class.defaultProps = {
71501 shape: 'circle',
71502 index: 0,
71503 total: 1,
71504 onClick: function onClick() {},
71505 stretch: false
71506}, _temp);
71507StepItem.displayName = 'StepItem';
71508exports.default = _configProvider2.default.config(StepItem);
71509module.exports = exports['default'];
71510
71511/***/ }),
71512/* 420 */
71513/***/ (function(module, exports, __webpack_require__) {
71514
71515"use strict";
71516
71517
71518exports.__esModule = true;
71519
71520var _extends2 = __webpack_require__(1);
71521
71522var _extends3 = _interopRequireDefault(_extends2);
71523
71524var _objectWithoutProperties2 = __webpack_require__(8);
71525
71526var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
71527
71528var _classCallCheck2 = __webpack_require__(2);
71529
71530var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
71531
71532var _possibleConstructorReturn2 = __webpack_require__(3);
71533
71534var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
71535
71536var _inherits2 = __webpack_require__(4);
71537
71538var _inherits3 = _interopRequireDefault(_inherits2);
71539
71540var _class, _temp;
71541
71542var _classnames = __webpack_require__(7);
71543
71544var _classnames2 = _interopRequireDefault(_classnames);
71545
71546var _react = __webpack_require__(0);
71547
71548var _react2 = _interopRequireDefault(_react);
71549
71550var _propTypes = __webpack_require__(5);
71551
71552var _propTypes2 = _interopRequireDefault(_propTypes);
71553
71554var _reactLifecyclesCompat = __webpack_require__(10);
71555
71556var _util = __webpack_require__(6);
71557
71558var _icon = __webpack_require__(11);
71559
71560var _icon2 = _interopRequireDefault(_icon);
71561
71562var _configProvider = __webpack_require__(9);
71563
71564var _configProvider2 = _interopRequireDefault(_configProvider);
71565
71566var _zhCn = __webpack_require__(13);
71567
71568var _zhCn2 = _interopRequireDefault(_zhCn);
71569
71570function _interopRequireDefault(obj) {
71571 return obj && obj.__esModule ? obj : { default: obj };
71572}
71573
71574/** Switch*/
71575var Switch = (_temp = _class = function (_React$Component) {
71576 (0, _inherits3.default)(Switch, _React$Component);
71577
71578 function Switch(props, context) {
71579 (0, _classCallCheck3.default)(this, Switch);
71580
71581 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
71582
71583 var checked = props.checked || props.defaultChecked;
71584 _this.onChange = _this.onChange.bind(_this);
71585 _this.onKeyDown = _this.onKeyDown.bind(_this);
71586 _this.state = {
71587 checked: checked
71588 };
71589 return _this;
71590 }
71591
71592 Switch.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
71593 if ('checked' in props && props.checked !== state.checked) {
71594 return {
71595 checked: !!props.checked
71596 };
71597 }
71598
71599 return null;
71600 };
71601
71602 Switch.prototype.onChange = function onChange(ev) {
71603 var checked = !this.state.checked;
71604
71605 if (!('checked' in this.props)) {
71606 this.setState({
71607 checked: checked
71608 });
71609 }
71610 this.props.onChange(checked, ev);
71611 this.props.onClick && this.props.onClick(ev);
71612 };
71613
71614 Switch.prototype.onKeyDown = function onKeyDown(e) {
71615 if (e.keyCode === _util.KEYCODE.ENTER || e.keyCode === _util.KEYCODE.SPACE) {
71616 this.onChange(e);
71617 }
71618 this.props.onKeyDown && this.props.onKeyDown(e);
71619 };
71620
71621 Switch.prototype.render = function render() {
71622 var _classNames;
71623
71624 var _props = this.props,
71625 prefix = _props.prefix,
71626 className = _props.className,
71627 disabled = _props.disabled,
71628 readOnly = _props.readOnly,
71629 size = _props.size,
71630 loading = _props.loading,
71631 autoWidth = _props.autoWidth,
71632 checkedChildren = _props.checkedChildren,
71633 unCheckedChildren = _props.unCheckedChildren,
71634 rtl = _props.rtl,
71635 isPreview = _props.isPreview,
71636 renderPreview = _props.renderPreview,
71637 locale = _props.locale,
71638 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'disabled', 'readOnly', 'size', 'loading', 'autoWidth', 'checkedChildren', 'unCheckedChildren', 'rtl', 'isPreview', 'renderPreview', 'locale']);
71639 var checked = this.state.checked;
71640
71641 var status = checked ? 'on' : 'off';
71642 var children = checked ? checkedChildren : unCheckedChildren;
71643
71644 var _size = size;
71645 if (_size !== 'small' && _size !== 'medium') {
71646 _size = 'medium';
71647 }
71648
71649 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));
71650 var attrs = void 0;
71651 var isDisabled = disabled || readOnly;
71652
71653 if (!isDisabled) {
71654 attrs = {
71655 onClick: this.onChange,
71656 tabIndex: 0,
71657 onKeyDown: this.onKeyDown,
71658 disabled: false
71659 };
71660 } else {
71661 attrs = {
71662 disabled: true
71663 };
71664 }
71665
71666 if (isPreview) {
71667 var _classNames2;
71668
71669 var previewCls = (0, _classnames2.default)(className, (_classNames2 = {}, _classNames2[prefix + 'form-preview'] = true, _classNames2));
71670
71671 if ('renderPreview' in this.props) {
71672 return _react2.default.createElement('div', (0, _extends3.default)({ className: previewCls }, others), renderPreview(checked, this.props));
71673 }
71674
71675 return _react2.default.createElement('p', (0, _extends3.default)({ className: previewCls }, others), children || locale[status]);
71676 }
71677
71678 return _react2.default.createElement('div', (0, _extends3.default)({
71679 role: 'switch',
71680 dir: rtl ? 'rtl' : undefined,
71681 tabIndex: '0'
71682 }, others, {
71683 className: classes
71684 }, attrs, {
71685 'aria-checked': checked
71686 }), _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));
71687 };
71688
71689 return Switch;
71690}(_react2.default.Component), _class.contextTypes = {
71691 prefix: _propTypes2.default.string
71692}, _class.propTypes = {
71693 prefix: _propTypes2.default.string,
71694 rtl: _propTypes2.default.bool,
71695 pure: _propTypes2.default.bool,
71696 /**
71697 * 自定义类名
71698 */
71699 className: _propTypes2.default.string,
71700 /**
71701 * 自定义内敛样式
71702 */
71703 style: _propTypes2.default.object,
71704 /**
71705 * 打开时的内容
71706 */
71707 checkedChildren: _propTypes2.default.any,
71708 /**
71709 * 关闭时的内容
71710 */
71711 unCheckedChildren: _propTypes2.default.any,
71712 /**
71713 * 开关状态改变是触发此事件
71714 * @param {Boolean} checked 是否为打开状态
71715 * @param {Event} e DOM事件对象
71716 */
71717 onChange: _propTypes2.default.func,
71718 /**
71719 * 开关当前的值(针对受控组件)
71720 */
71721 checked: _propTypes2.default.bool,
71722 /**
71723 * 开关默认值 (针对非受控组件)
71724 */
71725 defaultChecked: _propTypes2.default.bool,
71726 /**
71727 * 表示开关被禁用
71728 */
71729 disabled: _propTypes2.default.bool,
71730 /**
71731 * loading
71732 */
71733 loading: _propTypes2.default.bool,
71734 /**
71735 * switch的尺寸
71736 * @enumdesc 正常大小, 缩小版大小
71737 */
71738 size: _propTypes2.default.oneOf(['medium', 'small']),
71739 /**
71740 * 鼠标点击事件
71741 * @param {Event} e DOM事件对象
71742 */
71743 onClick: _propTypes2.default.func,
71744 /**
71745 * 键盘按键事件
71746 * @param {Event} e DOM事件对象
71747 */
71748 onKeyDown: _propTypes2.default.func,
71749 /**
71750 * 是否为预览态
71751 */
71752 isPreview: _propTypes2.default.bool,
71753 /**
71754 * 预览态模式下渲染的内容
71755 * @param {number} value 评分值
71756 */
71757 renderPreview: _propTypes2.default.func,
71758 /**
71759 * 开启后宽度根据内容自适应
71760 * @version 1.23
71761 */
71762 autoWidth: _propTypes2.default.bool,
71763 /**
71764 * 国际化配置
71765 */
71766 locale: _propTypes2.default.object
71767}, _class.defaultProps = {
71768 prefix: 'next-',
71769 size: 'medium',
71770 disabled: false,
71771 defaultChecked: false,
71772 isPreview: false,
71773 loading: false,
71774 readOnly: false,
71775 autoWidth: false,
71776 onChange: function onChange() {},
71777 locale: _zhCn2.default.Switch
71778}, _temp);
71779Switch.displayName = 'Switch';
71780exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Switch));
71781module.exports = exports['default'];
71782
71783/***/ }),
71784/* 421 */
71785/***/ (function(module, exports, __webpack_require__) {
71786
71787"use strict";
71788
71789
71790exports.__esModule = true;
71791
71792var _extends2 = __webpack_require__(1);
71793
71794var _extends3 = _interopRequireDefault(_extends2);
71795
71796var _objectWithoutProperties2 = __webpack_require__(8);
71797
71798var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
71799
71800var _configProvider = __webpack_require__(9);
71801
71802var _configProvider2 = _interopRequireDefault(_configProvider);
71803
71804var _tab = __webpack_require__(422);
71805
71806var _tab2 = _interopRequireDefault(_tab);
71807
71808var _tabItem = __webpack_require__(425);
71809
71810var _tabItem2 = _interopRequireDefault(_tabItem);
71811
71812function _interopRequireDefault(obj) {
71813 return obj && obj.__esModule ? obj : { default: obj };
71814}
71815
71816_tab2.default.Item = _tabItem2.default;
71817
71818_tab2.default.TabPane = _configProvider2.default.config(_tabItem2.default, {
71819 transform: function transform(props, deprecated) {
71820 deprecated('Tab.TabPane', 'Tab.Item', 'Tab');
71821 return props;
71822 }
71823});
71824
71825exports.default = _configProvider2.default.config(_tab2.default, {
71826 transform: /* istanbul ignore next */function transform(props, deprecated) {
71827 if ('type' in props) {
71828 deprecated('type', 'shape', 'Tab');
71829 var _props = props,
71830 type = _props.type,
71831 others = (0, _objectWithoutProperties3.default)(_props, ['type']);
71832
71833 props = (0, _extends3.default)({ shape: type }, others);
71834 }
71835 if ('resDirection' in props) {
71836 var _props2 = props,
71837 resDirection = _props2.resDirection,
71838 _others = (0, _objectWithoutProperties3.default)(_props2, ['resDirection']);
71839
71840 var excessMode = void 0;
71841 if (resDirection === 'horizontal') {
71842 deprecated('resDirection=horizontal', 'excessMode=slide', 'Tab');
71843
71844 excessMode = 'slide';
71845 } else if (resDirection === 'vertical') {
71846 deprecated('resDirection=vertical', 'excessMode=dropdown', 'Tab');
71847
71848 excessMode = 'dropdown';
71849 }
71850 props = (0, _extends3.default)({ excessMode: excessMode }, _others);
71851 }
71852 if ('tabBarExtraContent' in props) {
71853 deprecated('tabBarExtraContent', 'extra', 'Tab');
71854
71855 var _props3 = props,
71856 tabBarExtraContent = _props3.tabBarExtraContent,
71857 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['tabBarExtraContent']);
71858
71859 props = (0, _extends3.default)({ extra: tabBarExtraContent }, _others2);
71860 }
71861
71862 return props;
71863 }
71864});
71865module.exports = exports['default'];
71866
71867/***/ }),
71868/* 422 */
71869/***/ (function(module, exports, __webpack_require__) {
71870
71871"use strict";
71872
71873
71874exports.__esModule = true;
71875
71876var _extends2 = __webpack_require__(1);
71877
71878var _extends3 = _interopRequireDefault(_extends2);
71879
71880var _objectWithoutProperties2 = __webpack_require__(8);
71881
71882var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
71883
71884var _classCallCheck2 = __webpack_require__(2);
71885
71886var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
71887
71888var _possibleConstructorReturn2 = __webpack_require__(3);
71889
71890var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
71891
71892var _inherits2 = __webpack_require__(4);
71893
71894var _inherits3 = _interopRequireDefault(_inherits2);
71895
71896var _class, _temp;
71897
71898var _react = __webpack_require__(0);
71899
71900var _react2 = _interopRequireDefault(_react);
71901
71902var _propTypes = __webpack_require__(5);
71903
71904var _propTypes2 = _interopRequireDefault(_propTypes);
71905
71906var _classnames2 = __webpack_require__(7);
71907
71908var _classnames3 = _interopRequireDefault(_classnames2);
71909
71910var _reactLifecyclesCompat = __webpack_require__(10);
71911
71912var _util = __webpack_require__(6);
71913
71914var _nav = __webpack_require__(423);
71915
71916var _nav2 = _interopRequireDefault(_nav);
71917
71918var _content = __webpack_require__(424);
71919
71920var _content2 = _interopRequireDefault(_content);
71921
71922var _utils = __webpack_require__(182);
71923
71924var _zhCn = __webpack_require__(13);
71925
71926var _zhCn2 = _interopRequireDefault(_zhCn);
71927
71928function _interopRequireDefault(obj) {
71929 return obj && obj.__esModule ? obj : { default: obj };
71930}
71931
71932var noop = function noop() {};
71933
71934/** Tab */
71935var Tab = (_temp = _class = function (_Component) {
71936 (0, _inherits3.default)(Tab, _Component);
71937
71938 function Tab(props, context) {
71939 (0, _classCallCheck3.default)(this, Tab);
71940
71941 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
71942
71943 _this.handleTriggerEvent = function (eventType, key) {
71944 var _this$props = _this.props,
71945 triggerType = _this$props.triggerType,
71946 onClick = _this$props.onClick,
71947 onChange = _this$props.onChange;
71948
71949 if (triggerType === eventType) {
71950 onClick(key);
71951 _this.setActiveKey(key);
71952 if (_this.state.activeKey !== key) {
71953 onChange(key);
71954 }
71955 }
71956 };
71957
71958 _this.onNavKeyDown = function (e) {
71959 var keyCode = e.keyCode;
71960 var disableKeyboard = _this.props.disableKeyboard;
71961
71962 if (disableKeyboard) {
71963 return;
71964 }
71965
71966 if (keyCode >= _util.KEYCODE.LEFT && keyCode <= _util.KEYCODE.DOWN) {
71967 e.preventDefault();
71968 }
71969
71970 var newKey = void 0;
71971 if (keyCode === _util.KEYCODE.RIGHT || keyCode === _util.KEYCODE.DOWN) {
71972 newKey = _this.getNextActiveKey(true);
71973 _this.handleTriggerEvent(_this.props.triggerType, newKey);
71974 } else if (keyCode === _util.KEYCODE.LEFT || keyCode === _util.KEYCODE.UP) {
71975 newKey = _this.getNextActiveKey(false);
71976 _this.handleTriggerEvent(_this.props.triggerType, newKey);
71977 }
71978 };
71979
71980 _this.state = {
71981 activeKey: _this.getDefaultActiveKey(props)
71982 };
71983 return _this;
71984 }
71985
71986 Tab.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
71987 if (props.activeKey !== undefined && state.activeKey !== '' + props.activeKey) {
71988 return {
71989 activeKey: '' + props.activeKey
71990 };
71991 }
71992
71993 return {};
71994 };
71995
71996 Tab.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
71997 var preChildLen = prevProps.children && prevProps.children.length || 0;
71998 var curChildLen = this.props.children && this.props.children.length || 0;
71999 if (preChildLen !== 0 && curChildLen !== 0 && !('activeKey' in this.props) & !this.isActiveKeyExist(this.state.activeKey)) {
72000 var activeKey = this.getDefaultActiveKey(this.props);
72001 if (activeKey) {
72002 // eslint-disable-next-line react/no-did-update-set-state
72003 this.setState({
72004 activeKey: activeKey
72005 });
72006 }
72007 }
72008 };
72009
72010 Tab.prototype.getDefaultActiveKey = function getDefaultActiveKey(props) {
72011 var activeKey = props.activeKey === undefined ? props.defaultActiveKey : props.activeKey;
72012
72013 if (activeKey === undefined) {
72014 _react2.default.Children.forEach(props.children, function (child, index) {
72015 if (activeKey !== undefined) return;
72016 if (_react2.default.isValidElement(child)) {
72017 if (!child.props.disabled) {
72018 activeKey = child.key || index;
72019 }
72020 }
72021 });
72022 }
72023
72024 return activeKey !== undefined ? '' + activeKey : undefined;
72025 };
72026
72027 Tab.prototype.getNextActiveKey = function getNextActiveKey(isNext) {
72028 var _this2 = this;
72029
72030 var children = [];
72031 _react2.default.Children.forEach(this.props.children, function (child) {
72032 if (_react2.default.isValidElement(child)) {
72033 if (!child.props.disabled) {
72034 if (isNext) {
72035 children.push(child);
72036 } else {
72037 children.unshift(child);
72038 }
72039 }
72040 }
72041 });
72042
72043 var length = children.length;
72044 var key = length && children[0].key;
72045 children.forEach(function (child, i) {
72046 if (child.key === _this2.state.activeKey) {
72047 if (i === length - 1) {
72048 key = children[0].key;
72049 } else {
72050 key = children[i + 1].key;
72051 }
72052 }
72053 });
72054 return key;
72055 };
72056
72057 Tab.prototype.isActiveKeyExist = function isActiveKeyExist(activeKey) {
72058 var exist = false;
72059 _react2.default.Children.forEach(this.props.children, function (child, index) {
72060 if (exist) return;
72061 if (_react2.default.isValidElement(child)) {
72062 if (!child.props.disabled) {
72063 var key = child.key || index;
72064 if (activeKey === '' + key) {
72065 exist = true;
72066 }
72067 }
72068 }
72069 });
72070 return exist;
72071 };
72072
72073 Tab.prototype.setActiveKey = function setActiveKey(key) {
72074 var activeKey = this.state.activeKey;
72075
72076 // 如果 key 没变,或者受控状态下,则跳过
72077
72078 if (key === activeKey || 'activeKey' in this.props) {
72079 return;
72080 }
72081 this.setState({
72082 activeKey: key
72083 });
72084 };
72085
72086 Tab.prototype.render = function render() {
72087 var _classnames;
72088
72089 var _props = this.props,
72090 prefix = _props.prefix,
72091 animation = _props.animation,
72092 shape = _props.shape,
72093 size = _props.size,
72094 extra = _props.extra,
72095 excessMode = _props.excessMode,
72096 tabPosition = _props.tabPosition,
72097 tabRender = _props.tabRender,
72098 triggerType = _props.triggerType,
72099 lazyLoad = _props.lazyLoad,
72100 unmountInactiveTabs = _props.unmountInactiveTabs,
72101 popupProps = _props.popupProps,
72102 navStyle = _props.navStyle,
72103 navClassName = _props.navClassName,
72104 contentStyle = _props.contentStyle,
72105 contentClassName = _props.contentClassName,
72106 className = _props.className,
72107 onClose = _props.onClose,
72108 children = _props.children,
72109 rtl = _props.rtl,
72110 device = _props.device,
72111 locale = _props.locale,
72112 icons = _props.icons,
72113 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']);
72114 var activeKey = this.state.activeKey;
72115
72116 var tabs = (0, _utils.toArray)(children);
72117 var newPosition = tabPosition;
72118 if (rtl && ['left', 'right'].indexOf(tabPosition) >= 0) {
72119 newPosition = tabPosition === 'left' ? 'right' : 'left';
72120 }
72121 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);
72122
72123 var navProps = {
72124 prefix: prefix,
72125 rtl: rtl,
72126 animation: animation,
72127 activeKey: activeKey,
72128 excessMode: excessMode,
72129 extra: extra,
72130 tabs: tabs,
72131 tabPosition: tabPosition,
72132 tabRender: tabRender,
72133 triggerType: triggerType,
72134 popupProps: popupProps,
72135 onClose: onClose,
72136 onTriggerEvent: this.handleTriggerEvent,
72137 onKeyDown: this.onNavKeyDown,
72138 style: navStyle,
72139 className: navClassName,
72140 locale: locale,
72141 icons: icons
72142 };
72143
72144 var contentProps = {
72145 prefix: prefix,
72146 activeKey: activeKey,
72147 lazyLoad: lazyLoad,
72148 unmountInactiveTabs: unmountInactiveTabs,
72149 style: contentStyle,
72150 className: contentClassName
72151 };
72152
72153 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)];
72154
72155 if (tabPosition === 'bottom') {
72156 tabChildren.reverse();
72157 }
72158
72159 return _react2.default.createElement('div', (0, _extends3.default)({ dir: rtl ? 'rtl' : undefined, className: classNames }, _util.obj.pickOthers(Tab.propTypes, others)), tabChildren);
72160 };
72161
72162 return Tab;
72163}(_react.Component), _class.propTypes = {
72164 prefix: _propTypes2.default.string,
72165 rtl: _propTypes2.default.bool,
72166 device: _propTypes2.default.oneOf(['tablet', 'desktop', 'phone']),
72167 /**
72168 * 被激活的选项卡的 key, 赋值则tab为受控组件, 用户无法切换
72169 */
72170 activeKey: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
72171 /**
72172 * 初始化时被激活的选项卡的 key
72173 */
72174 defaultActiveKey: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
72175 /**
72176 * 外观形态
72177 */
72178 shape: _propTypes2.default.oneOf(['pure', 'wrapped', 'text', 'capsule']),
72179 /**
72180 * 是否开启动效
72181 */
72182 animation: _propTypes2.default.bool,
72183 /**
72184 * 选项卡过多时的滑动模式
72185 */
72186 excessMode: _propTypes2.default.oneOf(['slide', 'dropdown']),
72187 /**
72188 * 导航选项卡的位置,只适用于包裹型(wrapped)选项卡
72189 */
72190 tabPosition: _propTypes2.default.oneOf(['top', 'bottom', 'left', 'right']),
72191 /**
72192 * 尺寸
72193 */
72194 size: _propTypes2.default.oneOf(['small', 'medium']),
72195 /**
72196 * 激活选项卡的触发方式
72197 */
72198 triggerType: _propTypes2.default.oneOf(['hover', 'click']),
72199 /**
72200 * 是否延迟加载 TabItem 的内容, 默认开启, 即不提前渲染
72201 */
72202 lazyLoad: _propTypes2.default.bool,
72203 /**
72204 * 是否自动卸载未处于激活状态的选项卡
72205 */
72206 unmountInactiveTabs: _propTypes2.default.bool,
72207 /**
72208 * 导航条的自定义样式
72209 */
72210 navStyle: _propTypes2.default.object,
72211 /**
72212 * 导航条的自定义样式类
72213 */
72214 navClassName: _propTypes2.default.string,
72215 /**
72216 * 内容区容器的自定义样式
72217 */
72218 contentStyle: _propTypes2.default.object,
72219 /**
72220 * 内容区容器的自定义样式类
72221 */
72222 contentClassName: _propTypes2.default.string,
72223 /**
72224 * 导航栏附加内容
72225 */
72226 extra: _propTypes2.default.node,
72227 /**
72228 * 禁止键盘事件,设置后无法通过键盘的上下左右按键,切换当前选中的tab
72229 */
72230 disableKeyboard: _propTypes2.default.bool,
72231 /**
72232 * 点击单个选项卡时触发的回调
72233 */
72234 onClick: _propTypes2.default.func,
72235 /**
72236 * 选项卡发生切换时的事件回调
72237 * @param {String|Number} key 改变后的 key
72238 */
72239 onChange: _propTypes2.default.func,
72240 /**
72241 * 选项卡被关闭时的事件回调
72242 * @param {String|Number} key 关闭的选项卡的 key
72243 */
72244 onClose: _propTypes2.default.func,
72245 /**
72246 * 自定义选项卡模板渲染函数
72247 * @param {String} key 当前 Tab.Item 的 key 值
72248 * @param {Object} props 传给 Tab.Item 的所有属性键值对
72249 * @return {ReactNode} 返回自定义组件
72250 */
72251 tabRender: _propTypes2.default.func,
72252 /**
72253 * 弹层属性透传, 只有当 excessMode 为 dropdown 时生效
72254 */
72255 popupProps: _propTypes2.default.object,
72256 children: _propTypes2.default.any,
72257 className: _propTypes2.default.string,
72258 locale: _propTypes2.default.object,
72259 /**
72260 * 自定义组件内 icon
72261 */
72262 icons: _propTypes2.default.shape({
72263 prev: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string]),
72264 next: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string]),
72265 dropdown: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string])
72266 })
72267}, _class.defaultProps = {
72268 prefix: 'next-',
72269 shape: 'pure',
72270 size: 'medium',
72271 animation: true,
72272 tabPosition: 'top',
72273 excessMode: 'slide',
72274 triggerType: 'click',
72275 lazyLoad: true,
72276 unmountInactiveTabs: false,
72277 disableKeyboard: false,
72278 onClick: noop,
72279 onChange: noop,
72280 onClose: noop,
72281 locale: _zhCn2.default.Tab,
72282 icons: {}
72283}, _temp);
72284Tab.displayName = 'Tab';
72285exports.default = (0, _reactLifecyclesCompat.polyfill)(Tab);
72286module.exports = exports['default'];
72287
72288/***/ }),
72289/* 423 */
72290/***/ (function(module, exports, __webpack_require__) {
72291
72292"use strict";
72293
72294
72295exports.__esModule = true;
72296
72297var _extends2 = __webpack_require__(1);
72298
72299var _extends3 = _interopRequireDefault(_extends2);
72300
72301var _classCallCheck2 = __webpack_require__(2);
72302
72303var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
72304
72305var _possibleConstructorReturn2 = __webpack_require__(3);
72306
72307var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
72308
72309var _inherits2 = __webpack_require__(4);
72310
72311var _inherits3 = _interopRequireDefault(_inherits2);
72312
72313var _class, _temp;
72314
72315var _react = __webpack_require__(0);
72316
72317var _react2 = _interopRequireDefault(_react);
72318
72319var _reactDom = __webpack_require__(12);
72320
72321var _propTypes = __webpack_require__(5);
72322
72323var _propTypes2 = _interopRequireDefault(_propTypes);
72324
72325var _classnames3 = __webpack_require__(7);
72326
72327var _classnames4 = _interopRequireDefault(_classnames3);
72328
72329var _icon = __webpack_require__(11);
72330
72331var _icon2 = _interopRequireDefault(_icon);
72332
72333var _overlay = __webpack_require__(15);
72334
72335var _overlay2 = _interopRequireDefault(_overlay);
72336
72337var _menu = __webpack_require__(16);
72338
72339var _menu2 = _interopRequireDefault(_menu);
72340
72341var _animate = __webpack_require__(20);
72342
72343var _animate2 = _interopRequireDefault(_animate);
72344
72345var _util = __webpack_require__(6);
72346
72347var _utils = __webpack_require__(182);
72348
72349function _interopRequireDefault(obj) {
72350 return obj && obj.__esModule ? obj : { default: obj };
72351}
72352
72353var floatRight = { float: 'right', zIndex: 1 };
72354var floatLeft = { float: 'left', zIndex: 1 };
72355var iconTypeMap = {
72356 dropdown: 'arrow-down',
72357 prev: 'arrow-left',
72358 next: 'arrow-right'
72359};
72360var Popup = _overlay2.default.Popup;
72361var Nav = (_temp = _class = function (_React$Component) {
72362 (0, _inherits3.default)(Nav, _React$Component);
72363
72364 function Nav(props, context) {
72365 (0, _classCallCheck3.default)(this, Nav);
72366
72367 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
72368
72369 _this.removeTab = function (key, e) {
72370 e && e.stopPropagation(); // stop bubble, so that it won't trigger upstream listener
72371 _this.props.onClose(key);
72372 };
72373
72374 _this.onCloseKeyDown = function (key, e) {
72375 if (e.keyCode === _util.KEYCODE.ENTER) {
72376 e.stopPropagation();
72377 e.preventDefault();
72378 _this.props.onClose(key);
72379 }
72380 };
72381
72382 _this.defaultTabTemplateRender = function (key, _ref) {
72383 var title = _ref.title,
72384 closeable = _ref.closeable;
72385 var _this$props = _this.props,
72386 locale = _this$props.locale,
72387 prefix = _this$props.prefix;
72388
72389 var tail = closeable ? _react2.default.createElement(_icon2.default, {
72390 'aria-label': locale.closeAriaLabel,
72391 type: 'close',
72392 tabIndex: '0',
72393 onKeyDown: function onKeyDown(e) {
72394 return _this.onCloseKeyDown(key, e);
72395 },
72396 onClick: function onClick(e) {
72397 return _this.removeTab(key, e);
72398 },
72399 className: prefix + 'tabs-tab-close'
72400 }) : null;
72401 return _react2.default.createElement('div', { className: prefix + 'tabs-tab-inner' }, title, tail);
72402 };
72403
72404 _this.scrollToActiveTab = function () {
72405 if (_this.activeTab && ['slide', 'dropdown'].includes(_this.props.excessMode)) {
72406 var activeTabWH = (0, _utils.getOffsetWH)(_this.activeTab);
72407 var wrapperWH = (0, _utils.getOffsetWH)(_this.wrapper);
72408 var activeTabOffset = (0, _utils.getOffsetLT)(_this.activeTab);
72409 var wrapperOffset = (0, _utils.getOffsetLT)(_this.wrapper);
72410 var target = _this.offset;
72411
72412 if (activeTabOffset + activeTabWH >= wrapperOffset + wrapperWH || activeTabOffset < wrapperOffset) {
72413 _this.setOffset(_this.offset + wrapperOffset - activeTabOffset, true, true);
72414 return;
72415 }
72416 _this.setOffset(target, true, true);
72417 }
72418 };
72419
72420 _this.onPrevClick = function () {
72421 var wrapperWH = (0, _utils.getOffsetWH)(_this.wrapper);
72422 _this.setOffset(_this.offset + wrapperWH, true, false);
72423 };
72424
72425 _this.onNextClick = function () {
72426 var wrapperWH = (0, _utils.getOffsetWH)(_this.wrapper);
72427 _this.setOffset(_this.offset - wrapperWH, true, false);
72428 };
72429
72430 _this.onSelectMenuItem = function (keys) {
72431 var _this$props2 = _this.props,
72432 onTriggerEvent = _this$props2.onTriggerEvent,
72433 triggerType = _this$props2.triggerType;
72434
72435 onTriggerEvent(triggerType, keys[0]);
72436 };
72437
72438 _this.onWindowResized = function () {
72439 if (_this.updateTimer) {
72440 clearTimeout(_this.updateTimer);
72441 }
72442
72443 _this.updateTimer = setTimeout(function () {
72444 _this.setSlideBtn();
72445 _this.getDropdownItems(_this.props);
72446 }, 100);
72447 };
72448
72449 _this.navRefHandler = function (ref) {
72450 _this.nav = (0, _reactDom.findDOMNode)(ref);
72451 };
72452
72453 _this.wrapperRefHandler = function (ref) {
72454 _this.wrapper = ref;
72455 };
72456
72457 _this.navbarRefHandler = function (ref) {
72458 _this.navbar = ref;
72459 };
72460
72461 _this.activeTabRefHandler = function (ref) {
72462 _this.activeTab = ref;
72463 };
72464
72465 _this.prevBtnHandler = function (ref) {
72466 _this.prevBtn = (0, _reactDom.findDOMNode)(ref);
72467 };
72468
72469 _this.nextBtnHandler = function (ref) {
72470 _this.nextBtn = (0, _reactDom.findDOMNode)(ref);
72471 };
72472
72473 _this.state = {
72474 showBtn: false,
72475 dropdownTabs: []
72476 };
72477 _this.offset = 0;
72478 return _this;
72479 }
72480
72481 Nav.prototype.componentDidMount = function componentDidMount() {
72482 if (!this.props.animation) {
72483 this.initialSettings();
72484 }
72485
72486 _util.events.on(window, 'resize', this.onWindowResized);
72487 };
72488
72489 Nav.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
72490 var _this2 = this;
72491
72492 // 此处通过延时处理,屏蔽动画带来的定位不准确问题(由于要支持ie9,因此无法使用transitionend)
72493 clearTimeout(this.scrollTimer);
72494 this.scrollTimer = setTimeout(function () {
72495 _this2.scrollToActiveTab();
72496 }, 410); // transition-duration is set to be .4s, wait for the transition finishes before re-calc
72497
72498 clearTimeout(this.slideTimer);
72499 this.slideTimer = setTimeout(function () {
72500 _this2.setSlideBtn();
72501 }, 410);
72502
72503 // 更改tabs后如果有dropdown属性,应该重新执行getDropdownItems函数更新dropdown数据
72504 if (this.props.excessMode === 'dropdown') {
72505 if (!(0, _utils.tabsArrayShallowEqual)(this.props.tabs, prevProps.tabs)) {
72506 this.getDropdownItems(this.props);
72507 }
72508 }
72509 };
72510
72511 Nav.prototype.componentWillUnmount = function componentWillUnmount() {
72512 _util.events.off(window, 'resize', this.onWindowResized);
72513 };
72514
72515 Nav.prototype.initialSettings = function initialSettings() {
72516 this.setSlideBtn();
72517 this.getDropdownItems(this.props);
72518 };
72519
72520 /**
72521 * The key method about move
72522 * @param {number} target position to slide to
72523 * @param {bool} checkSlideBtn need to check the slide button status or not
72524 * @param {bool} setActive need to check the active status or not
72525 */
72526
72527 Nav.prototype.setOffset = function setOffset(target) {
72528 var checkSlideBtn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
72529 var setActive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
72530 var _props = this.props,
72531 tabPosition = _props.tabPosition,
72532 rtl = _props.rtl;
72533
72534 var navWH = (0, _utils.getOffsetWH)(this.nav, tabPosition);
72535 var wrapperWH = (0, _utils.getOffsetWH)(this.wrapper);
72536
72537 // target should not be great than 0, i.e. should not over slide to left-most
72538 target = target >= 0 ? 0 : target;
72539 // when need to slide, should not slide to exceed right-most
72540 target = target <= wrapperWH - navWH && wrapperWH - navWH < 0 ? wrapperWH - navWH : target;
72541
72542 var relativeOffset = target - this.offset;
72543 if (this.activeTab && this.props.excessMode === 'slide' && setActive) {
72544 var activeTabWH = (0, _utils.getOffsetWH)(this.activeTab);
72545 var activeTabOffset = (0, _utils.getOffsetLT)(this.activeTab) + relativeOffset;
72546 var wrapperOffset = (0, _utils.getOffsetLT)(this.wrapper);
72547 target = this._adjustTarget({
72548 wrapperOffset: wrapperOffset,
72549 wrapperWH: wrapperWH,
72550 activeTabWH: activeTabWH,
72551 activeTabOffset: activeTabOffset,
72552 rtl: rtl,
72553 target: target
72554 });
72555 }
72556
72557 var scaleRate = 1;
72558
72559 if (this.nav && this.nav.offsetWidth) {
72560 scaleRate = (0, _utils.getOffsetWH)(this.nav) / this.nav.offsetWidth;
72561 }
72562
72563 var _ov = target / scaleRate;
72564 var offsetValue = isNaN(_ov) ? target : _ov;
72565
72566 if (this.offset !== target && this.nav) {
72567 // needs move
72568 this.offset = target;
72569 var divScroll = this.nav.parentElement;
72570
72571 if (tabPosition === 'left' || tabPosition === 'right') {
72572 divScroll.scrollTo({ top: -offsetValue, left: 0, behavior: 'smooth' });
72573 } else if (!this.props.rtl) {
72574 divScroll.scrollTo({ top: 0, left: -offsetValue, behavior: 'smooth' });
72575 } else {
72576 divScroll.scrollTo({ top: 0, left: offsetValue, behavior: 'smooth' });
72577 }
72578
72579 if (checkSlideBtn) {
72580 this.setSlideBtn();
72581 }
72582 }
72583 };
72584
72585 Nav.prototype._adjustTarget = function _adjustTarget(_ref2) {
72586 var wrapperOffset = _ref2.wrapperOffset,
72587 wrapperWH = _ref2.wrapperWH,
72588 activeTabWH = _ref2.activeTabWH,
72589 activeTabOffset = _ref2.activeTabOffset,
72590 rtl = _ref2.rtl,
72591 target = _ref2.target;
72592
72593 if (
72594 // active tab covers wrapper right edge
72595 wrapperOffset + wrapperWH < activeTabOffset + activeTabWH && activeTabOffset < wrapperOffset + wrapperWH) {
72596 if (rtl) {
72597 target += activeTabOffset + activeTabWH - (wrapperOffset + wrapperWH); // Move more to make active tab totally in visible zone
72598 } else {
72599 target -= activeTabOffset + activeTabWH - (wrapperOffset + wrapperWH) + 1;
72600 }
72601
72602 return target;
72603 }
72604 if (
72605 // active tab covers wrapper left edge
72606 wrapperOffset < activeTabOffset + activeTabWH && activeTabOffset < wrapperOffset) {
72607 if (rtl) {
72608 target -= wrapperOffset - activeTabOffset + 1;
72609 } else {
72610 target += wrapperOffset - activeTabOffset;
72611 }
72612 return target;
72613 }
72614 return target;
72615 };
72616
72617 Nav.prototype._setBtnStyle = function _setBtnStyle(prev, next) {
72618 if (this.prevBtn && this.nextBtn) {
72619 var cls = 'disabled';
72620 this.prevBtn.disabled = !prev;
72621 this.nextBtn.disabled = !next;
72622 if (prev) {
72623 _util.dom.removeClass(this.prevBtn, cls);
72624 } else {
72625 _util.dom.addClass(this.prevBtn, cls);
72626 }
72627 if (next) {
72628 _util.dom.removeClass(this.nextBtn, cls);
72629 } else {
72630 _util.dom.addClass(this.nextBtn, cls);
72631 }
72632 }
72633 };
72634
72635 Nav.prototype.setSlideBtn = function setSlideBtn() {
72636 var tabPosition = this.props.tabPosition;
72637
72638 // TEMP: 这里会受 Animate 影响,re-render 过程中 this.nav 实际上指向的是上次的 tabList 元素,建议暂时关闭 animation 解决
72639
72640 var navWH = (0, _utils.getOffsetWH)(this.nav, tabPosition);
72641 var wrapperWH = (0, _utils.getOffsetWH)(this.wrapper, tabPosition);
72642 var minOffset = wrapperWH - navWH;
72643
72644 var next = void 0;
72645 var prev = void 0;
72646 if (minOffset >= 0 || navWH <= wrapperWH) {
72647 next = false;
72648 prev = false;
72649 this.setOffset(0, false); // no need to check slide again since this call is invoked from inside setSlideBtn
72650 } else if (this.offset < 0 && this.offset <= minOffset) {
72651 prev = true;
72652 next = false;
72653 } else if (this.offset >= 0) {
72654 prev = false;
72655 next = true;
72656 } else {
72657 prev = true;
72658 next = true;
72659 }
72660
72661 if ((prev || next) !== this.state.showBtn) {
72662 this.setState({
72663 showBtn: prev || next
72664 });
72665 } else {
72666 this._setBtnStyle(prev, next);
72667 }
72668 };
72669
72670 Nav.prototype.getDropdownItems = function getDropdownItems(_ref3) {
72671 var excessMode = _ref3.excessMode,
72672 tabs = _ref3.tabs;
72673
72674 if (excessMode !== 'dropdown') {
72675 return;
72676 }
72677
72678 var wrapperWidth = this.wrapper.offsetWidth;
72679 var childNodes = this.nav.childNodes;
72680
72681 var index = void 0;
72682 var tabsWidth = 0;
72683 for (index = 0; index < tabs.length; index++) {
72684 tabsWidth += childNodes[index].offsetWidth;
72685 if (tabsWidth > wrapperWidth) {
72686 break;
72687 }
72688 }
72689
72690 if (index === tabs.length) {
72691 this.setState({
72692 dropdownTabs: []
72693 });
72694 } else {
72695 this.setState({
72696 dropdownTabs: tabs
72697 });
72698 }
72699 };
72700
72701 Nav.prototype.renderTabList = function renderTabList(props) {
72702 var _this3 = this;
72703
72704 var prefix = props.prefix,
72705 tabs = props.tabs,
72706 activeKey = props.activeKey,
72707 tabRender = props.tabRender;
72708
72709 var tabTemplateFn = tabRender || this.defaultTabTemplateRender;
72710
72711 var rst = [];
72712 _react2.default.Children.forEach(tabs, function (child) {
72713 var _classnames;
72714
72715 var _child$props = child.props,
72716 disabled = _child$props.disabled,
72717 className = _child$props.className,
72718 onClick = _child$props.onClick,
72719 onMouseEnter = _child$props.onMouseEnter,
72720 onMouseLeave = _child$props.onMouseLeave,
72721 style = _child$props.style;
72722
72723 var active = activeKey === child.key;
72724 var cls = (0, _classnames4.default)((_classnames = {}, _classnames[prefix + 'tabs-tab'] = true, _classnames.disabled = disabled, _classnames.active = active, _classnames), className);
72725
72726 var events = {};
72727
72728 if (!disabled) {
72729 events = {
72730 onClick: _this3.onNavItemClick.bind(_this3, child.key, onClick),
72731 onMouseEnter: _this3.onNavItemMouseEnter.bind(_this3, child.key, onMouseEnter),
72732 onMouseLeave: _this3.onNavItemMouseLeave.bind(_this3, child.key, onMouseLeave)
72733 };
72734 }
72735
72736 var dataProps = _util.obj.pickAttrsWith(child.props, 'data-');
72737
72738 rst.push(_react2.default.createElement('li', (0, _extends3.default)({}, dataProps, {
72739 role: 'tab',
72740 key: child.key,
72741 ref: active ? _this3.activeTabRefHandler : null,
72742 'aria-hidden': disabled ? 'true' : 'false',
72743 'aria-selected': active ? 'true' : 'false',
72744 tabIndex: active ? 0 : -1,
72745 className: cls,
72746 style: style
72747 }, events), tabTemplateFn(child.key, child.props)));
72748 });
72749 return rst;
72750 };
72751
72752 Nav.prototype.onNavItemClick = function onNavItemClick(key, callback, e) {
72753 this.props.onTriggerEvent(_utils.triggerEvents.CLICK, key);
72754 if (callback) {
72755 return callback(key, e);
72756 }
72757 };
72758
72759 Nav.prototype.onNavItemMouseEnter = function onNavItemMouseEnter(key, callback, e) {
72760 this.props.onTriggerEvent(_utils.triggerEvents.HOVER, key);
72761 if (callback) {
72762 return callback(key, e);
72763 }
72764 };
72765
72766 Nav.prototype.onNavItemMouseLeave = function onNavItemMouseLeave(key, callback, e) {
72767 if (callback) {
72768 return callback(key, e);
72769 }
72770 };
72771
72772 Nav.prototype.getIcon = function getIcon(type) {
72773 var _props2 = this.props,
72774 prefix = _props2.prefix,
72775 icons = _props2.icons,
72776 rtl = _props2.rtl;
72777
72778 var iconType = iconTypeMap[type];
72779 var icon = _react2.default.createElement(_icon2.default, { type: iconType, rtl: rtl, className: prefix + 'tab-icon-' + type });
72780 if (icons[type]) {
72781 icon = typeof icons[type] === 'string' ? _react2.default.createElement(_icon2.default, { rtl: rtl, type: icons[type] }) : icons[type];
72782 }
72783
72784 return icon;
72785 };
72786
72787 Nav.prototype.renderDropdownTabs = function renderDropdownTabs() {
72788 var _this4 = this;
72789
72790 var tabs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
72791
72792 if (!tabs.length) {
72793 return null;
72794 }
72795
72796 var _props3 = this.props,
72797 prefix = _props3.prefix,
72798 activeKey = _props3.activeKey,
72799 triggerType = _props3.triggerType,
72800 popupProps = _props3.popupProps,
72801 rtl = _props3.rtl;
72802
72803 var dropdownIcon = this.getIcon('dropdown');
72804
72805 var trigger = _react2.default.createElement('button', { className: prefix + 'tabs-btn-down' }, dropdownIcon);
72806
72807 return _react2.default.createElement(Popup, (0, _extends3.default)({
72808 rtl: rtl,
72809 triggerType: triggerType,
72810 trigger: trigger,
72811 container: function container(target) {
72812 return target.parentNode;
72813 },
72814 className: prefix + 'tabs-bar-popup'
72815 }, popupProps), _react2.default.createElement(_menu2.default, { rtl: rtl, selectedKeys: [activeKey], onSelect: this.onSelectMenuItem, selectMode: 'single' }, tabs.map(function (tab) {
72816 var _tab$props = tab.props,
72817 disabled = _tab$props.disabled,
72818 onClick = _tab$props.onClick,
72819 onMouseEnter = _tab$props.onMouseEnter,
72820 onMouseLeave = _tab$props.onMouseLeave;
72821
72822 var events = {};
72823 if (!disabled) {
72824 events = {
72825 onClick: _this4.onNavItemClick.bind(_this4, tab.key, onClick),
72826 onMouseEnter: _this4.onNavItemMouseEnter.bind(_this4, tab.key, onMouseEnter),
72827 onMouseLeave: _this4.onNavItemMouseLeave.bind(_this4, tab.key, onMouseLeave)
72828 };
72829 }
72830 return _react2.default.createElement(_menu2.default.Item, (0, _extends3.default)({ key: tab.key }, events), tab.props.title);
72831 })));
72832 };
72833
72834 Nav.prototype.render = function render() {
72835 var _classnames2;
72836
72837 var _props4 = this.props,
72838 prefix = _props4.prefix,
72839 tabPosition = _props4.tabPosition,
72840 excessMode = _props4.excessMode,
72841 extra = _props4.extra,
72842 onKeyDown = _props4.onKeyDown,
72843 animation = _props4.animation,
72844 style = _props4.style,
72845 className = _props4.className,
72846 rtl = _props4.rtl;
72847
72848 var state = this.state;
72849 var nextButton = void 0;
72850 var prevButton = void 0;
72851 var restButton = void 0;
72852
72853 var showNextPrev = state.showBtn;
72854
72855 if (excessMode === 'dropdown' && showNextPrev && state.dropdownTabs.length) {
72856 restButton = this.renderDropdownTabs(state.dropdownTabs);
72857 prevButton = null;
72858 nextButton = null;
72859 } else if (showNextPrev) {
72860 var prevIcon = this.getIcon('prev');
72861 prevButton = _react2.default.createElement('button', {
72862 onClick: this.onPrevClick,
72863 className: prefix + 'tabs-btn-prev',
72864 ref: this.prevBtnHandler,
72865 type: 'button'
72866 }, prevIcon);
72867
72868 var nextIcon = this.getIcon('next');
72869
72870 nextButton = _react2.default.createElement('button', {
72871 onClick: this.onNextClick,
72872 className: prefix + 'tabs-btn-next',
72873 ref: this.nextBtnHandler,
72874 type: 'button'
72875 }, nextIcon);
72876 restButton = null;
72877 } else {
72878 nextButton = null;
72879 prevButton = null;
72880 restButton = null;
72881 }
72882
72883 var containerCls = (0, _classnames4.default)((_classnames2 = {}, _classnames2[prefix + 'tabs-nav-container'] = true, _classnames2[prefix + 'tabs-nav-container-scrolling'] = showNextPrev, _classnames2));
72884
72885 var navCls = prefix + 'tabs-nav';
72886 var tabList = this.renderTabList(this.props);
72887
72888 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, {
72889 role: 'tablist',
72890 'aria-multiselectable': false,
72891 component: 'ul',
72892 className: navCls,
72893 animation: navCls,
72894 singleMode: false,
72895 ref: this.navRefHandler,
72896 afterAppear: this.initialSettings.bind(this)
72897 }, tabList) : _react2.default.createElement('ul', {
72898 role: 'tablist',
72899 className: navCls + ' ' + prefix + 'disable-animation',
72900 ref: this.navRefHandler
72901 }, tabList))), prevButton, nextButton, restButton);
72902
72903 var navChildren = [container];
72904
72905 if (extra) {
72906 var extraProps = {
72907 className: prefix + 'tabs-nav-extra',
72908 key: 'nav-extra'
72909 };
72910 if (tabPosition === 'top' || tabPosition === 'bottom') {
72911 var _style = rtl ? floatLeft : floatRight;
72912 navChildren.unshift(_react2.default.createElement('div', (0, _extends3.default)({}, extraProps, { style: _style }), extra));
72913 } else {
72914 navChildren.push(_react2.default.createElement('div', extraProps, extra));
72915 }
72916 }
72917
72918 var navbarCls = (0, _classnames4.default)(prefix + 'tabs-bar', className);
72919
72920 return _react2.default.createElement('div', { className: navbarCls, style: style, ref: this.navbarRefHandler }, navChildren);
72921 };
72922
72923 return Nav;
72924}(_react2.default.Component), _class.propTypes = {
72925 prefix: _propTypes2.default.string,
72926 rtl: _propTypes2.default.bool,
72927 animation: _propTypes2.default.bool,
72928 activeKey: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
72929 excessMode: _propTypes2.default.string,
72930 extra: _propTypes2.default.any,
72931 tabs: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]),
72932 tabPosition: _propTypes2.default.string,
72933 tabRender: _propTypes2.default.func,
72934 triggerType: _propTypes2.default.string,
72935 popupProps: _propTypes2.default.object,
72936 onTriggerEvent: _propTypes2.default.func,
72937 onKeyDown: _propTypes2.default.func,
72938 onClose: _propTypes2.default.func,
72939 style: _propTypes2.default.object,
72940 className: _propTypes2.default.string,
72941 locale: _propTypes2.default.object,
72942 icons: _propTypes2.default.object
72943}, _temp);
72944Nav.displayName = 'Nav';
72945exports.default = Nav;
72946module.exports = exports['default'];
72947
72948/***/ }),
72949/* 424 */
72950/***/ (function(module, exports, __webpack_require__) {
72951
72952"use strict";
72953
72954
72955exports.__esModule = true;
72956
72957var _extends2 = __webpack_require__(1);
72958
72959var _extends3 = _interopRequireDefault(_extends2);
72960
72961var _objectWithoutProperties2 = __webpack_require__(8);
72962
72963var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
72964
72965var _classCallCheck2 = __webpack_require__(2);
72966
72967var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
72968
72969var _possibleConstructorReturn2 = __webpack_require__(3);
72970
72971var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
72972
72973var _inherits2 = __webpack_require__(4);
72974
72975var _inherits3 = _interopRequireDefault(_inherits2);
72976
72977var _class, _temp;
72978
72979var _react = __webpack_require__(0);
72980
72981var _react2 = _interopRequireDefault(_react);
72982
72983var _propTypes = __webpack_require__(5);
72984
72985var _propTypes2 = _interopRequireDefault(_propTypes);
72986
72987var _classnames2 = __webpack_require__(7);
72988
72989var _classnames3 = _interopRequireDefault(_classnames2);
72990
72991function _interopRequireDefault(obj) {
72992 return obj && obj.__esModule ? obj : { default: obj };
72993}
72994
72995var TabContent = (_temp = _class = function (_PureComponent) {
72996 (0, _inherits3.default)(TabContent, _PureComponent);
72997
72998 function TabContent() {
72999 (0, _classCallCheck3.default)(this, TabContent);
73000 return (0, _possibleConstructorReturn3.default)(this, _PureComponent.apply(this, arguments));
73001 }
73002
73003 TabContent.prototype.render = function render() {
73004 var _classnames;
73005
73006 var _props = this.props,
73007 prefix = _props.prefix,
73008 activeKey = _props.activeKey,
73009 lazyLoad = _props.lazyLoad,
73010 unmountInactiveTabs = _props.unmountInactiveTabs,
73011 children = _props.children,
73012 className = _props.className,
73013 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'activeKey', 'lazyLoad', 'unmountInactiveTabs', 'children', 'className']);
73014
73015 var formatChildren = [];
73016 _react2.default.Children.forEach(children, function (child) {
73017 /* eslint-disable eqeqeq */
73018 var active = activeKey == child.key;
73019 formatChildren.push(_react2.default.cloneElement(child, {
73020 prefix: prefix,
73021 active: active,
73022 lazyLoad: lazyLoad,
73023 unmountInactiveTabs: unmountInactiveTabs
73024 }));
73025 });
73026
73027 var classNames = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'tabs-content'] = true, _classnames), className);
73028
73029 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: classNames }), formatChildren);
73030 };
73031
73032 return TabContent;
73033}(_react.PureComponent), _class.propTypes = {
73034 prefix: _propTypes2.default.string,
73035 activeKey: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
73036 lazyLoad: _propTypes2.default.bool,
73037 children: _propTypes2.default.any
73038}, _temp);
73039exports.default = TabContent;
73040module.exports = exports['default'];
73041
73042/***/ }),
73043/* 425 */
73044/***/ (function(module, exports, __webpack_require__) {
73045
73046"use strict";
73047
73048
73049exports.__esModule = true;
73050
73051var _classCallCheck2 = __webpack_require__(2);
73052
73053var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
73054
73055var _possibleConstructorReturn2 = __webpack_require__(3);
73056
73057var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
73058
73059var _inherits2 = __webpack_require__(4);
73060
73061var _inherits3 = _interopRequireDefault(_inherits2);
73062
73063var _class, _temp;
73064
73065var _react = __webpack_require__(0);
73066
73067var _react2 = _interopRequireDefault(_react);
73068
73069var _propTypes = __webpack_require__(5);
73070
73071var _propTypes2 = _interopRequireDefault(_propTypes);
73072
73073var _classnames2 = __webpack_require__(7);
73074
73075var _classnames3 = _interopRequireDefault(_classnames2);
73076
73077var _reactLifecyclesCompat = __webpack_require__(10);
73078
73079function _interopRequireDefault(obj) {
73080 return obj && obj.__esModule ? obj : { default: obj };
73081}
73082
73083/** Tab.Item */
73084var TabItem = (_temp = _class = function (_React$Component) {
73085 (0, _inherits3.default)(TabItem, _React$Component);
73086
73087 function TabItem() {
73088 (0, _classCallCheck3.default)(this, TabItem);
73089 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
73090 }
73091
73092 TabItem.prototype.render = function render() {
73093 var _classnames;
73094
73095 var _props = this.props,
73096 prefix = _props.prefix,
73097 active = _props.active,
73098 lazyLoad = _props.lazyLoad,
73099 unmountInactiveTabs = _props.unmountInactiveTabs,
73100 children = _props.children;
73101
73102 this._actived = this._actived || active;
73103 if (lazyLoad && !this._actived) {
73104 return null;
73105 }
73106
73107 if (unmountInactiveTabs && !active) {
73108 return null;
73109 }
73110
73111 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'tabs-tabpane'] = true, _classnames['' + (active ? 'active' : 'hidden')] = true, _classnames));
73112
73113 return _react2.default.createElement('div', {
73114 role: 'tabpanel',
73115 'aria-hidden': active ? 'false' : 'true',
73116 className: cls
73117 }, children);
73118 };
73119
73120 return TabItem;
73121}(_react2.default.Component), _class.propTypes = {
73122 prefix: _propTypes2.default.string,
73123 /**
73124 * 选项卡标题
73125 */
73126 title: _propTypes2.default.node,
73127 /**
73128 * 单个选项卡是否可关闭
73129 */
73130 closeable: _propTypes2.default.bool,
73131 /**
73132 * 选项卡是否被禁用
73133 */
73134 disabled: _propTypes2.default.bool,
73135 active: _propTypes2.default.bool,
73136 lazyLoad: _propTypes2.default.bool,
73137 unmountInactiveTabs: _propTypes2.default.bool,
73138 children: _propTypes2.default.any
73139}, _class.defaultProps = {
73140 prefix: 'next-',
73141 closeable: false
73142}, _temp);
73143TabItem.displayName = 'TabItem';
73144exports.default = (0, _reactLifecyclesCompat.polyfill)(TabItem);
73145module.exports = exports['default'];
73146
73147/***/ }),
73148/* 426 */
73149/***/ (function(module, exports, __webpack_require__) {
73150
73151"use strict";
73152
73153
73154exports.__esModule = true;
73155
73156var _extends2 = __webpack_require__(1);
73157
73158var _extends3 = _interopRequireDefault(_extends2);
73159
73160var _objectWithoutProperties2 = __webpack_require__(8);
73161
73162var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
73163
73164var _configProvider = __webpack_require__(9);
73165
73166var _configProvider2 = _interopRequireDefault(_configProvider);
73167
73168var _base = __webpack_require__(427);
73169
73170var _base2 = _interopRequireDefault(_base);
73171
73172var _tree = __webpack_require__(432);
73173
73174var _tree2 = _interopRequireDefault(_tree);
73175
73176var _fixed = __webpack_require__(435);
73177
73178var _fixed2 = _interopRequireDefault(_fixed);
73179
73180var _selection = __webpack_require__(436);
73181
73182var _selection2 = _interopRequireDefault(_selection);
73183
73184var _expanded = __webpack_require__(437);
73185
73186var _expanded2 = _interopRequireDefault(_expanded);
73187
73188var _virtual = __webpack_require__(438);
73189
73190var _virtual2 = _interopRequireDefault(_virtual);
73191
73192var _lock = __webpack_require__(440);
73193
73194var _lock2 = _interopRequireDefault(_lock);
73195
73196var _newLock = __webpack_require__(441);
73197
73198var _newLock2 = _interopRequireDefault(_newLock);
73199
73200var _list = __webpack_require__(442);
73201
73202var _list2 = _interopRequireDefault(_list);
73203
73204var _sticky = __webpack_require__(445);
73205
73206var _sticky2 = _interopRequireDefault(_sticky);
73207
73208var _listHeader = __webpack_require__(191);
73209
73210var _listHeader2 = _interopRequireDefault(_listHeader);
73211
73212var _listFooter = __webpack_require__(192);
73213
73214var _listFooter2 = _interopRequireDefault(_listFooter);
73215
73216var _util = __webpack_require__(6);
73217
73218function _interopRequireDefault(obj) {
73219 return obj && obj.__esModule ? obj : { default: obj };
73220}
73221
73222var ieVersion = _util.env.ieVersion;
73223
73224var ORDER_LIST = [_fixed2.default, _lock2.default, _selection2.default, _expanded2.default, _virtual2.default, _tree2.default, _list2.default, _sticky2.default];
73225var Table = ORDER_LIST.reduce(function (ret, current) {
73226 ret = current(ret);
73227 return ret;
73228}, _base2.default);
73229
73230_lock2.default._typeMark = 'lock';
73231_expanded2.default._typeMark = 'expanded';
73232_fixed2.default._typeMark = 'fixed';
73233
73234var StickyLockTable = ORDER_LIST.reduce(function (ret, current) {
73235 var newLock = !ieVersion;
73236 if (current._typeMark === 'lock') {
73237 ret = newLock ? (0, _newLock2.default)(ret) : (0, _lock2.default)(ret);
73238 } else if (current._typeMark === 'expanded') {
73239 ret = newLock ? (0, _expanded2.default)(ret, true) : (0, _expanded2.default)(ret);
73240 } else if (current._typeMark === 'fixed') {
73241 ret = newLock ? (0, _fixed2.default)(ret, true) : (0, _fixed2.default)(ret);
73242 } else {
73243 ret = current(ret);
73244 }
73245 return ret;
73246}, _base2.default);
73247
73248Table.Base = _base2.default;
73249Table.fixed = _fixed2.default;
73250Table.lock = _lock2.default;
73251Table.selection = _selection2.default;
73252Table.expanded = _expanded2.default;
73253Table.tree = _tree2.default;
73254Table.virtual = _virtual2.default;
73255Table.list = _list2.default;
73256Table.sticky = _sticky2.default;
73257
73258Table.GroupHeader = _listHeader2.default;
73259Table.GroupFooter = _listFooter2.default;
73260
73261Table.StickyLock = _configProvider2.default.config(StickyLockTable, {
73262 componentName: 'Table'
73263});
73264
73265exports.default = _configProvider2.default.config(Table, {
73266 componentName: 'Table',
73267 transform: /* istanbul ignore next */function transform(props, deprecated) {
73268 if ('expandedRowKeys' in props) {
73269 deprecated('expandedRowKeys', 'openRowKeys', 'Table');
73270
73271 var _props = props,
73272 expandedRowKeys = _props.expandedRowKeys,
73273 others = (0, _objectWithoutProperties3.default)(_props, ['expandedRowKeys']);
73274
73275 props = (0, _extends3.default)({ openRowKeys: expandedRowKeys }, others);
73276 }
73277 if ('onExpandedChange' in props) {
73278 deprecated('onExpandedChange', 'onRowOpen', 'Table');
73279
73280 var _props2 = props,
73281 onExpandedChange = _props2.onExpandedChange,
73282 _others = (0, _objectWithoutProperties3.default)(_props2, ['onExpandedChange']);
73283
73284 props = (0, _extends3.default)({ onRowOpen: onExpandedChange }, _others);
73285 }
73286 if ('isLoading' in props) {
73287 deprecated('isLoading', 'loading', 'Table');
73288
73289 var _props3 = props,
73290 isLoading = _props3.isLoading,
73291 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['isLoading']);
73292
73293 props = (0, _extends3.default)({ loading: isLoading }, _others2);
73294 }
73295 if ('indentSize' in props) {
73296 deprecated('indentSize', 'indent', 'Table');
73297
73298 var _props4 = props,
73299 indentSize = _props4.indentSize,
73300 _others3 = (0, _objectWithoutProperties3.default)(_props4, ['indentSize']);
73301
73302 props = (0, _extends3.default)({ indent: indentSize }, _others3);
73303 }
73304 if ('optimization' in props) {
73305 deprecated('optimization', 'pure', 'Table');
73306
73307 var _props5 = props,
73308 optimization = _props5.optimization,
73309 _others4 = (0, _objectWithoutProperties3.default)(_props5, ['optimization']);
73310
73311 props = (0, _extends3.default)({ pure: optimization }, _others4);
73312 }
73313
73314 if ('getRowClassName' in props) {
73315 deprecated('getRowClassName', 'getRowProps', 'Table');
73316
73317 var _props6 = props,
73318 getRowClassName = _props6.getRowClassName,
73319 getRowProps = _props6.getRowProps,
73320 _others5 = (0, _objectWithoutProperties3.default)(_props6, ['getRowClassName', 'getRowProps']);
73321
73322 if (getRowClassName) {
73323 var newGetRowProps = function newGetRowProps() {
73324 return (0, _extends3.default)({
73325 className: getRowClassName.apply(undefined, arguments)
73326 }, getRowProps ? getRowProps.apply(undefined, arguments) : {});
73327 };
73328
73329 props = (0, _extends3.default)({ getRowProps: newGetRowProps }, _others5);
73330 } else {
73331 props = (0, _extends3.default)({ getRowProps: getRowProps }, _others5);
73332 }
73333 }
73334
73335 if ('getRowProps' in props) {
73336 deprecated('getRowProps', 'rowProps', 'Table in 1.15.0');
73337
73338 var _props7 = props,
73339 _getRowProps = _props7.getRowProps,
73340 _others6 = (0, _objectWithoutProperties3.default)(_props7, ['getRowProps']);
73341
73342 props = (0, _extends3.default)({ rowProps: _getRowProps }, _others6);
73343 }
73344
73345 if ('getCellProps' in props) {
73346 deprecated('getCellProps', 'cellProps', 'Table in 1.15.0');
73347
73348 var _props8 = props,
73349 getCellProps = _props8.getCellProps,
73350 _others7 = (0, _objectWithoutProperties3.default)(_props8, ['getCellProps']);
73351
73352 props = (0, _extends3.default)({ cellProps: getCellProps }, _others7);
73353 }
73354
73355 return props;
73356 }
73357});
73358module.exports = exports['default'];
73359
73360/***/ }),
73361/* 427 */
73362/***/ (function(module, exports, __webpack_require__) {
73363
73364"use strict";
73365
73366
73367exports.__esModule = true;
73368
73369var _objectWithoutProperties2 = __webpack_require__(8);
73370
73371var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
73372
73373var _typeof2 = __webpack_require__(14);
73374
73375var _typeof3 = _interopRequireDefault(_typeof2);
73376
73377var _extends2 = __webpack_require__(1);
73378
73379var _extends3 = _interopRequireDefault(_extends2);
73380
73381var _classCallCheck2 = __webpack_require__(2);
73382
73383var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
73384
73385var _possibleConstructorReturn2 = __webpack_require__(3);
73386
73387var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
73388
73389var _inherits2 = __webpack_require__(4);
73390
73391var _inherits3 = _interopRequireDefault(_inherits2);
73392
73393var _class, _temp;
73394
73395var _react = __webpack_require__(0);
73396
73397var _react2 = _interopRequireDefault(_react);
73398
73399var _propTypes = __webpack_require__(5);
73400
73401var _propTypes2 = _interopRequireDefault(_propTypes);
73402
73403var _reactDom = __webpack_require__(12);
73404
73405var _classnames2 = __webpack_require__(7);
73406
73407var _classnames3 = _interopRequireDefault(_classnames2);
73408
73409var _shallowElementEquals = __webpack_require__(102);
73410
73411var _shallowElementEquals2 = _interopRequireDefault(_shallowElementEquals);
73412
73413var _reactLifecyclesCompat = __webpack_require__(10);
73414
73415var _loading = __webpack_require__(100);
73416
73417var _loading2 = _interopRequireDefault(_loading);
73418
73419var _configProvider = __webpack_require__(9);
73420
73421var _configProvider2 = _interopRequireDefault(_configProvider);
73422
73423var _zhCn = __webpack_require__(13);
73424
73425var _zhCn2 = _interopRequireDefault(_zhCn);
73426
73427var _util = __webpack_require__(6);
73428
73429var _body = __webpack_require__(63);
73430
73431var _body2 = _interopRequireDefault(_body);
73432
73433var _header = __webpack_require__(183);
73434
73435var _header2 = _interopRequireDefault(_header);
73436
73437var _wrapper = __webpack_require__(430);
73438
73439var _wrapper2 = _interopRequireDefault(_wrapper);
73440
73441var _row = __webpack_require__(64);
73442
73443var _row2 = _interopRequireDefault(_row);
73444
73445var _cell = __webpack_require__(65);
73446
73447var _cell2 = _interopRequireDefault(_cell);
73448
73449var _filter = __webpack_require__(184);
73450
73451var _filter2 = _interopRequireDefault(_filter);
73452
73453var _sort = __webpack_require__(185);
73454
73455var _sort2 = _interopRequireDefault(_sort);
73456
73457var _column = __webpack_require__(103);
73458
73459var _column2 = _interopRequireDefault(_column);
73460
73461var _columnGroup = __webpack_require__(431);
73462
73463var _columnGroup2 = _interopRequireDefault(_columnGroup);
73464
73465function _interopRequireDefault(obj) {
73466 return obj && obj.__esModule ? obj : { default: obj };
73467}
73468
73469var Children = _react2.default.Children,
73470 noop = function noop() {};
73471
73472//<Table>
73473// <Table.Column/>
73474// <Table.ColumnGroup>
73475// <Table.Column/>
73476// <Table.Column/>
73477// </Table.ColumnGroup>
73478//</Table>
73479
73480/** Table */
73481var Table = (_temp = _class = function (_React$Component) {
73482 (0, _inherits3.default)(Table, _React$Component);
73483
73484 function Table(props, context) {
73485 (0, _classCallCheck3.default)(this, Table);
73486
73487 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
73488
73489 _this.state = {
73490 sort: _this.props.sort || {}
73491 };
73492
73493 _this.onSort = function (dataIndex, order, sort) {
73494 if (typeof _this.props.sort === 'undefined') {
73495 _this.setState({
73496 sort: sort
73497 }, function () {
73498 _this.props.onSort(dataIndex, order, sort);
73499 });
73500 } else {
73501 _this.props.onSort(dataIndex, order, sort);
73502 }
73503 };
73504
73505 _this.onFilter = function (filterParams) {
73506 _this.props.onFilter(filterParams);
73507 };
73508
73509 _this.onResizeChange = function (dataIndex, value) {
73510 _this.props.onResizeChange(dataIndex, value);
73511 };
73512
73513 _this.getResizeProxyDomRef = function (resizeProxyDom) {
73514 if (!resizeProxyDom) {
73515 return _this.resizeProxyDomRef;
73516 }
73517 _this.resizeProxyDomRef = resizeProxyDom;
73518 };
73519
73520 _this.getWrapperRef = function (wrapper) {
73521 if (!wrapper) {
73522 return _this.wrapper;
73523 }
73524 _this.wrapper = wrapper;
73525 };
73526
73527 _this.getAffixRef = function (affixRef) {
73528 if (!affixRef) {
73529 return _this.affixRef;
73530 }
73531 _this.affixRef = affixRef;
73532 };
73533
73534 _this.getHeaderCellRef = function (i, j, cell) {
73535 var cellRef = 'header_cell_' + i + '_' + j;
73536 if (!cell) {
73537 return _this[cellRef];
73538 }
73539 _this[cellRef] = cell;
73540 };
73541
73542 _this.getRowRef = function (i, row) {
73543 var rowRef = 'row_' + i;
73544 if (!row) {
73545 return _this[rowRef];
73546 }
73547 _this[rowRef] = row;
73548 };
73549
73550 _this.getCellRef = function (i, j, cell) {
73551 var cellRef = 'cell_' + i + '_' + j;
73552 if (!cell) {
73553 return _this[cellRef];
73554 }
73555 _this[cellRef] = cell;
73556 };
73557
73558 _this.handleColHoverClass = function (rowIndex, colIndex, isAdd) {
73559 var crossline = _this.props.crossline;
73560
73561 var funcName = isAdd ? 'addClass' : 'removeClass';
73562 if (crossline) {
73563 _this.props.entireDataSource.forEach(function (val, index) {
73564 try {
73565 // in case of finding an unmounted component due to cached data
73566 // need to clear refs of this.tableInc when dataSource Changed
73567 // in virtual table
73568 var currentCol = (0, _reactDom.findDOMNode)(_this.getCellRef(index, colIndex));
73569 currentCol && _util.dom[funcName](currentCol, 'hovered');
73570 } catch (error) {
73571 return null;
73572 }
73573 });
73574 }
73575 };
73576
73577 _this.findEventTarget = function (e) {
73578 var prefix = _this.props.prefix;
73579
73580 var target = _util.dom.getClosest(e.target, 'td.' + prefix + 'table-cell');
73581 var colIndex = target && target.getAttribute('data-next-table-col');
73582 var rowIndex = target && target.getAttribute('data-next-table-row');
73583
73584 try {
73585 // in case of finding an unmounted component due to cached data
73586 // need to clear refs of this.tableInc when dataSource Changed
73587 // in virtual table
73588 var currentCol = (0, _reactDom.findDOMNode)(_this.getCellRef(rowIndex, colIndex));
73589 if (currentCol === target) {
73590 return {
73591 colIndex: colIndex,
73592 rowIndex: rowIndex
73593 };
73594 }
73595 } catch (error) {
73596 return {};
73597 }
73598
73599 return {};
73600 };
73601
73602 _this.onBodyMouseOver = function (e) {
73603 var crossline = _this.props.crossline;
73604
73605 if (!crossline) {
73606 return;
73607 }
73608
73609 var _this$findEventTarget = _this.findEventTarget(e),
73610 colIndex = _this$findEventTarget.colIndex,
73611 rowIndex = _this$findEventTarget.rowIndex;
73612 // colIndex, rowIndex are string
73613
73614
73615 if (!colIndex || !rowIndex) {
73616 return;
73617 }
73618 _this.handleColHoverClass(rowIndex, colIndex, true);
73619 _this.colIndex = colIndex;
73620 _this.rowIndex = rowIndex;
73621 };
73622
73623 _this.onBodyMouseOut = function (e) {
73624 var crossline = _this.props.crossline;
73625
73626 if (!crossline) {
73627 return;
73628 }
73629
73630 var _this$findEventTarget2 = _this.findEventTarget(e),
73631 colIndex = _this$findEventTarget2.colIndex,
73632 rowIndex = _this$findEventTarget2.rowIndex;
73633 // colIndex, rowIndex are string
73634
73635
73636 if (!colIndex || !rowIndex) {
73637 return;
73638 }
73639 _this.handleColHoverClass(_this.rowIndex, _this.colIndex, false);
73640 _this.colIndex = -1;
73641 _this.rowIndex = -1;
73642 };
73643
73644 _this.addColIndex = function (children) {
73645 var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
73646
73647 children.forEach(function (child, i) {
73648 child.__colIndex = start + i;
73649 });
73650 };
73651
73652 _this.getTableEl = function (ref) {
73653 _this.tableEl = ref;
73654 };
73655
73656 var _this$context = _this.context,
73657 getTableInstance = _this$context.getTableInstance,
73658 getTableInstanceForVirtual = _this$context.getTableInstanceForVirtual,
73659 getTableInstanceForFixed = _this$context.getTableInstanceForFixed,
73660 getTableInstanceForExpand = _this$context.getTableInstanceForExpand;
73661
73662 getTableInstance && getTableInstance(props.lockType, _this);
73663 getTableInstanceForFixed && getTableInstanceForFixed(props.lockType, _this);
73664 getTableInstanceForVirtual && getTableInstanceForVirtual(props.lockType, _this);
73665 getTableInstanceForExpand && getTableInstanceForExpand(_this);
73666 _this.notRenderCellIndex = [];
73667 return _this;
73668 }
73669
73670 Table.prototype.getChildContext = function getChildContext() {
73671 return {
73672 notRenderCellIndex: this.notRenderCellIndex || [],
73673 lockType: this.props.lockType
73674 };
73675 };
73676
73677 Table.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
73678 var state = {};
73679
73680 if (typeof nextProps.sort !== 'undefined') {
73681 state.sort = nextProps.sort;
73682 }
73683
73684 return state;
73685 };
73686
73687 Table.prototype.componentDidMount = function componentDidMount() {
73688 this.notRenderCellIndex = [];
73689 };
73690
73691 Table.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState, nextContext) {
73692 if (nextProps.pure) {
73693 var isEqual = (0, _shallowElementEquals2.default)(nextProps, this.props) && _util.obj.shallowEqual(nextState, this.state) && _util.obj.shallowEqual(nextContext, this.context);
73694 return !isEqual;
73695 }
73696
73697 return true;
73698 };
73699
73700 Table.prototype.componentDidUpdate = function componentDidUpdate() {
73701 this.notRenderCellIndex = [];
73702 };
73703
73704 Table.prototype.normalizeChildrenState = function normalizeChildrenState(props) {
73705 var columns = props.columns;
73706 if (props.children) {
73707 columns = this.normalizeChildren(props);
73708 }
73709 return this.fetchInfoFromBinaryChildren(columns);
73710 };
73711
73712 // 将React结构化数据提取props转换成数组
73713
73714
73715 Table.prototype.normalizeChildren = function normalizeChildren(props) {
73716 var columns = props.columns;
73717
73718 var getChildren = function getChildren(children) {
73719 var ret = [];
73720 Children.forEach(children, function (child) {
73721 if (child) {
73722 var _props = (0, _extends3.default)({}, child.props);
73723
73724 if (child.ref) {
73725 _props.ref = child.ref;
73726 }
73727
73728 if (!(child && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && (child.type._typeMark === 'column' || child.type._typeMark === 'columnGroup'))) {
73729 _util.log.warning('Use <Table.Column/>, <Table.ColumnGroup/> as child.');
73730 }
73731 ret.push(_props);
73732 if (child.props.children) {
73733 _props.children = getChildren(child.props.children);
73734 }
73735 }
73736 });
73737 return ret;
73738 };
73739 if (props.children) {
73740 columns = getChildren(props.children);
73741 }
73742 return columns;
73743 };
73744
73745 Table.prototype.fetchInfoFromBinaryChildren = function fetchInfoFromBinaryChildren(children) {
73746 var hasGroupHeader = false;
73747 var flatChildren = [],
73748 groupChildren = [],
73749 getChildren = function getChildren() {
73750 var propsChildren = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
73751 var level = arguments[1];
73752
73753 groupChildren[level] = groupChildren[level] || [];
73754 propsChildren.forEach(function (child) {
73755 if (child.children) {
73756 hasGroupHeader = true;
73757 getChildren(child.children, level + 1);
73758 } else {
73759 flatChildren.push(child);
73760 }
73761 groupChildren[level].push(child);
73762 });
73763 },
73764 getColSpan = function getColSpan(children, colSpan) {
73765 colSpan = colSpan || 0;
73766 children.forEach(function (child) {
73767 if (child.children) {
73768 colSpan = getColSpan(child.children, colSpan);
73769 } else {
73770 colSpan += 1;
73771 }
73772 });
73773 return colSpan;
73774 };
73775
73776 getChildren(children, 0);
73777
73778 groupChildren.forEach(function (groupChild, i) {
73779 groupChild.forEach(function (child, j) {
73780 var colSpan = void 0;
73781 var children = child.children;
73782
73783 if (children) {
73784 colSpan = getColSpan(children);
73785 child.colSpan = colSpan;
73786 groupChildren[i][j] = child;
73787 }
73788 });
73789 });
73790
73791 var _props2 = this.props,
73792 lockType = _props2.lockType,
73793 lengths = _props2.lengths;
73794
73795 var start = lockType === 'right' ? lengths.origin - lengths.right : 0;
73796 this.addColIndex(flatChildren, start);
73797
73798 return {
73799 flatChildren: flatChildren,
73800 groupChildren: groupChildren,
73801 hasGroupHeader: hasGroupHeader
73802 };
73803 };
73804
73805 Table.prototype.renderColGroup = function renderColGroup(flatChildren) {
73806 var cols = flatChildren.map(function (col, index) {
73807 var width = col.width;
73808 var style = {};
73809 if (width) {
73810 style = {
73811 width: width
73812 };
73813 }
73814
73815 return _react2.default.createElement('col', { style: style, key: index });
73816 });
73817 return _react2.default.createElement('colgroup', { key: 'table-colgroup' }, cols);
73818 };
73819
73820 // 通过头部和扁平的结构渲染表格
73821 Table.prototype.renderTable = function renderTable(groupChildren, flatChildren) {
73822 if (flatChildren.length || !flatChildren.length && !this.props.lockType) {
73823 var _props3 = this.props,
73824 hasHeader = _props3.hasHeader,
73825 components = _props3.components,
73826 prefix = _props3.prefix,
73827 wrapperContent = _props3.wrapperContent,
73828 filterParams = _props3.filterParams,
73829 locale = _props3.locale,
73830 dataSource = _props3.dataSource,
73831 emptyContent = _props3.emptyContent,
73832 loading = _props3.loading,
73833 primaryKey = _props3.primaryKey,
73834 cellProps = _props3.cellProps,
73835 rowProps = _props3.rowProps,
73836 onRowClick = _props3.onRowClick,
73837 onRowMouseEnter = _props3.onRowMouseEnter,
73838 onRowMouseLeave = _props3.onRowMouseLeave,
73839 expandedIndexSimulate = _props3.expandedIndexSimulate,
73840 pure = _props3.pure,
73841 rtl = _props3.rtl,
73842 crossline = _props3.crossline,
73843 sortIcons = _props3.sortIcons,
73844 tableWidth = _props3.tableWidth;
73845 var sort = this.state.sort;
73846 var _components$Header = components.Header,
73847 Header = _components$Header === undefined ? _header2.default : _components$Header,
73848 _components$Wrapper = components.Wrapper,
73849 Wrapper = _components$Wrapper === undefined ? _wrapper2.default : _components$Wrapper,
73850 _components$Body = components.Body,
73851 Body = _components$Body === undefined ? _body2.default : _components$Body;
73852
73853 var colGroup = this.renderColGroup(flatChildren);
73854
73855 return [_react2.default.createElement('div', {
73856 key: prefix + 'table-column-resize-proxy',
73857 ref: this.getResizeProxyDomRef,
73858 className: prefix + 'table-column-resize-proxy'
73859 }), _react2.default.createElement(Wrapper, {
73860 key: prefix + 'table-wrapper',
73861 colGroup: colGroup,
73862 ref: this.getWrapperRef,
73863 prefix: prefix,
73864 tableWidth: tableWidth
73865 }, hasHeader ? _react2.default.createElement(Header, {
73866 prefix: prefix,
73867 rtl: rtl,
73868 pure: pure,
73869 affixRef: this.getAffixRef,
73870 colGroup: colGroup,
73871 className: prefix + 'table-header',
73872 filterParams: filterParams,
73873 tableEl: this.tableEl,
73874 columns: groupChildren,
73875 locale: locale,
73876 headerCellRef: this.getHeaderCellRef,
73877 components: components,
73878 onFilter: this.onFilter,
73879 sort: sort,
73880 onResizeChange: this.onResizeChange,
73881 onSort: this.onSort,
73882 sortIcons: sortIcons,
73883 tableWidth: tableWidth,
73884 resizeProxyDomRef: this.resizeProxyDomRef
73885 }) : null, _react2.default.createElement(Body, {
73886 prefix: prefix,
73887 rtl: rtl,
73888 pure: pure,
73889 crossline: crossline,
73890 colGroup: colGroup,
73891 className: prefix + 'table-body',
73892 components: components,
73893 loading: loading,
73894 emptyContent: emptyContent,
73895 getCellProps: cellProps,
73896 primaryKey: primaryKey,
73897 getRowProps: rowProps,
73898 columns: flatChildren,
73899 rowRef: this.getRowRef,
73900 cellRef: this.getCellRef,
73901 onRowClick: onRowClick,
73902 expandedIndexSimulate: expandedIndexSimulate,
73903 tableEl: this.tableEl,
73904 onRowMouseEnter: onRowMouseEnter,
73905 onRowMouseLeave: onRowMouseLeave,
73906 dataSource: dataSource,
73907 locale: locale,
73908 onBodyMouseOver: this.onBodyMouseOver,
73909 onBodyMouseOut: this.onBodyMouseOut,
73910 tableWidth: tableWidth
73911 }), wrapperContent)];
73912 } else {
73913 return null;
73914 }
73915 };
73916
73917 /**
73918 * @param event
73919 * @returns {Object} { rowIndex: string; colIndex: string }
73920 */
73921
73922 Table.prototype.render = function render() {
73923 var _classnames;
73924
73925 var ret = this.normalizeChildrenState(this.props);
73926 this.groupChildren = ret.groupChildren;
73927 this.flatChildren = ret.flatChildren;
73928 /* eslint-disable no-unused-vars, prefer-const */
73929 var table = this.renderTable(ret.groupChildren, ret.flatChildren),
73930 _props4 = this.props,
73931 className = _props4.className,
73932 style = _props4.style,
73933 hasBorder = _props4.hasBorder,
73934 isZebra = _props4.isZebra,
73935 loading = _props4.loading,
73936 size = _props4.size,
73937 hasHeader = _props4.hasHeader,
73938 prefix = _props4.prefix,
73939 dataSource = _props4.dataSource,
73940 entireDataSource = _props4.entireDataSource,
73941 onSort = _props4.onSort,
73942 onResizeChange = _props4.onResizeChange,
73943 onRowClick = _props4.onRowClick,
73944 onRowMouseEnter = _props4.onRowMouseEnter,
73945 onRowMouseLeave = _props4.onRowMouseLeave,
73946 onFilter = _props4.onFilter,
73947 rowProps = _props4.rowProps,
73948 cellProps = _props4.cellProps,
73949 scrollToRow = _props4.scrollToRow,
73950 primaryKey = _props4.primaryKey,
73951 components = _props4.components,
73952 wrapperContent = _props4.wrapperContent,
73953 lockType = _props4.lockType,
73954 locale = _props4.locale,
73955 expandedIndexSimulate = _props4.expandedIndexSimulate,
73956 refs = _props4.refs,
73957 pure = _props4.pure,
73958 rtl = _props4.rtl,
73959 emptyContent = _props4.emptyContent,
73960 filterParams = _props4.filterParams,
73961 columns = _props4.columns,
73962 sortIcons = _props4.sortIcons,
73963 _props4$loadingCompon = _props4.loadingComponent,
73964 LoadingComponent = _props4$loadingCompon === undefined ? _loading2.default : _props4$loadingCompon,
73965 tableLayout = _props4.tableLayout,
73966 tableWidth = _props4.tableWidth,
73967 ref = _props4.ref,
73968 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']),
73969 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));
73970
73971 if (rtl) {
73972 others.dir = 'rtl';
73973 }
73974
73975 var content = _react2.default.createElement('div', (0, _extends3.default)({
73976 className: cls,
73977 style: style,
73978 ref: ref || this.getTableEl
73979 }, _util.obj.pickOthers(Object.keys(Table.propTypes), others)), table);
73980 if (loading) {
73981 var loadingClassName = prefix + 'table-loading';
73982 return _react2.default.createElement(LoadingComponent, { className: loadingClassName }, content);
73983 }
73984 return content;
73985 };
73986
73987 return Table;
73988}(_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, {
73989 /**
73990 * 样式类名的品牌前缀
73991 */
73992 prefix: _propTypes2.default.string,
73993 pure: _propTypes2.default.bool,
73994 rtl: _propTypes2.default.bool,
73995 /**
73996 * 表格元素的 table-layout 属性,设为 fixed 表示内容不会影响列的布局
73997 */
73998 tableLayout: _propTypes2.default.oneOf(['fixed', 'auto']),
73999 /**
74000 * 表格的总长度,可以这么用:设置表格总长度 、设置部分列的宽度,这样表格会按照剩余空间大小,自动其他列分配宽度
74001 */
74002 tableWidth: _propTypes2.default.number,
74003 /**
74004 * 自定义类名
74005 */
74006 className: _propTypes2.default.string,
74007 /**
74008 * 自定义内联样式
74009 */
74010 style: _propTypes2.default.object,
74011 /**
74012 * 尺寸 small为紧凑模式
74013 */
74014 size: _propTypes2.default.oneOf(['small', 'medium']),
74015 /**
74016 * 表格展示的数据源
74017 */
74018 dataSource: _propTypes2.default.array,
74019 entireDataSource: _propTypes2.default.array,
74020 /**
74021 * 点击表格每一行触发的事件
74022 * @param {Object} record 该行所对应的数据
74023 * @param {Number} index 该行所对应的序列
74024 * @param {Event} e DOM事件对象
74025 */
74026 onRowClick: _propTypes2.default.func,
74027 /**
74028 * 悬浮在表格每一行的时候触发的事件
74029 * @param {Object} record 该行所对应的数据
74030 * @param {Number} index 该行所对应的序列
74031 * @param {Event} e DOM事件对象
74032 */
74033 onRowMouseEnter: _propTypes2.default.func,
74034 /**
74035 * 离开表格每一行的时候触发的事件
74036 * @param {Object} record 该行所对应的数据
74037 * @param {Number} index 该行所对应的序列
74038 * @param {Event} e DOM事件对象
74039 */
74040 onRowMouseLeave: _propTypes2.default.func,
74041 /**
74042 * 点击列排序触发的事件
74043 * @param {String} dataIndex 指定的排序的字段
74044 * @param {String} order 排序对应的顺序, 有`desc`和`asc`两种
74045 */
74046 onSort: _propTypes2.default.func,
74047 /**
74048 * 点击过滤确认按钮触发的事件
74049 * @param {Object} filterParams 过滤的字段信息
74050 */
74051 onFilter: _propTypes2.default.func,
74052 /**
74053 * 重设列尺寸的时候触发的事件
74054 * @param {String} dataIndex 指定重设的字段
74055 * @param {Number} value 列宽变动的数值
74056 */
74057 onResizeChange: _propTypes2.default.func,
74058 /**
74059 * 设置每一行的属性,如果返回值和其他针对行操作的属性冲突则无效。
74060 * @param {Object} record 该行所对应的数据
74061 * @param {Number} index 该行所对应的序列
74062 * @returns {Object} 需要设置的行属性
74063 */
74064 rowProps: _propTypes2.default.func,
74065 /**
74066 * 设置单元格的属性,通过该属性可以进行合并单元格
74067 * @param {Number} rowIndex 该行所对应的序列
74068 * @param {Number} colIndex 该列所对应的序列
74069 * @param {String} dataIndex 该列所对应的字段名称
74070 * @param {Object} record 该行对应的记录
74071 * @returns {Object} 返回td元素的所支持的属性对象
74072 */
74073 cellProps: _propTypes2.default.func,
74074 /**
74075 * 表格是否具有边框
74076 */
74077 hasBorder: _propTypes2.default.bool,
74078 /**
74079 * 表格是否具有头部
74080 */
74081 hasHeader: _propTypes2.default.bool,
74082 /**
74083 * 表格是否是斑马线
74084 */
74085 isZebra: _propTypes2.default.bool,
74086 /**
74087 * 表格是否在加载中
74088 */
74089 loading: _propTypes2.default.bool,
74090 /**
74091 * 自定义 Loading 组件
74092 * 请务必传递 props, 使用方式: loadingComponent={props => <Loading {...props}/>}
74093 * @param {LoadingProps} props 需要透传给组件的参数
74094 * @return {React.ReactNode} 展示的组件
74095 */
74096 loadingComponent: _propTypes2.default.func,
74097 /**
74098 * 当前过滤的的keys,使用此属性可以控制表格的头部的过滤选项中哪个菜单被选中,格式为 {dataIndex: {selectedKeys:[]}}
74099 * 示例:
74100 * 假设要控制dataIndex为id的列的过滤菜单中key为one的菜单项选中
74101 * `<Table filterParams={{id: {selectedKeys: ['one']}}}/>`
74102 */
74103 filterParams: _propTypes2.default.object,
74104 /**
74105 * 当前排序的字段,使用此属性可以控制表格的字段的排序,格式为{[dataIndex]: 'asc' | 'desc' } , 例如 {id: 'desc'}
74106 */
74107 sort: _propTypes2.default.object,
74108 /**
74109 * 自定义排序按钮,例如上下排布的: `{desc: <Icon style={{top: '6px', left: '4px'}} type={'arrow-down'} size="small" />, asc: <Icon style={{top: '-6px', left: '4px'}} type={'arrow-up'} size="small" />}`
74110 */
74111 sortIcons: _propTypes2.default.object,
74112 /**
74113 * 自定义国际化文案对象
74114 * @property {String} ok 过滤器中确认按钮文案
74115 * @property {String} reset 过滤器中重置按钮文案
74116 * @property {String} empty 没有数据情况下 table内的文案
74117 * @property {String} asc 排序升序状态下的文案
74118 * @property {String} desc 排序将序状态下的文案
74119 * @property {String} expanded 可折叠行,展开状态下的文案
74120 * @property {String} folded 可折叠行,折叠状态下的文案
74121 * @property {String} filter 过滤器文案
74122 * @property {String} selectAll header里全选的按钮文案
74123 */
74124 locale: _propTypes2.default.object,
74125 components: _propTypes2.default.object,
74126 /**
74127 * 等同于写子组件 Table.Column ,子组件优先级更高
74128 */
74129 columns: _propTypes2.default.array,
74130 /**
74131 * 设置数据为空的时候的表格内容展现
74132 */
74133 emptyContent: _propTypes2.default.node,
74134 /**
74135 * dataSource当中数据的主键,如果给定的数据源中的属性不包含该主键,会造成选择状态全部选中
74136 */
74137 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
74138 lockType: _propTypes2.default.oneOf(['left', 'right']),
74139 wrapperContent: _propTypes2.default.any,
74140 refs: _propTypes2.default.object,
74141 /**
74142 * 额外渲染行的渲染函数
74143 * @param {Object} record 该行所对应的数据
74144 * @param {Number} index 该行所对应的序列
74145 * @returns {Element} 渲染内容
74146 */
74147 expandedRowRender: _propTypes2.default.func,
74148 /**
74149 * 设置行是否可展开,设置 false 为不可展开
74150 * @param {Object} record 该行所对应的数据
74151 * @param {Number} index 该行所对应的序列
74152 * @returns {Boolean} 是否可展开
74153 */
74154 rowExpandable: _propTypes2.default.func,
74155 /**
74156 * 额外渲染行的缩进
74157 */
74158 expandedRowIndent: _propTypes2.default.array,
74159 /**
74160 * 是否显示点击展开额外渲染行的+号按钮
74161 */
74162 hasExpandedRowCtrl: _propTypes2.default.bool,
74163 /**
74164 * 设置额外渲染行的属性
74165 * @param {Object} record 该行所对应的数据
74166 * @param {Number} index 该行所对应的序列
74167 * @returns {Object} 额外渲染行的属性
74168 */
74169 getExpandedColProps: _propTypes2.default.func,
74170 /**
74171 * 当前展开的 Expand行 或者 Tree行 , 传入此属性为受控状态,一般配合 onRowOpen 使用
74172 */
74173 openRowKeys: _propTypes2.default.array,
74174 /**
74175 * 默认情况下展开的 Expand行 或者 Tree行,非受控模式
74176 * @version 1.23.22
74177 */
74178 defaultOpenRowKeys: _propTypes2.default.array,
74179 /**
74180 * 在 Expand行 或者 Tree行 展开或者收起的时候触发的事件
74181 * @param {Array} openRowKeys 展开的渲染行的key
74182 * @param {String} currentRowKey 当前点击的渲染行的key
74183 * @param {Boolean} expanded 当前点击是展开还是收起
74184 * @param {Object} currentRecord 当前点击额外渲染行的记录
74185 */
74186 onRowOpen: _propTypes2.default.func,
74187 onExpandedRowClick: _propTypes2.default.func,
74188 /**
74189 * 表头是否固定,该属性配合maxBodyHeight使用,当内容区域的高度超过maxBodyHeight的时候,在内容区域会出现滚动条
74190 */
74191 fixedHeader: _propTypes2.default.bool,
74192 /**
74193 * 最大内容区域的高度,在`fixedHeader`为`true`的时候,超过这个高度会出现滚动条
74194 */
74195 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
74196 /**
74197 * 是否启用选择模式
74198 * @property {Function} getProps `Function(record, index)=>Object` 获取selection的默认属性
74199 * @property {Function} onChange `Function(selectedRowKeys:Array, records:Array)` 选择改变的时候触发的事件,**注意:** 其中records只会包含当前dataSource的数据,很可能会小于selectedRowKeys的长度。
74200 * @property {Function} onSelect `Function(selected:Boolean, record:Object, records:Array)` 用户手动选择/取消选择某行的回调
74201 * @property {Function} onSelectAll `Function(selected:Boolean, records:Array)` 用户手动选择/取消选择所有行的回调
74202 * @property {Array} selectedRowKeys 设置了此属性,将rowSelection变为受控状态,接收值为该行数据的primaryKey的值
74203 * @property {String} mode 选择selection的模式, 可选值为`single`, `multiple`,默认为`multiple`
74204 * @property {Function} columnProps `Function()=>Object` 选择列 的props,例如锁列、对齐等,可使用`Table.Column` 的所有参数
74205 * @property {Function} titleProps `Function()=>Object` 选择列 表头的props,仅在 `multiple` 模式下生效
74206 * @property {Function} titleAddons `Function()=>Node` 选择列 表头添加的元素,在`single` `multiple` 下都生效
74207 */
74208 rowSelection: _propTypes2.default.object,
74209 /**
74210 * 表头是否是sticky
74211 */
74212 stickyHeader: _propTypes2.default.bool,
74213 /**
74214 * 距离窗口顶部达到指定偏移量后触发
74215 */
74216 offsetTop: _propTypes2.default.number,
74217 /**
74218 * affix组件的的属性
74219 */
74220 affixProps: _propTypes2.default.object,
74221 /**
74222 * 在tree模式下的缩进尺寸, 仅在isTree为true时候有效
74223 */
74224 indent: _propTypes2.default.number,
74225 /**
74226 * 开启Table的tree模式, 接收的数据格式中包含children则渲染成tree table
74227 */
74228 isTree: _propTypes2.default.bool,
74229 /**
74230 * 是否开启虚拟滚动
74231 */
74232 useVirtual: _propTypes2.default.bool,
74233 rowHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),
74234 /**
74235 * 滚动到第几行,需要保证行高相同。1.22.15 版本之前仅在虚拟滚动场景下生效,之后在所有情况下生效
74236 * @version 1.22.15
74237 */
74238 scrollToRow: _propTypes2.default.number,
74239 /**
74240 * 在内容区域滚动的时候触发的函数
74241 */
74242 onBodyScroll: _propTypes2.default.func,
74243 /**
74244 * 开启时,getExpandedColProps() / rowProps() / expandedRowRender() 的第二个参数 index (该行所对应的序列) 将按照01,2,3,4...的顺序返回,否则返回真实index(0,2,4,6... / 1,3,5,7...)
74245 */
74246 expandedIndexSimulate: _propTypes2.default.bool,
74247 /**
74248 * 在 hover 时出现十字参考轴,适用于表头比较复杂,需要做表头分类的场景。
74249 */
74250 crossline: _propTypes2.default.bool,
74251 lengths: _propTypes2.default.object
74252}), _class.defaultProps = {
74253 dataSource: [],
74254 onRowClick: noop,
74255 onRowMouseEnter: noop,
74256 onRowMouseLeave: noop,
74257 onSort: noop,
74258 onFilter: noop,
74259 onResizeChange: noop,
74260 size: 'medium',
74261 rowProps: noop,
74262 cellProps: noop,
74263 prefix: 'next-',
74264 hasBorder: true,
74265 hasHeader: true,
74266 isZebra: false,
74267 loading: false,
74268 expandedIndexSimulate: false,
74269 primaryKey: 'id',
74270 components: {},
74271 locale: _zhCn2.default.Table,
74272 crossline: false
74273}, _class.childContextTypes = {
74274 notRenderCellIndex: _propTypes2.default.array,
74275 lockType: _propTypes2.default.oneOf(['left', 'right'])
74276}, _class.contextTypes = {
74277 getTableInstance: _propTypes2.default.func,
74278 getTableInstanceForFixed: _propTypes2.default.func,
74279 getTableInstanceForVirtual: _propTypes2.default.func,
74280 getTableInstanceForExpand: _propTypes2.default.func
74281}, _temp);
74282Table.displayName = 'Table';
74283exports.default = (0, _reactLifecyclesCompat.polyfill)(Table);
74284module.exports = exports['default'];
74285
74286/***/ }),
74287/* 428 */
74288/***/ (function(module, exports) {
74289
74290var hasOwnProperty = Object.prototype.hasOwnProperty;
74291
74292function transformEntryEqual(a, b) {
74293 for (var k in a) {
74294 if (hasOwnProperty.call(a, k)) {
74295 return a[k] === b[k];
74296 }
74297 }
74298 return false;
74299}
74300
74301function transformEqual(a, b) {
74302 if ((!a && !b) || (a === b)) {
74303 return true;
74304 }
74305 if (!a !== !b) {
74306 return false;
74307 }
74308 if (a.length !== b.length) {
74309 return false;
74310 }
74311 for (var i = 0; i < a.length; i++) {
74312 if (!transformEntryEqual(a[i], b[i])) {
74313 return false;
74314 }
74315 }
74316 return true;
74317}
74318
74319function shallowObjectEquals(a, b) {
74320 var k;
74321 var i = 0;
74322 var j = 0;
74323 for (k in a) {
74324 if (hasOwnProperty.call(a, k)) {
74325 switch (k) {
74326 case 'transform':
74327 if (!transformEqual(a[k], b[k])) {
74328 return false;
74329 }
74330 break;
74331 case 'shadowOffset':
74332 if (!shallowObjectEquals(a[k], b[k])) {
74333 return false;
74334 }
74335 break;
74336 default:
74337 if (a[k] !== b[k]) {
74338 return false;
74339 }
74340 break;
74341 }
74342 i++;
74343 }
74344 }
74345 for (k in b) {
74346 if (hasOwnProperty.call(b, k)) {
74347 j++;
74348 }
74349 }
74350 return i === j;
74351}
74352
74353function styleEqual(a, b) {
74354 if ((!a && !b) || (a === b)) {
74355 return true;
74356 }
74357 if (!a !== !b) {
74358 return false;
74359 }
74360 switch (typeof a) {
74361 case 'object':
74362 if (a instanceof Array) {
74363 for (var i = 0; i < a.length; i++) {
74364 if (!styleEqual(a[i], b[i])) {
74365 return false;
74366 }
74367 }
74368 return a.length === b.length;
74369 } else {
74370 return shallowObjectEquals(a, b);
74371 }
74372 break;
74373 case 'number':
74374 default:
74375 return a === b;
74376 }
74377}
74378
74379module.exports = styleEqual;
74380
74381
74382/***/ }),
74383/* 429 */
74384/***/ (function(module, exports, __webpack_require__) {
74385
74386"use strict";
74387
74388
74389exports.__esModule = true;
74390
74391var _classCallCheck2 = __webpack_require__(2);
74392
74393var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
74394
74395var _possibleConstructorReturn2 = __webpack_require__(3);
74396
74397var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
74398
74399var _inherits2 = __webpack_require__(4);
74400
74401var _inherits3 = _interopRequireDefault(_inherits2);
74402
74403var _class, _temp;
74404
74405var _react = __webpack_require__(0);
74406
74407var _react2 = _interopRequireDefault(_react);
74408
74409var _reactDom = __webpack_require__(12);
74410
74411var _propTypes = __webpack_require__(5);
74412
74413var _propTypes2 = _interopRequireDefault(_propTypes);
74414
74415var _util = __webpack_require__(6);
74416
74417function _interopRequireDefault(obj) {
74418 return obj && obj.__esModule ? obj : { default: obj };
74419}
74420
74421var Resize = (_temp = _class = function (_React$Component) {
74422 (0, _inherits3.default)(Resize, _React$Component);
74423
74424 function Resize() {
74425 (0, _classCallCheck3.default)(this, Resize);
74426
74427 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this));
74428
74429 _this.showResizeProxy = function () {
74430 _this.props.resizeProxyDomRef.style.cssText = 'display:block;left:' + _this.startLeft + 'px;';
74431 };
74432
74433 _this.moveResizeProxy = function () {
74434 var moveLeft = _this.startLeft + _this.changedPageX;
74435 _this.props.resizeProxyDomRef.style.cssText = 'left:' + moveLeft + 'px;display:block;';
74436 };
74437
74438 _this.resetResizeProxy = function () {
74439 // when the mouse was not moved,don't change cell width
74440 if (_this.asyncResizeFlag) {
74441 _this.props.onChange(_this.props.dataIndex, _this.changedPageX);
74442 }
74443 _this.changedPageX = 0;
74444 _this.tRight = 0;
74445 _this.asyncResizeFlag = false;
74446 _this.props.resizeProxyDomRef.style.cssText = 'display:none;';
74447 };
74448
74449 _this.movingLimit = function () {
74450 // table right limit
74451 var moveLeft = _this.startLeft + _this.changedPageX;
74452 if (moveLeft > _this.tRight) {
74453 moveLeft = _this.tRight;
74454 _this.changedPageX = _this.tRight - _this.startLeft;
74455 }
74456
74457 // cell left limit
74458 if (moveLeft - _this.cellLeft < _this.cellMinWidth) {
74459 _this.changedPageX = _this.cellLeft + _this.cellMinWidth - _this.startLeft;
74460 }
74461
74462 // table left limit
74463 if (moveLeft < 0) {
74464 _this.changedPageX = 0 - _this.startLeft;
74465 }
74466
74467 if (_this.props.col.width + _this.changedPageX < _this.cellMinWidth) {
74468 _this.changedPageX = _this.cellMinWidth - _this.props.col.width;
74469 }
74470 };
74471
74472 _this.onMouseDown = function (e) {
74473 var _this$props$tableEl$g = _this.props.tableEl.getBoundingClientRect(),
74474 tableLeft = _this$props$tableEl$g.left,
74475 tableWidth = _this$props$tableEl$g.width;
74476
74477 if (!_this.props.cellDomRef) {
74478 return;
74479 }
74480
74481 var _this$props$cellDomRe = _this.props.cellDomRef.getBoundingClientRect(),
74482 cellDomLeft = _this$props$cellDomRe.left;
74483
74484 _this.lastPageX = e.pageX;
74485 _this.tLeft = tableLeft;
74486 _this.tRight = tableWidth;
74487 _this.startLeft = e.pageX - tableLeft;
74488 _this.cellLeft = cellDomLeft - tableLeft;
74489
74490 if (_this.props.asyncResizable) _this.showResizeProxy();
74491 _util.events.on(document, 'mousemove', _this.onMouseMove);
74492 _util.events.on(document, 'mouseup', _this.onMouseUp);
74493 _this.unSelect();
74494 };
74495
74496 _this.onMouseMove = function (e) {
74497 var pageX = e.pageX;
74498 _this.changedPageX = pageX - _this.lastPageX;
74499
74500 if (_this.props.rtl) {
74501 _this.changedPageX = -_this.changedPageX;
74502 }
74503
74504 if (_this.props.hasLock) {
74505 if (!_this.props.asyncResizable) {
74506 // when hasn't lock attribute, cellLeft will change
74507 _this.cellLeft = _this.props.cellDomRef.getBoundingClientRect().left - _this.tLeft;
74508 }
74509 }
74510 _this.movingLimit();
74511
74512 // stop at here when async
74513 if (_this.props.asyncResizable) {
74514 // asyncResizeFlag use to prevent just click without mouse move
74515 _this.asyncResizeFlag = true;
74516 _this.moveResizeProxy();
74517 return;
74518 }
74519 _this.props.onChange(_this.props.dataIndex, _this.changedPageX);
74520 _this.lastPageX = pageX;
74521 };
74522
74523 _this.onMouseUp = function () {
74524 if (_this.props.asyncResizable) {
74525 _this.resetResizeProxy();
74526 }
74527 _this.startLeft = 0;
74528 _this.destory();
74529 };
74530
74531 _this.cellMinWidth = 40;
74532
74533 _this.lastPageX = 0;
74534 _this.tRight = 0;
74535 _this.tLeft = 0;
74536 _this.cellLeft = 0;
74537 _this.startLeft = 0;
74538 _this.changedPageX = 0;
74539
74540 _this.asyncResizeFlag = false;
74541 return _this;
74542 }
74543
74544 Resize.prototype.componentWillUnmount = function componentWillUnmount() {
74545 this.destory();
74546 };
74547
74548 Resize.prototype.destory = function destory() {
74549 _util.events.off(document, 'mousemove', this.onMouseMove);
74550 _util.events.off(document, 'mouseup', this.onMouseUp);
74551 this.select();
74552 };
74553
74554 Resize.prototype.unSelect = function unSelect() {
74555 _util.dom.setStyle(document.body, {
74556 userSelect: 'none',
74557 cursor: 'ew-resize'
74558 });
74559 document.body.setAttribute('unselectable', 'on');
74560 };
74561
74562 Resize.prototype.select = function select() {
74563 _util.dom.setStyle(document.body, {
74564 userSelect: '',
74565 cursor: ''
74566 });
74567 document.body.removeAttribute('unselectable');
74568 };
74569
74570 Resize.prototype.render = function render() {
74571 var prefix = this.props.prefix;
74572
74573 return _react2.default.createElement('a', { className: prefix + 'table-resize-handler', onMouseDown: this.onMouseDown });
74574 };
74575
74576 return Resize;
74577}(_react2.default.Component), _class.propTypes = {
74578 prefix: _propTypes2.default.string,
74579 rtl: _propTypes2.default.bool,
74580 onChange: _propTypes2.default.func,
74581 dataIndex: _propTypes2.default.string,
74582 tableEl: _propTypes2.default.any,
74583 resizeProxyDomRef: _propTypes2.default.any,
74584 cellDomRef: _propTypes2.default.any,
74585 col: _propTypes2.default.any,
74586 hasLock: _propTypes2.default.bool,
74587 asyncResizable: _propTypes2.default.bool
74588}, _class.defaultProps = {
74589 onChange: function onChange() {}
74590}, _temp);
74591Resize.displayName = 'Resize';
74592exports.default = Resize;
74593module.exports = exports['default'];
74594
74595/***/ }),
74596/* 430 */
74597/***/ (function(module, exports, __webpack_require__) {
74598
74599"use strict";
74600
74601
74602exports.__esModule = true;
74603exports.default = undefined;
74604
74605var _classCallCheck2 = __webpack_require__(2);
74606
74607var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
74608
74609var _possibleConstructorReturn2 = __webpack_require__(3);
74610
74611var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
74612
74613var _inherits2 = __webpack_require__(4);
74614
74615var _inherits3 = _interopRequireDefault(_inherits2);
74616
74617var _class, _temp;
74618
74619var _react = __webpack_require__(0);
74620
74621var _react2 = _interopRequireDefault(_react);
74622
74623var _propTypes = __webpack_require__(5);
74624
74625var _propTypes2 = _interopRequireDefault(_propTypes);
74626
74627function _interopRequireDefault(obj) {
74628 return obj && obj.__esModule ? obj : { default: obj };
74629}
74630
74631/* eslint-disable react/prefer-stateless-function */
74632var Wrapper = (_temp = _class = function (_Component) {
74633 (0, _inherits3.default)(Wrapper, _Component);
74634
74635 function Wrapper() {
74636 (0, _classCallCheck3.default)(this, Wrapper);
74637 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
74638 }
74639
74640 Wrapper.prototype.render = function render() {
74641 var _props = this.props,
74642 colGroup = _props.colGroup,
74643 children = _props.children,
74644 tableWidth = _props.tableWidth,
74645 Tag = _props.component;
74646
74647 return _react2.default.createElement(Tag, { role: 'table', style: { width: tableWidth } }, colGroup, children);
74648 };
74649
74650 return Wrapper;
74651}(_react.Component), _class.propTypes = {
74652 tableWidth: _propTypes2.default.number
74653}, _temp);
74654Wrapper.displayName = 'Wrapper';
74655exports.default = Wrapper;
74656
74657Wrapper.defaultProps = {
74658 component: 'table'
74659};
74660
74661Wrapper.propTypes = {
74662 children: _propTypes2.default.any,
74663 prefix: _propTypes2.default.string,
74664 colGroup: _propTypes2.default.any,
74665 component: _propTypes2.default.string
74666};
74667module.exports = exports['default'];
74668
74669/***/ }),
74670/* 431 */
74671/***/ (function(module, exports, __webpack_require__) {
74672
74673"use strict";
74674
74675
74676exports.__esModule = true;
74677exports.default = undefined;
74678
74679var _classCallCheck2 = __webpack_require__(2);
74680
74681var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
74682
74683var _possibleConstructorReturn2 = __webpack_require__(3);
74684
74685var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
74686
74687var _inherits2 = __webpack_require__(4);
74688
74689var _inherits3 = _interopRequireDefault(_inherits2);
74690
74691var _class, _temp;
74692
74693var _react = __webpack_require__(0);
74694
74695var _react2 = _interopRequireDefault(_react);
74696
74697var _propTypes = __webpack_require__(5);
74698
74699var _propTypes2 = _interopRequireDefault(_propTypes);
74700
74701function _interopRequireDefault(obj) {
74702 return obj && obj.__esModule ? obj : { default: obj };
74703}
74704
74705/**
74706 * Table.ColumnGroup
74707 * @order 1
74708 **/
74709var ColumnGroup = (_temp = _class = function (_React$Component) {
74710 (0, _inherits3.default)(ColumnGroup, _React$Component);
74711
74712 function ColumnGroup() {
74713 (0, _classCallCheck3.default)(this, ColumnGroup);
74714 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
74715 }
74716
74717 ColumnGroup.prototype.getChildContext = function getChildContext() {
74718 return {
74719 parent: this
74720 };
74721 };
74722
74723 ColumnGroup.prototype.render = function render() {
74724 return null;
74725 };
74726
74727 return ColumnGroup;
74728}(_react2.default.Component), _class.propTypes = {
74729 /**
74730 * 表头显示的内容
74731 */
74732 title: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func])
74733}, _class.childContextTypes = {
74734 parent: _propTypes2.default.any
74735}, _class.defaultProps = {
74736 title: 'column-group'
74737}, _class._typeMark = 'columnGroup', _temp);
74738ColumnGroup.displayName = 'ColumnGroup';
74739exports.default = ColumnGroup;
74740module.exports = exports['default'];
74741
74742/***/ }),
74743/* 432 */
74744/***/ (function(module, exports, __webpack_require__) {
74745
74746"use strict";
74747
74748
74749exports.__esModule = true;
74750
74751var _extends2 = __webpack_require__(1);
74752
74753var _extends3 = _interopRequireDefault(_extends2);
74754
74755var _objectWithoutProperties2 = __webpack_require__(8);
74756
74757var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
74758
74759var _classCallCheck2 = __webpack_require__(2);
74760
74761var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
74762
74763var _possibleConstructorReturn2 = __webpack_require__(3);
74764
74765var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
74766
74767var _inherits2 = __webpack_require__(4);
74768
74769var _inherits3 = _interopRequireDefault(_inherits2);
74770
74771exports.default = tree;
74772
74773var _react = __webpack_require__(0);
74774
74775var _react2 = _interopRequireDefault(_react);
74776
74777var _propTypes = __webpack_require__(5);
74778
74779var _propTypes2 = _interopRequireDefault(_propTypes);
74780
74781var _reactLifecyclesCompat = __webpack_require__(10);
74782
74783var _row = __webpack_require__(433);
74784
74785var _row2 = _interopRequireDefault(_row);
74786
74787var _cell = __webpack_require__(434);
74788
74789var _cell2 = _interopRequireDefault(_cell);
74790
74791var _util = __webpack_require__(21);
74792
74793function _interopRequireDefault(obj) {
74794 return obj && obj.__esModule ? obj : { default: obj };
74795}
74796
74797var noop = function noop() {};
74798
74799function tree(BaseComponent) {
74800 var _class, _temp;
74801
74802 var TreeTable = (_temp = _class = function (_React$Component) {
74803 (0, _inherits3.default)(TreeTable, _React$Component);
74804
74805 function TreeTable(props, context) {
74806 (0, _classCallCheck3.default)(this, TreeTable);
74807
74808 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
74809
74810 _this.onTreeNodeClick = function (record) {
74811 var primaryKey = _this.props.primaryKey,
74812 id = record[primaryKey],
74813 dataSource = _this.ds,
74814 openRowKeys = [].concat(_this.state.openRowKeys),
74815 index = openRowKeys.indexOf(id),
74816 getChildrenKeyById = function getChildrenKeyById(id) {
74817 var ret = [id];
74818 var loop = function loop(data) {
74819 data.forEach(function (item) {
74820 ret.push(item[primaryKey]);
74821 if (item.children) {
74822 loop(item.children);
74823 }
74824 });
74825 };
74826 dataSource.forEach(function (item) {
74827 if (item[primaryKey] === id) {
74828 if (item.children) {
74829 loop(item.children);
74830 }
74831 }
74832 });
74833 return ret;
74834 };
74835
74836 if (index > -1) {
74837 // 不仅要删除当前的openRowKey,还需要删除关联子节点的openRowKey
74838 var ids = getChildrenKeyById(id);
74839 ids.forEach(function (id) {
74840 var i = openRowKeys.indexOf(id);
74841 if (i > -1) {
74842 openRowKeys.splice(i, 1);
74843 }
74844 });
74845 } else {
74846 openRowKeys.push(id);
74847 }
74848
74849 if (!('openRowKeys' in _this.props)) {
74850 _this.setState({
74851 openRowKeys: openRowKeys
74852 });
74853 }
74854 _this.props.onRowOpen(openRowKeys, id, index === -1, record);
74855 };
74856
74857 _this.state = {
74858 openRowKeys: props.openRowKeys || props.defaultOpenRowKeys || []
74859 };
74860 return _this;
74861 }
74862
74863 TreeTable.prototype.getChildContext = function getChildContext() {
74864 return {
74865 openTreeRowKeys: this.state.openRowKeys,
74866 indent: this.props.indent,
74867 treeStatus: this.getTreeNodeStatus(this.ds),
74868 onTreeNodeClick: this.onTreeNodeClick,
74869 isTree: this.props.isTree
74870 };
74871 };
74872
74873 TreeTable.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
74874 if ('openRowKeys' in nextProps) {
74875 return {
74876 openRowKeys: nextProps.openRowKeys || []
74877 };
74878 }
74879
74880 return null;
74881 };
74882
74883 TreeTable.prototype.normalizeDataSource = function normalizeDataSource(dataSource) {
74884 var openRowKeys = this.state.openRowKeys;
74885 var primaryKey = this.props.primaryKey;
74886
74887 var ret = [],
74888 loop = function loop(dataSource, level) {
74889 var parentId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
74890
74891 dataSource.forEach(function (item) {
74892 item.__level = level;
74893
74894 if (level === 0 || openRowKeys.indexOf(parentId) > -1) {
74895 item.__hidden = false;
74896 } else {
74897 item.__hidden = true;
74898 }
74899 ret.push(item);
74900
74901 if (item.children) {
74902 loop(item.children, level + 1, item[primaryKey]);
74903 }
74904 });
74905 };
74906 loop(dataSource, 0);
74907 this.ds = ret;
74908 return ret;
74909 };
74910
74911 TreeTable.prototype.getTreeNodeStatus = function getTreeNodeStatus() {
74912 var dataSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
74913 var openRowKeys = this.state.openRowKeys,
74914 primaryKey = this.props.primaryKey,
74915 ret = [];
74916
74917 openRowKeys.forEach(function (openKey) {
74918 dataSource.forEach(function (item) {
74919 if (item[primaryKey] === openKey) {
74920 if (item.children) {
74921 item.children.forEach(function (child) {
74922 ret.push(child[primaryKey]);
74923 });
74924 }
74925 }
74926 });
74927 });
74928 return ret;
74929 };
74930
74931 TreeTable.prototype.render = function render() {
74932 /* eslint-disable no-unused-vars, prefer-const */
74933 var _props = this.props,
74934 components = _props.components,
74935 isTree = _props.isTree,
74936 dataSource = _props.dataSource,
74937 indent = _props.indent,
74938 others = (0, _objectWithoutProperties3.default)(_props, ['components', 'isTree', 'dataSource', 'indent']);
74939
74940 if (isTree) {
74941 components = (0, _extends3.default)({}, components);
74942 if (!components.Row) {
74943 components.Row = _row2.default;
74944 }
74945 if (!components.Cell) {
74946 components.Cell = _cell2.default;
74947 }
74948
74949 dataSource = this.normalizeDataSource(dataSource);
74950 }
74951 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, { dataSource: dataSource, components: components }));
74952 };
74953
74954 return TreeTable;
74955 }(_react2.default.Component), _class.TreeRow = _row2.default, _class.TreeCell = _cell2.default, _class.propTypes = (0, _extends3.default)({
74956 /**
74957 * 默认情况下展开的树形表格,传入了此属性代表tree的展开为受控操作
74958 */
74959 openRowKeys: _propTypes2.default.array,
74960 /**
74961 * 默认情况下展开的 Expand行 或者 Tree行,非受控模式
74962 * @version 1.23.22
74963 */
74964 defaultOpenRowKeys: _propTypes2.default.array,
74965 /**
74966 * 点击tree展开或者关闭的时候触发的事件
74967 * @param {Array} openRowKeys tree模式下展开的key
74968 * @param {String} currentRowKey 当前点击行的key
74969 * @param {Boolean} opened 当前点击是展开还是收起
74970 * @param {Object} currentRecord 当前点击行的记录
74971 */
74972 onRowOpen: _propTypes2.default.func,
74973 /**
74974 * dataSource当中数据的主键,如果给定的数据源中的属性不包含该主键,会造成选择状态全部选中
74975 */
74976 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
74977 /**
74978 * 在tree模式下的缩进尺寸, 仅在isTree为true时候有效
74979 */
74980 indent: _propTypes2.default.number,
74981 /**
74982 * 开启Table的tree模式, 接收的数据格式中包含children则渲染成tree table
74983 */
74984 isTree: _propTypes2.default.bool,
74985 locale: _propTypes2.default.object
74986 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps, {
74987 primaryKey: 'id',
74988 onRowOpen: noop,
74989 components: {},
74990 indent: 12
74991 }), _class.childContextTypes = {
74992 openTreeRowKeys: _propTypes2.default.array,
74993 indent: _propTypes2.default.number,
74994 treeStatus: _propTypes2.default.array,
74995 onTreeNodeClick: _propTypes2.default.func,
74996 isTree: _propTypes2.default.bool
74997 }, _temp);
74998 TreeTable.displayName = 'TreeTable';
74999
75000 (0, _util.statics)(TreeTable, BaseComponent);
75001 return (0, _reactLifecyclesCompat.polyfill)(TreeTable);
75002}
75003module.exports = exports['default'];
75004
75005/***/ }),
75006/* 433 */
75007/***/ (function(module, exports, __webpack_require__) {
75008
75009"use strict";
75010
75011
75012exports.__esModule = true;
75013exports.default = undefined;
75014
75015var _extends2 = __webpack_require__(1);
75016
75017var _extends3 = _interopRequireDefault(_extends2);
75018
75019var _objectWithoutProperties2 = __webpack_require__(8);
75020
75021var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
75022
75023var _classCallCheck2 = __webpack_require__(2);
75024
75025var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
75026
75027var _possibleConstructorReturn2 = __webpack_require__(3);
75028
75029var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
75030
75031var _inherits2 = __webpack_require__(4);
75032
75033var _inherits3 = _interopRequireDefault(_inherits2);
75034
75035var _class, _temp;
75036
75037var _react = __webpack_require__(0);
75038
75039var _react2 = _interopRequireDefault(_react);
75040
75041var _propTypes = __webpack_require__(5);
75042
75043var _propTypes2 = _interopRequireDefault(_propTypes);
75044
75045var _classnames2 = __webpack_require__(7);
75046
75047var _classnames3 = _interopRequireDefault(_classnames2);
75048
75049var _row = __webpack_require__(186);
75050
75051var _row2 = _interopRequireDefault(_row);
75052
75053function _interopRequireDefault(obj) {
75054 return obj && obj.__esModule ? obj : { default: obj };
75055}
75056
75057/* eslint-disable react/prefer-stateless-function */
75058var TreeRow = (_temp = _class = function (_React$Component) {
75059 (0, _inherits3.default)(TreeRow, _React$Component);
75060
75061 function TreeRow() {
75062 (0, _classCallCheck3.default)(this, TreeRow);
75063 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
75064 }
75065
75066 TreeRow.prototype.render = function render() {
75067 var _classnames;
75068
75069 /* eslint-disable no-unused-vars*/
75070 var _props = this.props,
75071 className = _props.className,
75072 record = _props.record,
75073 primaryKey = _props.primaryKey,
75074 prefix = _props.prefix,
75075 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'record', 'primaryKey', 'prefix']);
75076 var _context = this.context,
75077 treeStatus = _context.treeStatus,
75078 openRowKeys = _context.openRowKeys;
75079
75080 var cls = (0, _classnames3.default)((_classnames = {
75081 hidden: !(treeStatus.indexOf(record[primaryKey]) > -1) && record.__level !== 0
75082 }, _classnames[prefix + 'table-row-level-' + record.__level] = true, _classnames.opened = openRowKeys.indexOf(record[primaryKey]) > -1, _classnames[className] = className, _classnames));
75083 return _react2.default.createElement(_row2.default, (0, _extends3.default)({}, others, {
75084 record: record,
75085 className: cls,
75086 primaryKey: primaryKey,
75087 prefix: prefix
75088 }));
75089 };
75090
75091 return TreeRow;
75092}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _row2.default.propTypes), _class.defaultProps = (0, _extends3.default)({}, _row2.default.defaultProps), _class.contextTypes = {
75093 treeStatus: _propTypes2.default.array,
75094 openRowKeys: _propTypes2.default.array
75095}, _temp);
75096TreeRow.displayName = 'TreeRow';
75097exports.default = TreeRow;
75098module.exports = exports['default'];
75099
75100/***/ }),
75101/* 434 */
75102/***/ (function(module, exports, __webpack_require__) {
75103
75104"use strict";
75105
75106
75107exports.__esModule = true;
75108exports.default = undefined;
75109
75110var _extends2 = __webpack_require__(1);
75111
75112var _extends3 = _interopRequireDefault(_extends2);
75113
75114var _classCallCheck2 = __webpack_require__(2);
75115
75116var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
75117
75118var _possibleConstructorReturn2 = __webpack_require__(3);
75119
75120var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
75121
75122var _inherits2 = __webpack_require__(4);
75123
75124var _inherits3 = _interopRequireDefault(_inherits2);
75125
75126var _class, _temp2;
75127
75128var _react = __webpack_require__(0);
75129
75130var _react2 = _interopRequireDefault(_react);
75131
75132var _propTypes = __webpack_require__(5);
75133
75134var _propTypes2 = _interopRequireDefault(_propTypes);
75135
75136var _icon = __webpack_require__(11);
75137
75138var _icon2 = _interopRequireDefault(_icon);
75139
75140var _util = __webpack_require__(6);
75141
75142var _cell = __webpack_require__(65);
75143
75144var _cell2 = _interopRequireDefault(_cell);
75145
75146function _interopRequireDefault(obj) {
75147 return obj && obj.__esModule ? obj : { default: obj };
75148}
75149
75150var TreeCell = (_temp2 = _class = function (_React$Component) {
75151 (0, _inherits3.default)(TreeCell, _React$Component);
75152
75153 function TreeCell() {
75154 var _temp, _this, _ret;
75155
75156 (0, _classCallCheck3.default)(this, TreeCell);
75157
75158 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
75159 args[_key] = arguments[_key];
75160 }
75161
75162 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onTreeNodeClick = function (record, e) {
75163 e.stopPropagation();
75164 _this.context.onTreeNodeClick(record);
75165 }, _this.expandedKeydown = function (record, e) {
75166 e.preventDefault();
75167 e.stopPropagation();
75168
75169 if (e.keyCode === _util.KEYCODE.ENTER) {
75170 _this.onTreeNodeClick(record, e);
75171 }
75172 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
75173 }
75174
75175 TreeCell.prototype.render = function render() {
75176 var _this2 = this;
75177
75178 var _props = this.props,
75179 colIndex = _props.colIndex,
75180 record = _props.record,
75181 prefix = _props.prefix,
75182 primaryKey = _props.primaryKey,
75183 locale = _props.locale,
75184 rtl = _props.rtl,
75185 children = _props.children;
75186 var _context = this.context,
75187 openRowKeys = _context.openTreeRowKeys,
75188 indent = _context.indent,
75189 isTree = _context.isTree,
75190 rowSelection = _context.rowSelection;
75191
75192 var treeArrowNodeIndex = rowSelection ? 1 : 0;
75193 var firstCellStyle = void 0,
75194 treeArrowNode = void 0;
75195 if (colIndex === treeArrowNodeIndex) {
75196 var treeArrowType = void 0;
75197 if (isTree) {
75198 var _firstCellStyle;
75199
75200 var paddingType = rtl ? 'paddingRight' : 'paddingLeft';
75201 firstCellStyle = (_firstCellStyle = {}, _firstCellStyle[paddingType] = indent * (record.__level + 1), _firstCellStyle);
75202 treeArrowNode = _react2.default.createElement(_icon2.default, {
75203 size: 'xs',
75204 rtl: rtl,
75205 className: prefix + 'table-tree-placeholder'
75206 });
75207 if (record.children && record.children.length) {
75208 var hasExpanded = openRowKeys.indexOf(record[primaryKey]) > -1;
75209
75210 treeArrowType = hasExpanded ? 'arrow-down' : 'arrow-right';
75211
75212 treeArrowNode = _react2.default.createElement(_icon2.default, {
75213 className: prefix + 'table-tree-arrow',
75214 type: treeArrowType,
75215 size: 'xs',
75216 rtl: rtl,
75217 onClick: function onClick(e) {
75218 return _this2.onTreeNodeClick(record, e);
75219 },
75220 onKeyDown: function onKeyDown(e) {
75221 return _this2.expandedKeydown(record, e);
75222 },
75223 role: 'button',
75224 tabIndex: '0',
75225 'aria-expanded': hasExpanded,
75226 'aria-label': hasExpanded ? locale.expanded : locale.folded
75227 });
75228 }
75229 }
75230 }
75231 return _react2.default.createElement(_cell2.default, (0, _extends3.default)({}, this.props, {
75232 innerStyle: firstCellStyle,
75233 isIconLeft: !!treeArrowNode
75234 }), children, treeArrowNode);
75235 };
75236
75237 return TreeCell;
75238}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({
75239 indent: _propTypes2.default.number,
75240 locale: _propTypes2.default.object
75241}, _cell2.default.propTypes), _class.defaultProps = (0, _extends3.default)({}, _cell2.default.defaultProps, {
75242 component: 'td',
75243 indent: 20
75244}), _class.contextTypes = {
75245 openTreeRowKeys: _propTypes2.default.array,
75246 indent: _propTypes2.default.number,
75247 onTreeNodeClick: _propTypes2.default.func,
75248 isTree: _propTypes2.default.bool,
75249 rowSelection: _propTypes2.default.object
75250}, _temp2);
75251TreeCell.displayName = 'TreeCell';
75252exports.default = TreeCell;
75253module.exports = exports['default'];
75254
75255/***/ }),
75256/* 435 */
75257/***/ (function(module, exports, __webpack_require__) {
75258
75259"use strict";
75260
75261
75262exports.__esModule = true;
75263
75264var _extends2 = __webpack_require__(1);
75265
75266var _extends3 = _interopRequireDefault(_extends2);
75267
75268var _objectWithoutProperties2 = __webpack_require__(8);
75269
75270var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
75271
75272var _classCallCheck2 = __webpack_require__(2);
75273
75274var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
75275
75276var _possibleConstructorReturn2 = __webpack_require__(3);
75277
75278var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
75279
75280var _inherits2 = __webpack_require__(4);
75281
75282var _inherits3 = _interopRequireDefault(_inherits2);
75283
75284exports.default = fixed;
75285
75286var _react = __webpack_require__(0);
75287
75288var _react2 = _interopRequireDefault(_react);
75289
75290var _propTypes = __webpack_require__(5);
75291
75292var _propTypes2 = _interopRequireDefault(_propTypes);
75293
75294var _reactDom = __webpack_require__(12);
75295
75296var _classnames2 = __webpack_require__(7);
75297
75298var _classnames3 = _interopRequireDefault(_classnames2);
75299
75300var _util = __webpack_require__(6);
75301
75302var _header = __webpack_require__(66);
75303
75304var _header2 = _interopRequireDefault(_header);
75305
75306var _body = __webpack_require__(188);
75307
75308var _body2 = _interopRequireDefault(_body);
75309
75310var _wrapper = __webpack_require__(67);
75311
75312var _wrapper2 = _interopRequireDefault(_wrapper);
75313
75314var _util2 = __webpack_require__(21);
75315
75316function _interopRequireDefault(obj) {
75317 return obj && obj.__esModule ? obj : { default: obj };
75318}
75319
75320function fixed(BaseComponent, stickyLock) {
75321 var _class, _temp2;
75322
75323 /** Table */
75324 var FixedTable = (_temp2 = _class = function (_React$Component) {
75325 (0, _inherits3.default)(FixedTable, _React$Component);
75326
75327 function FixedTable() {
75328 var _temp, _this, _ret;
75329
75330 (0, _classCallCheck3.default)(this, FixedTable);
75331
75332 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
75333 args[_key] = arguments[_key];
75334 }
75335
75336 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) {
75337 lockType = lockType ? lockType.charAt(0).toUpperCase() + lockType.substr(1) : '';
75338 _this['' + type + lockType + 'Node'] = node;
75339 }, _this.getTableInstance = function (type, instance) {
75340 type = '';
75341 _this['table' + type + 'Inc'] = instance;
75342 }, _this.onFixedScrollSync = function () {
75343 var current = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { currentTarget: {} };
75344
75345 var currentTarget = current.currentTarget || {},
75346 headerNode = _this.headerNode,
75347 bodyNode = _this.bodyNode;
75348
75349 var scrollLeft = currentTarget.scrollLeft,
75350 scrollWidth = currentTarget.scrollWidth,
75351 clientWidth = currentTarget.clientWidth;
75352
75353 var scrollToRightEnd = !(scrollLeft < scrollWidth - clientWidth);
75354 var _this$props = _this.props,
75355 prefix = _this$props.prefix,
75356 loading = _this$props.loading;
75357
75358 if (!loading && scrollToRightEnd !== _this.scrollToRightEnd) {
75359 _this.scrollToRightEnd = scrollToRightEnd;
75360 var table = _this.getTableNode();
75361
75362 var leftFunc = scrollToRightEnd ? 'removeClass' : 'addClass';
75363 _util.dom[leftFunc](table, prefix + 'table-scrolling-to-right');
75364 }
75365 if (current.currentTarget !== current.target) {
75366 return;
75367 }
75368 if (currentTarget === bodyNode) {
75369 if (headerNode && scrollLeft !== headerNode.scrollLeft) {
75370 headerNode.scrollLeft = scrollLeft;
75371 }
75372 } else if (currentTarget === headerNode) {
75373 if (bodyNode && scrollLeft !== bodyNode.scrollLeft) {
75374 bodyNode.scrollLeft = scrollLeft;
75375 }
75376 }
75377 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
75378 }
75379
75380 FixedTable.prototype.getChildContext = function getChildContext() {
75381 return {
75382 fixedHeader: this.props.fixedHeader,
75383 maxBodyHeight: this.props.maxBodyHeight,
75384 getTableInstanceForFixed: this.getTableInstance,
75385 onFixedScrollSync: this.onFixedScrollSync,
75386 getNode: this.getNode
75387 };
75388 };
75389
75390 FixedTable.prototype.componentDidMount = function componentDidMount() {
75391 this.adjustFixedHeaderSize();
75392 this.scrollToRightEnd = undefined;
75393 this.onFixedScrollSync({ currentTarget: this.bodyNode, target: this.bodyNode });
75394 };
75395
75396 FixedTable.prototype.componentDidUpdate = function componentDidUpdate() {
75397 this.adjustFixedHeaderSize();
75398 this.onFixedScrollSync({ currentTarget: this.bodyNode, target: this.bodyNode });
75399 };
75400
75401 FixedTable.prototype.getTableNode = function getTableNode() {
75402 var table = this.tableInc;
75403 try {
75404 // in case of finding an unmounted component due to cached data
75405 // need to clear refs of table when dataSource Changed
75406 // use try catch for temporary
75407 return (0, _reactDom.findDOMNode)(table.tableEl);
75408 } catch (error) {
75409 return null;
75410 }
75411 };
75412
75413 // for fixed header scroll left
75414
75415
75416 FixedTable.prototype.adjustFixedHeaderSize = function adjustFixedHeaderSize() {
75417 var _props = this.props,
75418 hasHeader = _props.hasHeader,
75419 rtl = _props.rtl,
75420 prefix = _props.prefix;
75421
75422 var paddingName = rtl ? 'paddingLeft' : 'paddingRight';
75423 var marginName = rtl ? 'marginLeft' : 'marginRight';
75424 var body = this.bodyNode;
75425 var scrollBarSize = +_util.dom.scrollbar().width || 0;
75426
75427 if (hasHeader && !this.props.lockType && body) {
75428 var hasVerScroll = body.scrollHeight > body.clientHeight,
75429 hasHozScroll = body.scrollWidth > body.clientWidth;
75430 var style = {};
75431 if (!hasVerScroll) {
75432 style[paddingName] = 0;
75433 style[marginName] = 0;
75434 }
75435
75436 if (+scrollBarSize) {
75437 style.marginBottom = -scrollBarSize;
75438 if (hasHozScroll) {
75439 style.paddingBottom = scrollBarSize;
75440 } else {
75441 style.paddingBottom = scrollBarSize;
75442 }
75443 if (hasVerScroll) {
75444 style[marginName] = scrollBarSize;
75445 }
75446 }
75447
75448 _util.dom.setStyle(this.headerNode, style);
75449 }
75450
75451 if (hasHeader && !this.props.lockType && this.headerNode) {
75452 var fixer = this.headerNode.querySelector('.' + prefix + 'table-header-fixer');
75453 var height = _util.dom.getStyle(this.headerNode, 'height');
75454 var paddingBottom = _util.dom.getStyle(this.headerNode, 'paddingBottom');
75455
75456 _util.dom.setStyle(fixer, {
75457 width: scrollBarSize,
75458 height: height - paddingBottom
75459 });
75460 }
75461 };
75462
75463 FixedTable.prototype.render = function render() {
75464 /* eslint-disable no-unused-vars, prefer-const */
75465 var _props2 = this.props,
75466 components = _props2.components,
75467 className = _props2.className,
75468 prefix = _props2.prefix,
75469 fixedHeader = _props2.fixedHeader,
75470 lockType = _props2.lockType,
75471 dataSource = _props2.dataSource,
75472 maxBodyHeight = _props2.maxBodyHeight,
75473 others = (0, _objectWithoutProperties3.default)(_props2, ['components', 'className', 'prefix', 'fixedHeader', 'lockType', 'dataSource', 'maxBodyHeight']);
75474
75475 if (fixedHeader) {
75476 var _classnames;
75477
75478 components = (0, _extends3.default)({}, components);
75479 if (!components.Header) {
75480 components.Header = _header2.default;
75481 }
75482 if (!components.Body) {
75483 components.Body = _body2.default;
75484 }
75485 if (!components.Wrapper) {
75486 components.Wrapper = _wrapper2.default;
75487 }
75488 className = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-fixed'] = true, _classnames[prefix + 'table-wrap-empty'] = !dataSource.length, _classnames[className] = className, _classnames));
75489 }
75490
75491 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
75492 dataSource: dataSource,
75493 lockType: lockType,
75494 components: components,
75495 className: className,
75496 prefix: prefix
75497 }));
75498 };
75499
75500 return FixedTable;
75501 }(_react2.default.Component), _class.FixedHeader = _header2.default, _class.FixedBody = _body2.default, _class.FixedWrapper = _wrapper2.default, _class.propTypes = (0, _extends3.default)({
75502 /**
75503 * 是否具有表头
75504 */
75505 hasHeader: _propTypes2.default.bool,
75506 /**
75507 * 表头是否固定,该属性配合maxBodyHeight使用,当内容区域的高度超过maxBodyHeight的时候,在内容区域会出现滚动条
75508 */
75509 fixedHeader: _propTypes2.default.bool,
75510 /**
75511 * 最大内容区域的高度,在`fixedHeader`为`true`的时候,超过这个高度会出现滚动条
75512 */
75513 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string])
75514 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps, {
75515 hasHeader: true,
75516 fixedHeader: false,
75517 maxBodyHeight: 200,
75518 components: {},
75519 refs: {},
75520 prefix: 'next-'
75521 }), _class.childContextTypes = {
75522 fixedHeader: _propTypes2.default.bool,
75523 getNode: _propTypes2.default.func,
75524 onFixedScrollSync: _propTypes2.default.func,
75525 getTableInstanceForFixed: _propTypes2.default.func,
75526 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string])
75527 }, _temp2);
75528 FixedTable.displayName = 'FixedTable';
75529
75530 (0, _util2.statics)(FixedTable, BaseComponent);
75531 return FixedTable;
75532}
75533module.exports = exports['default'];
75534
75535/***/ }),
75536/* 436 */
75537/***/ (function(module, exports, __webpack_require__) {
75538
75539"use strict";
75540
75541
75542exports.__esModule = true;
75543
75544var _objectWithoutProperties2 = __webpack_require__(8);
75545
75546var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
75547
75548var _extends2 = __webpack_require__(1);
75549
75550var _extends3 = _interopRequireDefault(_extends2);
75551
75552var _classCallCheck2 = __webpack_require__(2);
75553
75554var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
75555
75556var _possibleConstructorReturn2 = __webpack_require__(3);
75557
75558var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
75559
75560var _inherits2 = __webpack_require__(4);
75561
75562var _inherits3 = _interopRequireDefault(_inherits2);
75563
75564exports.default = selection;
75565
75566var _react = __webpack_require__(0);
75567
75568var _react2 = _interopRequireDefault(_react);
75569
75570var _propTypes = __webpack_require__(5);
75571
75572var _propTypes2 = _interopRequireDefault(_propTypes);
75573
75574var _reactLifecyclesCompat = __webpack_require__(10);
75575
75576var _checkbox = __webpack_require__(49);
75577
75578var _checkbox2 = _interopRequireDefault(_checkbox);
75579
75580var _radio = __webpack_require__(50);
75581
75582var _radio2 = _interopRequireDefault(_radio);
75583
75584var _util = __webpack_require__(6);
75585
75586var _zhCn = __webpack_require__(13);
75587
75588var _zhCn2 = _interopRequireDefault(_zhCn);
75589
75590var _row = __webpack_require__(186);
75591
75592var _row2 = _interopRequireDefault(_row);
75593
75594var _column = __webpack_require__(103);
75595
75596var _column2 = _interopRequireDefault(_column);
75597
75598var _util2 = __webpack_require__(21);
75599
75600function _interopRequireDefault(obj) {
75601 return obj && obj.__esModule ? obj : { default: obj };
75602}
75603
75604var makeChain = _util.func.makeChain;
75605
75606var unique = function unique(arr) {
75607 var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'this';
75608
75609 var temp = {},
75610 ret = [];
75611 arr.forEach(function (item) {
75612 var value = void 0;
75613 if (key === 'this') {
75614 value = item;
75615 } else {
75616 value = item[key];
75617 }
75618 if (!temp[value]) {
75619 ret.push(item);
75620 temp[value] = true;
75621 }
75622 });
75623 return ret;
75624};
75625
75626function selection(BaseComponent) {
75627 var _class, _temp;
75628
75629 /** Table */
75630 var SelectionTable = (_temp = _class = function (_React$Component) {
75631 (0, _inherits3.default)(SelectionTable, _React$Component);
75632
75633 function SelectionTable(props, context) {
75634 (0, _classCallCheck3.default)(this, SelectionTable);
75635
75636 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
75637
75638 _this.addSelection = function (columns) {
75639 var _this$props = _this.props,
75640 prefix = _this$props.prefix,
75641 rowSelection = _this$props.rowSelection,
75642 size = _this$props.size;
75643
75644 var attrs = rowSelection.columnProps && rowSelection.columnProps() || {};
75645
75646 if (!columns.find(function (record) {
75647 return record.key === 'selection';
75648 })) {
75649 columns.unshift((0, _extends3.default)({
75650 key: 'selection',
75651 title: _this.renderSelectionHeader.bind(_this),
75652 cell: _this.renderSelectionBody.bind(_this),
75653 width: size === 'small' ? 34 : 50,
75654 className: prefix + 'table-selection ' + prefix + 'table-prerow',
75655 __normalized: true
75656 }, attrs));
75657 }
75658 };
75659
75660 _this.renderSelectionHeader = function () {
75661 var onChange = _this.selectAllRow,
75662 attrs = {},
75663 _this$props2 = _this.props,
75664 rowSelection = _this$props2.rowSelection,
75665 primaryKey = _this$props2.primaryKey,
75666 dataSource = _this$props2.dataSource,
75667 entireDataSource = _this$props2.entireDataSource,
75668 locale = _this$props2.locale,
75669 selectedRowKeys = _this.state.selectedRowKeys,
75670 mode = rowSelection.mode ? rowSelection.mode : 'multiple';
75671
75672 var checked = !!selectedRowKeys.length;
75673 var indeterminate = false;
75674
75675 var source = entireDataSource || dataSource;
75676
75677 _this.flatDataSource(source).filter(function (record, index) {
75678 if (!rowSelection.getProps) {
75679 return true;
75680 } else {
75681 return !(rowSelection.getProps(record, index) || {}).disabled;
75682 }
75683 }).map(function (record) {
75684 return record[primaryKey];
75685 }).forEach(function (id) {
75686 if (selectedRowKeys.indexOf(id) === -1) {
75687 checked = false;
75688 } else {
75689 indeterminate = true;
75690 }
75691 });
75692 attrs.onClick = makeChain(function (e) {
75693 e.stopPropagation();
75694 }, attrs.onClick);
75695
75696 var userAttrs = rowSelection.titleProps && rowSelection.titleProps() || {};
75697
75698 if (checked) {
75699 indeterminate = false;
75700 }
75701 return [mode === 'multiple' ? _react2.default.createElement(_checkbox2.default, (0, _extends3.default)({
75702 key: '_total',
75703 indeterminate: indeterminate,
75704 'aria-label': locale.selectAll,
75705 checked: checked,
75706 onChange: onChange
75707 }, attrs, userAttrs)) : null, rowSelection.titleAddons && rowSelection.titleAddons()];
75708 };
75709
75710 _this.renderSelectionBody = function (value, index, record) {
75711 var _this$props3 = _this.props,
75712 rowSelection = _this$props3.rowSelection,
75713 primaryKey = _this$props3.primaryKey;
75714 var selectedRowKeys = _this.state.selectedRowKeys;
75715
75716 var mode = rowSelection.mode ? rowSelection.mode : 'multiple';
75717 var checked = selectedRowKeys.indexOf(record[primaryKey]) > -1;
75718 var onChange = _this.selectOneRow.bind(_this, index, record);
75719 var attrs = rowSelection.getProps ? rowSelection.getProps(record, index) || {} : {};
75720
75721 attrs.onClick = makeChain(function (e) {
75722 e.stopPropagation();
75723 }, attrs.onClick);
75724 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));
75725 };
75726
75727 _this.selectAllRow = function (checked, e) {
75728 var ret = [].concat(_this.state.selectedRowKeys),
75729 _this$props4 = _this.props,
75730 rowSelection = _this$props4.rowSelection,
75731 primaryKey = _this$props4.primaryKey,
75732 dataSource = _this$props4.dataSource,
75733 entireDataSource = _this$props4.entireDataSource,
75734 selectedRowKeys = _this.state.selectedRowKeys,
75735 getProps = rowSelection.getProps;
75736
75737 var attrs = {},
75738 records = [];
75739
75740 var source = entireDataSource ? entireDataSource : dataSource;
75741
75742 _this.flatDataSource(source).forEach(function (record, index) {
75743 var id = record[primaryKey];
75744 if (getProps) {
75745 attrs = getProps(record, index) || {};
75746 }
75747 // 反选和全选的时候不要丢弃禁用项的选中状态
75748 if (checked && (!attrs.disabled || selectedRowKeys.indexOf(id) > -1)) {
75749 ret.push(id);
75750 records.push(record);
75751 } else if (attrs.disabled && selectedRowKeys.indexOf(id) > -1) {
75752 ret.push(id);
75753 records.push(record);
75754 } else {
75755 var i = ret.indexOf(id);
75756 i > -1 && ret.splice(i, 1);
75757 }
75758 });
75759
75760 records = unique(records, primaryKey);
75761 if (typeof rowSelection.onSelectAll === 'function') {
75762 rowSelection.onSelectAll(checked, records);
75763 }
75764 _this.triggerSelection(rowSelection, unique(ret), records);
75765 e.stopPropagation();
75766 };
75767
75768 _this.state = {
75769 selectedRowKeys: props.rowSelection && 'selectedRowKeys' in props.rowSelection ? props.rowSelection.selectedRowKeys || [] : []
75770 };
75771 return _this;
75772 }
75773
75774 SelectionTable.prototype.getChildContext = function getChildContext() {
75775 return {
75776 rowSelection: this.props.rowSelection,
75777 selectedRowKeys: this.state.selectedRowKeys
75778 };
75779 };
75780
75781 SelectionTable.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
75782 if (nextProps.rowSelection && 'selectedRowKeys' in nextProps.rowSelection) {
75783 var selectedRowKeys = nextProps.rowSelection.selectedRowKeys || [];
75784 return {
75785 selectedRowKeys: selectedRowKeys
75786 };
75787 }
75788
75789 return null;
75790 };
75791
75792 SelectionTable.prototype.normalizeChildren = function normalizeChildren(children) {
75793 var _props = this.props,
75794 prefix = _props.prefix,
75795 rowSelection = _props.rowSelection,
75796 size = _props.size;
75797
75798 if (rowSelection) {
75799 children = _react.Children.map(children, function (child, index) {
75800 return _react2.default.cloneElement(child, {
75801 key: index
75802 });
75803 });
75804
75805 var attrs = rowSelection.columnProps && rowSelection.columnProps() || {};
75806
75807 children.unshift(_react2.default.createElement(_column2.default, (0, _extends3.default)({
75808 key: 'selection',
75809 title: this.renderSelectionHeader.bind(this),
75810 cell: this.renderSelectionBody.bind(this),
75811 width: size === 'small' ? 34 : 50,
75812 className: prefix + 'table-selection ' + prefix + 'table-prerow',
75813 __normalized: true
75814 }, attrs)));
75815 return children;
75816 }
75817 return children;
75818 };
75819
75820 SelectionTable.prototype.selectOneRow = function selectOneRow(index, record, checked, e) {
75821 var selectedRowKeys = [].concat(this.state.selectedRowKeys),
75822 i = void 0;
75823 var _props2 = this.props,
75824 primaryKey = _props2.primaryKey,
75825 rowSelection = _props2.rowSelection,
75826 dataSource = _props2.dataSource,
75827 entireDataSource = _props2.entireDataSource,
75828 mode = rowSelection.mode ? rowSelection.mode : 'multiple',
75829 id = record[primaryKey];
75830
75831 if (!id) {
75832 _util.log.warning('Can\'t get value from record using given ' + primaryKey + ' as primaryKey.');
75833 }
75834 if (mode === 'multiple') {
75835 if (checked) {
75836 selectedRowKeys.push(id);
75837 } else {
75838 i = selectedRowKeys.indexOf(id);
75839 selectedRowKeys.splice(i, 1);
75840 }
75841 } else if (checked) {
75842 selectedRowKeys = [id];
75843 }
75844 var totalDS = dataSource;
75845 if (Array.isArray(entireDataSource) && entireDataSource.length > dataSource.length) {
75846 totalDS = entireDataSource;
75847 }
75848 var records = unique(totalDS.filter(function (item) {
75849 return selectedRowKeys.indexOf(item[primaryKey]) > -1;
75850 }), primaryKey);
75851 if (typeof rowSelection.onSelect === 'function') {
75852 rowSelection.onSelect(checked, record, records);
75853 }
75854
75855 this.triggerSelection(rowSelection, selectedRowKeys, records);
75856
75857 e.stopPropagation();
75858 };
75859
75860 SelectionTable.prototype.triggerSelection = function triggerSelection(rowSelection, selectedRowKeys, records) {
75861 if (!('selectedRowKeys' in rowSelection)) {
75862 this.setState({
75863 selectedRowKeys: selectedRowKeys
75864 });
75865 }
75866 if (typeof rowSelection.onChange === 'function') {
75867 rowSelection.onChange(selectedRowKeys, records);
75868 }
75869 };
75870
75871 SelectionTable.prototype.flatDataSource = function flatDataSource(dataSource) {
75872 var ret = dataSource;
75873 var listHeader = this.context.listHeader;
75874
75875 if (listHeader) {
75876 ret = [];
75877 var hasChildrenSelection = listHeader.hasChildrenSelection,
75878 hasSelection = listHeader.hasSelection;
75879
75880 dataSource.forEach(function (item) {
75881 var children = item.children;
75882 // 如果需要渲染selection才将这条记录插入到dataSource
75883 // 或者没有孩子节点
75884 if (hasSelection) {
75885 ret.push(item);
75886 }
75887 if (children && hasChildrenSelection) {
75888 ret = ret.concat(children);
75889 }
75890 });
75891 }
75892 return ret;
75893 };
75894
75895 SelectionTable.prototype.render = function render() {
75896 /* eslint-disable prefer-const */
75897 var _props3 = this.props,
75898 rowSelection = _props3.rowSelection,
75899 components = _props3.components,
75900 children = _props3.children,
75901 columns = _props3.columns,
75902 others = (0, _objectWithoutProperties3.default)(_props3, ['rowSelection', 'components', 'children', 'columns']);
75903
75904 var useColumns = columns && !children;
75905
75906 if (rowSelection) {
75907 if (useColumns) {
75908 this.addSelection(columns);
75909 } else {
75910 children = this.normalizeChildren(children || []);
75911 }
75912 components = (0, _extends3.default)({}, components);
75913 components.Row = components.Row || _row2.default;
75914 }
75915 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, { columns: columns, components: components, children: children }));
75916 };
75917
75918 return SelectionTable;
75919 }(_react2.default.Component), _class.SelectionRow = _row2.default, _class.propTypes = (0, _extends3.default)({
75920 /**
75921 * 是否启用选择模式
75922 * @property {Function} getProps `Function(record, index)=>Object` 获取selection的默认属性
75923 * @property {Function} onChange `Function(selectedRowKeys:Array, records:Array)` 选择改变的时候触发的事件,**注意:** 其中records只会包含当前dataSource的数据,很可能会小于selectedRowKeys的长度。
75924 * @property {Function} onSelect `Function(selected:Boolean, record:Object, records:Array)` 用户手动选择/取消选择某行的回调
75925 * @property {Function} onSelectAll `Function(selected:Boolean, records:Array)` 用户手动选择/取消选择所有行的回调
75926 * @property {Array} selectedRowKeys 设置了此属性,将rowSelection变为受控状态,接收值为该行数据的primaryKey的值
75927 * @property {String} mode 选择selection的模式, 可选值为`single`, `multiple`,默认为`multiple`
75928 * @property {Function} columnProps `Function()=>Object` 选择列 的props,例如锁列、对齐等,可使用`Table.Column` 的所有参数
75929 * @property {Function} titleProps `Function()=>Object` 选择列 表头的props,仅在 `multiple` 模式下生效
75930 */
75931 rowSelection: _propTypes2.default.object,
75932 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
75933 dataSource: _propTypes2.default.array,
75934 entireDataSource: _propTypes2.default.array
75935 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps, {
75936 locale: _zhCn2.default.Table,
75937 primaryKey: 'id',
75938 prefix: 'next-'
75939 }), _class.contextTypes = {
75940 listHeader: _propTypes2.default.any
75941 }, _class.childContextTypes = {
75942 rowSelection: _propTypes2.default.object,
75943 selectedRowKeys: _propTypes2.default.array
75944 }, _temp);
75945 SelectionTable.displayName = 'SelectionTable';
75946
75947 (0, _util2.statics)(SelectionTable, BaseComponent);
75948 return (0, _reactLifecyclesCompat.polyfill)(SelectionTable);
75949}
75950module.exports = exports['default'];
75951
75952/***/ }),
75953/* 437 */
75954/***/ (function(module, exports, __webpack_require__) {
75955
75956"use strict";
75957
75958
75959exports.__esModule = true;
75960
75961var _objectWithoutProperties2 = __webpack_require__(8);
75962
75963var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
75964
75965var _extends2 = __webpack_require__(1);
75966
75967var _extends3 = _interopRequireDefault(_extends2);
75968
75969var _classCallCheck2 = __webpack_require__(2);
75970
75971var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
75972
75973var _possibleConstructorReturn2 = __webpack_require__(3);
75974
75975var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
75976
75977var _inherits2 = __webpack_require__(4);
75978
75979var _inherits3 = _interopRequireDefault(_inherits2);
75980
75981exports.default = expanded;
75982
75983var _react = __webpack_require__(0);
75984
75985var _react2 = _interopRequireDefault(_react);
75986
75987var _reactDom = __webpack_require__(12);
75988
75989var _propTypes = __webpack_require__(5);
75990
75991var _propTypes2 = _interopRequireDefault(_propTypes);
75992
75993var _classnames2 = __webpack_require__(7);
75994
75995var _classnames3 = _interopRequireDefault(_classnames2);
75996
75997var _reactLifecyclesCompat = __webpack_require__(10);
75998
75999var _icon = __webpack_require__(11);
76000
76001var _icon2 = _interopRequireDefault(_icon);
76002
76003var _util = __webpack_require__(6);
76004
76005var _row = __webpack_require__(187);
76006
76007var _row2 = _interopRequireDefault(_row);
76008
76009var _column = __webpack_require__(103);
76010
76011var _column2 = _interopRequireDefault(_column);
76012
76013var _util2 = __webpack_require__(21);
76014
76015function _interopRequireDefault(obj) {
76016 return obj && obj.__esModule ? obj : { default: obj };
76017}
76018
76019var noop = function noop() {};
76020
76021function expanded(BaseComponent, stickyLock) {
76022 var _class, _temp2;
76023
76024 /** Table */
76025 var ExpandedTable = (_temp2 = _class = function (_React$Component) {
76026 (0, _inherits3.default)(ExpandedTable, _React$Component);
76027
76028 function ExpandedTable() {
76029 var _temp, _this, _ret;
76030
76031 (0, _classCallCheck3.default)(this, ExpandedTable);
76032
76033 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
76034 args[_key] = arguments[_key];
76035 }
76036
76037 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
76038 openRowKeys: _this.props.openRowKeys || _this.props.defaultOpenRowKeys || []
76039 }, _this.saveExpandedRowRef = function (key, rowRef) {
76040 if (!_this.expandedRowRefs) {
76041 _this.expandedRowRefs = {};
76042 }
76043 _this.expandedRowRefs[key] = rowRef;
76044 }, _this.setExpandedWidth = function () {
76045 var prefix = _this.props.prefix;
76046
76047 var tableEl = _this.getTableNode();
76048 var totalWidth = +(tableEl && tableEl.clientWidth) - 1 || '100%';
76049 var bodyNode = tableEl && tableEl.querySelector('.' + prefix + 'table-body');
76050
76051 Object.keys(_this.expandedRowRefs || {}).forEach(function (key) {
76052 _util.dom.setStyle(_this.expandedRowRefs[key], { width: bodyNode && bodyNode.clientWidth || totalWidth });
76053 });
76054 }, _this.getTableInstance = function (instance) {
76055 _this.tableInc = instance;
76056 }, _this.expandedKeydown = function (value, record, index, e) {
76057 e.preventDefault();
76058 e.stopPropagation();
76059
76060 if (e.keyCode === _util.KEYCODE.ENTER) {
76061 _this.onExpandedClick(value, record, index, e);
76062 }
76063 }, _this.renderExpandedCell = function (value, index, record) {
76064 var _classnames;
76065
76066 var _this$props = _this.props,
76067 getExpandedColProps = _this$props.getExpandedColProps,
76068 prefix = _this$props.prefix,
76069 locale = _this$props.locale,
76070 rowExpandable = _this$props.rowExpandable;
76071
76072 if (typeof rowExpandable === 'function' && !rowExpandable(record, index)) {
76073 return '';
76074 }
76075
76076 var openRowKeys = _this.state.openRowKeys,
76077 primaryKey = _this.props.primaryKey,
76078 hasExpanded = openRowKeys.indexOf(record[primaryKey]) > -1,
76079 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' }),
76080 attrs = getExpandedColProps(record, index) || {};
76081
76082 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-expanded-ctrl'] = true, _classnames.disabled = attrs.disabled, _classnames[attrs.className] = attrs.className, _classnames));
76083
76084 if (!attrs.disabled) {
76085 attrs.onClick = _this.onExpandedClick.bind(_this, value, record, index);
76086 }
76087 return _react2.default.createElement('span', (0, _extends3.default)({}, attrs, {
76088 role: 'button',
76089 tabIndex: '0',
76090 onKeyDown: _this.expandedKeydown.bind(_this, value, record, index),
76091 'aria-label': hasExpanded ? locale.expanded : locale.folded,
76092 'aria-expanded': hasExpanded,
76093 className: cls
76094 }), switchNode);
76095 }, _this.addExpandCtrl = function (columns) {
76096 var _this$props2 = _this.props,
76097 prefix = _this$props2.prefix,
76098 size = _this$props2.size;
76099
76100 if (!columns.find(function (record) {
76101 return record.key === 'expanded';
76102 })) {
76103 columns.unshift({
76104 key: 'expanded',
76105 title: '',
76106 cell: _this.renderExpandedCell.bind(_this),
76107 width: size === 'small' ? 34 : 50,
76108 className: prefix + 'table-expanded ' + prefix + 'table-prerow',
76109 __normalized: true
76110 });
76111 }
76112 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
76113 }
76114
76115 ExpandedTable.prototype.getChildContext = function getChildContext() {
76116 return {
76117 openRowKeys: this.state.openRowKeys,
76118 expandedRowRender: this.props.expandedRowRender,
76119 expandedIndexSimulate: this.props.expandedIndexSimulate,
76120 expandedRowWidthEquals2Table: stickyLock,
76121 getExpandedRowRef: this.saveExpandedRowRef,
76122 getTableInstanceForExpand: this.getTableInstance,
76123 expandedRowIndent: stickyLock ? [0, 0] : this.props.expandedRowIndent
76124 };
76125 };
76126
76127 ExpandedTable.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
76128 if ('openRowKeys' in nextProps) {
76129 return {
76130 openRowKeys: nextProps.openRowKeys || []
76131 };
76132 }
76133
76134 return null;
76135 };
76136
76137 ExpandedTable.prototype.componentDidMount = function componentDidMount() {
76138 this.setExpandedWidth();
76139 _util.events.on(window, 'resize', this.setExpandedWidth);
76140 };
76141
76142 ExpandedTable.prototype.componentDidUpdate = function componentDidUpdate() {
76143 this.setExpandedWidth();
76144 };
76145
76146 ExpandedTable.prototype.componentWillUnmount = function componentWillUnmount() {
76147 _util.events.off(window, 'resize', this.setExpandedWidth);
76148 };
76149
76150 ExpandedTable.prototype.getTableNode = function getTableNode() {
76151 var table = this.tableInc;
76152 try {
76153 // in case of finding an unmounted component due to cached data
76154 // need to clear refs of table when dataSource Changed
76155 // use try catch for temporary
76156 return (0, _reactDom.findDOMNode)(table.tableEl);
76157 } catch (error) {
76158 return null;
76159 }
76160 };
76161
76162 ExpandedTable.prototype.onExpandedClick = function onExpandedClick(value, record, i, e) {
76163 var openRowKeys = [].concat(this.state.openRowKeys),
76164 primaryKey = this.props.primaryKey,
76165 id = record[primaryKey],
76166 index = openRowKeys.indexOf(id);
76167
76168 if (index > -1) {
76169 openRowKeys.splice(index, 1);
76170 } else {
76171 openRowKeys.push(id);
76172 }
76173 if (!('openRowKeys' in this.props)) {
76174 this.setState({
76175 openRowKeys: openRowKeys
76176 });
76177 }
76178 this.props.onRowOpen(openRowKeys, id, index === -1, record);
76179 e.stopPropagation();
76180 };
76181
76182 ExpandedTable.prototype.normalizeChildren = function normalizeChildren(children) {
76183 var _props = this.props,
76184 prefix = _props.prefix,
76185 size = _props.size;
76186
76187 var toArrayChildren = _react.Children.map(children, function (child, index) {
76188 return _react2.default.cloneElement(child, {
76189 key: index
76190 });
76191 });
76192 toArrayChildren.unshift(_react2.default.createElement(_column2.default, {
76193 title: '',
76194 key: 'expanded',
76195 cell: this.renderExpandedCell.bind(this),
76196 width: size === 'small' ? 34 : 50,
76197 className: prefix + 'table-expanded ' + prefix + 'table-prerow',
76198 __normalized: true
76199 }));
76200 return toArrayChildren;
76201 };
76202
76203 ExpandedTable.prototype.normalizeDataSource = function normalizeDataSource(ds) {
76204 var ret = [];
76205 ds.forEach(function (item) {
76206 var itemCopy = (0, _extends3.default)({}, item);
76207 itemCopy.__expanded = true;
76208 ret.push(item, itemCopy);
76209 });
76210 return ret;
76211 };
76212
76213 ExpandedTable.prototype.render = function render() {
76214 /* eslint-disable no-unused-vars, prefer-const */
76215 var _props2 = this.props,
76216 components = _props2.components,
76217 openRowKeys = _props2.openRowKeys,
76218 expandedRowRender = _props2.expandedRowRender,
76219 rowExpandable = _props2.rowExpandable,
76220 hasExpandedRowCtrl = _props2.hasExpandedRowCtrl,
76221 children = _props2.children,
76222 columns = _props2.columns,
76223 dataSource = _props2.dataSource,
76224 entireDataSource = _props2.entireDataSource,
76225 getExpandedColProps = _props2.getExpandedColProps,
76226 expandedRowIndent = _props2.expandedRowIndent,
76227 onRowOpen = _props2.onRowOpen,
76228 onExpandedRowClick = _props2.onExpandedRowClick,
76229 others = (0, _objectWithoutProperties3.default)(_props2, ['components', 'openRowKeys', 'expandedRowRender', 'rowExpandable', 'hasExpandedRowCtrl', 'children', 'columns', 'dataSource', 'entireDataSource', 'getExpandedColProps', 'expandedRowIndent', 'onRowOpen', 'onExpandedRowClick']);
76230
76231 if (expandedRowRender && !components.Row) {
76232 components = (0, _extends3.default)({}, components);
76233 components.Row = _row2.default;
76234 dataSource = this.normalizeDataSource(dataSource);
76235 entireDataSource = this.normalizeDataSource(entireDataSource);
76236 }
76237 if (expandedRowRender && hasExpandedRowCtrl) {
76238 var useColumns = columns && !children;
76239
76240 if (useColumns) {
76241 this.addExpandCtrl(columns);
76242 } else {
76243 children = this.normalizeChildren(children || []);
76244 }
76245 }
76246
76247 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
76248 columns: columns,
76249 dataSource: dataSource,
76250 entireDataSource: entireDataSource,
76251 components: components
76252 }), children);
76253 };
76254
76255 return ExpandedTable;
76256 }(_react2.default.Component), _class.ExpandedRow = _row2.default, _class.propTypes = (0, _extends3.default)({
76257 /**
76258 * 额外渲染行的渲染函数
76259 * @param {Object} record 该行所对应的数据
76260 * @param {Number} index 该行所对应的序列
76261 * @returns {Element}
76262 */
76263 expandedRowRender: _propTypes2.default.func,
76264 /**
76265 * 设置行是否可展开,设置 false 为不可展开
76266 * @param {Object} record 该行所对应的数据
76267 * @param {Number} index 该行所对应的序列
76268 * @returns {Boolean} 是否可展开
76269 * @version 1.21
76270 */
76271 rowExpandable: _propTypes2.default.func,
76272 /**
76273 * 额外渲染行的缩进
76274 */
76275 expandedRowIndent: _propTypes2.default.array,
76276 /**
76277 * 默认情况下展开的渲染行或者Tree, 传入此属性为受控状态
76278 */
76279 openRowKeys: _propTypes2.default.array,
76280 /**
76281 * 默认情况下展开的 Expand行 或者 Tree行,非受控模式
76282 * @version 1.23.22
76283 */
76284 defaultOpenRowKeys: _propTypes2.default.array,
76285 /**
76286 * 是否显示点击展开额外渲染行的+号按钮
76287 */
76288 hasExpandedRowCtrl: _propTypes2.default.bool,
76289 /**
76290 * 设置额外渲染行的属性
76291 */
76292 getExpandedColProps: _propTypes2.default.func,
76293 /**
76294 * 在额外渲染行或者Tree展开或者收起的时候触发的事件
76295 * @param {Array} openRowKeys 展开的渲染行的key
76296 * @param {String} currentRowKey 当前点击的渲染行的key
76297 * @param {Boolean} expanded 当前点击是展开还是收起
76298 * @param {Object} currentRecord 当前点击额外渲染行的记录
76299 */
76300 onRowOpen: _propTypes2.default.func,
76301 onExpandedRowClick: _propTypes2.default.func,
76302 locale: _propTypes2.default.object
76303 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps, {
76304 getExpandedColProps: noop,
76305 onRowOpen: noop,
76306 hasExpandedRowCtrl: true,
76307 components: {},
76308 expandedRowIndent: stickyLock ? [0, 0] : [1, 0],
76309 prefix: 'next-'
76310 }), _class.childContextTypes = {
76311 openRowKeys: _propTypes2.default.array,
76312 expandedRowRender: _propTypes2.default.func,
76313 expandedIndexSimulate: _propTypes2.default.bool,
76314 expandedRowWidthEquals2Table: _propTypes2.default.bool,
76315 expandedRowIndent: _propTypes2.default.array,
76316 getExpandedRowRef: _propTypes2.default.func,
76317 getTableInstanceForExpand: _propTypes2.default.func
76318 }, _temp2);
76319 ExpandedTable.displayName = 'ExpandedTable';
76320
76321 (0, _util2.statics)(ExpandedTable, BaseComponent);
76322 return (0, _reactLifecyclesCompat.polyfill)(ExpandedTable);
76323}
76324module.exports = exports['default'];
76325
76326/***/ }),
76327/* 438 */
76328/***/ (function(module, exports, __webpack_require__) {
76329
76330"use strict";
76331
76332
76333exports.__esModule = true;
76334
76335var _extends2 = __webpack_require__(1);
76336
76337var _extends3 = _interopRequireDefault(_extends2);
76338
76339var _objectWithoutProperties2 = __webpack_require__(8);
76340
76341var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
76342
76343var _classCallCheck2 = __webpack_require__(2);
76344
76345var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
76346
76347var _possibleConstructorReturn2 = __webpack_require__(3);
76348
76349var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
76350
76351var _inherits2 = __webpack_require__(4);
76352
76353var _inherits3 = _interopRequireDefault(_inherits2);
76354
76355exports.default = virtual;
76356
76357var _react = __webpack_require__(0);
76358
76359var _react2 = _interopRequireDefault(_react);
76360
76361var _reactDom = __webpack_require__(12);
76362
76363var _propTypes = __webpack_require__(5);
76364
76365var _propTypes2 = _interopRequireDefault(_propTypes);
76366
76367var _reactLifecyclesCompat = __webpack_require__(10);
76368
76369var _util = __webpack_require__(6);
76370
76371var _body = __webpack_require__(439);
76372
76373var _body2 = _interopRequireDefault(_body);
76374
76375var _util2 = __webpack_require__(21);
76376
76377function _interopRequireDefault(obj) {
76378 return obj && obj.__esModule ? obj : { default: obj };
76379}
76380
76381var noop = function noop() {};
76382var THRESHOLD = 10;
76383function virtual(BaseComponent) {
76384 var _class, _temp;
76385
76386 var VirtualTable = (_temp = _class = function (_React$Component) {
76387 (0, _inherits3.default)(VirtualTable, _React$Component);
76388
76389 function VirtualTable(props, context) {
76390 (0, _classCallCheck3.default)(this, VirtualTable);
76391
76392 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
76393
76394 _this.onScroll = function () {
76395 // 避免横向滚动带来的性能问题
76396 var scrollTop = _this.bodyNode.scrollTop;
76397 if (scrollTop === _this.lastScrollTop) {
76398 return;
76399 }
76400 var start = _this.computeScrollToRow(scrollTop);
76401 if (!('scrollToRow' in _this.props)) {
76402 _this.setState({
76403 scrollToRow: start
76404 });
76405 }
76406 _this.props.onBodyScroll(start);
76407 _this.lastScrollTop = scrollTop;
76408 };
76409
76410 _this.getBodyNode = function (node, lockType) {
76411 lockType = lockType ? lockType.charAt(0).toUpperCase() + lockType.substr(1) : '';
76412 _this['body' + lockType + 'Node'] = node;
76413 };
76414
76415 _this.getTableInstance = function (type, instance) {
76416 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
76417 _this['table' + type + 'Inc'] = instance;
76418 };
76419
76420 var useVirtual = props.useVirtual,
76421 dataSource = props.dataSource;
76422
76423 var hasVirtualData = useVirtual && dataSource && dataSource.length > 0;
76424
76425 _this.state = {
76426 rowHeight: _this.props.rowHeight,
76427 scrollToRow: _this.props.scrollToRow,
76428 height: _this.props.maxBodyHeight,
76429 hasVirtualData: hasVirtualData
76430 };
76431 return _this;
76432 }
76433
76434 VirtualTable.prototype.getChildContext = function getChildContext() {
76435 return {
76436 onVirtualScroll: this.onScroll,
76437 bodyHeight: this.computeBodyHeight(),
76438 innerTop: this.computeInnerTop(),
76439 getBodyNode: this.getBodyNode,
76440 getTableInstanceForVirtual: this.getTableInstance,
76441 rowSelection: this.rowSelection
76442 };
76443 };
76444
76445 VirtualTable.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
76446 var state = {};
76447
76448 if ('maxBodyHeight' in nextProps) {
76449 if (prevState.height !== nextProps.maxBodyHeight) {
76450 state.height = nextProps.maxBodyHeight;
76451 }
76452 }
76453
76454 if ('scrollToRow' in nextProps) {
76455 state.scrollToRow = nextProps.scrollToRow;
76456 }
76457
76458 if (prevState.useVirtual !== nextProps.useVirtual || prevState.dataSource !== nextProps.dataSource) {
76459 state.hasVirtualData = nextProps.useVirtual && nextProps.dataSource && nextProps.dataSource.length > 0;
76460 }
76461
76462 return state;
76463 };
76464
76465 VirtualTable.prototype.componentDidMount = function componentDidMount() {
76466 if (this.state.hasVirtualData && this.bodyNode) {
76467 this.lastScrollTop = this.bodyNode.scrollTop;
76468 }
76469
76470 this.adjustScrollTop();
76471 this.adjustSize();
76472 this.reComputeSize();
76473 };
76474
76475 VirtualTable.prototype.componentDidUpdate = function componentDidUpdate() {
76476 this.adjustScrollTop();
76477 this.adjustSize();
76478 this.reComputeSize();
76479 };
76480
76481 VirtualTable.prototype.reComputeSize = function reComputeSize() {
76482 var _state = this.state,
76483 rowHeight = _state.rowHeight,
76484 hasVirtualData = _state.hasVirtualData;
76485
76486 if (typeof rowHeight === 'function' && hasVirtualData) {
76487 var row = this.getRowNode();
76488 var rowClientHeight = row && row.clientHeight;
76489 if (rowClientHeight !== this.state.rowHeight) {
76490 this.setState({
76491 rowHeight: rowClientHeight
76492 });
76493 }
76494 }
76495 };
76496
76497 VirtualTable.prototype.computeBodyHeight = function computeBodyHeight() {
76498 var rowHeight = this.state.rowHeight;
76499 var dataSource = this.props.dataSource;
76500
76501 if (typeof rowHeight === 'function') {
76502 return 0;
76503 }
76504 var count = 0;
76505 dataSource.forEach(function (item) {
76506 if (!item.__hidden) {
76507 count += 1;
76508 }
76509 });
76510 return count * rowHeight;
76511 };
76512
76513 VirtualTable.prototype.computeInnerTop = function computeInnerTop() {
76514 var rowHeight = this.state.rowHeight;
76515
76516 if (typeof rowHeight === 'function') {
76517 return 0;
76518 }
76519
76520 var start = Math.max(this.start - THRESHOLD, 0);
76521
76522 return start * rowHeight;
76523 };
76524
76525 VirtualTable.prototype.getVisibleRange = function getVisibleRange(ExpectStart) {
76526 var _state2 = this.state,
76527 height = _state2.height,
76528 rowHeight = _state2.rowHeight;
76529
76530 var len = this.props.dataSource.length;
76531
76532 var end = void 0,
76533 visibleCount = 0;
76534 var start = 0;
76535 if (typeof rowHeight === 'function') {
76536 // try get cell height;
76537 end = 1;
76538 } else {
76539 visibleCount = parseInt(_util.dom.getPixels(height) / rowHeight, 10);
76540
76541 if ('number' === typeof ExpectStart) {
76542 start = ExpectStart < len ? ExpectStart : 0;
76543 }
76544
76545 end = Math.min(+start + 1 + visibleCount + 10, len);
76546 }
76547 this.end = end;
76548 this.visibleCount = visibleCount;
76549 return {
76550 start: start,
76551 end: end
76552 };
76553 };
76554
76555 VirtualTable.prototype.adjustScrollTop = function adjustScrollTop() {
76556 if (this.state.hasVirtualData && this.bodyNode) {
76557 this.bodyNode.scrollTop = this.lastScrollTop % this.state.rowHeight + this.state.rowHeight * this.state.scrollToRow;
76558 }
76559 };
76560
76561 VirtualTable.prototype.adjustSize = function adjustSize() {
76562 if (this.state.hasVirtualData && this.bodyNode) {
76563 var body = this.bodyNode;
76564 var virtualScrollNode = body.querySelector('div');
76565 var clientHeight = body.clientHeight,
76566 clientWidth = body.clientWidth;
76567
76568 var tableInc = this.tableInc;
76569 var tableNode = (0, _reactDom.findDOMNode)(tableInc);
76570 var prefix = this.props.prefix;
76571
76572 var headerNode = tableNode.querySelector('.' + prefix + 'table-header table');
76573 var headerClientWidth = headerNode && headerNode.clientWidth;
76574 // todo 2.0 设置宽度这个可以去掉
76575 if (clientWidth < headerClientWidth) {
76576 _util.dom.setStyle(virtualScrollNode, 'min-width', headerClientWidth);
76577 var leftNode = this.bodyLeftNode;
76578 var rightNode = this.bodyRightNode;
76579 leftNode && _util.dom.setStyle(leftNode, 'max-height', clientHeight);
76580 rightNode && _util.dom.setStyle(rightNode, 'max-height', clientHeight);
76581 } else {
76582 _util.dom.setStyle(virtualScrollNode, 'min-width', 'auto');
76583 }
76584 }
76585 };
76586
76587 VirtualTable.prototype.computeScrollToRow = function computeScrollToRow(offset) {
76588 var rowHeight = this.state.rowHeight;
76589
76590 var start = parseInt(offset / rowHeight);
76591 this.start = start;
76592 return start;
76593 };
76594
76595 VirtualTable.prototype.getRowNode = function getRowNode() {
76596 try {
76597 // in case of finding an unmounted component due to cached data
76598 // need to clear refs of this.tableInc when dataSource Changed
76599 // use try catch for temporary
76600 return (0, _reactDom.findDOMNode)(this.tableInc.getRowRef(0));
76601 } catch (error) {
76602 return null;
76603 }
76604 };
76605
76606 VirtualTable.prototype.render = function render() {
76607 /* eslint-disable no-unused-vars, prefer-const */
76608 var _props = this.props,
76609 useVirtual = _props.useVirtual,
76610 components = _props.components,
76611 dataSource = _props.dataSource,
76612 fixedHeader = _props.fixedHeader,
76613 rowHeight = _props.rowHeight,
76614 scrollToRow = _props.scrollToRow,
76615 onBodyScroll = _props.onBodyScroll,
76616 others = (0, _objectWithoutProperties3.default)(_props, ['useVirtual', 'components', 'dataSource', 'fixedHeader', 'rowHeight', 'scrollToRow', 'onBodyScroll']);
76617
76618 var entireDataSource = dataSource;
76619 var newDataSource = dataSource;
76620
76621 this.rowSelection = this.props.rowSelection;
76622 if (this.state.hasVirtualData) {
76623 newDataSource = [];
76624 components = (0, _extends3.default)({}, components);
76625
76626 var _getVisibleRange = this.getVisibleRange(this.state.scrollToRow),
76627 start = _getVisibleRange.start,
76628 end = _getVisibleRange.end;
76629
76630 var count = -1;
76631 dataSource.forEach(function (current, index, record) {
76632 if (!current.__hidden) {
76633 count += 1;
76634 if (count >= Math.max(start - THRESHOLD, 0) && count < end) {
76635 newDataSource.push(current);
76636 }
76637 }
76638 current.__rowIndex = index;
76639 });
76640
76641 if (!components.Body) {
76642 components.Body = _body2.default;
76643 }
76644 fixedHeader = true;
76645 }
76646
76647 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
76648 scrollToRow: scrollToRow,
76649 dataSource: newDataSource,
76650 entireDataSource: entireDataSource,
76651 components: components,
76652 fixedHeader: fixedHeader
76653 }));
76654 };
76655
76656 return VirtualTable;
76657 }(_react2.default.Component), _class.VirtualBody = _body2.default, _class.propTypes = (0, _extends3.default)({
76658 /**
76659 * 是否开启虚拟滚动
76660 */
76661 useVirtual: _propTypes2.default.bool,
76662 /**
76663 * 设置行高
76664 */
76665 rowHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),
76666 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
76667 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
76668 dataSource: _propTypes2.default.array,
76669 /**
76670 * 在内容区域滚动的时候触发的函数
76671 */
76672 onBodyScroll: _propTypes2.default.func
76673 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps, {
76674 primaryKey: 'id',
76675 rowHeight: noop,
76676 maxBodyHeight: 200,
76677 components: {},
76678 prefix: 'next-',
76679 onBodyScroll: noop
76680 }), _class.childContextTypes = {
76681 onVirtualScroll: _propTypes2.default.func,
76682 bodyHeight: _propTypes2.default.number,
76683 innerTop: _propTypes2.default.number,
76684 getBodyNode: _propTypes2.default.func,
76685 getTableInstanceForVirtual: _propTypes2.default.func,
76686 rowSelection: _propTypes2.default.object
76687 }, _temp);
76688 VirtualTable.displayName = 'VirtualTable';
76689
76690 (0, _util2.statics)(VirtualTable, BaseComponent);
76691 return (0, _reactLifecyclesCompat.polyfill)(VirtualTable);
76692}
76693module.exports = exports['default'];
76694
76695/***/ }),
76696/* 439 */
76697/***/ (function(module, exports, __webpack_require__) {
76698
76699"use strict";
76700
76701
76702exports.__esModule = true;
76703exports.default = undefined;
76704
76705var _extends2 = __webpack_require__(1);
76706
76707var _extends3 = _interopRequireDefault(_extends2);
76708
76709var _objectWithoutProperties2 = __webpack_require__(8);
76710
76711var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
76712
76713var _classCallCheck2 = __webpack_require__(2);
76714
76715var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
76716
76717var _possibleConstructorReturn2 = __webpack_require__(3);
76718
76719var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
76720
76721var _inherits2 = __webpack_require__(4);
76722
76723var _inherits3 = _interopRequireDefault(_inherits2);
76724
76725var _class, _temp2;
76726
76727var _react = __webpack_require__(0);
76728
76729var _react2 = _interopRequireDefault(_react);
76730
76731var _reactDom = __webpack_require__(12);
76732
76733var _propTypes = __webpack_require__(5);
76734
76735var _propTypes2 = _interopRequireDefault(_propTypes);
76736
76737var _body = __webpack_require__(63);
76738
76739var _body2 = _interopRequireDefault(_body);
76740
76741function _interopRequireDefault(obj) {
76742 return obj && obj.__esModule ? obj : { default: obj };
76743}
76744
76745/* eslint-disable react/prefer-stateless-function */
76746var VirtualBody = (_temp2 = _class = function (_React$Component) {
76747 (0, _inherits3.default)(VirtualBody, _React$Component);
76748
76749 function VirtualBody() {
76750 var _temp, _this, _ret;
76751
76752 (0, _classCallCheck3.default)(this, VirtualBody);
76753
76754 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
76755 args[_key] = arguments[_key];
76756 }
76757
76758 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.tableRef = function (table) {
76759 _this.tableNode = table;
76760 }, _this.virtualScrollRef = function (virtualScroll) {
76761 _this.virtualScrollNode = virtualScroll;
76762 }, _this.onScroll = function (current) {
76763 // for fixed
76764 _this.context.onFixedScrollSync(current);
76765 // for lock
76766 _this.context.onLockBodyScroll(current);
76767 // for virtual
76768 _this.context.onVirtualScroll();
76769 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
76770 }
76771
76772 VirtualBody.prototype.componentDidMount = function componentDidMount() {
76773 var bodyNode = (0, _reactDom.findDOMNode)(this);
76774 // // for fixed
76775 this.context.getNode('body', bodyNode);
76776 // for virtual
76777 this.context.getBodyNode(bodyNode, this.context.lockType);
76778 // for lock
76779 this.context.getLockNode('body', bodyNode, this.context.lockType);
76780 };
76781
76782 VirtualBody.prototype.render = function render() {
76783 var _props = this.props,
76784 prefix = _props.prefix,
76785 className = _props.className,
76786 colGroup = _props.colGroup,
76787 tableWidth = _props.tableWidth,
76788 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'colGroup', 'tableWidth']);
76789 var _context = this.context,
76790 maxBodyHeight = _context.maxBodyHeight,
76791 bodyHeight = _context.bodyHeight,
76792 innerTop = _context.innerTop;
76793
76794 var style = {
76795 width: tableWidth
76796 };
76797 var wrapperStyle = {
76798 position: 'relative'
76799 };
76800 // todo 2.0 ,这里最好自己画滚动条
76801 if (bodyHeight > maxBodyHeight) {
76802 wrapperStyle.height = bodyHeight;
76803 }
76804 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', {
76805 style: {
76806 position: 'relative',
76807 transform: 'translateY(' + innerTop + 'px)',
76808 willChange: 'transform'
76809 }
76810 }, _react2.default.createElement('table', { ref: this.tableRef, style: style }, colGroup, _react2.default.createElement(_body2.default, (0, _extends3.default)({}, others, { prefix: prefix }))))));
76811 };
76812
76813 return VirtualBody;
76814}(_react2.default.Component), _class.propTypes = {
76815 children: _propTypes2.default.any,
76816 prefix: _propTypes2.default.string,
76817 className: _propTypes2.default.string,
76818 colGroup: _propTypes2.default.any,
76819 tableWidth: _propTypes2.default.number
76820}, _class.contextTypes = {
76821 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
76822 onBodyScroll: _propTypes2.default.func,
76823 onFixedScrollSync: _propTypes2.default.func,
76824 onVirtualScroll: _propTypes2.default.func,
76825 onLockBodyScroll: _propTypes2.default.func,
76826 bodyHeight: _propTypes2.default.number,
76827 innerTop: _propTypes2.default.number,
76828 getNode: _propTypes2.default.func,
76829 getBodyNode: _propTypes2.default.func,
76830 getLockNode: _propTypes2.default.func,
76831 lockType: _propTypes2.default.oneOf(['left', 'right'])
76832}, _temp2);
76833VirtualBody.displayName = 'VirtualBody';
76834exports.default = VirtualBody;
76835module.exports = exports['default'];
76836
76837/***/ }),
76838/* 440 */
76839/***/ (function(module, exports, __webpack_require__) {
76840
76841"use strict";
76842
76843
76844exports.__esModule = true;
76845
76846var _objectWithoutProperties2 = __webpack_require__(8);
76847
76848var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
76849
76850var _typeof2 = __webpack_require__(14);
76851
76852var _typeof3 = _interopRequireDefault(_typeof2);
76853
76854var _extends2 = __webpack_require__(1);
76855
76856var _extends3 = _interopRequireDefault(_extends2);
76857
76858var _classCallCheck2 = __webpack_require__(2);
76859
76860var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
76861
76862var _possibleConstructorReturn2 = __webpack_require__(3);
76863
76864var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
76865
76866var _inherits2 = __webpack_require__(4);
76867
76868var _inherits3 = _interopRequireDefault(_inherits2);
76869
76870exports.default = lock;
76871
76872var _react = __webpack_require__(0);
76873
76874var _react2 = _interopRequireDefault(_react);
76875
76876var _reactDom = __webpack_require__(12);
76877
76878var _propTypes = __webpack_require__(5);
76879
76880var _propTypes2 = _interopRequireDefault(_propTypes);
76881
76882var _classnames2 = __webpack_require__(7);
76883
76884var _classnames3 = _interopRequireDefault(_classnames2);
76885
76886var _shallowElementEquals = __webpack_require__(102);
76887
76888var _shallowElementEquals2 = _interopRequireDefault(_shallowElementEquals);
76889
76890var _util = __webpack_require__(6);
76891
76892var _row = __webpack_require__(104);
76893
76894var _row2 = _interopRequireDefault(_row);
76895
76896var _body = __webpack_require__(189);
76897
76898var _body2 = _interopRequireDefault(_body);
76899
76900var _header = __webpack_require__(190);
76901
76902var _header2 = _interopRequireDefault(_header);
76903
76904var _wrapper = __webpack_require__(67);
76905
76906var _wrapper2 = _interopRequireDefault(_wrapper);
76907
76908var _util2 = __webpack_require__(21);
76909
76910function _interopRequireDefault(obj) {
76911 return obj && obj.__esModule ? obj : { default: obj };
76912}
76913
76914var ieVersion = _util.env.ieVersion;
76915function lock(BaseComponent) {
76916 var _class, _temp;
76917
76918 /** Table */
76919 var LockTable = (_temp = _class = function (_React$Component) {
76920 (0, _inherits3.default)(LockTable, _React$Component);
76921
76922 function LockTable(props, context) {
76923 (0, _classCallCheck3.default)(this, LockTable);
76924
76925 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
76926
76927 _this.state = {};
76928
76929 _this.getTableInstance = function (type, instance) {
76930 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
76931 _this['table' + type + 'Inc'] = instance;
76932 };
76933
76934 _this.getNode = function (type, node, lockType) {
76935 lockType = lockType ? lockType.charAt(0).toUpperCase() + lockType.substr(1) : '';
76936 _this['' + type + lockType + 'Node'] = node;
76937 if (type === 'header' && !_this.innerHeaderNode && !lockType) {
76938 _this.innerHeaderNode = _this.headerNode.querySelector('div');
76939 }
76940 };
76941
76942 _this.onRowMouseEnter = function (record, index) {
76943 if (_this.isLock()) {
76944 var row = _this.getRowNode(index);
76945 var leftRow = _this.getRowNode(index, 'left');
76946 var rightRow = _this.getRowNode(index, 'right');
76947 [row, leftRow, rightRow].forEach(function (row) {
76948 row && _util.dom.addClass(row, 'hovered');
76949 });
76950 }
76951 };
76952
76953 _this.onRowMouseLeave = function (record, index) {
76954 if (_this.isLock()) {
76955 var row = _this.getRowNode(index);
76956 var leftRow = _this.getRowNode(index, 'left');
76957 var rightRow = _this.getRowNode(index, 'right');
76958 [row, leftRow, rightRow].forEach(function (row) {
76959 row && _util.dom.removeClass(row, 'hovered');
76960 });
76961 }
76962 };
76963
76964 _this.onLockBodyScrollTop = function (event) {
76965 // set scroll top for lock columns & main body
76966 var target = event.target;
76967 if (event.currentTarget !== target) {
76968 return;
76969 }
76970 var distScrollTop = target.scrollTop;
76971
76972 if (_this.isLock() && distScrollTop !== _this.lastScrollTop) {
76973 var lockRightBody = _this.bodyRightNode,
76974 lockLeftBody = _this.bodyLeftNode,
76975 bodyNode = _this.bodyNode;
76976
76977 var arr = [lockLeftBody, lockRightBody, bodyNode];
76978
76979 arr.forEach(function (node) {
76980 if (node && node.scrollTop !== distScrollTop) {
76981 node.scrollTop = distScrollTop;
76982 }
76983 });
76984
76985 _this.lastScrollTop = distScrollTop;
76986 }
76987 };
76988
76989 _this.onLockBodyScrollLeft = function () {
76990 // add shadow class for lock columns
76991 if (_this.isLock()) {
76992 var rtl = _this.props.rtl;
76993
76994 var lockRightTable = rtl ? _this.getWrapperNode('left') : _this.getWrapperNode('right'),
76995 lockLeftTable = rtl ? _this.getWrapperNode('right') : _this.getWrapperNode('left'),
76996 shadowClassName = 'shadow';
76997
76998 var x = _this.bodyNode.scrollLeft;
76999
77000 if (x === 0) {
77001 lockLeftTable && _util.dom.removeClass(lockLeftTable, shadowClassName);
77002 lockRightTable && _util.dom.addClass(lockRightTable, shadowClassName);
77003 } else if (x === _this.bodyNode.scrollWidth - _this.bodyNode.clientWidth) {
77004 lockLeftTable && _util.dom.addClass(lockLeftTable, shadowClassName);
77005 lockRightTable && _util.dom.removeClass(lockRightTable, shadowClassName);
77006 } else {
77007 lockLeftTable && _util.dom.addClass(lockLeftTable, shadowClassName);
77008 lockRightTable && _util.dom.addClass(lockRightTable, shadowClassName);
77009 }
77010 }
77011 };
77012
77013 _this.onLockBodyScroll = function (event) {
77014 _this.onLockBodyScrollTop(event);
77015 _this.onLockBodyScrollLeft();
77016 };
77017
77018 _this.adjustSize = function () {
77019 if (!_this.adjustIfTableNotNeedLock()) {
77020 _this.adjustHeaderSize();
77021 _this.adjustBodySize();
77022 _this.adjustRowHeight();
77023 _this.onLockBodyScrollLeft();
77024 }
77025 };
77026
77027 _this.getFlatenChildrenLength = function () {
77028 var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
77029
77030 var loop = function loop(arr) {
77031 var newArray = [];
77032 arr.forEach(function (child) {
77033 if (child && child.children) {
77034 newArray.push.apply(newArray, loop(child.children));
77035 } else {
77036 newArray.push(child);
77037 }
77038 });
77039 return newArray;
77040 };
77041
77042 return loop(children).length;
77043 };
77044
77045 _this.saveLockLeftRef = function (ref) {
77046 _this.lockLeftEl = ref;
77047 };
77048
77049 _this.saveLockRightRef = function (ref) {
77050 _this.lockRightEl = ref;
77051 };
77052
77053 _this.lockLeftChildren = [];
77054 _this.lockRightChildren = [];
77055 return _this;
77056 }
77057
77058 LockTable.prototype.getChildContext = function getChildContext() {
77059 return {
77060 getTableInstance: this.getTableInstance,
77061 getLockNode: this.getNode,
77062 onLockBodyScroll: this.onLockBodyScroll,
77063 onRowMouseEnter: this.onRowMouseEnter,
77064 onRowMouseLeave: this.onRowMouseLeave
77065 };
77066 };
77067
77068 LockTable.prototype.componentDidMount = function componentDidMount() {
77069 _util.events.on(window, 'resize', this.adjustSize);
77070
77071 this.scroll();
77072 this.adjustSize();
77073 this.forceUpdate();
77074 };
77075
77076 LockTable.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState, nextContext) {
77077 if (nextProps.pure) {
77078 var isEqual = (0, _shallowElementEquals2.default)(nextProps, this.props);
77079 return !(isEqual && _util.obj.shallowEqual(nextContext, this.context));
77080 }
77081
77082 return true;
77083 };
77084
77085 LockTable.prototype.componentDidUpdate = function componentDidUpdate() {
77086 this.adjustSize();
77087 this._isLock = false;
77088 };
77089
77090 LockTable.prototype.componentWillUnmount = function componentWillUnmount() {
77091 _util.events.off(window, 'resize', this.adjustSize);
77092 };
77093
77094 LockTable.prototype.normalizeChildrenState = function normalizeChildrenState(props) {
77095 var columns = this.normalizeChildren(props);
77096 var splitChildren = this.splitFromNormalizeChildren(columns);
77097 var lockLeftChildren = splitChildren.lockLeftChildren,
77098 lockRightChildren = splitChildren.lockRightChildren;
77099
77100 return {
77101 lockLeftChildren: lockLeftChildren,
77102 lockRightChildren: lockRightChildren,
77103 children: this.mergeFromSplitLockChildren(splitChildren)
77104 };
77105 };
77106
77107 // 将React结构化数据提取props转换成数组
77108
77109
77110 LockTable.prototype.normalizeChildren = function normalizeChildren(props) {
77111 var children = props.children,
77112 columns = props.columns;
77113
77114 var isLock = false,
77115 ret = void 0;
77116 var checkLock = function checkLock(col) {
77117 if ([true, 'left', 'right'].indexOf(col.lock) > -1) {
77118 if (!('width' in col)) {
77119 _util.log.warning('Should config width for lock column named [ ' + col.dataIndex + ' ].');
77120 }
77121 isLock = true;
77122 }
77123 };
77124 if (columns && !children) {
77125 ret = columns;
77126
77127 var getColumns = function getColumns(cols) {
77128 cols.forEach(function () {
77129 var col = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
77130
77131 checkLock(col);
77132
77133 if (col.children) {
77134 getColumns(col.children);
77135 }
77136 });
77137 };
77138
77139 getColumns(columns);
77140 } else {
77141 var getChildren = function getChildren(children) {
77142 var ret = [];
77143 _react.Children.forEach(children, function (child) {
77144 if (child) {
77145 var _props = (0, _extends3.default)({}, child.props);
77146 checkLock(_props);
77147 ret.push(_props);
77148 if (child.props.children) {
77149 _props.children = getChildren(child.props.children);
77150 }
77151 }
77152 });
77153 return ret;
77154 };
77155
77156 ret = getChildren(children);
77157 }
77158
77159 ret.forEach(function (child) {
77160 // 为自定义的列特殊处理
77161 if (child.__normalized && isLock) {
77162 // users can set lock type for column selection now, so its origin lock type comes first
77163 child.lock = child.lock || 'left';
77164 delete child.__normalized;
77165 }
77166 });
77167 this._isLock = isLock;
77168 return ret;
77169 };
77170
77171 //从数组中分离出lock的列和正常的列
77172
77173
77174 LockTable.prototype.splitFromNormalizeChildren = function splitFromNormalizeChildren(children) {
77175 var originChildren = deepCopy(children);
77176 var lockLeftChildren = deepCopy(children);
77177 var lockRightChildren = deepCopy(children);
77178 var loop = function loop(lockChildren, condition) {
77179 var ret = [];
77180 lockChildren.forEach(function (child) {
77181 if (child.children) {
77182 var res = loop(child.children, condition);
77183 if (!res.length) {
77184 ret.push(child);
77185 }
77186 } else {
77187 var order = condition(child);
77188 if (!order) {
77189 ret.push(child);
77190 }
77191 }
77192 });
77193 ret.forEach(function (res) {
77194 var index = lockChildren.indexOf(res);
77195 lockChildren.splice(index, 1);
77196 });
77197 return lockChildren;
77198 };
77199 loop(lockLeftChildren, function (child) {
77200 if (child.lock === true || child.lock === 'left') {
77201 return 'left';
77202 }
77203 });
77204 loop(lockRightChildren, function (child) {
77205 if (child.lock === 'right') {
77206 return 'right';
77207 }
77208 });
77209 loop(originChildren, function (child) {
77210 return child.lock !== true && child.lock !== 'left' && child.lock !== 'right';
77211 });
77212 return {
77213 lockLeftChildren: lockLeftChildren,
77214 lockRightChildren: lockRightChildren,
77215 originChildren: originChildren
77216 };
77217 };
77218
77219 //将左侧的锁列树和中间的普通树及右侧的锁列树进行合并
77220
77221
77222 LockTable.prototype.mergeFromSplitLockChildren = function mergeFromSplitLockChildren(splitChildren) {
77223 var lockLeftChildren = splitChildren.lockLeftChildren,
77224 lockRightChildren = splitChildren.lockRightChildren;
77225 var originChildren = splitChildren.originChildren;
77226
77227 Array.prototype.unshift.apply(originChildren, lockLeftChildren);
77228 originChildren = originChildren.concat(lockRightChildren);
77229 return originChildren;
77230 };
77231
77232 LockTable.prototype.scroll = function scroll() {
77233 var _props2 = this.props,
77234 _props2$scrollToCol = _props2.scrollToCol,
77235 scrollToCol = _props2$scrollToCol === undefined ? 0 : _props2$scrollToCol,
77236 _props2$scrollToRow = _props2.scrollToRow,
77237 scrollToRow = _props2$scrollToRow === undefined ? 0 : _props2$scrollToRow;
77238
77239 if (!scrollToCol && !scrollToRow || !this.bodyNode) {
77240 return;
77241 }
77242 var colCellNode = this.getCellNode(0, scrollToCol);
77243 var rowCellNode = this.getCellNode(scrollToRow, 0);
77244 var bodyNodeOffset = this.bodyNode.getBoundingClientRect() || {};
77245 if (colCellNode) {
77246 var cellNodeoffset = colCellNode.getBoundingClientRect();
77247 var scrollLeft = cellNodeoffset.left - bodyNodeOffset.left;
77248 this.bodyNode.scrollLeft = scrollLeft;
77249 }
77250 if (rowCellNode) {
77251 var _cellNodeoffset = rowCellNode.getBoundingClientRect();
77252 var scrollTop = _cellNodeoffset.top - bodyNodeOffset.top;
77253 this.bodyNode.scrollTop = scrollTop;
77254 }
77255 };
77256
77257 // Table处理过后真实的lock状态
77258 LockTable.prototype.isLock = function isLock() {
77259 return this.lockLeftChildren.length || this.lockRightChildren.length;
77260 };
77261
77262 // 用户设置的lock状态
77263
77264
77265 LockTable.prototype.isOriginLock = function isOriginLock() {
77266 return this._isLock;
77267 };
77268
77269 LockTable.prototype.removeLockTable = function removeLockTable() {
77270 var lockLeftLen = this.lockLeftChildren.length;
77271 var lockRightLen = this.lockRightChildren.length;
77272
77273 if (lockLeftLen) {
77274 this._notNeedAdjustLockLeft = true;
77275 }
77276 if (lockRightLen) {
77277 this._notNeedAdjustLockRight = true;
77278 }
77279 if (lockRightLen || lockLeftLen) {
77280 this.forceUpdate();
77281 return true;
77282 }
77283 };
77284
77285 LockTable.prototype.adjustIfTableNotNeedLock = function adjustIfTableNotNeedLock() {
77286 var _this2 = this;
77287
77288 if (this.isOriginLock()) {
77289 var widthObj = this.tableInc.flatChildren.map(function (item, index) {
77290 var cell = _this2.getCellNode(0, index) || {};
77291 var headerCell = _this2.getHeaderCellNode(0, index) || {};
77292
77293 // fix https://codesandbox.io/s/fusion-next-template-d9bu8
77294 // close #1832
77295 try {
77296 return {
77297 cellWidths: parseFloat(getComputedStyle(cell).width) || 0,
77298 headerWidths: parseFloat(getComputedStyle(headerCell).width) || 0
77299 };
77300 } catch (error) {
77301 return {
77302 cellWidths: cell.clientWidth || 0,
77303 headerWidths: headerCell.clientWidth || 0
77304 };
77305 }
77306 }).reduce(function (a, b) {
77307 return {
77308 cellWidths: a.cellWidths + b.cellWidths,
77309 headerWidths: a.headerWidths + b.headerWidths
77310 };
77311 }, {
77312 cellWidths: 0,
77313 headerWidths: 0
77314 });
77315
77316 var node = void 0,
77317 width = void 0;
77318
77319 try {
77320 node = (0, _reactDom.findDOMNode)(this);
77321 width = node.clientWidth;
77322 } catch (err) {
77323 node = null;
77324 width = 0;
77325 }
77326
77327 // if the table doesn't exist, there is no need to adjust
77328 if (width === 0) {
77329 return true;
77330 }
77331
77332 var configWidths = parseInt(widthObj.cellWidths) || parseInt(widthObj.headerWidths);
77333
77334 if (configWidths <= width && configWidths > 0) {
77335 this.removeLockTable();
77336 } else if (this._notNeedAdjustLockLeft || this._notNeedAdjustLockRight) {
77337 this._notNeedAdjustLockLeft = this._notNeedAdjustLockRight = false;
77338 this.forceUpdate();
77339 } else {
77340 this._notNeedAdjustLockLeft = this._notNeedAdjustLockRight = false;
77341 return false;
77342 }
77343 }
77344
77345 return false;
77346 };
77347
77348 LockTable.prototype.adjustBodySize = function adjustBodySize() {
77349 var _style;
77350
77351 var _props3 = this.props,
77352 rtl = _props3.rtl,
77353 hasHeader = _props3.hasHeader;
77354
77355 var header = this.headerNode;
77356 var paddingName = rtl ? 'paddingLeft' : 'paddingRight';
77357 var marginName = rtl ? 'marginLeft' : 'marginRight';
77358 var scrollBarSize = +_util.dom.scrollbar().width || 0;
77359 var style = (_style = {}, _style[paddingName] = scrollBarSize, _style[marginName] = scrollBarSize, _style);
77360 var body = this.bodyNode,
77361 hasVerScroll = body && body.scrollHeight > body.clientHeight;
77362
77363 if (this.isLock()) {
77364 var lockLeftBody = this.bodyLeftNode,
77365 lockRightBody = this.bodyRightNode,
77366 lockRightBodyWrapper = this.getWrapperNode('right'),
77367 bodyHeight = body.offsetHeight,
77368 width = hasVerScroll ? scrollBarSize : 0,
77369 lockBodyHeight = bodyHeight - scrollBarSize;
77370
77371 if (!hasVerScroll) {
77372 style[paddingName] = 0;
77373 style[marginName] = 0;
77374 }
77375 if (+scrollBarSize) {
77376 style.marginBottom = -scrollBarSize;
77377 style.paddingBottom = scrollBarSize;
77378 } else {
77379 style.marginBottom = -20;
77380 style.paddingBottom = 20;
77381 }
77382
77383 var lockStyle = {
77384 'max-height': lockBodyHeight
77385 };
77386 if (!hasHeader && !+scrollBarSize) {
77387 lockStyle[marginName] = 0;
77388 }
77389 if (+scrollBarSize) {
77390 lockStyle[marginName] = -scrollBarSize;
77391 }
77392 lockLeftBody && _util.dom.setStyle(lockLeftBody, lockStyle);
77393 lockRightBody && _util.dom.setStyle(lockRightBody, lockStyle);
77394 lockRightBodyWrapper && +scrollBarSize && _util.dom.setStyle(lockRightBodyWrapper, rtl ? 'left' : 'right', width + 'px');
77395 } else {
77396 style.marginBottom = -scrollBarSize;
77397 style.paddingBottom = scrollBarSize;
77398 style[marginName] = 0;
77399 if (!hasVerScroll) {
77400 style[paddingName] = 0;
77401 }
77402 }
77403
77404 header && _util.dom.setStyle(header, style);
77405 };
77406
77407 LockTable.prototype.adjustHeaderSize = function adjustHeaderSize() {
77408 var _this3 = this;
77409
77410 if (this.isLock()) {
77411 this.tableInc.groupChildren.forEach(function (child, index) {
77412 var lastIndex = _this3.tableInc.groupChildren[index].length - 1;
77413 var headerRightRow = _this3.getHeaderCellNode(index, lastIndex),
77414 headerLeftRow = _this3.getHeaderCellNode(index, 0),
77415 headerRightLockRow = _this3.getHeaderCellNode(index, 0, 'right'),
77416 headerLeftLockRow = _this3.getHeaderCellNode(index, 0, 'left');
77417
77418 if (headerRightRow && headerRightLockRow) {
77419 var maxRightRowHeight = headerRightRow.offsetHeight;
77420
77421 _util.dom.setStyle(headerRightLockRow, 'height', maxRightRowHeight);
77422
77423 setTimeout(function () {
77424 var affixRef = _this3.tableRightInc.affixRef;
77425 // if rendered then update postion of affix
77426 return affixRef && affixRef.getInstance() && affixRef.getInstance().updatePosition();
77427 });
77428 }
77429
77430 if (headerLeftRow && headerLeftLockRow) {
77431 var maxLeftRowHeight = headerLeftRow.offsetHeight;
77432
77433 _util.dom.setStyle(headerLeftLockRow, 'height', maxLeftRowHeight);
77434
77435 setTimeout(function () {
77436 var affixRef = _this3.tableLeftInc.affixRef;
77437 // if rendered then update postion of affix
77438 return affixRef && affixRef.getInstance() && affixRef.getInstance().updatePosition();
77439 });
77440 }
77441 });
77442 }
77443 };
77444
77445 LockTable.prototype.adjustRowHeight = function adjustRowHeight() {
77446 var _this4 = this;
77447
77448 if (this.isLock()) {
77449 this.tableInc.props.dataSource.forEach(function (item, index) {
77450 // record may be a string
77451 var rowIndex = '' + ((typeof item === 'undefined' ? 'undefined' : (0, _typeof3.default)(item)) === 'object' && '__rowIndex' in item ? item.__rowIndex : index) + (item.__expanded ? '_expanded' : '');
77452
77453 // 同步左侧的锁列
77454 _this4.setRowHeight(rowIndex, 'left');
77455 // 同步右侧的锁列
77456 _this4.setRowHeight(rowIndex, 'right');
77457 });
77458 }
77459 };
77460
77461 LockTable.prototype.setRowHeight = function setRowHeight(rowIndex, dir) {
77462 var lockRow = this.getRowNode(rowIndex, dir),
77463 row = this.getRowNode(rowIndex),
77464 rowHeight = (ieVersion ? row && row.offsetHeight : row && parseFloat(getComputedStyle(row).height)) || 'auto',
77465 lockHeight = (ieVersion ? lockRow && lockRow.offsetHeight : lockRow && parseFloat(getComputedStyle(lockRow).height)) || 'auto';
77466
77467 if (lockRow && rowHeight !== lockHeight) {
77468 _util.dom.setStyle(lockRow, 'height', rowHeight);
77469 }
77470 };
77471
77472 LockTable.prototype.getWrapperNode = function getWrapperNode(type) {
77473 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
77474 try {
77475 // in case of finding an unmounted component due to cached data
77476 // need to clear refs of table when dataSource Changed
77477 // use try catch for temporary
77478 return (0, _reactDom.findDOMNode)(this['lock' + type + 'El']);
77479 } catch (error) {
77480 return null;
77481 }
77482 };
77483
77484 // remove this in next major version, keep this for temperary incase of using it
77485 // getFirstNormalCellNode(index) {
77486 // let i = 0;
77487 // let row;
77488 // do {
77489 // row = this.getCellNode(index, i);
77490 // i++;
77491 // } while (
77492 // (!row || (row && row.rowSpan && row.rowSpan > 1)) &&
77493 // this.tableInc.flatChildren.length > i
77494 // );
77495
77496 // return row;
77497 // }
77498
77499 LockTable.prototype.getRowNode = function getRowNode(index, type) {
77500 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
77501 var table = this['table' + type + 'Inc'];
77502
77503 try {
77504 // in case of finding an unmounted component due to cached data
77505 // need to clear refs of table when dataSource Changed
77506 // use try catch for temporary
77507 return (0, _reactDom.findDOMNode)(table.getRowRef(index));
77508 } catch (error) {
77509 return null;
77510 }
77511 };
77512
77513 LockTable.prototype.getHeaderCellNode = function getHeaderCellNode(index, i, type) {
77514 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
77515 var table = this['table' + type + 'Inc'];
77516
77517 try {
77518 // in case of finding an unmounted component due to cached data
77519 // need to clear refs of table when dataSource Changed
77520 // use try catch for temporary
77521 return (0, _reactDom.findDOMNode)(table.getHeaderCellRef(index, i));
77522 } catch (error) {
77523 return null;
77524 }
77525 };
77526
77527 LockTable.prototype.getCellNode = function getCellNode(index, i, type) {
77528 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
77529 var table = this['table' + type + 'Inc'];
77530
77531 try {
77532 // in case of finding an unmounted component due to cached data
77533 // need to clear refs of table when dataSource Changed
77534 // use try catch for temporary
77535 return (0, _reactDom.findDOMNode)(table.getCellRef(index, i));
77536 } catch (error) {
77537 return null;
77538 }
77539 };
77540
77541 LockTable.prototype.render = function render() {
77542 /* eslint-disable no-unused-vars, prefer-const */
77543 var _props4 = this.props,
77544 children = _props4.children,
77545 columns = _props4.columns,
77546 prefix = _props4.prefix,
77547 components = _props4.components,
77548 className = _props4.className,
77549 dataSource = _props4.dataSource,
77550 tableWidth = _props4.tableWidth,
77551 others = (0, _objectWithoutProperties3.default)(_props4, ['children', 'columns', 'prefix', 'components', 'className', 'dataSource', 'tableWidth']);
77552
77553 var _normalizeChildrenSta = this.normalizeChildrenState(this.props),
77554 lockLeftChildren = _normalizeChildrenSta.lockLeftChildren,
77555 lockRightChildren = _normalizeChildrenSta.lockRightChildren,
77556 normalizedChildren = _normalizeChildrenSta.children;
77557
77558 var leftLen = this.getFlatenChildrenLength(lockLeftChildren);
77559 var rightLen = this.getFlatenChildrenLength(lockRightChildren);
77560 var originLen = this.getFlatenChildrenLength(normalizedChildren);
77561
77562 var lengths = {
77563 left: leftLen,
77564 right: rightLen,
77565 origin: originLen
77566 };
77567 if (this._notNeedAdjustLockLeft) {
77568 lockLeftChildren = [];
77569 }
77570 if (this._notNeedAdjustLockRight) {
77571 lockRightChildren = [];
77572 }
77573 this.lockLeftChildren = lockLeftChildren;
77574 this.lockRightChildren = lockRightChildren;
77575
77576 if (this.isOriginLock()) {
77577 var _classnames;
77578
77579 components = (0, _extends3.default)({}, components);
77580 components.Body = components.Body || _body2.default;
77581 components.Header = components.Header || _header2.default;
77582 components.Wrapper = components.Wrapper || _wrapper2.default;
77583 components.Row = components.Row || _row2.default;
77584 className = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-lock'] = true, _classnames[prefix + 'table-wrap-empty'] = !dataSource.length, _classnames[className] = className, _classnames));
77585 var content = [_react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
77586 dataSource: dataSource,
77587 key: 'lock-left',
77588 columns: lockLeftChildren,
77589 className: prefix + 'table-lock-left',
77590 lengths: lengths,
77591 prefix: prefix,
77592 lockType: 'left',
77593 components: components,
77594 ref: this.saveLockLeftRef,
77595 loading: false,
77596 'aria-hidden': true
77597 })), _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
77598 dataSource: dataSource,
77599 key: 'lock-right',
77600 columns: lockRightChildren,
77601 className: prefix + 'table-lock-right',
77602 lengths: lengths,
77603 prefix: prefix,
77604 lockType: 'right',
77605 components: components,
77606 ref: this.saveLockRightRef,
77607 loading: false,
77608 'aria-hidden': true
77609 }))];
77610 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
77611 tableWidth: tableWidth,
77612 dataSource: dataSource,
77613 columns: normalizedChildren,
77614 prefix: prefix,
77615 lengths: lengths,
77616 wrapperContent: content,
77617 components: components,
77618 className: className
77619 }));
77620 }
77621 return _react2.default.createElement(BaseComponent, this.props);
77622 };
77623
77624 return LockTable;
77625 }(_react2.default.Component), _class.LockRow = _row2.default, _class.LockBody = _body2.default, _class.LockHeader = _header2.default, _class.propTypes = (0, _extends3.default)({
77626 scrollToCol: _propTypes2.default.number,
77627 /**
77628 * 指定滚动到某一行,仅在`useVirtual`的时候生效
77629 */
77630 scrollToRow: _propTypes2.default.number
77631 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps), _class.childContextTypes = {
77632 getTableInstance: _propTypes2.default.func,
77633 getLockNode: _propTypes2.default.func,
77634 onLockBodyScroll: _propTypes2.default.func,
77635 onRowMouseEnter: _propTypes2.default.func,
77636 onRowMouseLeave: _propTypes2.default.func
77637 }, _temp);
77638 LockTable.displayName = 'LockTable';
77639
77640 (0, _util2.statics)(LockTable, BaseComponent);
77641 return LockTable;
77642}
77643
77644function deepCopy(arr) {
77645 var copy = function copy(arr) {
77646 return arr.map(function (item) {
77647 var newItem = (0, _extends3.default)({}, item);
77648 if (item.children) {
77649 item.children = copy(item.children);
77650 }
77651 return newItem;
77652 });
77653 };
77654 return copy(arr);
77655}
77656module.exports = exports['default'];
77657
77658/***/ }),
77659/* 441 */
77660/***/ (function(module, exports, __webpack_require__) {
77661
77662"use strict";
77663
77664
77665exports.__esModule = true;
77666
77667var _objectWithoutProperties2 = __webpack_require__(8);
77668
77669var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
77670
77671var _extends2 = __webpack_require__(1);
77672
77673var _extends3 = _interopRequireDefault(_extends2);
77674
77675var _classCallCheck2 = __webpack_require__(2);
77676
77677var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
77678
77679var _possibleConstructorReturn2 = __webpack_require__(3);
77680
77681var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
77682
77683var _inherits2 = __webpack_require__(4);
77684
77685var _inherits3 = _interopRequireDefault(_inherits2);
77686
77687exports.default = stickyLock;
77688
77689var _react = __webpack_require__(0);
77690
77691var _react2 = _interopRequireDefault(_react);
77692
77693var _reactDom = __webpack_require__(12);
77694
77695var _propTypes = __webpack_require__(5);
77696
77697var _propTypes2 = _interopRequireDefault(_propTypes);
77698
77699var _classnames2 = __webpack_require__(7);
77700
77701var _classnames3 = _interopRequireDefault(_classnames2);
77702
77703var _shallowElementEquals = __webpack_require__(102);
77704
77705var _shallowElementEquals2 = _interopRequireDefault(_shallowElementEquals);
77706
77707var _util = __webpack_require__(6);
77708
77709var _row = __webpack_require__(104);
77710
77711var _row2 = _interopRequireDefault(_row);
77712
77713var _body = __webpack_require__(189);
77714
77715var _body2 = _interopRequireDefault(_body);
77716
77717var _header = __webpack_require__(190);
77718
77719var _header2 = _interopRequireDefault(_header);
77720
77721var _wrapper = __webpack_require__(67);
77722
77723var _wrapper2 = _interopRequireDefault(_wrapper);
77724
77725var _util2 = __webpack_require__(21);
77726
77727function _interopRequireDefault(obj) {
77728 return obj && obj.__esModule ? obj : { default: obj };
77729}
77730
77731function stickyLock(BaseComponent) {
77732 var _class, _temp;
77733
77734 /** Table */
77735 var LockTable = (_temp = _class = function (_React$Component) {
77736 (0, _inherits3.default)(LockTable, _React$Component);
77737
77738 function LockTable(props, context) {
77739 (0, _classCallCheck3.default)(this, LockTable);
77740
77741 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
77742
77743 _this.state = {};
77744
77745 _this.updateOffsetArr = function () {
77746 var _ref = _this.splitChildren || {},
77747 lockLeftChildren = _ref.lockLeftChildren,
77748 lockRightChildren = _ref.lockRightChildren,
77749 originChildren = _ref.originChildren;
77750
77751 var leftLen = _this.getFlatenChildren(lockLeftChildren).length;
77752 var rightLen = _this.getFlatenChildren(lockRightChildren).length;
77753 var totalLen = leftLen + rightLen + _this.getFlatenChildren(originChildren).length;
77754
77755 var hasLockLeft = leftLen > 0;
77756 var hasLockRight = rightLen > 0;
77757
77758 var leftOffsetArr = _this.getStickyWidth(lockLeftChildren, 'left', totalLen);
77759 var rightOffsetArr = _this.getStickyWidth(lockRightChildren, 'right', totalLen);
77760
77761 var state = {};
77762
77763 if ('' + leftOffsetArr !== '' + _this.state.leftOffsetArr) {
77764 state.leftOffsetArr = leftOffsetArr;
77765 }
77766
77767 if ('' + rightOffsetArr !== '' + _this.state.rightOffsetArr) {
77768 state.rightOffsetArr = rightOffsetArr;
77769 }
77770
77771 if (hasLockLeft !== _this.state.hasLockLeft) {
77772 state.hasLockLeft = hasLockLeft;
77773 }
77774
77775 if (hasLockRight !== _this.state.hasLockRight) {
77776 state.hasLockRight = hasLockRight;
77777 }
77778
77779 if (Object.keys(state).length > 0) {
77780 _this.setState(state);
77781 }
77782 };
77783
77784 _this.onLockBodyScroll = function (e, forceSet) {
77785 var _ref2 = e.currentTarget || {},
77786 scrollLeft = _ref2.scrollLeft,
77787 scrollWidth = _ref2.scrollWidth,
77788 clientWidth = _ref2.clientWidth;
77789
77790 var pingRight = _this.pingRight,
77791 pingLeft = _this.pingLeft;
77792
77793 var pingLeftNext = scrollLeft > 0 && _this.state.hasLockLeft;
77794 var pingRightNext = scrollLeft < scrollWidth - clientWidth && _this.state.hasLockRight;
77795
77796 if (forceSet || pingLeft !== pingLeftNext || pingRight !== pingRightNext) {
77797 var prefix = _this.props.prefix;
77798
77799 var table = _this.getTableNode();
77800
77801 _this.pingLeft = pingLeftNext;
77802 _this.pingRight = pingRightNext;
77803
77804 var leftFunc = pingLeftNext ? 'addClass' : 'removeClass';
77805 _util.dom[leftFunc](table, prefix + 'table-ping-left');
77806 var rightFunc = pingRightNext ? 'addClass' : 'removeClass';
77807 _util.dom[rightFunc](table, prefix + 'table-ping-right');
77808 }
77809 };
77810
77811 _this.getStickyWidth = function (lockChildren, dir, totalLen) {
77812 var _this$props = _this.props,
77813 dataSource = _this$props.dataSource,
77814 scrollToRow = _this$props.scrollToRow;
77815
77816 var offsetArr = [];
77817 var flatenChildren = _this.getFlatenChildren(lockChildren);
77818 var len = flatenChildren.length;
77819
77820 flatenChildren.reduce(function (ret, col, index) {
77821 var tag = dir === 'left' ? index : len - 1 - index;
77822 var tagNext = dir === 'left' ? tag - 1 : tag + 1;
77823 var nodeToGetWidth = dir === 'left' ? tag - 1 : totalLen - index;
77824
77825 if (dir === 'left' && tag === 0) {
77826 ret[0] = 0;
77827 return ret;
77828 } else if (dir === 'right' && tag === len - 1) {
77829 ret[tag] = 0;
77830 return ret;
77831 }
77832
77833 // header with no dataSource
77834 var isEmpty = !(dataSource && dataSource.length > 0);
77835 // no header
77836 var node = isEmpty ? _this.getHeaderCellNode(0, nodeToGetWidth) : _this.getCellNode(scrollToRow || dataSource[0] && dataSource[0].__rowIndex || 0, nodeToGetWidth);
77837 var colWidth = node && parseFloat(getComputedStyle(node).width) || 0;
77838
77839 ret[tag] = (ret[tagNext] || 0) + colWidth;
77840 return ret;
77841 }, offsetArr);
77842
77843 return offsetArr;
77844 };
77845
77846 _this.getTableInstance = function (type, instance) {
77847 type = '';
77848 _this['table' + type + 'Inc'] = instance;
77849 };
77850
77851 _this.getNode = function (type, node) {
77852 _this[type + 'Node'] = node;
77853 };
77854
77855 _this.getFlatenChildren = function () {
77856 var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
77857
77858 var loop = function loop(arr) {
77859 var newArray = [];
77860 arr.forEach(function (child) {
77861 if (child.children) {
77862 newArray.push.apply(newArray, loop(child.children));
77863 } else {
77864 newArray.push(child);
77865 }
77866 });
77867 return newArray;
77868 };
77869
77870 return loop(children);
77871 };
77872
77873 _this.state = {
77874 hasLockLeft: true,
77875 hasLockRight: true
77876 };
77877
77878 _this.pingLeft = false;
77879 _this.pingRight = false;
77880 return _this;
77881 }
77882
77883 LockTable.prototype.getChildContext = function getChildContext() {
77884 return {
77885 getTableInstance: this.getTableInstance,
77886 getLockNode: this.getNode,
77887 onLockBodyScroll: this.onLockBodyScroll
77888 };
77889 };
77890
77891 LockTable.prototype.componentDidMount = function componentDidMount() {
77892 var dataSource = this.props.dataSource;
77893
77894 var isEmpty = !(dataSource && dataSource.length > 0);
77895
77896 this.updateOffsetArr();
77897 this.onLockBodyScroll(isEmpty ? { currentTarget: this.headerNode } : { currentTarget: this.bodyNode });
77898 this.forceUpdate();
77899
77900 _util.events.on(window, 'resize', this.updateOffsetArr);
77901 };
77902
77903 LockTable.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState, nextContext) {
77904 if (nextProps.pure) {
77905 var isEqual = (0, _shallowElementEquals2.default)(nextProps, this.props);
77906 return !(isEqual && _util.obj.shallowEqual(nextContext, this.context));
77907 }
77908
77909 return true;
77910 };
77911
77912 LockTable.prototype.componentDidUpdate = function componentDidUpdate() {
77913 this.updateOffsetArr();
77914 this.onLockBodyScroll(this.bodyNode ? { currentTarget: this.bodyNode } : { currentTarget: this.headerNode }, true);
77915 };
77916
77917 LockTable.prototype.componentWillUnmount = function componentWillUnmount() {
77918 this.pingLeft = false;
77919 this.pingRight = false;
77920 _util.events.off(window, 'resize', this.updateOffsetArr);
77921 };
77922
77923 LockTable.prototype.normalizeChildrenState = function normalizeChildrenState(props) {
77924 var columns = this.normalizeChildren(props);
77925
77926 this.splitChildren = this.splitFromNormalizeChildren(columns);
77927
77928 return this.mergeFromSplitLockChildren(this.splitChildren, props.prefix);
77929 };
77930
77931 // 将React结构化数据提取props转换成数组
77932
77933
77934 LockTable.prototype.normalizeChildren = function normalizeChildren(props) {
77935 var children = props.children,
77936 columns = props.columns;
77937
77938 var isLock = false,
77939 ret = void 0;
77940 var getChildren = function getChildren(children) {
77941 var ret = [];
77942 _react.Children.forEach(children, function (child) {
77943 if (child) {
77944 var _props = (0, _extends3.default)({}, child.props);
77945 if ([true, 'left', 'right'].indexOf(_props.lock) > -1) {
77946 isLock = true;
77947 if (!('width' in _props)) {
77948 _util.log.warning('Should config width for lock column named [ ' + _props.dataIndex + ' ].');
77949 }
77950 }
77951 ret.push(_props);
77952 if (child.props.children) {
77953 _props.children = getChildren(child.props.children);
77954 }
77955 }
77956 });
77957 return ret;
77958 };
77959
77960 if (columns && !children) {
77961 ret = columns;
77962 isLock = columns.find(function (record) {
77963 return [true, 'left', 'right'].indexOf(record.lock) > -1;
77964 });
77965 } else {
77966 ret = getChildren(children);
77967 }
77968 ret.forEach(function (child) {
77969 // 为自定义的列特殊处理
77970 if (child.__normalized && isLock) {
77971 // users can set lock type for column selection now, so its origin lock type comes first
77972 child.lock = child.lock || 'left';
77973 delete child.__normalized;
77974 }
77975 });
77976 return ret;
77977 };
77978
77979 /**
77980 * 从数组中分离出lock的列和正常的列
77981 * @param {Array} children
77982 * @return {Object} { lockLeftChildren, lockRightChildren, originChildren } 锁左列, 锁左列, 剩余列
77983 */
77984
77985 LockTable.prototype.splitFromNormalizeChildren = function splitFromNormalizeChildren(children) {
77986 var originChildren = deepCopy(children);
77987 var lockLeftChildren = deepCopy(children);
77988 var lockRightChildren = deepCopy(children);
77989 var loop = function loop(lockChildren, condition) {
77990 var ret = [];
77991 lockChildren.forEach(function (child) {
77992 if (child.children) {
77993 var res = loop(child.children, condition);
77994 if (!res.length) {
77995 ret.push(child);
77996 }
77997 } else {
77998 var order = condition(child);
77999 if (!order) {
78000 ret.push(child);
78001 }
78002 }
78003 });
78004 ret.forEach(function (res) {
78005 var index = lockChildren.indexOf(res);
78006 lockChildren.splice(index, 1);
78007 });
78008 return lockChildren;
78009 };
78010 loop(lockLeftChildren, function (child) {
78011 if (child.lock === true || child.lock === 'left') {
78012 return 'left';
78013 }
78014 });
78015 loop(lockRightChildren, function (child) {
78016 if (child.lock === 'right') {
78017 return 'right';
78018 }
78019 });
78020 loop(originChildren, function (child) {
78021 return child.lock !== true && child.lock !== 'left' && child.lock !== 'right';
78022 });
78023 return {
78024 lockLeftChildren: lockLeftChildren,
78025 lockRightChildren: lockRightChildren,
78026 originChildren: originChildren
78027 };
78028 };
78029
78030 /**
78031 * 将左侧的锁列树和中间的普通树及右侧的锁列树进行合并
78032 * 会在原始 originChildren 上做改动
78033 * @param {Object} splitChildren { lockLeftChildren, lockRightChildren, originChildren }
78034 * @return {Array} originChildren
78035 */
78036
78037 LockTable.prototype.mergeFromSplitLockChildren = function mergeFromSplitLockChildren(splitChildren, prefix) {
78038 var lockLeftChildren = splitChildren.lockLeftChildren,
78039 lockRightChildren = splitChildren.lockRightChildren;
78040 var originChildren = splitChildren.originChildren;
78041
78042 var flatenLeftChildren = this.getFlatenChildren(lockLeftChildren);
78043 var flatenRightChildren = this.getFlatenChildren(lockRightChildren);
78044
78045 (0, _util2.setStickyStyle)(lockLeftChildren, flatenLeftChildren, 'left', this.state.leftOffsetArr, prefix);
78046 (0, _util2.setStickyStyle)(lockRightChildren, flatenRightChildren, 'right', this.state.rightOffsetArr, prefix);
78047
78048 return [].concat(lockLeftChildren, originChildren, lockRightChildren);
78049 };
78050
78051 LockTable.prototype.getCellNode = function getCellNode(index, i) {
78052 var table = this.tableInc;
78053
78054 try {
78055 // in case of finding an unmounted component due to cached data
78056 // need to clear refs of table when dataSource Changed
78057 // use try catch for temporary
78058 return (0, _reactDom.findDOMNode)(table.getCellRef(index, i));
78059 } catch (error) {
78060 return null;
78061 }
78062 };
78063
78064 LockTable.prototype.getTableNode = function getTableNode() {
78065 var table = this.tableInc;
78066 try {
78067 // in case of finding an unmounted component due to cached data
78068 // need to clear refs of table when dataSource Changed
78069 // use try catch for temporary
78070 return (0, _reactDom.findDOMNode)(table.tableEl);
78071 } catch (error) {
78072 return null;
78073 }
78074 };
78075
78076 LockTable.prototype.getHeaderCellNode = function getHeaderCellNode(index, i) {
78077 var table = this.tableInc;
78078
78079 try {
78080 // in case of finding an unmounted component due to cached data
78081 // need to clear refs of table when dataSource Changed
78082 // use try catch for temporary
78083 return (0, _reactDom.findDOMNode)(table.getHeaderCellRef(index, i));
78084 } catch (error) {
78085 return null;
78086 }
78087 };
78088
78089 LockTable.prototype.render = function render() {
78090 var _classnames;
78091
78092 /* eslint-disable no-unused-vars, prefer-const */
78093 var _props2 = this.props,
78094 children = _props2.children,
78095 columns = _props2.columns,
78096 prefix = _props2.prefix,
78097 components = _props2.components,
78098 scrollToRow = _props2.scrollToRow,
78099 className = _props2.className,
78100 dataSource = _props2.dataSource,
78101 others = (0, _objectWithoutProperties3.default)(_props2, ['children', 'columns', 'prefix', 'components', 'scrollToRow', 'className', 'dataSource']);
78102
78103 var normalizedChildren = this.normalizeChildrenState(this.props);
78104
78105 components = (0, _extends3.default)({}, components);
78106 components.Body = components.Body || _body2.default;
78107 components.Header = components.Header || _header2.default;
78108 components.Wrapper = components.Wrapper || _wrapper2.default;
78109 components.Row = components.Row || _row2.default;
78110 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));
78111
78112 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
78113 dataSource: dataSource,
78114 columns: normalizedChildren,
78115 prefix: prefix,
78116 components: components,
78117 className: className
78118 }));
78119 };
78120
78121 return LockTable;
78122 }(_react2.default.Component), _class.LockRow = _row2.default, _class.LockBody = _body2.default, _class.LockHeader = _header2.default, _class.propTypes = (0, _extends3.default)({
78123 scrollToCol: _propTypes2.default.number,
78124 /**
78125 * 指定滚动到某一行,仅在`useVirtual`的时候生效
78126 */
78127 scrollToRow: _propTypes2.default.number
78128 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps), _class.childContextTypes = {
78129 getTableInstance: _propTypes2.default.func,
78130 getLockNode: _propTypes2.default.func,
78131 onLockBodyScroll: _propTypes2.default.func
78132 }, _temp);
78133 LockTable.displayName = 'LockTable';
78134
78135 (0, _util2.statics)(LockTable, BaseComponent);
78136 return LockTable;
78137}
78138
78139function deepCopy(arr) {
78140 var copy = function copy(arr) {
78141 return arr.map(function (item) {
78142 var newItem = (0, _extends3.default)({}, item);
78143 if (item.children) {
78144 item.children = copy(item.children);
78145 }
78146 return newItem;
78147 });
78148 };
78149 return copy(arr);
78150}
78151module.exports = exports['default'];
78152
78153/***/ }),
78154/* 442 */
78155/***/ (function(module, exports, __webpack_require__) {
78156
78157"use strict";
78158
78159
78160exports.__esModule = true;
78161
78162var _typeof2 = __webpack_require__(14);
78163
78164var _typeof3 = _interopRequireDefault(_typeof2);
78165
78166var _objectWithoutProperties2 = __webpack_require__(8);
78167
78168var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
78169
78170var _extends2 = __webpack_require__(1);
78171
78172var _extends3 = _interopRequireDefault(_extends2);
78173
78174var _classCallCheck2 = __webpack_require__(2);
78175
78176var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
78177
78178var _possibleConstructorReturn2 = __webpack_require__(3);
78179
78180var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
78181
78182var _inherits2 = __webpack_require__(4);
78183
78184var _inherits3 = _interopRequireDefault(_inherits2);
78185
78186exports.default = list;
78187
78188var _react = __webpack_require__(0);
78189
78190var _react2 = _interopRequireDefault(_react);
78191
78192var _propTypes = __webpack_require__(5);
78193
78194var _propTypes2 = _interopRequireDefault(_propTypes);
78195
78196var _classnames2 = __webpack_require__(7);
78197
78198var _classnames3 = _interopRequireDefault(_classnames2);
78199
78200var _listHeader = __webpack_require__(191);
78201
78202var _listHeader2 = _interopRequireDefault(_listHeader);
78203
78204var _listFooter = __webpack_require__(192);
78205
78206var _listFooter2 = _interopRequireDefault(_listFooter);
78207
78208var _row = __webpack_require__(443);
78209
78210var _row2 = _interopRequireDefault(_row);
78211
78212var _body = __webpack_require__(444);
78213
78214var _body2 = _interopRequireDefault(_body);
78215
78216var _header = __webpack_require__(66);
78217
78218var _header2 = _interopRequireDefault(_header);
78219
78220var _wrapper = __webpack_require__(67);
78221
78222var _wrapper2 = _interopRequireDefault(_wrapper);
78223
78224var _util = __webpack_require__(21);
78225
78226function _interopRequireDefault(obj) {
78227 return obj && obj.__esModule ? obj : { default: obj };
78228}
78229
78230function list(BaseComponent) {
78231 var _class, _temp2;
78232
78233 var ListTable = (_temp2 = _class = function (_React$Component) {
78234 (0, _inherits3.default)(ListTable, _React$Component);
78235
78236 function ListTable() {
78237 var _temp, _this, _ret;
78238
78239 (0, _classCallCheck3.default)(this, ListTable);
78240
78241 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
78242 args[_key] = arguments[_key];
78243 }
78244
78245 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);
78246 }
78247
78248 ListTable.prototype.getChildContext = function getChildContext() {
78249 return {
78250 listHeader: this.listHeader,
78251 listFooter: this.listFooter,
78252 rowSelection: this.rowSelection
78253 };
78254 };
78255
78256 ListTable.prototype.normalizeDataSource = function normalizeDataSource(dataSource) {
78257 var ret = [];
78258 var loop = function loop(dataSource, level) {
78259 dataSource.forEach(function (item) {
78260 var itemCopy = (0, _extends3.default)({}, item);
78261 itemCopy.__level = level;
78262 ret.push(itemCopy);
78263 if (itemCopy.children) {
78264 loop(itemCopy.children, level + 1);
78265 }
78266 });
78267 };
78268 loop(dataSource, 0);
78269 this.ds = ret;
78270 return ret;
78271 };
78272
78273 ListTable.prototype.render = function render() {
78274 var _this2 = this;
78275
78276 /* eslint-disable prefer-const */
78277 var _props = this.props,
78278 components = _props.components,
78279 children = _props.children,
78280 className = _props.className,
78281 prefix = _props.prefix,
78282 others = (0, _objectWithoutProperties3.default)(_props, ['components', 'children', 'className', 'prefix']);
78283
78284 var isList = false,
78285 ret = [];
78286 _react.Children.forEach(children, function (child) {
78287 if (child) {
78288 if (['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1) {
78289 if (child.type._typeMark === 'listHeader') {
78290 _this2.listHeader = child.props;
78291 isList = true;
78292 } else if (child.type._typeMark === 'listFooter') {
78293 _this2.listFooter = child.props;
78294 } else {
78295 ret.push(child);
78296 }
78297 } else {
78298 ret.push(child);
78299 }
78300 }
78301 });
78302 this.rowSelection = this.props.rowSelection;
78303 if (isList) {
78304 var _classnames;
78305
78306 components = (0, _extends3.default)({}, components);
78307 components.Row = components.Row || _row2.default;
78308 components.Body = components.Body || _body2.default;
78309 components.Header = components.Header || _header2.default;
78310 components.Wrapper = components.Wrapper || _wrapper2.default;
78311 className = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-group'] = true, _classnames[className] = className, _classnames));
78312 }
78313 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
78314 components: components,
78315 children: ret.length > 0 ? ret : undefined,
78316 className: className,
78317 prefix: prefix
78318 }));
78319 };
78320
78321 return ListTable;
78322 }(_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 = {
78323 listHeader: _propTypes2.default.any,
78324 listFooter: _propTypes2.default.any,
78325 rowSelection: _propTypes2.default.object
78326 }, _temp2);
78327 ListTable.displayName = 'ListTable';
78328
78329 (0, _util.statics)(ListTable, BaseComponent);
78330 return ListTable;
78331}
78332module.exports = exports['default'];
78333
78334/***/ }),
78335/* 443 */
78336/***/ (function(module, exports, __webpack_require__) {
78337
78338"use strict";
78339
78340
78341exports.__esModule = true;
78342exports.default = undefined;
78343
78344var _extends2 = __webpack_require__(1);
78345
78346var _extends3 = _interopRequireDefault(_extends2);
78347
78348var _objectWithoutProperties2 = __webpack_require__(8);
78349
78350var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
78351
78352var _classCallCheck2 = __webpack_require__(2);
78353
78354var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
78355
78356var _possibleConstructorReturn2 = __webpack_require__(3);
78357
78358var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
78359
78360var _inherits2 = __webpack_require__(4);
78361
78362var _inherits3 = _interopRequireDefault(_inherits2);
78363
78364var _class, _temp;
78365
78366var _react = __webpack_require__(0);
78367
78368var _react2 = _interopRequireDefault(_react);
78369
78370var _propTypes = __webpack_require__(5);
78371
78372var _propTypes2 = _interopRequireDefault(_propTypes);
78373
78374var _classnames2 = __webpack_require__(7);
78375
78376var _classnames3 = _interopRequireDefault(_classnames2);
78377
78378var _util = __webpack_require__(6);
78379
78380var _row = __webpack_require__(64);
78381
78382var _row2 = _interopRequireDefault(_row);
78383
78384function _interopRequireDefault(obj) {
78385 return obj && obj.__esModule ? obj : { default: obj };
78386}
78387
78388var GroupListRow = (_temp = _class = function (_Row) {
78389 (0, _inherits3.default)(GroupListRow, _Row);
78390
78391 function GroupListRow() {
78392 (0, _classCallCheck3.default)(this, GroupListRow);
78393 return (0, _possibleConstructorReturn3.default)(this, _Row.apply(this, arguments));
78394 }
78395
78396 GroupListRow.prototype.render = function render() {
78397 var _classnames;
78398
78399 /* eslint-disable no-unused-vars*/
78400 var _props = this.props,
78401 prefix = _props.prefix,
78402 className = _props.className,
78403 onClick = _props.onClick,
78404 onMouseEnter = _props.onMouseEnter,
78405 onMouseLeave = _props.onMouseLeave,
78406 columns = _props.columns,
78407 Cell = _props.Cell,
78408 rowIndex = _props.rowIndex,
78409 __rowIndex = _props.__rowIndex,
78410 record = _props.record,
78411 children = _props.children,
78412 primaryKey = _props.primaryKey,
78413 colGroup = _props.colGroup,
78414 cellRef = _props.cellRef,
78415 getCellProps = _props.getCellProps,
78416 locale = _props.locale,
78417 wrapper = _props.wrapper,
78418 rtl = _props.rtl,
78419 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'onClick', 'onMouseEnter', 'onMouseLeave', 'columns', 'Cell', 'rowIndex', '__rowIndex', 'record', 'children', 'primaryKey', 'colGroup', 'cellRef', 'getCellProps', 'locale', 'wrapper', 'rtl']);
78420
78421 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-row'] = true, _classnames[className] = className, _classnames));
78422
78423 // clear notRenderCellIndex, incase of cached data
78424 this.context.notRenderCellIndex = [];
78425
78426 return _react2.default.createElement('table', (0, _extends3.default)({
78427 className: cls,
78428 role: 'row'
78429 }, others, {
78430 onClick: this.onClick,
78431 onMouseEnter: this.onMouseEnter,
78432 onMouseLeave: this.onMouseLeave
78433 }), colGroup, _react2.default.createElement('tbody', null, this.renderContent('header'), this.renderChildren(), this.renderContent('footer')));
78434 };
78435
78436 GroupListRow.prototype.isChildrenSelection = function isChildrenSelection() {
78437 return this.context.listHeader && this.context.listHeader.hasChildrenSelection;
78438 };
78439
78440 GroupListRow.prototype.isFirstLevelDataWhenNoChildren = function isFirstLevelDataWhenNoChildren() {
78441 return this.context.listHeader && this.context.listHeader.useFirstLevelDataWhenNoChildren;
78442 };
78443
78444 GroupListRow.prototype.isSelection = function isSelection() {
78445 return this.context.listHeader && this.context.listHeader.hasSelection;
78446 };
78447
78448 GroupListRow.prototype.renderChildren = function renderChildren() {
78449 var _this2 = this;
78450
78451 var _props2 = this.props,
78452 record = _props2.record,
78453 primaryKey = _props2.primaryKey;
78454 var children = record.children;
78455
78456 var toRenderList = children;
78457 if (this.isFirstLevelDataWhenNoChildren()) {
78458 _util.log.warning('useFirstLevelDataWhenNoChildren is deprecated, change your dataSource structure, make sure there is \'children\' in your dataSource.');
78459
78460 toRenderList = children || [record];
78461 }
78462
78463 if (toRenderList) {
78464 return toRenderList.map(function (child, index) {
78465 var cells = _this2.renderCells(child, index);
78466 if (_this2.isChildrenSelection()) {
78467 if (!child[primaryKey]) {
78468 _util.log.warning('record.children/recored should contains primaryKey when childrenSelection is true.');
78469 }
78470 return _react2.default.createElement('tr', { key: child[primaryKey] }, cells);
78471 }
78472 if (_this2.context.rowSelection) {
78473 cells.shift();
78474 cells[0] = cells[0] && _react2.default.cloneElement(cells[0], (0, _extends3.default)({
78475 colSpan: 2
78476 }, cells[0].props));
78477 }
78478 return _react2.default.createElement('tr', { key: index }, cells);
78479 });
78480 }
78481 return null;
78482 };
78483
78484 GroupListRow.prototype.renderContent = function renderContent(type) {
78485 var _props3 = this.props,
78486 columns = _props3.columns,
78487 prefix = _props3.prefix,
78488 record = _props3.record,
78489 rowIndex = _props3.rowIndex;
78490
78491 var cameType = type.charAt(0).toUpperCase() + type.substr(1);
78492 var list = this.context['list' + cameType];
78493 var listNode = void 0;
78494 if (list) {
78495 if (_react2.default.isValidElement(list.cell)) {
78496 listNode = _react2.default.cloneElement(list.cell, {
78497 record: record,
78498 index: rowIndex
78499 });
78500 } else if (typeof list.cell === 'function') {
78501 listNode = list.cell(record, rowIndex);
78502 }
78503 if (listNode) {
78504 var cells = this.renderCells(record);
78505 if (type === 'header' && this.context.rowSelection && this.isSelection()) {
78506 cells = cells.slice(0, 1);
78507 cells.push(_react2.default.createElement('td', { colSpan: columns.length - 1, key: 'listNode' }, _react2.default.createElement('div', { className: prefix + 'table-cell-wrapper' }, listNode)));
78508 listNode = _react2.default.createElement('tr', { className: prefix + 'table-group-' + type }, cells);
78509 } else {
78510 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)));
78511 }
78512 }
78513 }
78514 return listNode;
78515 };
78516
78517 return GroupListRow;
78518}(_row2.default), _class.contextTypes = {
78519 listHeader: _propTypes2.default.any,
78520 listFooter: _propTypes2.default.any,
78521 rowSelection: _propTypes2.default.object,
78522 notRenderCellIndex: _propTypes2.default.array,
78523 lockType: _propTypes2.default.oneOf(['left', 'right'])
78524}, _temp);
78525exports.default = GroupListRow;
78526module.exports = exports['default'];
78527
78528/***/ }),
78529/* 444 */
78530/***/ (function(module, exports, __webpack_require__) {
78531
78532"use strict";
78533
78534
78535exports.__esModule = true;
78536
78537var _extends2 = __webpack_require__(1);
78538
78539var _extends3 = _interopRequireDefault(_extends2);
78540
78541exports.default = ListBody;
78542
78543var _react = __webpack_require__(0);
78544
78545var _react2 = _interopRequireDefault(_react);
78546
78547var _body = __webpack_require__(63);
78548
78549var _body2 = _interopRequireDefault(_body);
78550
78551function _interopRequireDefault(obj) {
78552 return obj && obj.__esModule ? obj : { default: obj };
78553}
78554
78555function ListBody(props) {
78556 return _react2.default.createElement(_body2.default, (0, _extends3.default)({ component: 'div' }, props));
78557}
78558module.exports = exports['default'];
78559
78560/***/ }),
78561/* 445 */
78562/***/ (function(module, exports, __webpack_require__) {
78563
78564"use strict";
78565
78566
78567exports.__esModule = true;
78568
78569var _extends2 = __webpack_require__(1);
78570
78571var _extends3 = _interopRequireDefault(_extends2);
78572
78573var _objectWithoutProperties2 = __webpack_require__(8);
78574
78575var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
78576
78577var _classCallCheck2 = __webpack_require__(2);
78578
78579var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
78580
78581var _possibleConstructorReturn2 = __webpack_require__(3);
78582
78583var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
78584
78585var _inherits2 = __webpack_require__(4);
78586
78587var _inherits3 = _interopRequireDefault(_inherits2);
78588
78589exports.default = sticky;
78590
78591var _react = __webpack_require__(0);
78592
78593var _react2 = _interopRequireDefault(_react);
78594
78595var _propTypes = __webpack_require__(5);
78596
78597var _propTypes2 = _interopRequireDefault(_propTypes);
78598
78599var _header = __webpack_require__(66);
78600
78601var _header2 = _interopRequireDefault(_header);
78602
78603var _header3 = __webpack_require__(446);
78604
78605var _header4 = _interopRequireDefault(_header3);
78606
78607var _util = __webpack_require__(21);
78608
78609function _interopRequireDefault(obj) {
78610 return obj && obj.__esModule ? obj : { default: obj };
78611}
78612
78613function sticky(BaseComponent) {
78614 var _class, _temp2;
78615
78616 /** Table */
78617 var StickyTable = (_temp2 = _class = function (_React$Component) {
78618 (0, _inherits3.default)(StickyTable, _React$Component);
78619
78620 function StickyTable() {
78621 var _temp, _this, _ret;
78622
78623 (0, _classCallCheck3.default)(this, StickyTable);
78624
78625 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
78626 args[_key] = arguments[_key];
78627 }
78628
78629 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);
78630 }
78631
78632 StickyTable.prototype.getChildContext = function getChildContext() {
78633 return {
78634 Header: this.props.components.Header || _header2.default,
78635 offsetTop: this.props.offsetTop,
78636 affixProps: this.props.affixProps
78637 };
78638 };
78639
78640 StickyTable.prototype.render = function render() {
78641 /* eslint-disable no-unused-vars */
78642 var _props = this.props,
78643 stickyHeader = _props.stickyHeader,
78644 offsetTop = _props.offsetTop,
78645 affixProps = _props.affixProps,
78646 others = (0, _objectWithoutProperties3.default)(_props, ['stickyHeader', 'offsetTop', 'affixProps']);
78647 var _props2 = this.props,
78648 components = _props2.components,
78649 maxBodyHeight = _props2.maxBodyHeight,
78650 fixedHeader = _props2.fixedHeader;
78651
78652 if (stickyHeader) {
78653 components = (0, _extends3.default)({}, components);
78654 components.Header = _header4.default;
78655 fixedHeader = true;
78656 maxBodyHeight = Math.max(maxBodyHeight, 10000);
78657 }
78658 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
78659 components: components,
78660 fixedHeader: fixedHeader,
78661 maxBodyHeight: maxBodyHeight
78662 }));
78663 };
78664
78665 return StickyTable;
78666 }(_react2.default.Component), _class.StickyHeader = _header4.default, _class.propTypes = (0, _extends3.default)({
78667 /**
78668 * 表头是否是sticky
78669 */
78670 stickyHeader: _propTypes2.default.bool,
78671 /**
78672 * 距离窗口顶部达到指定偏移量后触发
78673 */
78674 offsetTop: _propTypes2.default.number,
78675 /**
78676 * affix组件的的属性
78677 */
78678 affixProps: _propTypes2.default.object,
78679 components: _propTypes2.default.object
78680 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({
78681 components: {}
78682 }, BaseComponent.defaultProps), _class.childContextTypes = {
78683 Header: _propTypes2.default.any,
78684 offsetTop: _propTypes2.default.number,
78685 affixProps: _propTypes2.default.object
78686 }, _temp2);
78687 StickyTable.displayName = 'StickyTable';
78688
78689 (0, _util.statics)(StickyTable, BaseComponent);
78690 return StickyTable;
78691}
78692module.exports = exports['default'];
78693
78694/***/ }),
78695/* 446 */
78696/***/ (function(module, exports, __webpack_require__) {
78697
78698"use strict";
78699
78700
78701exports.__esModule = true;
78702exports.default = undefined;
78703
78704var _extends2 = __webpack_require__(1);
78705
78706var _extends3 = _interopRequireDefault(_extends2);
78707
78708var _objectWithoutProperties2 = __webpack_require__(8);
78709
78710var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
78711
78712var _classCallCheck2 = __webpack_require__(2);
78713
78714var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
78715
78716var _possibleConstructorReturn2 = __webpack_require__(3);
78717
78718var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
78719
78720var _inherits2 = __webpack_require__(4);
78721
78722var _inherits3 = _interopRequireDefault(_inherits2);
78723
78724var _class, _temp2;
78725
78726var _react = __webpack_require__(0);
78727
78728var _react2 = _interopRequireDefault(_react);
78729
78730var _propTypes = __webpack_require__(5);
78731
78732var _propTypes2 = _interopRequireDefault(_propTypes);
78733
78734var _classnames2 = __webpack_require__(7);
78735
78736var _classnames3 = _interopRequireDefault(_classnames2);
78737
78738var _affix = __webpack_require__(69);
78739
78740var _affix2 = _interopRequireDefault(_affix);
78741
78742function _interopRequireDefault(obj) {
78743 return obj && obj.__esModule ? obj : { default: obj };
78744}
78745
78746/* eslint-disable react/prefer-stateless-function*/
78747var StickHeader = (_temp2 = _class = function (_React$Component) {
78748 (0, _inherits3.default)(StickHeader, _React$Component);
78749
78750 function StickHeader() {
78751 var _temp, _this, _ret;
78752
78753 (0, _classCallCheck3.default)(this, StickHeader);
78754
78755 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
78756 args[_key] = arguments[_key];
78757 }
78758
78759 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.getAffixRef = function (ref) {
78760 _this.props.affixRef && _this.props.affixRef(ref);
78761 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
78762 }
78763
78764 StickHeader.prototype.render = function render() {
78765 var _classnames;
78766
78767 var prefix = this.props.prefix;
78768 var _context = this.context,
78769 Header = _context.Header,
78770 offsetTop = _context.offsetTop,
78771 affixProps = _context.affixProps;
78772
78773 var newAffixProps = affixProps || {};
78774 var className = newAffixProps.className,
78775 others = (0, _objectWithoutProperties3.default)(newAffixProps, ['className']);
78776
78777 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-affix'] = true, _classnames.className = className, _classnames));
78778
78779 return _react2.default.createElement(_affix2.default, (0, _extends3.default)({
78780 ref: this.getAffixRef
78781 }, others, {
78782 className: cls,
78783 offsetTop: offsetTop
78784 }), _react2.default.createElement(Header, this.props));
78785 };
78786
78787 return StickHeader;
78788}(_react2.default.Component), _class.propTypes = {
78789 prefix: _propTypes2.default.string
78790}, _class.contextTypes = {
78791 Header: _propTypes2.default.any,
78792 offsetTop: _propTypes2.default.number,
78793 affixProps: _propTypes2.default.object
78794}, _temp2);
78795StickHeader.displayName = 'StickHeader';
78796exports.default = StickHeader;
78797module.exports = exports['default'];
78798
78799/***/ }),
78800/* 447 */
78801/***/ (function(module, exports, __webpack_require__) {
78802
78803"use strict";
78804
78805
78806exports.__esModule = true;
78807
78808var _extends2 = __webpack_require__(1);
78809
78810var _extends3 = _interopRequireDefault(_extends2);
78811
78812var _objectWithoutProperties2 = __webpack_require__(8);
78813
78814var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
78815
78816var _configProvider = __webpack_require__(9);
78817
78818var _configProvider2 = _interopRequireDefault(_configProvider);
78819
78820var _timePicker = __webpack_require__(448);
78821
78822var _timePicker2 = _interopRequireDefault(_timePicker);
78823
78824function _interopRequireDefault(obj) {
78825 return obj && obj.__esModule ? obj : { default: obj };
78826}
78827
78828exports.default = _configProvider2.default.config(_timePicker2.default, {
78829 transform: /* istanbul ignore next */function transform(props, deprecated) {
78830 if ('defaultOpen' in props) {
78831 deprecated('defaultOpen', 'defaultVisible', 'TimePicker');
78832 var _props = props,
78833 defaultOpen = _props.defaultOpen,
78834 others = (0, _objectWithoutProperties3.default)(_props, ['defaultOpen']);
78835
78836 props = (0, _extends3.default)({ defaultVisible: defaultOpen }, others);
78837 }
78838 if ('open' in props) {
78839 deprecated('open', 'visible', 'TimePicker');
78840
78841 var _props2 = props,
78842 open = _props2.open,
78843 _others = (0, _objectWithoutProperties3.default)(_props2, ['open']);
78844
78845 props = (0, _extends3.default)({ visible: open }, _others);
78846 }
78847 if ('onOpenChange' in props) {
78848 deprecated('onOpenChange', 'onVisibleChange', 'TimePicker');
78849
78850 var _props3 = props,
78851 onOpenChange = _props3.onOpenChange,
78852 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['onOpenChange']);
78853
78854 props = (0, _extends3.default)({ onVisibleChange: onOpenChange }, _others2);
78855 }
78856
78857 return props;
78858 }
78859});
78860module.exports = exports['default'];
78861
78862/***/ }),
78863/* 448 */
78864/***/ (function(module, exports, __webpack_require__) {
78865
78866"use strict";
78867
78868
78869exports.__esModule = true;
78870
78871var _objectWithoutProperties2 = __webpack_require__(8);
78872
78873var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
78874
78875var _extends2 = __webpack_require__(1);
78876
78877var _extends3 = _interopRequireDefault(_extends2);
78878
78879var _classCallCheck2 = __webpack_require__(2);
78880
78881var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
78882
78883var _possibleConstructorReturn2 = __webpack_require__(3);
78884
78885var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
78886
78887var _inherits2 = __webpack_require__(4);
78888
78889var _inherits3 = _interopRequireDefault(_inherits2);
78890
78891var _class, _temp, _initialiseProps;
78892
78893var _react = __webpack_require__(0);
78894
78895var _react2 = _interopRequireDefault(_react);
78896
78897var _propTypes = __webpack_require__(5);
78898
78899var _propTypes2 = _interopRequireDefault(_propTypes);
78900
78901var _reactLifecyclesCompat = __webpack_require__(10);
78902
78903var _classnames3 = __webpack_require__(7);
78904
78905var _classnames4 = _interopRequireDefault(_classnames3);
78906
78907var _moment = __webpack_require__(19);
78908
78909var _moment2 = _interopRequireDefault(_moment);
78910
78911var _configProvider = __webpack_require__(9);
78912
78913var _configProvider2 = _interopRequireDefault(_configProvider);
78914
78915var _input = __webpack_require__(18);
78916
78917var _input2 = _interopRequireDefault(_input);
78918
78919var _icon = __webpack_require__(11);
78920
78921var _icon2 = _interopRequireDefault(_icon);
78922
78923var _overlay = __webpack_require__(15);
78924
78925var _overlay2 = _interopRequireDefault(_overlay);
78926
78927var _zhCn = __webpack_require__(13);
78928
78929var _zhCn2 = _interopRequireDefault(_zhCn);
78930
78931var _util = __webpack_require__(6);
78932
78933var _panel = __webpack_require__(91);
78934
78935var _panel2 = _interopRequireDefault(_panel);
78936
78937var _utils = __webpack_require__(92);
78938
78939var _util2 = __webpack_require__(30);
78940
78941function _interopRequireDefault(obj) {
78942 return obj && obj.__esModule ? obj : { default: obj };
78943}
78944
78945var Popup = _overlay2.default.Popup;
78946var noop = _util.func.noop;
78947
78948var timePickerLocale = _zhCn2.default.TimePicker;
78949
78950/**
78951 * TimePicker
78952 */
78953var TimePicker = (_temp = _class = function (_Component) {
78954 (0, _inherits3.default)(TimePicker, _Component);
78955
78956 function TimePicker(props, context) {
78957 (0, _classCallCheck3.default)(this, TimePicker);
78958
78959 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
78960
78961 _initialiseProps.call(_this);
78962
78963 var value = (0, _utils.formatDateValue)(props.value || props.defaultValue, props.format);
78964 _this.inputAsString = typeof (props.value || props.defaultValue) === 'string';
78965 _this.state = {
78966 value: value,
78967 inputStr: '',
78968 inputing: false,
78969 visible: props.visible || props.defaultVisible
78970 };
78971 return _this;
78972 }
78973
78974 TimePicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
78975 var state = {};
78976
78977 if ('value' in props) {
78978 state.value = (0, _utils.formatDateValue)(props.value, props.format);
78979 }
78980
78981 if ('visible' in props) {
78982 state.visible = props.visible;
78983 }
78984
78985 return state;
78986 };
78987
78988 TimePicker.prototype.onValueChange = function onValueChange(newValue) {
78989 var ret = this.inputAsString && newValue ? newValue.format(this.props.format) : newValue;
78990 this.props.onChange(ret);
78991 };
78992
78993 TimePicker.prototype.renderPreview = function renderPreview(others) {
78994 var _props = this.props,
78995 prefix = _props.prefix,
78996 format = _props.format,
78997 className = _props.className,
78998 renderPreview = _props.renderPreview;
78999 var value = this.state.value;
79000
79001 var previewCls = (0, _classnames4.default)(className, prefix + 'form-preview');
79002
79003 var label = value ? value.format(format) : '';
79004
79005 if (typeof renderPreview === 'function') {
79006 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
79007 }
79008
79009 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
79010 };
79011
79012 TimePicker.prototype.render = function render() {
79013 var _classnames, _classnames2;
79014
79015 var _props2 = this.props,
79016 prefix = _props2.prefix,
79017 label = _props2.label,
79018 state = _props2.state,
79019 placeholder = _props2.placeholder,
79020 size = _props2.size,
79021 format = _props2.format,
79022 hasClear = _props2.hasClear,
79023 hourStep = _props2.hourStep,
79024 minuteStep = _props2.minuteStep,
79025 secondStep = _props2.secondStep,
79026 disabledHours = _props2.disabledHours,
79027 disabledMinutes = _props2.disabledMinutes,
79028 disabledSeconds = _props2.disabledSeconds,
79029 renderTimeMenuItems = _props2.renderTimeMenuItems,
79030 inputProps = _props2.inputProps,
79031 popupAlign = _props2.popupAlign,
79032 popupTriggerType = _props2.popupTriggerType,
79033 popupContainer = _props2.popupContainer,
79034 popupStyle = _props2.popupStyle,
79035 popupClassName = _props2.popupClassName,
79036 popupProps = _props2.popupProps,
79037 popupComponent = _props2.popupComponent,
79038 popupContent = _props2.popupContent,
79039 followTrigger = _props2.followTrigger,
79040 disabled = _props2.disabled,
79041 className = _props2.className,
79042 locale = _props2.locale,
79043 rtl = _props2.rtl,
79044 isPreview = _props2.isPreview,
79045 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']);
79046 var _state = this.state,
79047 value = _state.value,
79048 inputStr = _state.inputStr,
79049 inputing = _state.inputing,
79050 visible = _state.visible;
79051
79052 var triggerCls = (0, _classnames4.default)((_classnames = {}, _classnames[prefix + 'time-picker-trigger'] = true, _classnames));
79053
79054 if (rtl) {
79055 others.dir = 'rtl';
79056 }
79057
79058 if (isPreview) {
79059 return this.renderPreview(_util.obj.pickOthers(others, TimePicker.PropTypes));
79060 }
79061
79062 var inputValue = inputing ? inputStr : value && value.format(format) || '';
79063 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
79064 size: size,
79065 disabled: disabled,
79066 value: inputValue,
79067 hasClear: value && hasClear,
79068 onChange: this.onInputChange,
79069 onBlur: this.onInputBlur,
79070 onPressEnter: this.onInputBlur,
79071 onKeyDown: this.onKeyown,
79072 hint: _react2.default.createElement(_icon2.default, {
79073 type: 'clock',
79074 className: prefix + 'time-picker-symbol-clock-icon'
79075 })
79076 });
79077
79078 var triggerInput = _react2.default.createElement('div', { className: triggerCls }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
79079 label: label,
79080 state: state,
79081 placeholder: placeholder || locale.placeholder,
79082 className: prefix + 'time-picker-input'
79083 })));
79084
79085 var panelProps = {
79086 prefix: prefix,
79087 locale: locale,
79088 value: value,
79089 disabled: disabled,
79090 showHour: format.indexOf('H') > -1,
79091 showSecond: format.indexOf('s') > -1,
79092 showMinute: format.indexOf('m') > -1,
79093 hourStep: hourStep,
79094 minuteStep: minuteStep,
79095 secondStep: secondStep,
79096 disabledHours: disabledHours,
79097 disabledMinutes: disabledMinutes,
79098 disabledSeconds: disabledSeconds,
79099 renderTimeMenuItems: renderTimeMenuItems,
79100 onSelect: this.onTimePanelSelect
79101 };
79102
79103 var classNames = (0, _classnames4.default)((_classnames2 = {}, _classnames2[prefix + 'time-picker'] = true, _classnames2[prefix + 'time-picker-' + size] = size, _classnames2[prefix + 'disabled'] = disabled, _classnames2), className);
79104
79105 var PopupComponent = popupComponent ? popupComponent : Popup;
79106
79107 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(TimePicker.propTypes, others), {
79108 className: classNames
79109 }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
79110 autoFocus: true,
79111 align: popupAlign
79112 }, popupProps, {
79113 followTrigger: followTrigger,
79114 visible: visible,
79115 onVisibleChange: this.onVisibleChange,
79116 trigger: triggerInput,
79117 container: popupContainer,
79118 disabled: disabled,
79119 triggerType: popupTriggerType,
79120 style: popupStyle,
79121 className: popupClassName
79122 }), popupContent ? popupContent : _react2.default.createElement('div', {
79123 dir: others.dir,
79124 className: prefix + 'time-picker-body'
79125 }, _react2.default.createElement('div', {
79126 className: prefix + 'time-picker-panel-header'
79127 }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
79128 placeholder: format,
79129 className: prefix + 'time-picker-panel-input'
79130 }))), _react2.default.createElement(_panel2.default, panelProps))));
79131 };
79132
79133 return TimePicker;
79134}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
79135 prefix: _propTypes2.default.string,
79136 rtl: _propTypes2.default.bool,
79137 /**
79138 * 按钮的文案
79139 */
79140 label: _propTypes2.default.node,
79141 /**
79142 * 输入框状态
79143 */
79144 state: _propTypes2.default.oneOf(['error', 'success']),
79145 /**
79146 * 输入框提示
79147 */
79148 placeholder: _propTypes2.default.string,
79149 /**
79150 * 时间值(moment 对象或时间字符串,受控状态使用)
79151 */
79152 value: _utils.checkDateValue,
79153 /**
79154 * 时间初值(moment 对象或时间字符串,非受控状态使用)
79155 */
79156 defaultValue: _utils.checkDateValue,
79157 /**
79158 * 时间选择框的尺寸
79159 */
79160 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
79161 /**
79162 * 是否允许清空时间
79163 */
79164 hasClear: _propTypes2.default.bool,
79165 /**
79166 * 时间的格式
79167 * https://momentjs.com/docs/#/parsing/string-format/
79168 */
79169 format: _propTypes2.default.string,
79170 /**
79171 * 小时选项步长
79172 */
79173 hourStep: _propTypes2.default.number,
79174 /**
79175 * 分钟选项步长
79176 */
79177 minuteStep: _propTypes2.default.number,
79178 /**
79179 * 秒钟选项步长
79180 */
79181 secondStep: _propTypes2.default.number,
79182 /**
79183 * 禁用小时函数
79184 * @param {Number} index 时 0 - 23
79185 * @return {Boolean} 是否禁用
79186 */
79187 disabledHours: _propTypes2.default.func,
79188 /**
79189 * 禁用分钟函数
79190 * @param {Number} index 分 0 - 59
79191 * @return {Boolean} 是否禁用
79192 */
79193 disabledMinutes: _propTypes2.default.func,
79194 /**
79195 * 禁用秒钟函数
79196 * @param {Number} index 秒 0 - 59
79197 * @return {Boolean} 是否禁用
79198 */
79199 disabledSeconds: _propTypes2.default.func,
79200 /**
79201 * 渲染的可选择时间列表
79202 * [{
79203 * label: '01',
79204 * value: 1
79205 * }]
79206 * @param {Array} list 默认渲染的列表
79207 * @param {String} mode 渲染的菜单 hour, minute, second
79208 * @param {moment} value 当前时间,可能为 null
79209 * @return {Array} 返回需要渲染的数据
79210 */
79211 renderTimeMenuItems: _propTypes2.default.func,
79212 /**
79213 * 弹层是否显示(受控)
79214 */
79215 visible: _propTypes2.default.bool,
79216 /**
79217 * 弹层默认是否显示(非受控)
79218 */
79219 defaultVisible: _propTypes2.default.bool,
79220 /**
79221 * 弹层容器
79222 * @param {Object} target 目标节点
79223 * @return {ReactNode} 容器节点
79224 */
79225 popupContainer: _propTypes2.default.any,
79226 /**
79227 * 弹层对齐方式, 详情见Overlay 文档
79228 */
79229 popupAlign: _propTypes2.default.string,
79230 /**
79231 * 弹层触发方式
79232 */
79233 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
79234 /**
79235 * 弹层展示状态变化时的回调
79236 * @param {Boolean} visible 弹层是否隐藏和显示
79237 * @param {String} type 触发弹层显示和隐藏的来源 fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
79238 */
79239 onVisibleChange: _propTypes2.default.func,
79240 /**
79241 * 弹层自定义样式
79242 */
79243 popupStyle: _propTypes2.default.object,
79244 /**
79245 * 弹层自定义样式类
79246 */
79247 popupClassName: _propTypes2.default.string,
79248 /**
79249 * 弹层属性
79250 */
79251 popupProps: _propTypes2.default.object,
79252 /**
79253 * 是否跟随滚动
79254 */
79255 followTrigger: _propTypes2.default.bool,
79256 /**
79257 * 是否禁用
79258 */
79259 disabled: _propTypes2.default.bool,
79260 /**
79261 * 是否为预览态
79262 */
79263 isPreview: _propTypes2.default.bool,
79264 /**
79265 * 预览态模式下渲染的内容
79266 * @param {MomentObject} value 时间
79267 */
79268 renderPreview: _propTypes2.default.func,
79269 /**
79270 * 时间值改变时的回调
79271 * @param {Object|String} value 时间对象或时间字符串
79272 */
79273 onChange: _propTypes2.default.func,
79274 className: _propTypes2.default.string,
79275 name: _propTypes2.default.string,
79276 inputProps: _propTypes2.default.object,
79277 popupComponent: _propTypes2.default.elementType,
79278 popupContent: _propTypes2.default.node
79279}), _class.defaultProps = {
79280 prefix: 'next-',
79281 rtl: false,
79282 locale: timePickerLocale,
79283 size: 'medium',
79284 format: 'HH:mm:ss',
79285 hasClear: true,
79286 disabled: false,
79287 popupAlign: 'tl tl',
79288 popupTriggerType: 'click',
79289 onChange: noop,
79290 onVisibleChange: noop
79291}, _initialiseProps = function _initialiseProps() {
79292 var _this2 = this;
79293
79294 this.onClearValue = function () {
79295 _this2.setState({
79296 value: null
79297 });
79298 if (_this2.state.value) {
79299 _this2.onValueChange(null);
79300 }
79301 };
79302
79303 this.onInputChange = function (inputValue, e, eventType) {
79304 if (!('value' in _this2.props)) {
79305 if (eventType === 'clear' || !inputValue) {
79306 e.stopPropagation();
79307 _this2.onClearValue();
79308 }
79309
79310 _this2.setState({
79311 inputStr: inputValue,
79312 inputing: true
79313 });
79314 } else if (eventType === 'clear') {
79315 // 受控状态下用户点击 clear
79316 e.stopPropagation();
79317 _this2.onValueChange(null);
79318 }
79319 };
79320
79321 this.onInputBlur = function () {
79322 var inputStr = _this2.state.inputStr;
79323
79324 if (inputStr) {
79325 var format = _this2.props.format;
79326
79327 var parsed = (0, _moment2.default)(inputStr, format, true);
79328 if (parsed.isValid()) {
79329 _this2.setState({
79330 value: parsed,
79331 inputStr: ''
79332 });
79333 _this2.onValueChange(parsed);
79334 }
79335 _this2.setState({
79336 inputing: false
79337 });
79338 }
79339 };
79340
79341 this.onKeyown = function (e) {
79342 var _state2 = _this2.state,
79343 value = _state2.value,
79344 inputStr = _state2.inputStr;
79345 var _props3 = _this2.props,
79346 format = _props3.format,
79347 _props3$hourStep = _props3.hourStep,
79348 hourStep = _props3$hourStep === undefined ? 1 : _props3$hourStep,
79349 _props3$minuteStep = _props3.minuteStep,
79350 minuteStep = _props3$minuteStep === undefined ? 1 : _props3$minuteStep,
79351 _props3$secondStep = _props3.secondStep,
79352 secondStep = _props3$secondStep === undefined ? 1 : _props3$secondStep,
79353 disabledMinutes = _props3.disabledMinutes,
79354 disabledSeconds = _props3.disabledSeconds;
79355
79356 var unit = 'second';
79357
79358 if (disabledSeconds) {
79359 unit = disabledMinutes ? 'hour' : 'minute';
79360 }
79361 var timeStr = (0, _util2.onTimeKeydown)(e, {
79362 format: format,
79363 timeInputStr: inputStr,
79364 steps: {
79365 hour: hourStep,
79366 minute: minuteStep,
79367 second: secondStep
79368 },
79369 value: value
79370 }, unit);
79371
79372 if (!timeStr) return;
79373
79374 _this2.onInputChange(timeStr);
79375 };
79376
79377 this.onTimePanelSelect = function (value) {
79378 if (!('value' in _this2.props)) {
79379 _this2.setState({
79380 value: value,
79381 inputing: false
79382 });
79383 }
79384 if (!_this2.state.value || value.valueOf() !== _this2.state.value.valueOf()) {
79385 _this2.onValueChange(value);
79386 }
79387 };
79388
79389 this.onVisibleChange = function (visible, type) {
79390 if (!('visible' in _this2.props)) {
79391 _this2.setState({
79392 visible: visible
79393 });
79394 }
79395 _this2.props.onVisibleChange(visible, type);
79396 };
79397}, _temp);
79398TimePicker.displayName = 'TimePicker';
79399exports.default = (0, _reactLifecyclesCompat.polyfill)(TimePicker);
79400module.exports = exports['default'];
79401
79402/***/ }),
79403/* 449 */
79404/***/ (function(module, exports, __webpack_require__) {
79405
79406"use strict";
79407
79408
79409exports.__esModule = true;
79410
79411var _timeline = __webpack_require__(450);
79412
79413var _timeline2 = _interopRequireDefault(_timeline);
79414
79415var _timelineItem = __webpack_require__(451);
79416
79417var _timelineItem2 = _interopRequireDefault(_timelineItem);
79418
79419function _interopRequireDefault(obj) {
79420 return obj && obj.__esModule ? obj : { default: obj };
79421}
79422
79423_timeline2.default.Item = _timelineItem2.default;
79424
79425exports.default = _timeline2.default;
79426module.exports = exports['default'];
79427
79428/***/ }),
79429/* 450 */
79430/***/ (function(module, exports, __webpack_require__) {
79431
79432"use strict";
79433
79434
79435exports.__esModule = true;
79436
79437var _objectWithoutProperties2 = __webpack_require__(8);
79438
79439var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
79440
79441var _extends2 = __webpack_require__(1);
79442
79443var _extends3 = _interopRequireDefault(_extends2);
79444
79445var _classCallCheck2 = __webpack_require__(2);
79446
79447var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
79448
79449var _possibleConstructorReturn2 = __webpack_require__(3);
79450
79451var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
79452
79453var _inherits2 = __webpack_require__(4);
79454
79455var _inherits3 = _interopRequireDefault(_inherits2);
79456
79457var _class, _temp;
79458
79459var _react = __webpack_require__(0);
79460
79461var _react2 = _interopRequireDefault(_react);
79462
79463var _propTypes = __webpack_require__(5);
79464
79465var _propTypes2 = _interopRequireDefault(_propTypes);
79466
79467var _classnames = __webpack_require__(7);
79468
79469var _classnames2 = _interopRequireDefault(_classnames);
79470
79471var _reactLifecyclesCompat = __webpack_require__(10);
79472
79473var _util = __webpack_require__(6);
79474
79475var _configProvider = __webpack_require__(9);
79476
79477var _configProvider2 = _interopRequireDefault(_configProvider);
79478
79479var _zhCn = __webpack_require__(13);
79480
79481var _zhCn2 = _interopRequireDefault(_zhCn);
79482
79483function _interopRequireDefault(obj) {
79484 return obj && obj.__esModule ? obj : { default: obj };
79485}
79486
79487/** Timeline */
79488var Timeline = (_temp = _class = function (_Component) {
79489 (0, _inherits3.default)(Timeline, _Component);
79490
79491 function Timeline(props, context) {
79492 (0, _classCallCheck3.default)(this, Timeline);
79493
79494 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
79495
79496 _this.state = {
79497 fold: props.fold
79498 };
79499 return _this;
79500 }
79501
79502 Timeline.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
79503 var innerUpdate = prevState.innerUpdate,
79504 fold = prevState.fold;
79505
79506 if (innerUpdate) {
79507 return {
79508 fold: fold,
79509 innerUpdate: false
79510 };
79511 }
79512
79513 if ('fold' in nextProps) {
79514 return {
79515 fold: nextProps.fold
79516 };
79517 }
79518
79519 return null;
79520 };
79521
79522 Timeline.prototype.toggleFold = function toggleFold(folderIndex, total) {
79523 var fold = this.state.fold.map(function (item) {
79524 return (0, _extends3.default)({}, item);
79525 });
79526
79527 if (folderIndex) {
79528 for (var i = 0; i < fold.length; i++) {
79529 var _fold$i = fold[i],
79530 foldArea = _fold$i.foldArea,
79531 foldShow = _fold$i.foldShow;
79532
79533 if (foldArea[1] && folderIndex === foldArea[1] || !foldArea[1] && folderIndex === total - 1) {
79534 fold[i].foldShow = !foldShow;
79535 }
79536 }
79537
79538 this.setState({ fold: fold, innerUpdate: true });
79539 }
79540 };
79541
79542 Timeline.prototype.render = function render() {
79543 var _this2 = this,
79544 _classNames;
79545
79546 var _props = this.props,
79547 prefix = _props.prefix,
79548 rtl = _props.rtl,
79549 className = _props.className,
79550 children = _props.children,
79551 locale = _props.locale,
79552 animation = _props.animation,
79553 mode = _props.mode,
79554 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'rtl', 'className', 'children', 'locale', 'animation', 'mode']);
79555 var fold = this.state.fold;
79556
79557 // 修改子节点属性
79558
79559 var childrenCount = _react2.default.Children.count(children);
79560 var isAlternateMode = mode === 'alternate';
79561 var getPositionCls = function getPositionCls(idx) {
79562 if (isAlternateMode) {
79563 return idx % 2 === 0 ? prefix + 'timeline-item-left' : prefix + 'timeline-item-right';
79564 }
79565 return prefix + 'timeline-item-left';
79566 };
79567
79568 var cloneChildren = _react.Children.map(children, function (child, i) {
79569 var folderIndex = null;
79570 var foldNodeShow = false;
79571
79572 fold.forEach(function (item) {
79573 var foldArea = item.foldArea,
79574 foldShow = item.foldShow;
79575
79576 if (foldArea[0] && i >= foldArea[0] && (i <= foldArea[1] || !foldArea[1])) {
79577 folderIndex = foldArea[1] || childrenCount - 1;
79578 foldNodeShow = foldShow;
79579 }
79580 });
79581
79582 return _react2.default.cloneElement(child, {
79583 prefix: prefix,
79584 locale: locale,
79585 total: childrenCount,
79586 className: getPositionCls(i),
79587 index: i,
79588 folderIndex: folderIndex,
79589 foldShow: foldNodeShow,
79590 toggleFold: folderIndex === i ? _this2.toggleFold.bind(_this2, folderIndex, childrenCount) : function () {},
79591 animation: animation
79592 });
79593 });
79594
79595 var timelineCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'timeline'] = true, _classNames[prefix + 'alternate'] = isAlternateMode, _classNames), className);
79596
79597 if (rtl) {
79598 others.dir = 'rtl';
79599 }
79600
79601 return _react2.default.createElement('ul', (0, _extends3.default)({}, _util.obj.pickOthers(Timeline.propTypes, others), { className: timelineCls }), cloneChildren);
79602 };
79603
79604 return Timeline;
79605}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
79606 /**
79607 * 样式的品牌前缀
79608 */
79609 prefix: _propTypes2.default.string,
79610 rtl: _propTypes2.default.bool,
79611 /**
79612 * 自定义折叠选项 示例`[{foldArea: [startIndex, endIndex], foldShow: boolean}]`
79613 */
79614 fold: _propTypes2.default.array,
79615 /**
79616 * 自定义类名
79617 */
79618 className: _propTypes2.default.string,
79619 children: _propTypes2.default.any,
79620 locale: _propTypes2.default.object,
79621 animation: _propTypes2.default.bool,
79622 /**
79623 * 展示的模式
79624 * @enumdesc 左, 交错显示
79625 * @version 1.23.18
79626 */
79627 mode: _propTypes2.default.oneOf(['left', 'alternate'])
79628}), _class.defaultProps = {
79629 prefix: 'next-',
79630 rtl: false,
79631 fold: [],
79632 locale: _zhCn2.default.Timeline,
79633 animation: true,
79634 mode: 'left'
79635}, _temp);
79636Timeline.displayName = 'Timeline';
79637exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Timeline));
79638module.exports = exports['default'];
79639
79640/***/ }),
79641/* 451 */
79642/***/ (function(module, exports, __webpack_require__) {
79643
79644"use strict";
79645
79646
79647exports.__esModule = true;
79648
79649var _extends2 = __webpack_require__(1);
79650
79651var _extends3 = _interopRequireDefault(_extends2);
79652
79653var _objectWithoutProperties2 = __webpack_require__(8);
79654
79655var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
79656
79657var _classCallCheck2 = __webpack_require__(2);
79658
79659var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
79660
79661var _possibleConstructorReturn2 = __webpack_require__(3);
79662
79663var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
79664
79665var _inherits2 = __webpack_require__(4);
79666
79667var _inherits3 = _interopRequireDefault(_inherits2);
79668
79669var _class, _temp2;
79670
79671var _react = __webpack_require__(0);
79672
79673var _react2 = _interopRequireDefault(_react);
79674
79675var _propTypes = __webpack_require__(5);
79676
79677var _propTypes2 = _interopRequireDefault(_propTypes);
79678
79679var _classnames = __webpack_require__(7);
79680
79681var _classnames2 = _interopRequireDefault(_classnames);
79682
79683var _configProvider = __webpack_require__(9);
79684
79685var _configProvider2 = _interopRequireDefault(_configProvider);
79686
79687var _animate = __webpack_require__(20);
79688
79689var _animate2 = _interopRequireDefault(_animate);
79690
79691var _icon = __webpack_require__(11);
79692
79693var _icon2 = _interopRequireDefault(_icon);
79694
79695var _button = __webpack_require__(17);
79696
79697var _button2 = _interopRequireDefault(_button);
79698
79699var _util = __webpack_require__(6);
79700
79701function _interopRequireDefault(obj) {
79702 return obj && obj.__esModule ? obj : { default: obj };
79703}
79704
79705var Expand = _animate2.default.Expand;
79706/** Timeline.Item */
79707
79708var TimelineItem = (_temp2 = _class = function (_Component) {
79709 (0, _inherits3.default)(TimelineItem, _Component);
79710
79711 function TimelineItem() {
79712 var _temp, _this, _ret;
79713
79714 (0, _classCallCheck3.default)(this, TimelineItem);
79715
79716 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
79717 args[_key] = arguments[_key];
79718 }
79719
79720 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.beforeEnter = function () {
79721 _this['timeline-item'].style['min-height'] = 'auto';
79722 }, _this.beforeLeave = function () {
79723 _this['timeline-item'].style['min-height'] = '48px'; // timeleft 节点最小高度
79724 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
79725 }
79726
79727 TimelineItem.prototype.toggleFold = function toggleFold(folderIndex) {
79728 this.props.toggleFold(folderIndex);
79729 };
79730
79731 TimelineItem.prototype.render = function render() {
79732 var _classNames,
79733 _classNames2,
79734 _classNames3,
79735 _classNames4,
79736 _this2 = this;
79737
79738 var _props = this.props,
79739 prefix = _props.prefix,
79740 className = _props.className,
79741 state = _props.state,
79742 icon = _props.icon,
79743 dot = _props.dot,
79744 time = _props.time,
79745 title = _props.title,
79746 timeLeft = _props.timeLeft,
79747 content = _props.content,
79748 index = _props.index,
79749 total = _props.total,
79750 folderIndex = _props.folderIndex,
79751 foldShow = _props.foldShow,
79752 locale = _props.locale,
79753 animation = _props.animation,
79754 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'state', 'icon', 'dot', 'time', 'title', 'timeLeft', 'content', 'index', 'total', 'folderIndex', 'foldShow', 'locale', 'animation']);
79755
79756 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' });
79757 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));
79758 var folderCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'timeline-item-folder'] = true, _classNames2[prefix + 'timeline-item-has-left-content'] = timeLeft, _classNames2));
79759 var itemNodeCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'timeline-item-node'] = true, _classNames3[prefix + 'timeline-item-node-custom'] = dot, _classNames3));
79760 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));
79761
79762 var renderTimeLineItemContent = function renderTimeLineItemContent(isLeft) {
79763 if (isLeft) return _react2.default.createElement('p', { className: prefix + 'timeline-item-body' }, timeLeft);
79764 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));
79765 };
79766
79767 var buttonProps = {
79768 text: true,
79769 size: 'small',
79770 type: 'primary',
79771 onClick: this.toggleFold.bind(this, folderIndex, total)
79772 };
79773 var timelineNode = folderIndex && foldShow || !folderIndex ? _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(TimelineItem.propTypes, others), {
79774 className: itemCls,
79775 ref: function ref(e) {
79776 _this2['timeline-item'] = e;
79777 }
79778 }), _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;
79779 return _react2.default.createElement('li', { tabIndex: '0' }, animation && folderIndex ? _react2.default.createElement(Expand, {
79780 animationAppear: false,
79781 beforeEnter: this.beforeEnter,
79782 beforeLeave: this.beforeEnter,
79783 afterEnter: this.beforeLeave
79784 }, 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);
79785 };
79786
79787 return TimelineItem;
79788}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
79789 prefix: _propTypes2.default.string,
79790 index: _propTypes2.default.number,
79791 total: _propTypes2.default.number,
79792 folderIndex: _propTypes2.default.number,
79793 foldShow: _propTypes2.default.bool,
79794 /**
79795 * 节点状态
79796 */
79797 state: _propTypes2.default.oneOf(['done', 'process', 'error', 'success']),
79798 /**
79799 * 图标
79800 */
79801 icon: _propTypes2.default.string,
79802 /**
79803 * 自定义时间轴节点
79804 */
79805 dot: _propTypes2.default.node,
79806 /**
79807 * 格式化后的时间
79808 */
79809 time: _propTypes2.default.node,
79810 /**
79811 * 标题
79812 */
79813 title: _propTypes2.default.node,
79814 /**
79815 * 左侧时间
79816 */
79817 timeLeft: _propTypes2.default.node,
79818 /**
79819 * 右侧内容
79820 */
79821 content: _propTypes2.default.node,
79822 toggleFold: _propTypes2.default.func,
79823 className: _propTypes2.default.string,
79824 locale: _propTypes2.default.object,
79825 /**
79826 * 动画
79827 */
79828 animation: _propTypes2.default.bool
79829}), _class.defaultProps = {
79830 prefix: 'next-',
79831 state: 'done',
79832 toggleFold: function toggleFold() {},
79833 animation: true
79834}, _temp2);
79835TimelineItem.displayName = 'TimelineItem';
79836exports.default = TimelineItem;
79837module.exports = exports['default'];
79838
79839/***/ }),
79840/* 452 */
79841/***/ (function(module, exports, __webpack_require__) {
79842
79843"use strict";
79844
79845
79846exports.__esModule = true;
79847
79848var _transfer = __webpack_require__(453);
79849
79850var _transfer2 = _interopRequireDefault(_transfer);
79851
79852function _interopRequireDefault(obj) {
79853 return obj && obj.__esModule ? obj : { default: obj };
79854}
79855
79856exports.default = _transfer2.default;
79857module.exports = exports['default'];
79858
79859/***/ }),
79860/* 453 */
79861/***/ (function(module, exports, __webpack_require__) {
79862
79863"use strict";
79864
79865
79866exports.__esModule = true;
79867
79868var _extends2 = __webpack_require__(1);
79869
79870var _extends3 = _interopRequireDefault(_extends2);
79871
79872var _classCallCheck2 = __webpack_require__(2);
79873
79874var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
79875
79876var _possibleConstructorReturn2 = __webpack_require__(3);
79877
79878var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
79879
79880var _inherits2 = __webpack_require__(4);
79881
79882var _inherits3 = _interopRequireDefault(_inherits2);
79883
79884var _class, _temp;
79885
79886var _react = __webpack_require__(0);
79887
79888var _react2 = _interopRequireDefault(_react);
79889
79890var _classnames = __webpack_require__(7);
79891
79892var _classnames2 = _interopRequireDefault(_classnames);
79893
79894var _propTypes = __webpack_require__(5);
79895
79896var _propTypes2 = _interopRequireDefault(_propTypes);
79897
79898var _reactLifecyclesCompat = __webpack_require__(10);
79899
79900var _icon = __webpack_require__(11);
79901
79902var _icon2 = _interopRequireDefault(_icon);
79903
79904var _button = __webpack_require__(17);
79905
79906var _button2 = _interopRequireDefault(_button);
79907
79908var _zhCn = __webpack_require__(13);
79909
79910var _zhCn2 = _interopRequireDefault(_zhCn);
79911
79912var _util = __webpack_require__(6);
79913
79914var _configProvider = __webpack_require__(9);
79915
79916var _configProvider2 = _interopRequireDefault(_configProvider);
79917
79918var _transferPanel = __webpack_require__(454);
79919
79920var _transferPanel2 = _interopRequireDefault(_transferPanel);
79921
79922function _interopRequireDefault(obj) {
79923 return obj && obj.__esModule ? obj : { default: obj };
79924}
79925
79926var config = _configProvider2.default.config;
79927var bindCtx = _util.func.bindCtx;
79928var pickOthers = _util.obj.pickOthers;
79929
79930var getLeftValue = function getLeftValue(dataSource, rightValue) {
79931 return dataSource.map(function (item) {
79932 return item.value;
79933 }).filter(function (itemValue) {
79934 return rightValue.indexOf(itemValue) === -1;
79935 });
79936};
79937
79938var filterCheckedValue = function filterCheckedValue(left, right, dataSource) {
79939 var result = {
79940 left: [],
79941 right: []
79942 };
79943
79944 if (left.length || right.length) {
79945 var value = dataSource.map(function (item) {
79946 return item.value;
79947 });
79948 value.forEach(function (itemValue) {
79949 if (left.indexOf(itemValue) > -1) {
79950 result.left.push(itemValue);
79951 } else if (right.indexOf(itemValue) > -1) {
79952 result.right.push(itemValue);
79953 }
79954 });
79955 }
79956
79957 return result;
79958};
79959
79960/**
79961 * Transfer
79962 */
79963var Transfer = (_temp = _class = function (_Component) {
79964 (0, _inherits3.default)(Transfer, _Component);
79965
79966 Transfer.normalizeValue = function normalizeValue(value) {
79967 if (value) {
79968 if (Array.isArray(value)) {
79969 return value;
79970 }
79971 /* istanbul ignore next */
79972 return [value];
79973 }
79974
79975 return [];
79976 };
79977
79978 Transfer.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
79979 var innerUpdate = prevState.innerUpdate,
79980 value = prevState.value,
79981 leftValue = prevState.leftValue;
79982
79983 if (innerUpdate) {
79984 return {
79985 innerUpdate: false,
79986 value: value,
79987 leftValue: leftValue
79988 };
79989 }
79990 var st = {};
79991
79992 var newValue = void 0;
79993 if ('value' in nextProps) {
79994 var _value = Transfer.normalizeValue(nextProps.value);
79995 st.value = _value;
79996 newValue = _value;
79997 } else {
79998 /* istanbul ignore next */
79999 newValue = prevState.value;
80000 }
80001 st.leftValue = getLeftValue(nextProps.dataSource, newValue);
80002
80003 var _filterCheckedValue = filterCheckedValue(prevState.leftCheckedValue, prevState.rightCheckedValue, nextProps.dataSource),
80004 left = _filterCheckedValue.left,
80005 right = _filterCheckedValue.right;
80006
80007 st.leftCheckedValue = left;
80008 st.rightCheckedValue = right;
80009
80010 return st;
80011 };
80012
80013 function Transfer(props, context) {
80014 (0, _classCallCheck3.default)(this, Transfer);
80015
80016 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
80017
80018 var value = props.value,
80019 defaultValue = props.defaultValue,
80020 defaultLeftChecked = props.defaultLeftChecked,
80021 defaultRightChecked = props.defaultRightChecked,
80022 dataSource = props.dataSource,
80023 rtl = props.rtl,
80024 operations = props.operations;
80025
80026 if (operations.length === 0) {
80027 operations.push(_react2.default.createElement(_icon2.default, { rtl: rtl, type: 'arrow-right' }));
80028 operations.push(_react2.default.createElement(_icon2.default, { rtl: rtl, type: 'arrow-left' }));
80029 }
80030
80031 var _filterCheckedValue2 = filterCheckedValue(Transfer.normalizeValue(defaultLeftChecked), Transfer.normalizeValue(defaultRightChecked), dataSource),
80032 left = _filterCheckedValue2.left,
80033 right = _filterCheckedValue2.right;
80034
80035 var stValue = Transfer.normalizeValue('value' in props ? value : defaultValue);
80036 _this.state = {
80037 value: stValue,
80038 leftCheckedValue: left,
80039 rightCheckedValue: right,
80040 leftValue: getLeftValue(dataSource, stValue)
80041 };
80042
80043 bindCtx(_this, ['handlePanelChange', 'handlePanelSort', 'handleMoveItem', 'handleSimpleMove', 'handleSimpleMoveAll']);
80044 return _this;
80045 }
80046
80047 Transfer.prototype.groupDatasource = function groupDatasource(value, itemValues, dataSource) {
80048 return value.reduce(function (ret, itemValue) {
80049 var index = itemValues.indexOf(itemValue);
80050 if (index > -1) {
80051 ret.push(dataSource[index]);
80052 }
80053 return ret;
80054 }, []);
80055 };
80056
80057 Transfer.prototype.handlePanelChange = function handlePanelChange(position, value) {
80058 var _setState;
80059
80060 var _state = this.state,
80061 leftCheckedValue = _state.leftCheckedValue,
80062 rightCheckedValue = _state.rightCheckedValue;
80063 var onSelect = this.props.onSelect;
80064
80065 var valuePropName = position === 'left' ? 'leftCheckedValue' : 'rightCheckedValue';
80066 // inner state changed
80067 this.setState((_setState = {
80068 innerUpdate: true
80069 }, _setState[valuePropName] = value, _setState));
80070 onSelect && onSelect(position === 'left' ? value : leftCheckedValue, position === 'left' ? rightCheckedValue : value, position === 'left' ? 'source' : 'target');
80071 };
80072
80073 Transfer.prototype.handlePanelSort = function handlePanelSort(position, dragValue, referenceValue, dragGap) {
80074 var _this2 = this;
80075
80076 var _state2 = this.state,
80077 value = _state2.value,
80078 leftValue = _state2.leftValue;
80079
80080 var newValue = position === 'right' ? value : leftValue;
80081 var currentIndex = newValue.indexOf(dragValue);
80082 var referenceIndex = newValue.indexOf(referenceValue);
80083 var expectIndex = dragGap === 'before' ? referenceIndex : referenceIndex + 1;
80084 if (currentIndex === expectIndex) {
80085 return;
80086 }
80087
80088 newValue.splice(currentIndex, 1);
80089 if (currentIndex < expectIndex) {
80090 expectIndex = expectIndex - 1;
80091 }
80092 newValue.splice(expectIndex, 0, dragValue);
80093 this.setState({
80094 innerUpdate: true,
80095 value: value,
80096 leftValue: leftValue
80097 }, function () {
80098 _this2.props.onSort(newValue, position);
80099 });
80100 };
80101
80102 Transfer.prototype.handleMoveItem = function handleMoveItem(direction) {
80103 var _st;
80104
80105 var rightValue = void 0;
80106 var newLeftValue = void 0;
80107 var movedValue = void 0;
80108 var valuePropName = void 0;
80109
80110 var _state3 = this.state,
80111 value = _state3.value,
80112 leftValue = _state3.leftValue,
80113 leftCheckedValue = _state3.leftCheckedValue,
80114 rightCheckedValue = _state3.rightCheckedValue;
80115
80116 if (direction === 'right') {
80117 rightValue = leftCheckedValue.concat(value);
80118 newLeftValue = leftValue.filter(function (itemValue) {
80119 return leftCheckedValue.indexOf(itemValue) === -1;
80120 });
80121 movedValue = leftCheckedValue;
80122 valuePropName = 'leftCheckedValue';
80123 } else {
80124 rightValue = value.filter(function (itemValue) {
80125 return rightCheckedValue.indexOf(itemValue) === -1;
80126 });
80127 newLeftValue = rightCheckedValue.concat(leftValue);
80128 movedValue = rightCheckedValue;
80129 valuePropName = 'rightCheckedValue';
80130 }
80131
80132 var st = (_st = {}, _st[valuePropName] = [], _st);
80133
80134 this.setValueState(st, rightValue, newLeftValue, movedValue, direction);
80135 };
80136
80137 Transfer.prototype.handleSimpleMove = function handleSimpleMove(direction, v) {
80138 var rightValue = void 0;
80139 var newLeftValue = void 0;
80140
80141 var _state4 = this.state,
80142 value = _state4.value,
80143 leftValue = _state4.leftValue;
80144
80145 if (direction === 'right') {
80146 rightValue = [v].concat(value);
80147 newLeftValue = leftValue.filter(function (itemValue) {
80148 return itemValue !== v;
80149 });
80150 } else {
80151 rightValue = value.filter(function (itemValue) {
80152 return itemValue !== v;
80153 });
80154 newLeftValue = [v].concat(leftValue);
80155 }
80156
80157 this.setValueState({}, rightValue, newLeftValue, [v], direction);
80158 };
80159
80160 Transfer.prototype.handleSimpleMoveAll = function handleSimpleMoveAll(direction) {
80161 var rightValue = void 0;
80162 var newLeftValue = void 0;
80163 var movedValue = void 0;
80164
80165 var dataSource = this.props.dataSource;
80166 var _state5 = this.state,
80167 value = _state5.value,
80168 leftValue = _state5.leftValue;
80169
80170 var disabledValue = dataSource.reduce(function (ret, item) {
80171 if (item.disabled) {
80172 ret.push(item.value);
80173 }
80174
80175 return ret;
80176 }, []);
80177
80178 if (direction === 'right') {
80179 movedValue = leftValue.filter(function (itemValue) {
80180 return disabledValue.indexOf(itemValue) === -1;
80181 });
80182 rightValue = movedValue.concat(value);
80183 newLeftValue = leftValue.filter(function (itemValue) {
80184 return disabledValue.indexOf(itemValue) > -1;
80185 });
80186 } else {
80187 movedValue = value.filter(function (itemValue) {
80188 return disabledValue.indexOf(itemValue) === -1;
80189 });
80190 rightValue = value.filter(function (itemValue) {
80191 return disabledValue.indexOf(itemValue) > -1;
80192 });
80193 newLeftValue = movedValue.concat(leftValue);
80194 }
80195
80196 this.setValueState({}, rightValue, newLeftValue, movedValue, direction);
80197 };
80198
80199 // eslint-disable-next-line max-params
80200
80201
80202 Transfer.prototype.setValueState = function setValueState(st, rightValue, leftValue, movedValue, direction) {
80203 var _this3 = this;
80204
80205 var dataSource = this.props.dataSource;
80206
80207 var callback = function callback() {
80208 if ('onChange' in _this3.props) {
80209 var itemValues = dataSource.map(function (item) {
80210 return item.value;
80211 });
80212 var rightData = _this3.groupDatasource(rightValue, itemValues, dataSource);
80213 var leftData = _this3.groupDatasource(leftValue, itemValues, dataSource);
80214 var movedData = _this3.groupDatasource(movedValue, itemValues, dataSource);
80215
80216 _this3.props.onChange(rightValue, rightData, {
80217 leftValue: leftValue,
80218 leftData: leftData,
80219 movedValue: movedValue,
80220 movedData: movedData,
80221 direction: direction
80222 });
80223 }
80224 };
80225
80226 if (!('value' in this.props)) {
80227 st.value = rightValue;
80228 st.leftValue = leftValue;
80229 }
80230
80231 if (Object.keys(st).length) {
80232 this.setState(st, callback);
80233 } else {
80234 // eslint-disable-next-line callback-return
80235 callback();
80236 }
80237 };
80238
80239 Transfer.prototype.renderCenter = function renderCenter() {
80240 var _props = this.props,
80241 prefix = _props.prefix,
80242 mode = _props.mode,
80243 operations = _props.operations,
80244 disabled = _props.disabled,
80245 leftDisabled = _props.leftDisabled,
80246 rightDisabled = _props.rightDisabled,
80247 locale = _props.locale;
80248 var _state6 = this.state,
80249 leftCheckedValue = _state6.leftCheckedValue,
80250 rightCheckedValue = _state6.rightCheckedValue;
80251
80252 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, {
80253 'aria-label': locale.moveToRight,
80254 key: 'l2r',
80255 className: prefix + 'transfer-operation',
80256 type: leftCheckedValue.length ? 'primary' : 'normal',
80257 disabled: leftDisabled || disabled || !leftCheckedValue.length,
80258 onClick: this.handleMoveItem.bind(this, 'right')
80259 }, operations[0]), _react2.default.createElement(_button2.default, {
80260 'aria-label': locale.moveToLeft,
80261 key: 'r2l',
80262 className: prefix + 'transfer-operation',
80263 type: rightCheckedValue.length ? 'primary' : 'normal',
80264 disabled: rightDisabled || disabled || !rightCheckedValue.length,
80265 onClick: this.handleMoveItem.bind(this, 'left')
80266 }, operations[1])]);
80267 };
80268
80269 Transfer.prototype.render = function render() {
80270 var _props2 = this.props,
80271 prefix = _props2.prefix,
80272 mode = _props2.mode,
80273 disabled = _props2.disabled,
80274 className = _props2.className,
80275 dataSource = _props2.dataSource,
80276 locale = _props2.locale,
80277 _props2$showSearch = _props2.showSearch,
80278 showSearch = _props2$showSearch === undefined ? false : _props2$showSearch,
80279 _props2$searchProps = _props2.searchProps,
80280 searchProps = _props2$searchProps === undefined ? {} : _props2$searchProps,
80281 filter = _props2.filter,
80282 onSearch = _props2.onSearch,
80283 leftDisabled = _props2.leftDisabled,
80284 rightDisabled = _props2.rightDisabled,
80285 searchPlaceholder = _props2.searchPlaceholder,
80286 notFoundContent = _props2.notFoundContent,
80287 titles = _props2.titles,
80288 listClassName = _props2.listClassName,
80289 listStyle = _props2.listStyle,
80290 itemRender = _props2.itemRender,
80291 sortable = _props2.sortable,
80292 useVirtual = _props2.useVirtual,
80293 rtl = _props2.rtl,
80294 id = _props2.id,
80295 children = _props2.children,
80296 showCheckAll = _props2.showCheckAll;
80297 var _state7 = this.state,
80298 value = _state7.value,
80299 leftValue = _state7.leftValue,
80300 leftCheckedValue = _state7.leftCheckedValue,
80301 rightCheckedValue = _state7.rightCheckedValue;
80302
80303 var itemValues = dataSource.map(function (item) {
80304 return item.value;
80305 });
80306 var leftDatasource = this.groupDatasource(leftValue, itemValues, dataSource);
80307 var rightDatasource = this.groupDatasource(value, itemValues, dataSource);
80308 var panelProps = {
80309 prefix: prefix,
80310 mode: mode,
80311 locale: locale,
80312 filter: filter,
80313 onSearch: onSearch,
80314 searchPlaceholder: searchPlaceholder,
80315 listClassName: listClassName,
80316 listStyle: listStyle,
80317 itemRender: itemRender,
80318 onMove: this.handleSimpleMove,
80319 onMoveAll: this.handleSimpleMoveAll,
80320 onChange: this.handlePanelChange,
80321 sortable: sortable,
80322 useVirtual: useVirtual,
80323 onSort: this.handlePanelSort,
80324 baseId: id,
80325 customerList: children,
80326 showCheckAll: showCheckAll
80327 };
80328 var others = pickOthers(Object.keys(Transfer.propTypes), this.props);
80329
80330 if (rtl) {
80331 others.dir = 'rtl';
80332 }
80333 var _showSearch = Array.isArray(showSearch) ? showSearch : [showSearch, showSearch];
80334 var _searchProps = Array.isArray(searchProps) ? searchProps : [searchProps, searchProps];
80335 var _notFoundContent = Array.isArray(notFoundContent) ? notFoundContent : [notFoundContent, notFoundContent];
80336 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, {
80337 position: 'left',
80338 dataSource: leftDatasource,
80339 disabled: leftDisabled || disabled,
80340 value: leftCheckedValue,
80341 showSearch: _showSearch[0],
80342 searchProps: _searchProps[0],
80343 notFoundContent: _notFoundContent[0],
80344 title: titles[0]
80345 })), this.renderCenter(), _react2.default.createElement(_transferPanel2.default, (0, _extends3.default)({}, panelProps, {
80346 position: 'right',
80347 dataSource: rightDatasource,
80348 disabled: rightDisabled || disabled,
80349 value: rightCheckedValue,
80350 showSearch: _showSearch[1],
80351 searchProps: _searchProps[1],
80352 notFoundContent: _notFoundContent[1],
80353 title: titles[1]
80354 })));
80355 };
80356
80357 return Transfer;
80358}(_react.Component), _class.contextTypes = {
80359 prefix: _propTypes2.default.string
80360}, _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
80361 prefix: _propTypes2.default.string,
80362 pure: _propTypes2.default.bool,
80363 rtl: _propTypes2.default.bool,
80364 className: _propTypes2.default.string,
80365 /**
80366 * 移动选项模式
80367 */
80368 mode: _propTypes2.default.oneOf(['normal', 'simple']),
80369 /**
80370 * 数据源
80371 */
80372 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.object),
80373 /**
80374 * (用于受控)当前值
80375 */
80376 value: _propTypes2.default.arrayOf(_propTypes2.default.string),
80377 /**
80378 * (用于非受控)初始值
80379 */
80380 defaultValue: _propTypes2.default.arrayOf(_propTypes2.default.string),
80381 /**
80382 * 值发生改变的时候触发的回调函数
80383 * @param {Array} value 右面板值
80384 * @param {Array} data 右面板数据
80385 * @param {Object} extra 额外参数
80386 * @param {Array} extra.leftValue 左面板值
80387 * @param {Array} extra.leftData 左面板数据
80388 * @param {Array} extra.movedValue 发生移动的值
80389 * @param {Object} extra.movedData 发生移动的数据
80390 * @param {String} extra.direction 移动的方向,值为'left'或'right'
80391 */
80392 onChange: _propTypes2.default.func,
80393 /**
80394 * Item 被选中的时候触发的回调函数
80395 * @param {Array} sourceSelectedValue 源面板选中的 Item 列表
80396 * @param {Array} targetSelectedValue 目标面板选中的 Item 列表
80397 * @param {String} trigger 触发面板,值为'source'或'target'
80398 */
80399 onSelect: _propTypes2.default.func,
80400 /**
80401 * 是否禁用
80402 */
80403 disabled: _propTypes2.default.bool,
80404 /**
80405 * 是否禁用左侧面板
80406 */
80407 leftDisabled: _propTypes2.default.bool,
80408 /**
80409 * 是否禁用右侧面板
80410 */
80411 rightDisabled: _propTypes2.default.bool,
80412 /**
80413 * 列表项渲染函数
80414 * @param {Object} data 数据
80415 * @return {ReactNode} 列表项内容
80416 */
80417 itemRender: _propTypes2.default.func,
80418 /**
80419 * 自定义搜索函数
80420 * @param {String} searchedValue 搜索的内容
80421 * @param {Object} data 数据
80422 * @return {Boolean} 是否匹配到
80423 * @default 根据 label 属性匹配
80424 */
80425 filter: _propTypes2.default.func,
80426 /**
80427 * 搜索框输入时触发的回调函数
80428 * @param {String} searchedValue 搜索的内容
80429 * @param {String} position 搜索面板的位置
80430 */
80431 onSearch: _propTypes2.default.func,
80432 /**
80433 * 搜索框占位符
80434 */
80435 searchPlaceholder: _propTypes2.default.string,
80436 /**
80437 * 左右面板是否显示搜索框
80438 */
80439 showSearch: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.arrayOf(_propTypes2.default.bool)]),
80440 /**
80441 * 左右面板搜索框配置项,同 Search 组件 props
80442 */
80443 searchProps: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.arrayOf(_propTypes2.default.object)]),
80444 /**
80445 * 列表为空显示内容
80446 */
80447 notFoundContent: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.arrayOf(_propTypes2.default.node)]),
80448 /**
80449 * 左右面板标题
80450 */
80451 titles: _propTypes2.default.arrayOf(_propTypes2.default.node),
80452 /**
80453 * 向右向左移动按钮显示内容
80454 * @default [<Icon type="arrow-right" />, <Icon type="arrow-left" />]
80455 */
80456 operations: _propTypes2.default.arrayOf(_propTypes2.default.node),
80457 /**
80458 * 左面板默认选中值
80459 */
80460 defaultLeftChecked: _propTypes2.default.arrayOf(_propTypes2.default.string),
80461 /**
80462 * 右面板默认选中值
80463 */
80464 defaultRightChecked: _propTypes2.default.arrayOf(_propTypes2.default.string),
80465 /**
80466 * 左右面板列表自定义样式类名
80467 */
80468 listClassName: _propTypes2.default.string,
80469 /**
80470 * 左右面板列表自定义样式对象
80471 */
80472 listStyle: _propTypes2.default.object,
80473 /**
80474 * 是否允许拖拽排序
80475 */
80476 sortable: _propTypes2.default.bool,
80477 /**
80478 * 拖拽排序时触发的回调函数
80479 * @param {Array} value 排序后的值
80480 * @param {String} position 拖拽的面板位置,值为:left 或 right
80481 */
80482 onSort: _propTypes2.default.func,
80483 /**
80484 * 自定义国际化文案对象
80485 */
80486 locale: _propTypes2.default.object,
80487 /**
80488 * 请设置 id 以保证transfer的可访问性
80489 */
80490 id: _propTypes2.default.string,
80491 /**
80492 * 接收 children 自定义渲染列表
80493 */
80494 children: _propTypes2.default.func,
80495 /**
80496 * 是否开启虚拟滚动
80497 */
80498 useVirtual: _propTypes2.default.bool,
80499 /**
80500 * 是否显示底部全选 checkbox
80501 */
80502 showCheckAll: _propTypes2.default.bool
80503}), _class.defaultProps = {
80504 prefix: 'next-',
80505 pure: false,
80506 mode: 'normal',
80507 dataSource: [],
80508 defaultValue: [],
80509 disabled: false,
80510 leftDisabled: false,
80511 rightDisabled: false,
80512 showCheckAll: true,
80513 itemRender: function itemRender(data) {
80514 return data.label;
80515 },
80516 showSearch: false,
80517 filter: function filter(searchedValue, data) {
80518 var labelString = '';
80519 var loop = function loop(arg) {
80520 if (_react2.default.isValidElement(arg) && arg.props.children) {
80521 _react2.default.Children.forEach(arg.props.children, loop);
80522 } else if (typeof arg === 'string') {
80523 labelString += arg;
80524 }
80525 };
80526 loop(data.label);
80527
80528 return labelString.length >= searchedValue.length && labelString.indexOf(searchedValue) > -1;
80529 },
80530 onSearch: function onSearch() {},
80531 notFoundContent: 'Not Found',
80532 titles: [],
80533 operations: [],
80534 defaultLeftChecked: [],
80535 defaultRightChecked: [],
80536 sortable: false,
80537 onSort: function onSort() {},
80538 locale: _zhCn2.default.Transfer
80539}, _temp);
80540Transfer.displayName = 'Transfer';
80541exports.default = config((0, _reactLifecyclesCompat.polyfill)(Transfer));
80542module.exports = exports['default'];
80543
80544/***/ }),
80545/* 454 */
80546/***/ (function(module, exports, __webpack_require__) {
80547
80548"use strict";
80549
80550
80551exports.__esModule = true;
80552exports.default = undefined;
80553
80554var _extends2 = __webpack_require__(1);
80555
80556var _extends3 = _interopRequireDefault(_extends2);
80557
80558var _classCallCheck2 = __webpack_require__(2);
80559
80560var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
80561
80562var _possibleConstructorReturn2 = __webpack_require__(3);
80563
80564var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
80565
80566var _inherits2 = __webpack_require__(4);
80567
80568var _inherits3 = _interopRequireDefault(_inherits2);
80569
80570var _class, _temp;
80571
80572var _react = __webpack_require__(0);
80573
80574var _react2 = _interopRequireDefault(_react);
80575
80576var _propTypes = __webpack_require__(5);
80577
80578var _propTypes2 = _interopRequireDefault(_propTypes);
80579
80580var _classnames = __webpack_require__(7);
80581
80582var _classnames2 = _interopRequireDefault(_classnames);
80583
80584var _checkbox = __webpack_require__(49);
80585
80586var _checkbox2 = _interopRequireDefault(_checkbox);
80587
80588var _search = __webpack_require__(180);
80589
80590var _search2 = _interopRequireDefault(_search);
80591
80592var _menu = __webpack_require__(16);
80593
80594var _menu2 = _interopRequireDefault(_menu);
80595
80596var _util = __webpack_require__(6);
80597
80598var _transferItem = __webpack_require__(455);
80599
80600var _transferItem2 = _interopRequireDefault(_transferItem);
80601
80602var _virtualList = __webpack_require__(51);
80603
80604var _virtualList2 = _interopRequireDefault(_virtualList);
80605
80606function _interopRequireDefault(obj) {
80607 return obj && obj.__esModule ? obj : { default: obj };
80608}
80609
80610var bindCtx = _util.func.bindCtx;
80611var TransferPanel = (_temp = _class = function (_Component) {
80612 (0, _inherits3.default)(TransferPanel, _Component);
80613
80614 function TransferPanel(props, context) {
80615 (0, _classCallCheck3.default)(this, TransferPanel);
80616
80617 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
80618
80619 _this.state = {
80620 searchedValue: '',
80621 dragValue: null,
80622 dragOverValue: null
80623 };
80624 _this.footerId = props.baseId ? _util.htmlId.escapeForId(props.baseId + '-panel-footer-' + props.position) : '';
80625 _this.headerId = props.baseId ? _util.htmlId.escapeForId(props.baseId + '-panel-header-' + props.position) : '';
80626
80627 bindCtx(_this, ['handleCheck', 'handleAllCheck', 'handleSearch', 'handleItemDragStart', 'handleItemDragOver', 'handleItemDragEnd', 'handleItemDrop', 'getListDOM']);
80628 _this.firstRender = true;
80629 return _this;
80630 }
80631
80632 TransferPanel.prototype.componentDidMount = function componentDidMount() {
80633 this.firstRender = false;
80634 };
80635
80636 TransferPanel.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
80637 if (prevProps.dataSource.length !== this.props.dataSource.length && this.list) {
80638 if (this.list.scrollTop > 0) {
80639 this.list.scrollTop = 0;
80640 }
80641 }
80642
80643 this.searched = false;
80644 };
80645
80646 TransferPanel.prototype.getListDOM = function getListDOM(ref) {
80647 this.list = ref;
80648 };
80649
80650 TransferPanel.prototype.getListData = function getListData(dataSource, disableHighlight) {
80651 var _this2 = this;
80652
80653 var _props = this.props,
80654 prefix = _props.prefix,
80655 position = _props.position,
80656 mode = _props.mode,
80657 value = _props.value,
80658 onMove = _props.onMove,
80659 disabled = _props.disabled,
80660 itemRender = _props.itemRender,
80661 sortable = _props.sortable;
80662 var _state = this.state,
80663 dragPosition = _state.dragPosition,
80664 dragValue = _state.dragValue,
80665 dragOverValue = _state.dragOverValue;
80666
80667 return dataSource.map(function (item) {
80668 var others = 'title' in item ? {
80669 title: item.title
80670 } : {};
80671
80672 return _react2.default.createElement(_transferItem2.default, (0, _extends3.default)({
80673 key: item.value,
80674 prefix: prefix,
80675 mode: mode,
80676 checked: value.indexOf(item.value) > -1,
80677 disabled: disabled || item.disabled,
80678 item: item,
80679 onCheck: _this2.handleCheck,
80680 onClick: onMove,
80681 needHighlight: !_this2.firstRender && !_this2.searched && !disableHighlight,
80682 itemRender: itemRender,
80683 draggable: sortable,
80684 onDragStart: _this2.handleItemDragStart,
80685 onDragOver: _this2.handleItemDragOver,
80686 onDragEnd: _this2.handleItemDragEnd,
80687 onDrop: _this2.handleItemDrop,
80688 dragPosition: dragPosition,
80689 dragValue: dragValue,
80690 dragOverValue: dragOverValue,
80691 panelPosition: position
80692 }, others));
80693 });
80694 };
80695
80696 TransferPanel.prototype.handleAllCheck = function handleAllCheck(allChecked) {
80697 var _props2 = this.props,
80698 position = _props2.position,
80699 onChange = _props2.onChange,
80700 filter = _props2.filter;
80701 var searchedValue = this.state.searchedValue;
80702
80703 var newValue = void 0;
80704 if (allChecked) {
80705 if (searchedValue) {
80706 newValue = this.enabledDatasource.filter(function (item) {
80707 return filter(searchedValue, item);
80708 }).map(function (item) {
80709 return item.value;
80710 });
80711 } else {
80712 newValue = this.enabledDatasource.map(function (item) {
80713 return item.value;
80714 });
80715 }
80716 } else {
80717 newValue = [];
80718 }
80719
80720 onChange && onChange(position, newValue);
80721 };
80722
80723 TransferPanel.prototype.handleCheck = function handleCheck(itemValue, checked) {
80724 var _props3 = this.props,
80725 position = _props3.position,
80726 value = _props3.value,
80727 onChange = _props3.onChange;
80728
80729 var newValue = [].concat(value);
80730 var index = value.indexOf(itemValue);
80731 if (checked && index === -1) {
80732 newValue.push(itemValue);
80733 } else if (!checked && index > -1) {
80734 newValue.splice(index, 1);
80735 }
80736
80737 onChange && onChange(position, newValue);
80738 };
80739
80740 TransferPanel.prototype.handleSearch = function handleSearch(searchedValue) {
80741 this.setState({
80742 searchedValue: searchedValue
80743 });
80744 this.searched = true;
80745
80746 var _props4 = this.props,
80747 onSearch = _props4.onSearch,
80748 position = _props4.position;
80749
80750 onSearch(searchedValue, position);
80751 };
80752
80753 TransferPanel.prototype.handleItemDragStart = function handleItemDragStart(position, value) {
80754 this.setState({
80755 dragPosition: position,
80756 dragValue: value
80757 });
80758 };
80759
80760 TransferPanel.prototype.handleItemDragOver = function handleItemDragOver(value) {
80761 this.setState({
80762 dragOverValue: value
80763 });
80764 };
80765
80766 TransferPanel.prototype.handleItemDragEnd = function handleItemDragEnd() {
80767 this.setState({
80768 dragOverValue: null
80769 });
80770 };
80771
80772 TransferPanel.prototype.handleItemDrop = function handleItemDrop() {
80773 var _props5;
80774
80775 this.setState({
80776 dragOverValue: null
80777 });
80778
80779 (_props5 = this.props).onSort.apply(_props5, arguments);
80780 };
80781
80782 TransferPanel.prototype.renderHeader = function renderHeader() {
80783 var _props6 = this.props,
80784 title = _props6.title,
80785 prefix = _props6.prefix;
80786
80787 return _react2.default.createElement('div', { id: this.headerId, className: prefix + 'transfer-panel-header' }, title);
80788 };
80789
80790 TransferPanel.prototype.renderSearch = function renderSearch() {
80791 var _props7 = this.props,
80792 prefix = _props7.prefix,
80793 searchPlaceholder = _props7.searchPlaceholder,
80794 locale = _props7.locale,
80795 _props7$searchProps = _props7.searchProps,
80796 searchProps = _props7$searchProps === undefined ? {} : _props7$searchProps;
80797
80798 return _react2.default.createElement(_search2.default, (0, _extends3.default)({
80799 'aria-labelledby': this.headerId,
80800 shape: 'simple'
80801 }, searchProps, {
80802 className: prefix + 'transfer-panel-search',
80803 placeholder: searchPlaceholder || locale.searchPlaceholder,
80804 onChange: this.handleSearch
80805 }));
80806 };
80807
80808 TransferPanel.prototype.renderList = function renderList(dataSource) {
80809 var _cx;
80810
80811 var _props8 = this.props,
80812 prefix = _props8.prefix,
80813 listClassName = _props8.listClassName,
80814 listStyle = _props8.listStyle,
80815 customerList = _props8.customerList,
80816 useVirtual = _props8.useVirtual;
80817
80818 var newClassName = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'transfer-panel-list'] = true, _cx[listClassName] = !!listClassName, _cx));
80819
80820 var customerPanel = customerList && customerList(this.props);
80821 if (customerPanel) {
80822 return _react2.default.createElement('div', { className: newClassName, style: listStyle, ref: this.getListDOM }, customerPanel);
80823 }
80824
80825 if (!dataSource.length) {
80826 return _react2.default.createElement('div', { className: newClassName, style: listStyle }, this.renderNotFoundContent());
80827 }
80828
80829 if (useVirtual) {
80830 return _react2.default.createElement('div', { className: newClassName, style: (0, _extends3.default)({ position: 'relative' }, listStyle) }, _react2.default.createElement(_virtualList2.default, {
80831 itemsRenderer: function itemsRenderer(items, ref) {
80832 return _react2.default.createElement(_menu2.default, { style: { border: 'none' }, ref: ref }, items);
80833 }
80834 }, this.getListData(dataSource, true)));
80835 }
80836
80837 return _react2.default.createElement(_menu2.default, { className: newClassName, style: listStyle, ref: this.getListDOM }, this.getListData(dataSource));
80838 };
80839
80840 TransferPanel.prototype.renderNotFoundContent = function renderNotFoundContent() {
80841 var _props9 = this.props,
80842 prefix = _props9.prefix,
80843 notFoundContent = _props9.notFoundContent;
80844
80845 return _react2.default.createElement('div', { className: prefix + 'transfer-panel-not-found-container' }, _react2.default.createElement('div', { className: prefix + 'transfer-panel-not-found' }, notFoundContent));
80846 };
80847
80848 TransferPanel.prototype.renderFooter = function renderFooter() {
80849 var _props10 = this.props,
80850 prefix = _props10.prefix,
80851 position = _props10.position,
80852 mode = _props10.mode,
80853 disabled = _props10.disabled,
80854 locale = _props10.locale,
80855 showCheckAll = _props10.showCheckAll;
80856
80857 if (mode === 'simple') {
80858 var _cx2;
80859
80860 var onMoveAll = this.props.onMoveAll;
80861
80862 var classNames = (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'transfer-panel-move-all'] = true, _cx2[prefix + 'disabled'] = disabled, _cx2));
80863 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));
80864 }
80865
80866 var _props11 = this.props,
80867 value = _props11.value,
80868 showSearch = _props11.showSearch,
80869 filter = _props11.filter,
80870 dataSource = _props11.dataSource;
80871 var searchedValue = this.state.searchedValue;
80872
80873 var totalCount = dataSource.length;
80874 var _dataSource = dataSource;
80875 var checkedCount = value.length;
80876 var _checkedCount = checkedCount;
80877 if (showSearch && searchedValue) {
80878 _dataSource = dataSource.filter(function (item) {
80879 return filter(searchedValue, item);
80880 });
80881 totalCount = _dataSource.length;
80882 _checkedCount = _dataSource.filter(function (item) {
80883 return value.includes(item.value);
80884 }).length;
80885 }
80886 var totalEnabledCount = Math.min(totalCount, this.enabledDatasource.length);
80887 var checked = checkedCount > 0 && checkedCount >= totalEnabledCount;
80888 var indeterminate = checkedCount > 0 && _checkedCount >= 0 && _checkedCount < totalEnabledCount;
80889 var items = totalCount > 1 ? locale.items : locale.item;
80890 var countLabel = checkedCount === 0 ? totalCount + ' ' + items : checkedCount + '/' + totalCount + ' ' + items;
80891
80892 return _react2.default.createElement('div', { className: prefix + 'transfer-panel-footer' }, showCheckAll && _react2.default.createElement(_checkbox2.default, {
80893 disabled: disabled,
80894 checked: checked,
80895 indeterminate: indeterminate,
80896 onChange: this.handleAllCheck,
80897 'aria-labelledby': this.footerId
80898 }), _react2.default.createElement('span', { className: prefix + 'transfer-panel-count', id: this.footerId }, countLabel));
80899 };
80900
80901 TransferPanel.prototype.render = function render() {
80902 var _props12 = this.props,
80903 prefix = _props12.prefix,
80904 title = _props12.title,
80905 showSearch = _props12.showSearch,
80906 filter = _props12.filter,
80907 dataSource = _props12.dataSource;
80908 var searchedValue = this.state.searchedValue;
80909
80910 var _dataSource = this.props.dataSource;
80911 this.enabledDatasource = dataSource.filter(function (item) {
80912 return !item.disabled;
80913 });
80914 if (showSearch && searchedValue) {
80915 _dataSource = dataSource.filter(function (item) {
80916 return filter(searchedValue, item);
80917 });
80918 }
80919
80920 return _react2.default.createElement('div', { className: prefix + 'transfer-panel' }, title ? this.renderHeader() : null, showSearch ? this.renderSearch() : null, this.renderList(_dataSource), this.renderFooter());
80921 };
80922
80923 return TransferPanel;
80924}(_react.Component), _class.propTypes = {
80925 prefix: _propTypes2.default.string,
80926 position: _propTypes2.default.oneOf(['left', 'right']),
80927 mode: _propTypes2.default.oneOf(['normal', 'simple']),
80928 dataSource: _propTypes2.default.array,
80929 value: _propTypes2.default.array,
80930 onChange: _propTypes2.default.func,
80931 onMove: _propTypes2.default.func,
80932 onMoveAll: _propTypes2.default.func,
80933 disabled: _propTypes2.default.bool,
80934 locale: _propTypes2.default.object,
80935 title: _propTypes2.default.node,
80936 showSearch: _propTypes2.default.bool,
80937 searchProps: _propTypes2.default.object,
80938 filter: _propTypes2.default.func,
80939 onSearch: _propTypes2.default.func,
80940 searchPlaceholder: _propTypes2.default.string,
80941 notFoundContent: _propTypes2.default.node,
80942 listClassName: _propTypes2.default.string,
80943 listStyle: _propTypes2.default.object,
80944 itemRender: _propTypes2.default.func,
80945 sortable: _propTypes2.default.bool,
80946 onSort: _propTypes2.default.func,
80947 baseId: _propTypes2.default.string,
80948 customerList: _propTypes2.default.func,
80949 useVirtual: _propTypes2.default.bool,
80950 showCheckAll: _propTypes2.default.bool
80951}, _temp);
80952TransferPanel.displayName = 'TransferPanel';
80953exports.default = TransferPanel;
80954module.exports = exports['default'];
80955
80956/***/ }),
80957/* 455 */
80958/***/ (function(module, exports, __webpack_require__) {
80959
80960"use strict";
80961
80962
80963exports.__esModule = true;
80964exports.default = undefined;
80965
80966var _extends2 = __webpack_require__(1);
80967
80968var _extends3 = _interopRequireDefault(_extends2);
80969
80970var _classCallCheck2 = __webpack_require__(2);
80971
80972var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
80973
80974var _possibleConstructorReturn2 = __webpack_require__(3);
80975
80976var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
80977
80978var _inherits2 = __webpack_require__(4);
80979
80980var _inherits3 = _interopRequireDefault(_inherits2);
80981
80982var _class, _temp;
80983
80984var _react = __webpack_require__(0);
80985
80986var _react2 = _interopRequireDefault(_react);
80987
80988var _propTypes = __webpack_require__(5);
80989
80990var _propTypes2 = _interopRequireDefault(_propTypes);
80991
80992var _classnames = __webpack_require__(7);
80993
80994var _classnames2 = _interopRequireDefault(_classnames);
80995
80996var _menu = __webpack_require__(16);
80997
80998var _menu2 = _interopRequireDefault(_menu);
80999
81000var _util = __webpack_require__(6);
81001
81002function _interopRequireDefault(obj) {
81003 return obj && obj.__esModule ? obj : { default: obj };
81004}
81005
81006var Item = _menu2.default.Item,
81007 CheckboxItem = _menu2.default.CheckboxItem;
81008var bindCtx = _util.func.bindCtx;
81009var pickOthers = _util.obj.pickOthers;
81010var getOffset = _util.dom.getOffset;
81011var TransferItem = (_temp = _class = function (_Component) {
81012 (0, _inherits3.default)(TransferItem, _Component);
81013
81014 function TransferItem(props) {
81015 (0, _classCallCheck3.default)(this, TransferItem);
81016
81017 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
81018
81019 _this.state = {
81020 highlight: false
81021 };
81022
81023 bindCtx(_this, ['getItemDOM', 'handleClick', 'handleDragStart', 'handleDragOver', 'handleDragEnd', 'handleDrop']);
81024 return _this;
81025 }
81026
81027 TransferItem.prototype.componentDidMount = function componentDidMount() {
81028 var _this2 = this;
81029
81030 if (this.props.needHighlight) {
81031 this.addHighlightTimer = setTimeout(function () {
81032 _this2.setState({
81033 highlight: true
81034 });
81035 }, 1);
81036 this.removeHighlightTimer = setTimeout(function () {
81037 _this2.setState({
81038 highlight: false
81039 });
81040 }, 201);
81041 }
81042 };
81043
81044 TransferItem.prototype.componentWillUnmount = function componentWillUnmount() {
81045 clearTimeout(this.addHighlightTimer);
81046 clearTimeout(this.removeHighlightTimer);
81047 };
81048
81049 TransferItem.prototype.getItemDOM = function getItemDOM(ref) {
81050 this.item = ref;
81051 };
81052
81053 TransferItem.prototype.handleClick = function handleClick() {
81054 var _props = this.props,
81055 onClick = _props.onClick,
81056 panelPosition = _props.panelPosition,
81057 item = _props.item;
81058
81059 onClick(panelPosition === 'left' ? 'right' : 'left', item.value);
81060 };
81061
81062 TransferItem.prototype.handleDragStart = function handleDragStart(ev) {
81063 ev && ev.dataTransfer && typeof ev.dataTransfer.setData === 'function' && ev.dataTransfer.setData('text/plain', ev.target.id);
81064 var _props2 = this.props,
81065 onDragStart = _props2.onDragStart,
81066 panelPosition = _props2.panelPosition,
81067 item = _props2.item;
81068
81069 onDragStart(panelPosition, item.value);
81070 };
81071
81072 TransferItem.prototype.getDragGap = function getDragGap(e) {
81073 var referenceTop = getOffset(e.currentTarget).top;
81074 var referenceHeight = e.currentTarget.offsetHeight;
81075 return e.pageY <= referenceTop + referenceHeight / 2 ? 'before' : 'after';
81076 };
81077
81078 TransferItem.prototype.handleDragOver = function handleDragOver(e) {
81079 var _props3 = this.props,
81080 panelPosition = _props3.panelPosition,
81081 dragPosition = _props3.dragPosition,
81082 onDragOver = _props3.onDragOver,
81083 item = _props3.item;
81084
81085 if (panelPosition === dragPosition) {
81086 e.preventDefault();
81087
81088 var dragGap = this.getDragGap(e);
81089 if (this.dragGap !== dragGap) {
81090 this.dragGap = dragGap;
81091 onDragOver(item.value);
81092 }
81093 }
81094 };
81095
81096 TransferItem.prototype.handleDragEnd = function handleDragEnd() {
81097 var onDragEnd = this.props.onDragEnd;
81098
81099 onDragEnd();
81100 };
81101
81102 TransferItem.prototype.handleDrop = function handleDrop(e) {
81103 e.preventDefault();
81104
81105 var _props4 = this.props,
81106 onDrop = _props4.onDrop,
81107 item = _props4.item,
81108 panelPosition = _props4.panelPosition,
81109 dragValue = _props4.dragValue;
81110
81111 onDrop(panelPosition, dragValue, item.value, this.dragGap);
81112 };
81113
81114 TransferItem.prototype.render = function render() {
81115 var _cx;
81116
81117 var _props5 = this.props,
81118 prefix = _props5.prefix,
81119 mode = _props5.mode,
81120 checked = _props5.checked,
81121 disabled = _props5.disabled,
81122 item = _props5.item,
81123 onCheck = _props5.onCheck,
81124 itemRender = _props5.itemRender,
81125 draggable = _props5.draggable,
81126 dragOverValue = _props5.dragOverValue,
81127 panelPosition = _props5.panelPosition,
81128 dragPosition = _props5.dragPosition;
81129
81130 var others = pickOthers(Object.keys(TransferItem.propTypes), this.props);
81131 var highlight = this.state.highlight;
81132
81133 var isSimple = mode === 'simple';
81134
81135 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));
81136
81137 var children = itemRender(item);
81138 var itemProps = (0, _extends3.default)({
81139 ref: this.getItemDOM,
81140 className: classNames,
81141 children: children,
81142 disabled: disabled,
81143 draggable: draggable && !disabled,
81144 onDragStart: this.handleDragStart,
81145 onDragOver: this.handleDragOver,
81146 onDragEnd: this.handleDragEnd,
81147 onDrop: this.handleDrop
81148 }, others);
81149 var title = void 0;
81150 if (typeof children === 'string') {
81151 title = children;
81152 }
81153 if (isSimple) {
81154 if (!itemProps.disabled) {
81155 itemProps.onClick = this.handleClick;
81156 }
81157
81158 return _react2.default.createElement(Item, (0, _extends3.default)({ title: title }, itemProps));
81159 }
81160
81161 return _react2.default.createElement(CheckboxItem, (0, _extends3.default)({
81162 checked: checked,
81163 onChange: onCheck.bind(this, item.value),
81164 title: title
81165 }, itemProps));
81166 };
81167
81168 return TransferItem;
81169}(_react.Component), _class.menuChildType = CheckboxItem.menuChildType, _class.propTypes = {
81170 prefix: _propTypes2.default.string,
81171 mode: _propTypes2.default.oneOf(['normal', 'simple']),
81172 value: _propTypes2.default.array,
81173 disabled: _propTypes2.default.bool,
81174 item: _propTypes2.default.object,
81175 onCheck: _propTypes2.default.func,
81176 onClick: _propTypes2.default.func,
81177 needHighlight: _propTypes2.default.bool,
81178 itemRender: _propTypes2.default.func,
81179 draggable: _propTypes2.default.bool,
81180 onDragStart: _propTypes2.default.func,
81181 onDragOver: _propTypes2.default.func,
81182 onDragEnd: _propTypes2.default.func,
81183 onDrop: _propTypes2.default.func,
81184 dragPosition: _propTypes2.default.oneOf(['left', 'right']),
81185 dragValue: _propTypes2.default.string,
81186 dragOverValue: _propTypes2.default.string,
81187 panelPosition: _propTypes2.default.oneOf(['left', 'right'])
81188}, _temp);
81189TransferItem.displayName = 'TransferItem';
81190exports.default = TransferItem;
81191module.exports = exports['default'];
81192
81193/***/ }),
81194/* 456 */
81195/***/ (function(module, exports, __webpack_require__) {
81196
81197"use strict";
81198
81199
81200exports.__esModule = true;
81201exports.treeNodeProps = undefined;
81202
81203var _objectWithoutProperties2 = __webpack_require__(8);
81204
81205var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
81206
81207var _classCallCheck2 = __webpack_require__(2);
81208
81209var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
81210
81211var _possibleConstructorReturn2 = __webpack_require__(3);
81212
81213var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
81214
81215var _inherits2 = __webpack_require__(4);
81216
81217var _inherits3 = _interopRequireDefault(_inherits2);
81218
81219var _extends2 = __webpack_require__(1);
81220
81221var _extends3 = _interopRequireDefault(_extends2);
81222
81223var _class, _temp; /* eslint-disable max-depth */
81224
81225var _react = __webpack_require__(0);
81226
81227var _react2 = _interopRequireDefault(_react);
81228
81229var _propTypes = __webpack_require__(5);
81230
81231var _propTypes2 = _interopRequireDefault(_propTypes);
81232
81233var _lodash = __webpack_require__(167);
81234
81235var _lodash2 = _interopRequireDefault(_lodash);
81236
81237var _reactLifecyclesCompat = __webpack_require__(10);
81238
81239var _classnames = __webpack_require__(7);
81240
81241var _classnames2 = _interopRequireDefault(_classnames);
81242
81243var _util = __webpack_require__(6);
81244
81245var _treeNode = __webpack_require__(105);
81246
81247var _treeNode2 = _interopRequireDefault(_treeNode);
81248
81249var _virtualList = __webpack_require__(51);
81250
81251var _virtualList2 = _interopRequireDefault(_virtualList);
81252
81253var _util2 = __webpack_require__(194);
81254
81255function _interopRequireDefault(obj) {
81256 return obj && obj.__esModule ? obj : { default: obj };
81257}
81258
81259var bindCtx = _util.func.bindCtx,
81260 noop = _util.func.noop;
81261var getOffset = _util.dom.getOffset;
81262var pickOthers = _util.obj.pickOthers,
81263 pickProps = _util.obj.pickProps,
81264 isPlainObject = _util.obj.isPlainObject;
81265var treeNodeProps = exports.treeNodeProps = ['key', 'label', 'selectable', 'checkable', 'editable', 'draggable', 'disabled', 'checkboxDisabled', 'isLeaf', 'icon'];
81266
81267var getExpandedKeys = function getExpandedKeys(props, willReceiveProps, _k2n, _p2n) {
81268 var expandedKeys = void 0;
81269
81270 if (!willReceiveProps && props.defaultExpandAll) {
81271 expandedKeys = Object.keys(_k2n).filter(function (key) {
81272 var children = _k2n[key].children;
81273 return children && children.length;
81274 });
81275 } else {
81276 expandedKeys = 'expandedKeys' in props ? props.expandedKeys : willReceiveProps ? [] : props.defaultExpandedKeys;
81277 expandedKeys = (0, _util2.normalizeToArray)(expandedKeys);
81278
81279 if (props.autoExpandParent) {
81280 var newExpandedKeys = [];
81281
81282 var expandedPoss = expandedKeys.reduce(function (ret, key) {
81283 var pos = _k2n[key] && _k2n[key].pos;
81284 if (pos) {
81285 ret.push(pos);
81286 newExpandedKeys.push(key);
81287 }
81288 return ret;
81289 }, []);
81290
81291 expandedPoss.forEach(function (pos) {
81292 var nums = pos.split('-');
81293 if (nums.length === 2) {
81294 return;
81295 }
81296 for (var i = 1; i <= nums.length - 2; i++) {
81297 var ancestorPos = nums.slice(0, i + 1).join('-');
81298 var ancestorKey = _p2n[ancestorPos].key;
81299 if (newExpandedKeys.indexOf(ancestorKey) === -1) {
81300 newExpandedKeys.push(ancestorKey);
81301 }
81302 }
81303 });
81304
81305 return newExpandedKeys;
81306 }
81307 }
81308
81309 return expandedKeys;
81310};
81311
81312var getSelectedKeys = function getSelectedKeys(props, willReceiveProps, _k2n) {
81313 var selectedKeys = 'selectedKeys' in props ? props.selectedKeys : willReceiveProps ? [] : props.defaultSelectedKeys;
81314 selectedKeys = (0, _util2.normalizeToArray)(selectedKeys);
81315
81316 return selectedKeys.filter(function (key) {
81317 return _k2n[key];
81318 });
81319};
81320
81321var getIndeterminateKeys = function getIndeterminateKeys(checkedKeys, checkStrictly, _k2n, _p2n) {
81322 if (checkStrictly) {
81323 return [];
81324 }
81325
81326 var indeterminateKeys = [];
81327
81328 var poss = (0, _util2.filterChildKey)(checkedKeys.filter(function (key) {
81329 return !!_k2n[key];
81330 }).filter(function (key) {
81331 return !_k2n[key].disabled && !_k2n[key].checkboxDisabled && _k2n[key].checkable !== false;
81332 }), _k2n, _p2n).map(function (key) {
81333 return _k2n[key].pos;
81334 });
81335
81336 poss.forEach(function (pos) {
81337 var nums = pos.split('-');
81338 for (var i = nums.length; i > 2; i--) {
81339 var parentPos = nums.slice(0, i - 1).join('-');
81340 var parent = _p2n[parentPos];
81341 if (parent.disabled || parent.checkboxDisabled) break;
81342 var parentKey = parent.key;
81343 if (indeterminateKeys.indexOf(parentKey) === -1) {
81344 indeterminateKeys.push(parentKey);
81345 }
81346 }
81347 });
81348
81349 return indeterminateKeys;
81350};
81351
81352var getCheckedKeys = function getCheckedKeys(props, willReceiveProps, _k2n, _p2n) {
81353 var checkedKeys = props.defaultCheckedKeys;
81354 var indeterminateKeys = void 0;
81355
81356 if ('checkedKeys' in props) {
81357 checkedKeys = props.checkedKeys;
81358 } else if (willReceiveProps) {
81359 checkedKeys = [];
81360 }
81361
81362 var checkStrictly = props.checkStrictly,
81363 checkedStrategy = props.checkedStrategy; // TODO TEST
81364
81365 if (checkStrictly) {
81366 if (isPlainObject(checkedKeys)) {
81367 var _checkedKeys = checkedKeys,
81368 checked = _checkedKeys.checked,
81369 indeterminate = _checkedKeys.indeterminate;
81370
81371 checkedKeys = (0, _util2.normalizeToArray)(checked);
81372 indeterminateKeys = (0, _util2.normalizeToArray)(indeterminate);
81373 } else {
81374 checkedKeys = (0, _util2.normalizeToArray)(checkedKeys);
81375 }
81376
81377 checkedKeys = checkedKeys.filter(function (key) {
81378 return !!_k2n[key];
81379 });
81380 } else {
81381 if (checkedStrategy !== 'child') {
81382 // checkedStrategy 为 child 时不需要计算所有可选值
81383 checkedKeys = (0, _util2.getAllCheckedKeys)(checkedKeys, _k2n, _p2n);
81384 }
81385
81386 checkedKeys = checkedKeys.filter(function (key) {
81387 return !!_k2n[key];
81388 });
81389
81390 indeterminateKeys = getIndeterminateKeys(checkedKeys, props.checkStrictly, _k2n, _p2n);
81391 }
81392
81393 return { checkedKeys: checkedKeys, indeterminateKeys: indeterminateKeys };
81394};
81395
81396var preHandleData = function preHandleData(dataSource, props) {
81397 var k2n = {};
81398 var p2n = {};
81399 var keyList = [];
81400
81401 var drill = function drill() {
81402 var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
81403 var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
81404 var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
81405 var parent = arguments[3];
81406 return data.map(function (item, index) {
81407 // 为了兼容之前的实现 保留非法节点
81408 if (item.illegalFlag) {
81409 return item;
81410 }
81411
81412 var children = item.children;
81413
81414 var pos = prefix + '-' + index;
81415 var key = item.key;
81416
81417 item.pos = pos;
81418 item.level = level;
81419
81420 // 判断为叶子节点
81421 // - 指定isLeaf属性
81422 // - loadData模式下 没有指定isLeaf为true
81423 // - 存在children元素
81424 if (!('isLeaf' in item)) {
81425 item.isLeaf = !(children && children.length || props.loadData);
81426 }
81427
81428 item.isLastChild = parent ? [].concat(parent.isLastChild || [], index === data.length - 1) : [];
81429
81430 if (key === undefined || key === null) {
81431 item.key = key = pos;
81432 }
81433 keyList.push(key);
81434 !item.isLeaf && drill(children, level + 1, pos, item);
81435
81436 k2n[key] = p2n[pos] = (0, _extends3.default)({}, item);
81437
81438 return item;
81439 });
81440 };
81441
81442 return { dataSource: drill(dataSource), k2n: k2n, p2n: p2n, keyList: keyList };
81443};
81444
81445var preHandleChildren = function preHandleChildren(props) {
81446 var k2n = {};
81447 var p2n = {};
81448 var keyList = [];
81449
81450 var loop = function loop(children) {
81451 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
81452 var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
81453 return _react.Children.map(children, function (node, index) {
81454 if (!_react2.default.isValidElement(node)) {
81455 return;
81456 }
81457 var pos = prefix + '-' + index;
81458 var key = node.key;
81459
81460 key = key || pos;
81461
81462 var item = (0, _extends3.default)({}, node.props, { key: key, pos: pos, level: level });
81463 var children = node.props.children;
81464
81465 var hasChildren = children && _react.Children.count(children);
81466
81467 if (!('isLeaf' in item)) {
81468 item.isLeaf = !(hasChildren || props.loadData);
81469 }
81470 keyList.push(key);
81471 if (hasChildren) {
81472 item.children = loop(children, pos, level + 1);
81473 }
81474
81475 k2n[key] = p2n[pos] = item;
81476 return item;
81477 });
81478 };
81479 loop(props.children);
81480
81481 return { k2n: k2n, p2n: p2n, keyList: keyList };
81482};
81483
81484var getData = function getData(props) {
81485 var dataSource = props.dataSource,
81486 renderChildNodes = props.renderChildNodes,
81487 _props$children = props.children,
81488 children = _props$children === undefined ? [] : _props$children,
81489 useVirtual = props.useVirtual,
81490 immutable = props.immutable;
81491
81492 var data = immutable ? (0, _lodash2.default)(dataSource) : dataSource;
81493
81494 if ((renderChildNodes || useVirtual) && !('dataSource' in props)) {
81495 data = (0, _util2.convertChildren2Data)(children);
81496 }
81497
81498 if (data) {
81499 try {
81500 return preHandleData(data, props);
81501 } catch (err) {
81502 if ((err.message || '').match('object is not extensible')) {
81503 // eslint-disable-next-line no-console
81504 console.error(err.message, 'try to set immutable to true to allow immutable dataSource');
81505 } else {
81506 throw err;
81507 }
81508 }
81509 } else {
81510 return preHandleChildren(props);
81511 }
81512};
81513
81514/**
81515 * Tree
81516 */
81517var Tree = (_temp = _class = function (_Component) {
81518 (0, _inherits3.default)(Tree, _Component);
81519
81520 function Tree(props) {
81521 (0, _classCallCheck3.default)(this, Tree);
81522
81523 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
81524
81525 var _getData = getData(props),
81526 _getData$dataSource = _getData.dataSource,
81527 dataSource = _getData$dataSource === undefined ? [] : _getData$dataSource,
81528 k2n = _getData.k2n,
81529 p2n = _getData.p2n,
81530 keyList = _getData.keyList;
81531
81532 var _this$props = _this.props,
81533 focusable = _this$props.focusable,
81534 autoFocus = _this$props.autoFocus,
81535 focusedKey = _this$props.focusedKey;
81536
81537 var willReceiveProps = false;
81538
81539 var _getCheckedKeys = getCheckedKeys(props, willReceiveProps, k2n, p2n),
81540 checkedKeys = _getCheckedKeys.checkedKeys,
81541 _getCheckedKeys$indet = _getCheckedKeys.indeterminateKeys,
81542 indeterminateKeys = _getCheckedKeys$indet === undefined ? [] : _getCheckedKeys$indet;
81543
81544 _this.state = {
81545 _k2n: k2n,
81546 _p2n: p2n,
81547 _keyList: keyList,
81548 dataSource: dataSource,
81549 willReceiveProps: willReceiveProps,
81550 expandedKeys: getExpandedKeys(props, willReceiveProps, k2n, p2n),
81551 selectedKeys: getSelectedKeys(props, willReceiveProps, k2n, p2n),
81552 checkedKeys: checkedKeys,
81553 indeterminateKeys: indeterminateKeys
81554 };
81555
81556 if (focusable) {
81557 _this.tabbableKey = _this.getFirstAvaliablelChildKey('0');
81558 }
81559
81560 _this.state.focusedKey = 'focusedKey' in props ? focusedKey : focusable && autoFocus ? _this.tabbableKey : null;
81561
81562 if (focusable) {
81563 _this.tabbableKey = _this.getFirstAvaliablelChildKey('0');
81564 }
81565
81566 bindCtx(_this, ['handleExpand', 'handleSelect', 'handleCheck', 'handleBlur']);
81567 return _this;
81568 }
81569
81570 Tree.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
81571 var _getData2 = getData(props),
81572 _getData2$dataSource = _getData2.dataSource,
81573 dataSource = _getData2$dataSource === undefined ? [] : _getData2$dataSource,
81574 k2n = _getData2.k2n,
81575 p2n = _getData2.p2n,
81576 keyList = _getData2.keyList;
81577
81578 var st = {};
81579
81580 if (!state.willReceiveProps) {
81581 return {
81582 willReceiveProps: true,
81583 _k2n: k2n,
81584 _p2n: p2n,
81585 _keyList: keyList
81586 };
81587 }
81588
81589 if ('expandedKeys' in props) {
81590 st.expandedKeys = getExpandedKeys(props, state.willReceiveProps, k2n, p2n);
81591 }
81592
81593 if ('selectedKeys' in props) {
81594 st.selectedKeys = getSelectedKeys(props, state.willReceiveProps, k2n);
81595 }
81596
81597 if ('checkedKeys' in props) {
81598 var _getCheckedKeys2 = getCheckedKeys(props, state.willReceiveProps, k2n, p2n),
81599 checkedKeys = _getCheckedKeys2.checkedKeys;
81600
81601 st.checkedKeys = checkedKeys;
81602 }
81603
81604 st.indeterminateKeys = props.checkStrictly ? props.checkedKeys && props.checkedKeys.indeterminate || [] : getIndeterminateKeys(st.checkedKeys || state.checkedKeys || [], props.checkStrictly, k2n, p2n);
81605
81606 return (0, _extends3.default)({}, st, {
81607 dataSource: dataSource,
81608 _k2n: k2n,
81609 _p2n: p2n
81610 });
81611 };
81612
81613 Tree.prototype.setFocusKey = function setFocusKey() {
81614 var _state$selectedKeys = this.state.selectedKeys,
81615 selectedKeys = _state$selectedKeys === undefined ? [] : _state$selectedKeys;
81616
81617 this.setState({
81618 focusedKey: selectedKeys.length > 0 ? selectedKeys[0] : this.getFirstAvaliablelChildKey('0')
81619 });
81620 };
81621
81622 Tree.prototype.getAvailableKey = function getAvailableKey(pos, prev) {
81623 var _this2 = this;
81624
81625 var ps = Object.keys(this.state._p2n).filter(function (p) {
81626 return _this2.isAvailablePos(pos, p);
81627 });
81628 if (ps.length > 1) {
81629 var index = ps.indexOf(pos);
81630 var targetIndex = void 0;
81631 if (prev) {
81632 targetIndex = index === 0 ? ps.length - 1 : index - 1;
81633 } else {
81634 targetIndex = index === ps.length - 1 ? 0 : index + 1;
81635 }
81636
81637 return this.state._p2n[ps[targetIndex]].key;
81638 }
81639
81640 return null;
81641 };
81642
81643 Tree.prototype.getFirstAvaliablelChildKey = function getFirstAvaliablelChildKey(parentPos) {
81644 var _this3 = this;
81645
81646 var pos = Object.keys(this.state._p2n).find(function (p) {
81647 return _this3.isAvailablePos(parentPos + '-0', p);
81648 });
81649 return pos ? this.state._p2n[pos].key : null;
81650 };
81651
81652 Tree.prototype.isAvailablePos = function isAvailablePos(refPos, targetPos) {
81653 var disabled = this.state._p2n[targetPos].disabled;
81654
81655 return this.isSibling(refPos, targetPos) && !disabled;
81656 };
81657
81658 Tree.prototype.isSibling = function isSibling(currentPos, targetPos) {
81659 var currentNums = currentPos.split('-').slice(0, -1);
81660 var targetNums = targetPos.split('-').slice(0, -1);
81661
81662 return currentNums.length === targetNums.length && currentNums.every(function (num, index) {
81663 return num === targetNums[index];
81664 });
81665 };
81666
81667 Tree.prototype.getParentKey = function getParentKey(pos) {
81668 return this.state._p2n[pos.slice(0, pos.length - 2)].key;
81669 };
81670
81671 Tree.prototype.processKey = function processKey(keys, key, add) {
81672 var index = keys.indexOf(key);
81673 if (add && index === -1) {
81674 keys.push(key);
81675 } else if (!add && index > -1) {
81676 keys.splice(index, 1);
81677 }
81678 return keys;
81679 };
81680
81681 /*eslint-disable max-statements*/
81682
81683 Tree.prototype.handleItemKeyDown = function handleItemKeyDown(key, item, e) {
81684 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) {
81685 e.preventDefault();
81686 e.stopPropagation();
81687 }
81688
81689 var focusedKey = this.state.focusedKey;
81690
81691 var node = this.state._k2n[key];
81692 var pos = this.state._k2n[key].pos;
81693 var level = pos.split('-').length - 1;
81694 switch (e.keyCode) {
81695 case _util.KEYCODE.UP:
81696 {
81697 var avaliableKey = this.getAvailableKey(pos, true);
81698 if (avaliableKey) {
81699 focusedKey = avaliableKey;
81700 }
81701 break;
81702 }
81703 case _util.KEYCODE.DOWN:
81704 {
81705 var _avaliableKey = this.getAvailableKey(pos, false);
81706 if (_avaliableKey) {
81707 focusedKey = _avaliableKey;
81708 }
81709 break;
81710 }
81711 case _util.KEYCODE.RIGHT:
81712 {
81713 this.handleExpand(true, key, node);
81714 var _avaliableKey2 = this.getFirstAvaliablelChildKey(pos);
81715 if (_avaliableKey2) {
81716 focusedKey = _avaliableKey2;
81717 }
81718 break;
81719 }
81720 case _util.KEYCODE.LEFT:
81721 case _util.KEYCODE.ESC:
81722 {
81723 if (level === 1) {
81724 var _avaliableKey3 = this.getAvailableKey(pos, true);
81725 if (_avaliableKey3) {
81726 focusedKey = _avaliableKey3;
81727 }
81728 } else if (level > 1) {
81729 var parentKey = this.getParentKey(pos);
81730 this.handleExpand(false, parentKey, node);
81731 focusedKey = parentKey;
81732 }
81733 break;
81734 }
81735
81736 case _util.KEYCODE.ENTER:
81737 case _util.KEYCODE.SPACE:
81738 {
81739 var checkable = 'checkable' in item.props ? item.props.checkable : this.props.checkable;
81740 var selectable = 'selectable' in item.props ? item.props.selectable : this.props.selectable;
81741
81742 if (checkable) {
81743 this.handleCheck(!item.props.checked, key, node);
81744 } else if (selectable) {
81745 this.handleSelect(!item.props.selected, key, node, e);
81746 }
81747 break;
81748 }
81749 case _util.KEYCODE.TAB:
81750 focusedKey = null;
81751 break;
81752 default:
81753 break;
81754 }
81755
81756 if (focusedKey !== this.state.focusedKey) {
81757 if (!('focusedKey' in this.props)) {
81758 this.setState({
81759 focusedKey: focusedKey
81760 });
81761 }
81762 }
81763
81764 this.props.onItemKeyDown(focusedKey, item, e);
81765 this.props.onItemFocus(focusedKey, e);
81766 };
81767
81768 Tree.prototype.handleBlur = function handleBlur(e) {
81769 this.setState({
81770 focusedKey: null
81771 });
81772
81773 this.props.onBlur && this.props.onBlur(e);
81774 };
81775
81776 Tree.prototype.handleExpand = function handleExpand(expand, key, node) {
81777 var _this4 = this;
81778
81779 var _props = this.props,
81780 onExpand = _props.onExpand,
81781 loadData = _props.loadData;
81782
81783 var expandedKeys = this.state.expandedKeys; // 由于setState 是异步操作,所以去掉 [...this.state.expandedKeys]
81784 this.processKey(expandedKeys, key, expand);
81785 var setExpandedState = function setExpandedState() {
81786 if (!('expandedKeys' in _this4.props)) {
81787 _this4.setState({ expandedKeys: expandedKeys });
81788 }
81789 onExpand(expandedKeys, { expanded: expand, node: node });
81790 };
81791
81792 if (expand && loadData) {
81793 return loadData(node).then(setExpandedState);
81794 } else {
81795 setExpandedState();
81796 }
81797 };
81798
81799 Tree.prototype.handleSelect = function handleSelect(select, key, node, e) {
81800 var _props2 = this.props,
81801 multiple = _props2.multiple,
81802 onSelect = _props2.onSelect;
81803
81804 var selectedKeys = [].concat(this.state.selectedKeys);
81805 if (multiple) {
81806 this.processKey(selectedKeys, key, select);
81807 } else {
81808 selectedKeys = select ? [key] : [];
81809 }
81810
81811 if (!('selectedKeys' in this.props)) {
81812 this.setState({ selectedKeys: selectedKeys });
81813 }
81814 onSelect(selectedKeys, {
81815 selectedNodes: this.getNodes(selectedKeys),
81816 node: node,
81817 selected: select,
81818 event: e
81819 });
81820 };
81821
81822 // eslint-disable-next-line max-statements
81823
81824
81825 Tree.prototype.handleCheck = function handleCheck(check, key, node) {
81826 var _this5 = this;
81827
81828 var _props3 = this.props,
81829 checkStrictly = _props3.checkStrictly,
81830 checkedStrategy = _props3.checkedStrategy,
81831 onCheck = _props3.onCheck;
81832 var _state = this.state,
81833 _k2n = _state._k2n,
81834 _p2n = _state._p2n;
81835
81836 var checkedKeys = [].concat(this.state.checkedKeys);
81837
81838 if (checkStrictly) {
81839 this.processKey(checkedKeys, key, check);
81840 var _newCheckedKeys = isPlainObject(this.props.checkedKeys) ? {
81841 checked: checkedKeys,
81842 indeterminate: this.state.indeterminateKeys
81843 } : checkedKeys;
81844
81845 onCheck(_newCheckedKeys, {
81846 checkedNodes: this.getNodes(checkedKeys),
81847 checkedNodesPositions: checkedKeys.map(function (key) {
81848 if (!_k2n[key]) return null;
81849 var _k2n$key = _k2n[key],
81850 node = _k2n$key.node,
81851 pos = _k2n$key.pos;
81852
81853 return { node: node, pos: pos };
81854 }).filter(function (v) {
81855 return !!v;
81856 }),
81857 node: node,
81858 indeterminateKeys: this.state.indeterminateKeys,
81859 checked: check,
81860 key: key
81861 });
81862
81863 return;
81864 }
81865
81866 var pos = _k2n[key].pos;
81867
81868 (0, _util2.forEachEnableNode)(_k2n[key], function (node) {
81869 if (node.checkable === false) return;
81870 _this5.processKey(checkedKeys, node.key, check);
81871 });
81872
81873 var ps = Object.keys(_p2n);
81874
81875 var currentPos = pos;
81876 var nums = pos.split('-');
81877
81878 for (var i = nums.length; i > 2; i--) {
81879 var parentCheck = true;
81880
81881 var parentPos = nums.slice(0, i - 1).join('-');
81882 if (_p2n[parentPos].disabled || _p2n[parentPos].checkboxDisabled || _p2n[parentPos].checkable === false) {
81883 currentPos = parentPos;
81884 continue;
81885 }
81886 var parentKey = _p2n[parentPos].key;
81887 var parentChecked = checkedKeys.indexOf(parentKey) > -1;
81888 if (!check && !parentChecked) {
81889 break;
81890 }
81891
81892 for (var j = 0; j < ps.length; j++) {
81893 var p = ps[j];
81894 var pnode = _p2n[p];
81895 if ((0, _util2.isSiblingOrSelf)(currentPos, p) && !pnode.disabled && !pnode.checkboxDisabled) {
81896 var k = pnode.key;
81897 if (pnode.checkable === false) {
81898 // eslint-disable-next-line max-depth
81899 if (!pnode.children || pnode.children.length === 0) continue;
81900
81901 // eslint-disable-next-line max-depth
81902 for (var m = 0; m < pnode.children.length; m++) {
81903 if (!pnode.children.every(function (child) {
81904 return (0, _util2.isNodeChecked)(child, checkedKeys);
81905 })) {
81906 parentCheck = false;
81907 break;
81908 }
81909 }
81910 } else if (checkedKeys.indexOf(k) === -1) {
81911 parentCheck = false;
81912 }
81913
81914 if (!parentCheck) break;
81915 }
81916 }
81917
81918 this.processKey(checkedKeys, parentKey, parentCheck);
81919
81920 currentPos = parentPos;
81921 }
81922
81923 var indeterminateKeys = getIndeterminateKeys(checkedKeys, checkStrictly, _k2n, _p2n);
81924 if (!('checkedKeys' in this.props)) {
81925 this.setState({
81926 checkedKeys: checkedKeys,
81927 indeterminateKeys: indeterminateKeys
81928 });
81929 }
81930
81931 var newCheckedKeys = void 0;
81932
81933 switch (checkedStrategy) {
81934 case 'parent':
81935 newCheckedKeys = (0, _util2.filterChildKey)(checkedKeys, _k2n, _p2n);
81936 break;
81937 case 'child':
81938 newCheckedKeys = (0, _util2.filterParentKey)(checkedKeys, _k2n, _p2n);
81939 break;
81940 default:
81941 newCheckedKeys = checkedKeys;
81942 break;
81943 }
81944
81945 onCheck(newCheckedKeys, {
81946 checkedNodes: this.getNodes(newCheckedKeys),
81947 checkedNodesPositions: newCheckedKeys.map(function (key) {
81948 if (!_k2n[key]) return null;
81949 var _k2n$key2 = _k2n[key],
81950 node = _k2n$key2.node,
81951 pos = _k2n$key2.pos;
81952
81953 return { node: node, pos: pos };
81954 }).filter(function (v) {
81955 return !!v;
81956 }),
81957 node: node,
81958 indeterminateKeys: indeterminateKeys,
81959 checked: check,
81960 key: key
81961 });
81962 };
81963
81964 Tree.prototype.getNodeProps = function getNodeProps(key) {
81965 var prefix = this.props.prefix;
81966 var _state2 = this.state,
81967 expandedKeys = _state2.expandedKeys,
81968 selectedKeys = _state2.selectedKeys,
81969 checkedKeys = _state2.checkedKeys,
81970 dragOverNodeKey = _state2.dragOverNodeKey,
81971 _k2n = _state2._k2n,
81972 indeterminateKeys = _state2.indeterminateKeys;
81973 var _k2n$key3 = _k2n[key],
81974 pos = _k2n$key3.pos,
81975 isLeaf = _k2n$key3.isLeaf,
81976 level = _k2n$key3.level;
81977
81978 return {
81979 prefix: prefix,
81980 root: this,
81981 eventKey: key,
81982 pos: pos,
81983 isLeaf: isLeaf,
81984 level: level,
81985 expanded: expandedKeys.indexOf(key) > -1,
81986 selected: selectedKeys.indexOf(key) > -1,
81987 checked: checkedKeys.indexOf(key) > -1,
81988 indeterminate: indeterminateKeys.indexOf(key) > -1,
81989 dragOver: dragOverNodeKey === key && this.dropPosition === 0,
81990 dragOverGapTop: dragOverNodeKey === key && this.dropPosition === -1,
81991 dragOverGapBottom: dragOverNodeKey === key && this.dropPosition === 1
81992 };
81993 };
81994
81995 Tree.prototype.getNodes = function getNodes(keys) {
81996 var _this6 = this;
81997
81998 return keys.map(function (key) {
81999 return _this6.state._k2n[key] && _this6.state._k2n[key].node;
82000 }).filter(function (v) {
82001 return !!v;
82002 });
82003 };
82004
82005 Tree.prototype.handleDragStart = function handleDragStart(e, node) {
82006 var _this7 = this;
82007
82008 var dragNodeKey = node.props.eventKey;
82009 this.dragNode = node;
82010 this.dragNodesKeys = Object.keys(this.state._k2n).filter(function (k) {
82011 return (0, _util2.isDescendantOrSelf)(_this7.state._k2n[dragNodeKey].pos, _this7.state._k2n[k].pos);
82012 });
82013
82014 var expandedKeys = this.processKey([].concat(this.state.expandedKeys), dragNodeKey, false);
82015 this.setState({ expandedKeys: expandedKeys });
82016
82017 this.props.onDragStart({
82018 event: e,
82019 node: node,
82020 expandedKeys: expandedKeys
82021 });
82022 };
82023
82024 Tree.prototype.handleDragEnter = function handleDragEnter(e, node) {
82025 var dragOverNodeKey = node.props.eventKey;
82026 this.dropPosition = this.getDropPosition(e, node);
82027 if (this.dragNode && this.dragNode.props.eventKey === dragOverNodeKey && this.dropPosition === 0) {
82028 this.setState({
82029 dragOverNodeKey: null
82030 });
82031 return;
82032 }
82033
82034 var expandedKeys = this.processKey([].concat(this.state.expandedKeys), dragOverNodeKey, true);
82035 this.setState({
82036 dragOverNodeKey: dragOverNodeKey,
82037 expandedKeys: expandedKeys
82038 });
82039
82040 this.props.onDragEnter({
82041 event: e,
82042 node: node,
82043 expandedKeys: expandedKeys
82044 });
82045 };
82046
82047 Tree.prototype.getDropPosition = function getDropPosition(e, node) {
82048 var labelWrapperNode = node.labelWrapperEl;
82049 var offsetTop = getOffset(labelWrapperNode).top;
82050 var offsetHeight = labelWrapperNode.offsetHeight;
82051 var pageY = e.pageY;
82052 var gapHeight = 2;
82053
82054 if (pageY > offsetTop + offsetHeight - gapHeight) {
82055 return 1;
82056 }
82057 if (pageY < offsetTop + gapHeight) {
82058 return -1;
82059 }
82060 return 0;
82061 };
82062
82063 Tree.prototype.handleDragOver = function handleDragOver(e, node) {
82064 var dragOverNodeKey = node.props.eventKey;
82065 if (this.state.dragOverNodeKey !== dragOverNodeKey) {
82066 this.setState({
82067 dragOverNodeKey: dragOverNodeKey
82068 });
82069 }
82070
82071 this.props.onDragOver({ event: e, node: node });
82072 };
82073
82074 Tree.prototype.handleDragLeave = function handleDragLeave(e, node) {
82075 var eventKey = node.props.eventKey;
82076 var _keyList = this.state._keyList;
82077
82078 var firstKey = _keyList[0];
82079 var lastKey = _keyList[_keyList.length - 1];
82080 // 只针对树的边界节点(第一个和最后一个)做处理
82081 if (eventKey === firstKey || eventKey === lastKey) {
82082 this.setState({
82083 dragOverNodeKey: null
82084 });
82085 }
82086 this.props.onDragLeave({ event: e, node: node });
82087 };
82088
82089 Tree.prototype.handleDragEnd = function handleDragEnd(e, node) {
82090 this.setState({
82091 dragOverNodeKey: null
82092 });
82093
82094 this.props.onDragEnd({ event: e, node: node });
82095 };
82096
82097 Tree.prototype.handleDrop = function handleDrop(e, node) {
82098 if (this.dragNode && (0, _util2.isDescendantOrSelf)(this.state._k2n[this.dragNode.props.eventKey].pos, this.state._k2n[node.props.eventKey].pos)) {
82099 return;
82100 }
82101
82102 this.setState({
82103 dragOverNodeKey: null
82104 });
82105
82106 var params = this.generateDropParams(node);
82107 this.props.onDrop((0, _extends3.default)({
82108 event: e
82109 }, params));
82110 };
82111
82112 Tree.prototype.canDrop = function canDrop(node) {
82113 var params = this.generateDropParams(node);
82114 return this.props.canDrop(params);
82115 };
82116
82117 Tree.prototype.generateDropParams = function generateDropParams(node) {
82118 return {
82119 dragNode: this.dragNode,
82120 dragNodesKeys: [].concat(this.dragNodesKeys),
82121 node: node,
82122 dropPosition: this.dropPosition
82123 };
82124 };
82125
82126 Tree.prototype.filterTreeNode = function filterTreeNode(node) {
82127 return this.props.filterTreeNode.call(this, node);
82128 };
82129
82130 Tree.prototype.shouldNodeShow = function shouldNodeShow(nodeData) {
82131 var _state3 = this.state,
82132 expandedKeys = _state3.expandedKeys,
82133 _p2n = _state3._p2n;
82134
82135 return !(nodeData.style && nodeData.style.display === 'none') && (0, _util2.getAllDescendantKeys)(nodeData, _p2n).every(function (k) {
82136 return expandedKeys.includes(k);
82137 });
82138 };
82139
82140 Tree.prototype.renderTreeNode = function renderTreeNode(props, childNodes) {
82141 var _props4 = this.props,
82142 rtl = _props4.rtl,
82143 labelRender = _props4.labelRender;
82144 var key = props.key;
82145
82146 var nodeProps = (0, _extends3.default)({
82147 _key: key
82148 }, props, this.getNodeProps(key));
82149
82150 if (labelRender) {
82151 nodeProps.label = labelRender(pickProps(treeNodeProps, props));
82152 }
82153
82154 return _react2.default.createElement(_treeNode2.default, (0, _extends3.default)({ rtl: rtl, key: key }, nodeProps), childNodes);
82155 };
82156
82157 Tree.prototype.renderNodeList = function renderNodeList(dataSource) {
82158 var _this8 = this;
82159
82160 var nodeList = [];
82161 var _k2n = this.state._k2n;
82162
82163 var drill = function drill(list) {
82164 list.forEach(function (item) {
82165 // 为了兼容之前的实现 保留非法节点
82166 if (item.illegalFlag) {
82167 nodeList.push(item);
82168 return;
82169 }
82170
82171 var children = item.children,
82172 nodeProps = (0, _objectWithoutProperties3.default)(item, ['children']);
82173
82174 if (!_this8.shouldNodeShow(item)) {
82175 return;
82176 }
82177
82178 nodeList.push(nodeProps);
82179 children && children.length && drill(children);
82180 });
82181 };
82182
82183 drill(dataSource);
82184
82185 return nodeList.map(function (nodeProps, index) {
82186 // 为了兼容之前的实现 保留非法节点
82187 if (nodeProps.illegalFlag) {
82188 return nodeProps.node;
82189 }
82190 // aria props
82191 nodeProps.size = nodeList.length;
82192 nodeProps.posinset = index + 1;
82193
82194 return _k2n[nodeProps.key].node = _this8.renderTreeNode(nodeProps);
82195 });
82196 };
82197
82198 Tree.prototype.renderWithCustomChildNodes = function renderWithCustomChildNodes(dataSource) {
82199 var _this9 = this;
82200
82201 var renderChildNodes = this.props.renderChildNodes;
82202 var _k2n = this.state._k2n;
82203
82204 var drill = function drill(list) {
82205 return list.map(function (_ref, index) {
82206 var children = _ref.children,
82207 nodeProps = (0, _objectWithoutProperties3.default)(_ref, ['children']);
82208
82209 var childNodes = void 0;
82210
82211 if (children && children.length) {
82212 childNodes = renderChildNodes(drill(children));
82213 }
82214
82215 // aria props
82216 nodeProps.size = list.length;
82217 nodeProps.posinset = index + 1;
82218
82219 return _k2n[nodeProps.key].node = _this9.renderTreeNode(nodeProps, childNodes);
82220 });
82221 };
82222 return drill(dataSource);
82223 };
82224
82225 Tree.prototype.renderByDataSource = function renderByDataSource(dataSource) {
82226 var _this10 = this;
82227
82228 var drill = function drill(data) {
82229 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
82230
82231 return data.map(function (item, index) {
82232 // 为了兼容之前的实现 保留非法节点
82233 if (item.illegalFlag) {
82234 return item.node;
82235 }
82236 var pos = prefix + '-' + index;
82237 var _item$key = item.key,
82238 key = _item$key === undefined ? pos : _item$key,
82239 children = item.children,
82240 others = (0, _objectWithoutProperties3.default)(item, ['key', 'children']);
82241
82242 var props = (0, _extends3.default)({
82243 size: data.length
82244 }, others, _this10.getNodeProps('' + key), {
82245 _key: key,
82246 key: key
82247 });
82248
82249 if (children && children.length) {
82250 props.children = drill(children, pos);
82251 }
82252
82253 var node = _this10.renderTreeNode(props, props.children);
82254
82255 // eslint-disable-next-line
82256 _this10.state._k2n[key].node = node;
82257 return node;
82258 });
82259 };
82260
82261 return drill(dataSource);
82262 };
82263
82264 Tree.prototype.renderByChildren = function renderByChildren() {
82265 var _this11 = this;
82266
82267 var rtl = this.props.rtl;
82268 var _k2n = this.state._k2n;
82269
82270 var loop = function loop(children) {
82271 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
82272
82273 return _react.Children.map(children, function (child, index) {
82274 if (!_react2.default.isValidElement(child)) {
82275 return;
82276 }
82277 var pos = prefix + '-' + index;
82278 var key = child.key || pos;
82279 var props = _this11.getNodeProps('' + key);
82280 if (child.props.children) {
82281 props.children = loop(child.props.children, pos);
82282 }
82283
82284 props._key = key;
82285 props.rtl = rtl;
82286 props.size = _react.Children.count(children);
82287
82288 var node = (0, _react.cloneElement)(child, props);
82289 _k2n[key].node = node;
82290 return node;
82291 });
82292 };
82293
82294 return loop(this.props.children);
82295 };
82296
82297 Tree.prototype.render = function render() {
82298 var _cx,
82299 _this12 = this;
82300
82301 var _props5 = this.props,
82302 prefix = _props5.prefix,
82303 rtl = _props5.rtl,
82304 className = _props5.className,
82305 showLine = _props5.showLine,
82306 isNodeBlock = _props5.isNodeBlock,
82307 isLabelBlock = _props5.isLabelBlock,
82308 multiple = _props5.multiple,
82309 useVirtual = _props5.useVirtual,
82310 renderChildNodes = _props5.renderChildNodes;
82311 var dataSource = this.state.dataSource;
82312
82313 var _pickOthers = pickOthers(Object.keys(Tree.propTypes), this.props),
82314 style = _pickOthers.style,
82315 others = (0, _objectWithoutProperties3.default)(_pickOthers, ['style']);
82316
82317 if (rtl) {
82318 others.dir = 'rtl';
82319 }
82320
82321 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));
82322
82323 var treeRender = function treeRender(items, ref) {
82324 return _react2.default.createElement('ul', (0, _extends3.default)({
82325 role: 'tree',
82326 ref: ref,
82327 'aria-multiselectable': multiple,
82328 onBlur: _this12.handleBlur,
82329 className: newClassName,
82330 style: useVirtual ? null : style
82331 }, others), items);
82332 };
82333
82334 var virtualTreeRender = function virtualTreeRender(dataSource) {
82335 return _react2.default.createElement('div', { className: prefix + 'virtual-tree-container', style: style }, _react2.default.createElement(_virtualList2.default, { itemsRenderer: function itemsRenderer(items, ref) {
82336 return treeRender(items, ref);
82337 } }, _this12.renderNodeList(dataSource)));
82338 };
82339
82340 return useVirtual ? virtualTreeRender(dataSource) : renderChildNodes ? treeRender(this.renderWithCustomChildNodes(dataSource)) : !this.props.dataSource ? treeRender(this.renderByChildren()) : treeRender(this.renderByDataSource(dataSource));
82341 };
82342
82343 return Tree;
82344}(_react.Component), _class.propTypes = {
82345 prefix: _propTypes2.default.string,
82346 rtl: _propTypes2.default.bool,
82347 pure: _propTypes2.default.bool,
82348 className: _propTypes2.default.string,
82349 /**
82350 * 树节点
82351 */
82352 children: _propTypes2.default.node,
82353 /**
82354 * 数据源,该属性优先级高于 children
82355 */
82356 dataSource: _propTypes2.default.array,
82357 /**
82358 * 是否显示树的线
82359 */
82360 showLine: _propTypes2.default.bool,
82361 /**
82362 * 是否支持选中节点
82363 */
82364 selectable: _propTypes2.default.bool,
82365 /**
82366 * (用于受控)当前选中节点 key 的数组
82367 */
82368 selectedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
82369 /**
82370 * (用于非受控)默认选中节点 key 的数组
82371 */
82372 defaultSelectedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
82373 /**
82374 * 选中或取消选中节点时触发的回调函数
82375 * @param {Array} selectedKeys 选中节点key的数组
82376 * @param {Object} extra 额外参数
82377 * @param {Array} extra.selectedNodes 选中节点的数组
82378 * @param {Object} extra.node 当前操作的节点
82379 * @param {Boolean} extra.selected 当前操作是否是选中
82380 */
82381 onSelect: _propTypes2.default.func,
82382 /**
82383 * 是否支持多选
82384 */
82385 multiple: _propTypes2.default.bool,
82386 /**
82387 * 是否支持勾选节点的复选框
82388 */
82389 checkable: _propTypes2.default.bool,
82390 /**
82391 * (用于受控)当前勾选复选框节点 key 的数组或 `{checked: Array, indeterminate: Array}` 的对象
82392 */
82393 checkedKeys: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.string), _propTypes2.default.object]),
82394 /**
82395 * (用于非受控)默认勾选复选框节点 key 的数组
82396 */
82397 defaultCheckedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
82398 /**
82399 * 勾选节点复选框是否完全受控(父子节点选中状态不再关联)
82400 */
82401 checkStrictly: _propTypes2.default.bool,
82402 /**
82403 * 定义选中时回填的方式
82404 * @enumdesc 返回所有选中的节点, 父子节点都选中时只返回父节点, 父子节点都选中时只返回子节点
82405 */
82406 checkedStrategy: _propTypes2.default.oneOf(['all', 'parent', 'child']),
82407 /**
82408 * 勾选或取消勾选复选框时触发的回调函数
82409 * @param {Array} checkedKeys 勾选复选框节点key的数组
82410 * @param {Object} extra 额外参数
82411 * @param {Array} extra.checkedNodes 勾选复选框节点的数组
82412 * @param {Array} extra.checkedNodesPositions 包含有勾选复选框节点和其位置的对象的数组
82413 * @param {Array} extra.indeterminateKeys 半选复选框节点 key 的数组
82414 * @param {Object} extra.node 当前操作的节点
82415 * @param {Boolean} extra.checked 当前操作是否是勾选
82416 */
82417 onCheck: _propTypes2.default.func,
82418 /**
82419 * (用于受控)当前展开的节点 key 的数组
82420 */
82421 expandedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
82422 /**
82423 * (用于非受控)默认展开的节点 key 的数组
82424 */
82425 defaultExpandedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
82426 /**
82427 * 是否默认展开所有节点
82428 */
82429 defaultExpandAll: _propTypes2.default.bool,
82430 /**
82431 * 是否自动展开父节点,建议受控时设置为false
82432 */
82433 autoExpandParent: _propTypes2.default.bool,
82434 /**
82435 * 展开或收起节点时触发的回调函数
82436 * @param {Array} expandedKeys 展开的节点key的数组
82437 * @param {Object} extra 额外参数
82438 * @param {Object} extra.node 当前操作的节点
82439 * @param {Boolean} extra.expanded 当前操作是否是展开
82440 */
82441 onExpand: _propTypes2.default.func,
82442 /**
82443 * 是否支持编辑节点内容
82444 */
82445 editable: _propTypes2.default.bool,
82446 /**
82447 * 编辑节点内容完成时触发的回调函数
82448 * @param {String} key 编辑节点的 key
82449 * @param {String} label 编辑节点完成时节点的文本
82450 * @param {Object} node 当前编辑的节点
82451 */
82452 onEditFinish: _propTypes2.default.func,
82453 /**
82454 * 是否支持拖拽节点
82455 */
82456 draggable: _propTypes2.default.bool,
82457 /**
82458 * 开始拖拽节点时触发的回调函数
82459 * @param {Object} info 拖拽信息
82460 * @param {Object} info.event 事件对象
82461 * @param {Object} info.node 拖拽的节点
82462 */
82463 onDragStart: _propTypes2.default.func,
82464 /**
82465 * 拖拽节点进入目标节点时触发的回调函数
82466 * @param {Object} info 拖拽信息
82467 * @param {Object} info.event 事件对象
82468 * @param {Object} info.node 目标节点
82469 * @param {Array} info.expandedKeys 当前展开的节点key的数组
82470 */
82471 onDragEnter: _propTypes2.default.func,
82472 /**
82473 * 拖拽节点在目标节点上移动的时候触发的回调函数
82474 * @param {Object} info 拖拽信息
82475 * @param {Object} info.event 事件对象
82476 * @param {Object} info.node 目标节点
82477 */
82478 onDragOver: _propTypes2.default.func,
82479 /**
82480 * 拖拽节点离开目标节点时触发的回调函数
82481 * @param {Object} info 拖拽信息
82482 * @param {Object} info.event 事件对象
82483 * @param {Object} info.node 目标节点
82484 */
82485 onDragLeave: _propTypes2.default.func,
82486 /**
82487 * 拖拽节点拖拽结束时触发的回调函数
82488 * @param {Object} info 拖拽信息
82489 * @param {Object} info.event 事件对象
82490 * @param {Object} info.node 目标节点
82491 */
82492 onDragEnd: _propTypes2.default.func,
82493 /**
82494 * 拖拽节点放入目标节点内或前后触发的回调函数
82495 * @param {Object} info 拖拽信息
82496 * @param {Object} info.event 事件对象
82497 * @param {Object} info.node 目标节点
82498 * @param {Object} info.dragNode 拖拽的节点
82499 * @param {Array} info.dragNodesKeys 拖拽的节点和其子节点 key 的数组
82500 * @param {Number} info.dropPosition 放置位置,-1代表当前节点前,0代表当前节点里,1代表当前节点后
82501 */
82502 onDrop: _propTypes2.default.func,
82503 /**
82504 * 节点是否可被作为拖拽的目标节点
82505 * @param {Object} info 拖拽信息
82506 * @param {Object} info.node 目标节点
82507 * @param {Object} info.dragNode 拖拽的节点
82508 * @param {Array} info.dragNodesKeys 拖拽的节点和其子节点 key 的数组
82509 * @param {Number} info.dropPosition 放置位置,-1代表当前节点前,0代表当前节点里,1代表当前节点后
82510 * @return {Boolean} 是否可以被当作目标节点
82511 */
82512 canDrop: _propTypes2.default.func,
82513 /**
82514 * 异步加载数据的函数
82515 * @param {Object} node 被点击展开的节点
82516 */
82517 loadData: _propTypes2.default.func,
82518 /**
82519 * 按需筛选高亮节点
82520 * @param {Object} node 待筛选的节点
82521 * @return {Boolean} 是否被筛选中
82522 */
82523 filterTreeNode: _propTypes2.default.func,
82524 /**
82525 * 右键点击节点时触发的回调函数
82526 * @param {Object} info 信息对象
82527 * @param {Object} info.event 事件对象
82528 * @param {Object} info.node 点击的节点
82529 */
82530 onRightClick: _propTypes2.default.func,
82531 /**
82532 * 设置节点是否占满剩余空间,一般用于统一在各节点右侧添加元素(借助 flex 实现,暂时只支持 ie10+)
82533 */
82534 isLabelBlock: _propTypes2.default.bool,
82535 /**
82536 * 设置节点是否占满一行
82537 */
82538 isNodeBlock: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]),
82539 /**
82540 * 是否开启展开收起动画
82541 */
82542 animation: _propTypes2.default.bool,
82543 /**
82544 * 当前获得焦点的子菜单或菜单项 key 值
82545 */
82546 focusedKey: _propTypes2.default.string,
82547 /**
82548 * 渲染子节点
82549 * @param {Array<ReactNode>} nodes 所有的子节点
82550 * @return {ReactNode} 返回节点
82551 */
82552 renderChildNodes: _propTypes2.default.func,
82553 focusable: _propTypes2.default.bool,
82554 autoFocus: _propTypes2.default.bool,
82555 onItemFocus: _propTypes2.default.func,
82556 onBlur: _propTypes2.default.func,
82557 onItemKeyDown: _propTypes2.default.func,
82558 /**
82559 * 自定义渲染单个子节点
82560 * @param {Object} node 节点数据
82561 * @return {ReactNode} 返回节点
82562 * @version 1.25
82563 */
82564 labelRender: _propTypes2.default.func,
82565 /**
82566 * 是否开启虚拟滚动
82567 */
82568 useVirtual: _propTypes2.default.bool,
82569 /**
82570 * 是否是不可变数据
82571 * @version 1.23
82572 */
82573 immutable: _propTypes2.default.bool
82574}, _class.defaultProps = {
82575 prefix: 'next-',
82576 rtl: false,
82577 pure: false,
82578 showLine: false,
82579 selectable: true,
82580 editable: false,
82581 multiple: false,
82582 checkable: false,
82583 checkStrictly: false,
82584 checkedStrategy: 'all',
82585 draggable: false,
82586 autoExpandParent: true,
82587 defaultExpandAll: false,
82588 defaultExpandedKeys: [],
82589 defaultCheckedKeys: [],
82590 defaultSelectedKeys: [],
82591 onExpand: noop,
82592 onCheck: noop,
82593 onSelect: noop,
82594 onDragStart: noop,
82595 onDragEnter: noop,
82596 onDragOver: noop,
82597 onDragLeave: noop,
82598 onDragEnd: noop,
82599 onDrop: noop,
82600 canDrop: function canDrop() {
82601 return true;
82602 },
82603 onEditFinish: noop,
82604 onRightClick: noop,
82605 isLabelBlock: false,
82606 isNodeBlock: false,
82607 animation: true,
82608 focusable: true,
82609 autoFocus: false,
82610 onItemFocus: noop,
82611 onItemKeyDown: noop,
82612 useVirtual: false,
82613 immutable: false
82614}, _temp);
82615Tree.displayName = 'Tree';
82616exports.default = (0, _reactLifecyclesCompat.polyfill)(Tree);
82617
82618/***/ }),
82619/* 457 */
82620/***/ (function(module, exports, __webpack_require__) {
82621
82622"use strict";
82623
82624
82625exports.__esModule = true;
82626exports.default = undefined;
82627
82628var _extends2 = __webpack_require__(1);
82629
82630var _extends3 = _interopRequireDefault(_extends2);
82631
82632var _objectWithoutProperties2 = __webpack_require__(8);
82633
82634var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
82635
82636var _classCallCheck2 = __webpack_require__(2);
82637
82638var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
82639
82640var _possibleConstructorReturn2 = __webpack_require__(3);
82641
82642var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
82643
82644var _inherits2 = __webpack_require__(4);
82645
82646var _inherits3 = _interopRequireDefault(_inherits2);
82647
82648var _class, _temp;
82649
82650var _react = __webpack_require__(0);
82651
82652var _react2 = _interopRequireDefault(_react);
82653
82654var _reactDom = __webpack_require__(12);
82655
82656var _propTypes = __webpack_require__(5);
82657
82658var _propTypes2 = _interopRequireDefault(_propTypes);
82659
82660var _input = __webpack_require__(18);
82661
82662var _input2 = _interopRequireDefault(_input);
82663
82664function _interopRequireDefault(obj) {
82665 return obj && obj.__esModule ? obj : { default: obj };
82666}
82667
82668var TreeNodeInput = (_temp = _class = function (_Component) {
82669 (0, _inherits3.default)(TreeNodeInput, _Component);
82670
82671 function TreeNodeInput() {
82672 (0, _classCallCheck3.default)(this, TreeNodeInput);
82673 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
82674 }
82675
82676 TreeNodeInput.prototype.componentDidMount = function componentDidMount() {
82677 var inputWrapperNode = (0, _reactDom.findDOMNode)(this);
82678 inputWrapperNode.querySelector('input').focus();
82679 };
82680
82681 TreeNodeInput.prototype.render = function render() {
82682 var _props = this.props,
82683 prefix = _props.prefix,
82684 others = (0, _objectWithoutProperties3.default)(_props, ['prefix']);
82685
82686 return _react2.default.createElement(_input2.default, (0, _extends3.default)({
82687 size: 'small',
82688 className: prefix + 'tree-node-input'
82689 }, others));
82690 };
82691
82692 return TreeNodeInput;
82693}(_react.Component), _class.propTypes = {
82694 prefix: _propTypes2.default.string
82695}, _temp);
82696TreeNodeInput.displayName = 'TreeNodeInput';
82697exports.default = TreeNodeInput;
82698module.exports = exports['default'];
82699
82700/***/ }),
82701/* 458 */
82702/***/ (function(module, exports, __webpack_require__) {
82703
82704"use strict";
82705
82706
82707exports.__esModule = true;
82708exports.default = undefined;
82709
82710var _classCallCheck2 = __webpack_require__(2);
82711
82712var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
82713
82714var _possibleConstructorReturn2 = __webpack_require__(3);
82715
82716var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
82717
82718var _inherits2 = __webpack_require__(4);
82719
82720var _inherits3 = _interopRequireDefault(_inherits2);
82721
82722var _class, _temp;
82723
82724var _react = __webpack_require__(0);
82725
82726var _react2 = _interopRequireDefault(_react);
82727
82728var _propTypes = __webpack_require__(5);
82729
82730var _propTypes2 = _interopRequireDefault(_propTypes);
82731
82732var _classnames = __webpack_require__(7);
82733
82734var _classnames2 = _interopRequireDefault(_classnames);
82735
82736function _interopRequireDefault(obj) {
82737 return obj && obj.__esModule ? obj : { default: obj };
82738}
82739
82740var TreeNodeIndent = (_temp = _class = function (_Component) {
82741 (0, _inherits3.default)(TreeNodeIndent, _Component);
82742
82743 function TreeNodeIndent() {
82744 (0, _classCallCheck3.default)(this, TreeNodeIndent);
82745 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
82746 }
82747
82748 TreeNodeIndent.prototype.render = function render() {
82749 var _props = this.props,
82750 prefix = _props.prefix,
82751 level = _props.level,
82752 isLastChild = _props.isLastChild,
82753 showLine = _props.showLine;
82754
82755 var indents = [];
82756
82757 for (var i = 1; i < level; i++) {
82758 var _cx;
82759
82760 var classNames = (0, _classnames2.default)(prefix + 'tree-node-indent-unit', (_cx = {}, _cx[prefix + 'line'] = !isLastChild[i - 1] && showLine, _cx));
82761
82762 indents.push(_react2.default.createElement('span', { className: classNames, key: i - 1 }));
82763 }
82764
82765 return indents;
82766 };
82767
82768 return TreeNodeIndent;
82769}(_react.Component), _class.propTypes = {
82770 prefix: _propTypes2.default.string,
82771 level: _propTypes2.default.number,
82772 isLastChild: _propTypes2.default.arrayOf(_propTypes2.default.bool),
82773 showLine: _propTypes2.default.bool
82774}, _class.defaultProps = {
82775 isLastChild: []
82776}, _temp);
82777TreeNodeIndent.displayName = 'TreeNodeIndent';
82778exports.default = TreeNodeIndent;
82779module.exports = exports['default'];
82780
82781/***/ }),
82782/* 459 */
82783/***/ (function(module, exports, __webpack_require__) {
82784
82785"use strict";
82786
82787
82788exports.__esModule = true;
82789
82790var _extends2 = __webpack_require__(1);
82791
82792var _extends3 = _interopRequireDefault(_extends2);
82793
82794var _objectWithoutProperties2 = __webpack_require__(8);
82795
82796var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
82797
82798var _configProvider = __webpack_require__(9);
82799
82800var _configProvider2 = _interopRequireDefault(_configProvider);
82801
82802var _treeSelect = __webpack_require__(460);
82803
82804var _treeSelect2 = _interopRequireDefault(_treeSelect);
82805
82806function _interopRequireDefault(obj) {
82807 return obj && obj.__esModule ? obj : { default: obj };
82808}
82809
82810exports.default = _configProvider2.default.config(_treeSelect2.default, {
82811 transform: /* istanbul ignore next */function transform(props, deprecated) {
82812 if ('shape' in props) {
82813 deprecated('shape', 'hasBorder', 'TreeSelect');
82814 var _props = props,
82815 shape = _props.shape,
82816 others = (0, _objectWithoutProperties3.default)(_props, ['shape']);
82817
82818 props = (0, _extends3.default)({ hasBorder: shape !== 'arrow-only' }, others);
82819 }
82820
82821 if ('container' in props) {
82822 deprecated('container', 'popupContainer', 'TreeSelect');
82823
82824 var _props2 = props,
82825 container = _props2.container,
82826 _others = (0, _objectWithoutProperties3.default)(_props2, ['container']);
82827
82828 props = (0, _extends3.default)({ popupContainer: container }, _others);
82829 }
82830
82831 return props;
82832 }
82833});
82834module.exports = exports['default'];
82835
82836/***/ }),
82837/* 460 */
82838/***/ (function(module, exports, __webpack_require__) {
82839
82840"use strict";
82841
82842
82843exports.__esModule = true;
82844
82845var _objectWithoutProperties2 = __webpack_require__(8);
82846
82847var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
82848
82849var _typeof2 = __webpack_require__(14);
82850
82851var _typeof3 = _interopRequireDefault(_typeof2);
82852
82853var _classCallCheck2 = __webpack_require__(2);
82854
82855var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
82856
82857var _possibleConstructorReturn2 = __webpack_require__(3);
82858
82859var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
82860
82861var _inherits2 = __webpack_require__(4);
82862
82863var _inherits3 = _interopRequireDefault(_inherits2);
82864
82865var _extends2 = __webpack_require__(1);
82866
82867var _extends3 = _interopRequireDefault(_extends2);
82868
82869var _class, _temp;
82870
82871var _react = __webpack_require__(0);
82872
82873var _react2 = _interopRequireDefault(_react);
82874
82875var _reactLifecyclesCompat = __webpack_require__(10);
82876
82877var _propTypes = __webpack_require__(5);
82878
82879var _propTypes2 = _interopRequireDefault(_propTypes);
82880
82881var _classnames = __webpack_require__(7);
82882
82883var _classnames2 = _interopRequireDefault(_classnames);
82884
82885var _select = __webpack_require__(29);
82886
82887var _select2 = _interopRequireDefault(_select);
82888
82889var _tree = __webpack_require__(193);
82890
82891var _tree2 = _interopRequireDefault(_tree);
82892
82893var _util = __webpack_require__(194);
82894
82895var _util2 = __webpack_require__(6);
82896
82897var _zhCn = __webpack_require__(13);
82898
82899var _zhCn2 = _interopRequireDefault(_zhCn);
82900
82901var _util3 = __webpack_require__(62);
82902
82903function _interopRequireDefault(obj) {
82904 return obj && obj.__esModule ? obj : { default: obj };
82905}
82906
82907var noop = function noop() {};
82908var TreeNode = _tree2.default.Node;
82909var bindCtx = _util2.func.bindCtx;
82910
82911var flatDataSource = function flatDataSource(props) {
82912 var _k2n = {};
82913 var _p2n = {};
82914 var _v2n = {};
82915
82916 if ('dataSource' in props) {
82917 var loop = function loop(data) {
82918 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
82919 return data.map(function (item, index) {
82920 var value = item.value,
82921 children = item.children;
82922
82923 var pos = prefix + '-' + index;
82924 var key = item.key || pos;
82925
82926 var newItem = (0, _extends3.default)({}, item, { key: key, pos: pos });
82927 if (children && children.length) {
82928 newItem.children = loop(children, pos);
82929 }
82930
82931 _k2n[key] = _p2n[pos] = _v2n[value] = newItem;
82932 return newItem;
82933 });
82934 };
82935
82936 loop(props.dataSource);
82937 } else if ('children' in props) {
82938 var _loop = function _loop(children) {
82939 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
82940 return _react.Children.map(children, function (node, index) {
82941 if (!_react2.default.isValidElement(node)) {
82942 return;
82943 }
82944
82945 var _node$props = node.props,
82946 value = _node$props.value,
82947 children = _node$props.children;
82948
82949 var pos = prefix + '-' + index;
82950 var key = node.key || pos;
82951 var newItem = (0, _extends3.default)({}, node.props, { key: key, pos: pos });
82952 if (children && _react.Children.count(children)) {
82953 newItem.children = _loop(children, pos);
82954 }
82955
82956 _k2n[key] = _p2n[pos] = _v2n[value] = newItem;
82957 return newItem;
82958 });
82959 };
82960 _loop(props.children);
82961 }
82962
82963 return { _k2n: _k2n, _p2n: _p2n, _v2n: _v2n };
82964};
82965
82966var isSearched = function isSearched(label, searchedValue) {
82967 var labelString = '';
82968
82969 searchedValue = String(searchedValue);
82970
82971 var loop = function loop(arg) {
82972 if ((0, _react.isValidElement)(arg) && arg.props.children) {
82973 _react.Children.forEach(arg.props.children, loop);
82974 } else {
82975 labelString += arg;
82976 }
82977 };
82978 loop(label);
82979
82980 if (labelString.length >= searchedValue.length && labelString.toLowerCase().indexOf(searchedValue.toLowerCase()) > -1) {
82981 return true;
82982 }
82983
82984 return false;
82985};
82986
82987var getSearchKeys = function getSearchKeys(searchedValue, _k2n, _p2n) {
82988 var searchedKeys = [];
82989 var retainedKeys = [];
82990 Object.keys(_k2n).forEach(function (k) {
82991 var _k2n$k = _k2n[k],
82992 label = _k2n$k.label,
82993 pos = _k2n$k.pos;
82994
82995 if (isSearched(label, searchedValue)) {
82996 searchedKeys.push(k);
82997 var posArr = pos.split('-');
82998 posArr.forEach(function (n, i) {
82999 if (i > 0) {
83000 var p = posArr.slice(0, i + 1).join('-');
83001 var kk = _p2n[p].key;
83002 if (retainedKeys.indexOf(kk) === -1) {
83003 retainedKeys.push(kk);
83004 }
83005 }
83006 });
83007 }
83008 });
83009
83010 return { searchedKeys: searchedKeys, retainedKeys: retainedKeys };
83011};
83012
83013/**
83014 * TreeSelect
83015 */
83016var TreeSelect = (_temp = _class = function (_Component) {
83017 (0, _inherits3.default)(TreeSelect, _Component);
83018
83019 function TreeSelect(props, context) {
83020 (0, _classCallCheck3.default)(this, TreeSelect);
83021
83022 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
83023
83024 var defaultVisible = props.defaultVisible,
83025 visible = props.visible,
83026 defaultValue = props.defaultValue,
83027 value = props.value;
83028
83029 _this.state = (0, _extends3.default)({
83030 visible: typeof visible === 'undefined' ? defaultVisible : visible,
83031 value: (0, _util.normalizeToArray)(typeof value === 'undefined' ? defaultValue : value),
83032 searchedValue: '',
83033 expandedKeys: [],
83034 searchedKeys: [],
83035 retainedKeys: [],
83036 autoExpandParent: false,
83037 // map of value => item, includes value not exist in dataSource
83038 mapValueDS: {}
83039 }, flatDataSource(props));
83040
83041 // init value/mapValueDS when defaultValue is not undefined
83042 if (_this.state.value !== undefined) {
83043 _this.state.mapValueDS = (0, _util3.getValueDataSource)(_this.state.value, _this.state.mapValueDS).mapValueDS;
83044 _this.state.value = _this.state.value.map(function (v) {
83045 return (0, _util3.valueToSelectKey)(v);
83046 });
83047 }
83048
83049 bindCtx(_this, ['handleSelect', 'handleCheck', 'handleSearch', 'handleSearchClear', 'handleVisibleChange', 'handleChange', 'handleRemove', 'handleExpand', 'handleKeyDown', 'saveTreeRef', 'saveSelectRef', 'renderMaxTagPlaceholder']);
83050 return _this;
83051 }
83052
83053 TreeSelect.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
83054 var st = {};
83055
83056 if ('value' in props) {
83057 var valueArray = (0, _util.normalizeToArray)(props.value);
83058 // convert value to string[]
83059 st.value = valueArray.map(function (v) {
83060 return (0, _util3.valueToSelectKey)(v);
83061 });
83062 // re-calculate map
83063 st.mapValueDS = (0, _util3.getValueDataSource)(props.value, state.mapValueDS).mapValueDS;
83064 }
83065 if ('visible' in props) {
83066 st.visible = props.visible;
83067 }
83068
83069 var _flatDataSource = flatDataSource(props),
83070 _k2n = _flatDataSource._k2n,
83071 _p2n = _flatDataSource._p2n,
83072 _v2n = _flatDataSource._v2n;
83073
83074 if (props.showSearch && state.searchedValue) {
83075 var _getSearchKeys = getSearchKeys(state.searchedValue, _k2n, _p2n),
83076 searchedKeys = _getSearchKeys.searchedKeys,
83077 retainedKeys = _getSearchKeys.retainedKeys;
83078
83079 st.searchedKeys = searchedKeys;
83080 st.retainedKeys = retainedKeys;
83081 }
83082
83083 return (0, _extends3.default)({}, st, {
83084 _k2n: _k2n,
83085 _p2n: _p2n,
83086 _v2n: _v2n
83087 });
83088 };
83089
83090 TreeSelect.prototype.getKeysByValue = function getKeysByValue(value) {
83091 var _this2 = this;
83092
83093 return value.reduce(function (ret, v) {
83094 var k = _this2.state._v2n[v] && _this2.state._v2n[v].key;
83095 if (k) {
83096 ret.push(k);
83097 }
83098 return ret;
83099 }, []);
83100 };
83101
83102 TreeSelect.prototype.getValueByKeys = function getValueByKeys(keys) {
83103 var _this3 = this;
83104
83105 return keys.map(function (k) {
83106 return _this3.state._k2n[k].value;
83107 });
83108 };
83109
83110 TreeSelect.prototype.getValueForSelect = function getValueForSelect(value) {
83111 var treeCheckedStrategy = this.props.treeCheckedStrategy;
83112
83113 var nonExistentValueKeys = this.getNonExistentValueKeys();
83114
83115 var keys = this.getKeysByValue(value);
83116
83117 if (treeCheckedStrategy !== 'child') {
83118 // there's no need to calculate all checked value when treeCheckedStrategy=child, close #3936
83119 keys = (0, _util.getAllCheckedKeys)(keys, this.state._k2n, this.state._p2n);
83120 }
83121
83122 switch (treeCheckedStrategy) {
83123 case 'parent':
83124 keys = (0, _util.filterChildKey)(keys, this.state._k2n, this.state._p2n);
83125 break;
83126 case 'child':
83127 keys = (0, _util.filterParentKey)(keys, this.state._k2n, this.state._p2n);
83128 break;
83129 default:
83130 break;
83131 }
83132
83133 var values = this.getValueByKeys(keys);
83134
83135 return [].concat(values, nonExistentValueKeys);
83136 };
83137
83138 TreeSelect.prototype.getData = function getData(value, forSelect) {
83139 var _this4 = this;
83140
83141 var preserveNonExistentValue = this.props.preserveNonExistentValue;
83142 var mapValueDS = this.state.mapValueDS;
83143
83144 var ret = value.reduce(function (ret, v) {
83145 var k = _this4.state._v2n[v] && _this4.state._v2n[v].key;
83146 if (k) {
83147 var _state$_k2n$k = _this4.state._k2n[k],
83148 label = _state$_k2n$k.label,
83149 pos = _state$_k2n$k.pos,
83150 disabled = _state$_k2n$k.disabled,
83151 checkboxDisabled = _state$_k2n$k.checkboxDisabled;
83152
83153 var d = {
83154 value: v,
83155 label: label,
83156 pos: pos
83157 };
83158 if (forSelect) {
83159 d.disabled = disabled || checkboxDisabled;
83160 } else {
83161 d.key = k;
83162 }
83163 ret.push(d);
83164 } else if (preserveNonExistentValue) {
83165 // 需要保留 dataSource 中不存在的 value
83166 var item = mapValueDS[v];
83167 if (item) {
83168 ret.push(item);
83169 }
83170 }
83171 return ret;
83172 }, []);
83173
83174 return ret;
83175 };
83176
83177 TreeSelect.prototype.getNonExistentValues = function getNonExistentValues() {
83178 var _this5 = this;
83179
83180 var preserveNonExistentValue = this.props.preserveNonExistentValue;
83181 var value = this.state.value;
83182
83183 if (!preserveNonExistentValue) {
83184 return [];
83185 }
83186 var nonExistentValues = value.filter(function (v) {
83187 return !_this5.state._v2n[v];
83188 });
83189 return nonExistentValues;
83190 };
83191
83192 TreeSelect.prototype.getNonExistentValueKeys = function getNonExistentValueKeys() {
83193 var nonExistentValues = this.getNonExistentValues();
83194 return nonExistentValues.map(function (v) {
83195 if ((typeof v === 'undefined' ? 'undefined' : (0, _typeof3.default)(v)) === 'object' && v.hasOwnProperty('value')) {
83196 return v.value;
83197 }
83198 return v;
83199 });
83200 };
83201
83202 TreeSelect.prototype.saveTreeRef = function saveTreeRef(ref) {
83203 this.tree = ref;
83204 };
83205
83206 TreeSelect.prototype.saveSelectRef = function saveSelectRef(ref) {
83207 this.select = ref;
83208 };
83209
83210 TreeSelect.prototype.handleVisibleChange = function handleVisibleChange(visible, type) {
83211 if (!('visible' in this.props)) {
83212 this.setState({
83213 visible: visible
83214 });
83215 }
83216
83217 if (['fromTree', 'keyboard'].indexOf(type) !== -1 && !visible) {
83218 this.select.focusInput();
83219 }
83220
83221 this.props.onVisibleChange(visible, type);
83222 };
83223
83224 TreeSelect.prototype.handleSelect = function handleSelect(selectedKeys, extra) {
83225 var _props = this.props,
83226 multiple = _props.multiple,
83227 onChange = _props.onChange;
83228 var selected = extra.selected;
83229
83230 if (multiple || selected) {
83231 var value = this.getValueByKeys(selectedKeys);
83232 var nonExistentValues = this.getNonExistentValues();
83233 value = [].concat(nonExistentValues, value);
83234
83235 if (!('value' in this.props)) {
83236 this.setState({
83237 value: value
83238 });
83239 }
83240 if (!multiple) {
83241 this.handleVisibleChange(false, 'fromTree');
83242 }
83243
83244 var data = this.getData(value);
83245 multiple ? onChange(value, data) : onChange(value[0], data[0]);
83246
83247 // clear search value manually
83248 this.select.handleSearchClear('select');
83249 } else {
83250 this.handleVisibleChange(false, 'fromTree');
83251 }
83252 };
83253
83254 TreeSelect.prototype.handleCheck = function handleCheck(checkedKeys) {
83255 var onChange = this.props.onChange;
83256
83257 var value = this.getValueByKeys(checkedKeys);
83258 var nonExistentValues = this.getNonExistentValues();
83259 value = [].concat(nonExistentValues, value);
83260
83261 if (!('value' in this.props)) {
83262 this.setState({
83263 value: value
83264 });
83265 }
83266
83267 onChange(value, this.getData(value));
83268
83269 // clear search value manually
83270 this.select.handleSearchClear('select');
83271 };
83272
83273 TreeSelect.prototype.handleRemove = function handleRemove(removedItem) {
83274 var _this6 = this;
83275
83276 var removedValue = removedItem.value;
83277 var _props2 = this.props,
83278 treeCheckable = _props2.treeCheckable,
83279 treeCheckStrictly = _props2.treeCheckStrictly,
83280 treeCheckedStrategy = _props2.treeCheckedStrategy,
83281 onChange = _props2.onChange;
83282
83283 var value = void 0;
83284 if (
83285 // there's linkage relationship among nodes
83286 treeCheckable && !treeCheckStrictly && ['parent', 'all'].indexOf(treeCheckedStrategy) !== -1 &&
83287 // value exits in datasource
83288 this.state._v2n[removedValue]) {
83289 var removedPos = this.state._v2n[removedValue].pos;
83290 value = this.state.value.filter(function (v) {
83291 var p = _this6.state._v2n[v].pos;
83292 return !(0, _util.isDescendantOrSelf)(removedPos, p);
83293 });
83294
83295 var nums = removedPos.split('-');
83296 for (var i = nums.length; i > 2; i--) {
83297 var parentPos = nums.slice(0, i - 1).join('-');
83298 var parentValue = this.state._p2n[parentPos].value;
83299 var parentIndex = value.indexOf(parentValue);
83300 if (parentIndex > -1) {
83301 value.splice(parentIndex, 1);
83302 } else {
83303 break;
83304 }
83305 }
83306 } else {
83307 value = this.state.value.filter(function (v) {
83308 return v !== removedValue;
83309 });
83310 }
83311
83312 if (!('value' in this.props)) {
83313 this.setState({
83314 value: value
83315 });
83316 }
83317
83318 var data = this.getData(value);
83319 onChange(value, data);
83320 };
83321
83322 TreeSelect.prototype.handleSearch = function handleSearch(searchedValue) {
83323 var _state = this.state,
83324 _k2n = _state._k2n,
83325 _p2n = _state._p2n;
83326
83327 var _getSearchKeys2 = getSearchKeys(searchedValue, _k2n, _p2n),
83328 searchedKeys = _getSearchKeys2.searchedKeys,
83329 retainedKeys = _getSearchKeys2.retainedKeys;
83330
83331 this.setState({
83332 searchedValue: searchedValue,
83333 expandedKeys: searchedKeys,
83334 searchedKeys: searchedKeys,
83335 retainedKeys: retainedKeys,
83336 autoExpandParent: true
83337 });
83338
83339 this.props.onSearch(searchedValue);
83340 };
83341
83342 TreeSelect.prototype.handleSearchClear = function handleSearchClear(triggerType) {
83343 this.setState({
83344 searchedValue: '',
83345 expandedKeys: []
83346 });
83347 this.props.onSearchClear(triggerType);
83348 };
83349
83350 TreeSelect.prototype.handleExpand = function handleExpand(expandedKeys) {
83351 this.setState({
83352 expandedKeys: expandedKeys,
83353 autoExpandParent: false
83354 });
83355 };
83356
83357 TreeSelect.prototype.handleKeyDown = function handleKeyDown(e) {
83358 var onKeyDown = this.props.onKeyDown;
83359 var visible = this.state.visible;
83360
83361 if (onKeyDown) {
83362 onKeyDown(e);
83363 }
83364
83365 if (!visible) {
83366 return;
83367 }
83368
83369 switch (e.keyCode) {
83370 case _util2.KEYCODE.UP:
83371 case _util2.KEYCODE.DOWN:
83372 this.tree.setFocusKey();
83373 e.preventDefault();
83374 break;
83375 default:
83376 break;
83377 }
83378 };
83379
83380 TreeSelect.prototype.handleChange = function handleChange(value, triggerType) {
83381 if (this.props.hasClear && triggerType === 'clear') {
83382 if (!('value' in this.props)) {
83383 this.setState({
83384 value: []
83385 });
83386 }
83387
83388 this.props.onChange(null, null);
83389 }
83390 };
83391
83392 TreeSelect.prototype.searchNodes = function searchNodes(children) {
83393 var _state2 = this.state,
83394 searchedKeys = _state2.searchedKeys,
83395 retainedKeys = _state2.retainedKeys;
83396
83397 var loop = function loop(children) {
83398 var retainedNodes = [];
83399 _react.Children.forEach(children, function (child) {
83400 if (searchedKeys.indexOf(child.key) > -1) {
83401 retainedNodes.push(child);
83402 } else if (retainedKeys.indexOf(child.key) > -1) {
83403 var retainedNode = child.props.children ? (0, _react.cloneElement)(child, {}, loop(child.props.children)) : child;
83404 retainedNodes.push(retainedNode);
83405 } else {
83406 var hideNode = (0, _react.cloneElement)(child, {
83407 style: { display: 'none' }
83408 });
83409 retainedNodes.push(hideNode);
83410 }
83411 });
83412 return retainedNodes;
83413 };
83414
83415 return loop(children);
83416 };
83417
83418 TreeSelect.prototype.createNodesByData = function createNodesByData(data, searching) {
83419 var _this7 = this;
83420
83421 var _state3 = this.state,
83422 searchedKeys = _state3.searchedKeys,
83423 retainedKeys = _state3.retainedKeys;
83424
83425 var loop = function loop(data, isParentMatched) {
83426 var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
83427
83428 var retainedNodes = [];
83429
83430 data.forEach(function (item, index) {
83431 var children = item.children,
83432 others = (0, _objectWithoutProperties3.default)(item, ['children']);
83433
83434 var pos = prefix + '-' + index;
83435 var key = _this7.state._p2n[pos].key;
83436 var addNode = function addNode(isParentMatched, hide) {
83437 if (hide) {
83438 others.style = { display: 'none' };
83439 }
83440
83441 retainedNodes.push(_react2.default.createElement(TreeNode, (0, _extends3.default)({}, others, { key: key }), children && children.length ? loop(children, isParentMatched, pos) : null));
83442 };
83443
83444 if (searching) {
83445 if (searchedKeys.indexOf(key) > -1 || isParentMatched) {
83446 addNode(true);
83447 } else if (retainedKeys.indexOf(key) > -1) {
83448 addNode(false);
83449 } else {
83450 addNode(false, true);
83451 }
83452 } else {
83453 addNode();
83454 }
83455 });
83456
83457 return retainedNodes;
83458 };
83459
83460 return loop(data, false);
83461 };
83462
83463 /*eslint-disable max-statements*/
83464
83465 TreeSelect.prototype.renderPopupContent = function renderPopupContent() {
83466 var prefix = this.props.prefix;
83467 var treeSelectPrefix = prefix + 'tree-select-';
83468
83469 if (!this.state.visible) {
83470 return _react2.default.createElement('div', { className: treeSelectPrefix + 'dropdown' });
83471 }
83472
83473 var _props3 = this.props,
83474 multiple = _props3.multiple,
83475 treeCheckable = _props3.treeCheckable,
83476 treeCheckStrictly = _props3.treeCheckStrictly,
83477 treeCheckedStrategy = _props3.treeCheckedStrategy,
83478 treeDefaultExpandAll = _props3.treeDefaultExpandAll,
83479 treeDefaultExpandedKeys = _props3.treeDefaultExpandedKeys,
83480 treeLoadData = _props3.treeLoadData,
83481 _props3$treeProps = _props3.treeProps,
83482 customTreeProps = _props3$treeProps === undefined ? {} : _props3$treeProps,
83483 showSearch = _props3.showSearch,
83484 filterLocal = _props3.filterLocal,
83485 dataSource = _props3.dataSource,
83486 children = _props3.children,
83487 readOnly = _props3.readOnly,
83488 notFoundContent = _props3.notFoundContent,
83489 useVirtual = _props3.useVirtual;
83490 var _state4 = this.state,
83491 value = _state4.value,
83492 searchedValue = _state4.searchedValue,
83493 expandedKeys = _state4.expandedKeys,
83494 autoExpandParent = _state4.autoExpandParent,
83495 searchedKeys = _state4.searchedKeys;
83496
83497 var treeProps = {
83498 multiple: multiple,
83499 ref: this.saveTreeRef,
83500 loadData: treeLoadData,
83501 defaultExpandAll: treeDefaultExpandAll,
83502 defaultExpandedKeys: treeDefaultExpandedKeys,
83503 useVirtual: useVirtual
83504 };
83505
83506 // 使用虚拟滚动 设置默认高度
83507 if (useVirtual) {
83508 customTreeProps.style = (0, _extends3.default)({
83509 maxHeight: '260px',
83510 overflow: 'auto',
83511 boxSizing: 'border-box'
83512 }, customTreeProps.style);
83513 }
83514
83515 var keys = this.getKeysByValue(value);
83516 if (treeCheckable) {
83517 treeProps.checkable = treeCheckable;
83518 treeProps.checkStrictly = treeCheckStrictly;
83519 treeProps.checkedStrategy = treeCheckStrictly ? 'all' : treeCheckedStrategy;
83520 treeProps.checkedKeys = keys;
83521 if (!readOnly) {
83522 treeProps.onCheck = this.handleCheck;
83523 }
83524 } else {
83525 treeProps.selectedKeys = keys;
83526 if (!readOnly) {
83527 treeProps.onSelect = this.handleSelect;
83528 }
83529 }
83530
83531 var notFound = false;
83532 var newChildren = void 0;
83533 if (filterLocal && showSearch && searchedValue) {
83534 treeProps.expandedKeys = expandedKeys;
83535 treeProps.autoExpandParent = autoExpandParent;
83536 treeProps.onExpand = this.handleExpand;
83537 treeProps.filterTreeNode = function (node) {
83538 return searchedKeys.indexOf(node.props.eventKey) > -1;
83539 };
83540
83541 if (searchedKeys.length) {
83542 newChildren = dataSource ? this.createNodesByData(dataSource, true) : this.searchNodes(children);
83543 } else {
83544 notFound = true;
83545 }
83546 } else {
83547 // eslint-disable-next-line
83548 if (dataSource) {
83549 if (dataSource.length) {
83550 newChildren = this.createNodesByData(dataSource);
83551 } else {
83552 notFound = true;
83553 }
83554 } else {
83555 // eslint-disable-next-line
83556 if (_react.Children.count(children)) {
83557 newChildren = children;
83558 } else {
83559 notFound = true;
83560 }
83561 }
83562 }
83563 var contentClass = treeSelectPrefix + 'dropdown-content';
83564
83565 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));
83566 };
83567
83568 TreeSelect.prototype.renderPreview = function renderPreview(data, others) {
83569 var _props4 = this.props,
83570 prefix = _props4.prefix,
83571 className = _props4.className,
83572 renderPreview = _props4.renderPreview;
83573
83574 var previewCls = (0, _classnames2.default)(className, prefix + 'form-preview');
83575 var items = data && !Array.isArray(data) ? [data] : data;
83576
83577 if (typeof renderPreview === 'function') {
83578 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(items, this.props));
83579 }
83580
83581 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), items && items.map(function (_ref) {
83582 var label = _ref.label;
83583 return label;
83584 }).join(', '));
83585 };
83586
83587 /**
83588 * TreeSelect 无法直接使用 Select 的 maxTagPlaceholder 逻辑
83589 * Select 的 totalValue 是所有 leaf 节点,TreeSelect 的 totalValue 受 treeCheckedStrategy 和 treeCheckStrictly 影响
83590 *
83591 * treeCheckStrictly = true: totalValue 为所有节点
83592 *
83593 * treeCheckStrictly = false: 根据 treeCheckedStrategy 判断
83594 * treeCheckedStrategy = 'all': totalValue 为所有节点
83595 * treeCheckedStrategy = 'parent': totalValue 无意义,不返回
83596 * treeCheckedStrategy = 'child': totalValue 为所有 leaf 节点
83597 */
83598
83599 TreeSelect.prototype.renderMaxTagPlaceholder = function renderMaxTagPlaceholder(value, totalValue) {
83600 // 这里的 totalValue 为所有 leaf 节点
83601 var _props5 = this.props,
83602 treeCheckStrictly = _props5.treeCheckStrictly,
83603 maxTagPlaceholder = _props5.maxTagPlaceholder,
83604 treeCheckedStrategy = _props5.treeCheckedStrategy,
83605 locale = _props5.locale;
83606 var _v2n = this.state._v2n;
83607
83608 var treeSelectTotalValue = totalValue; // all the leaf nodes
83609
83610 // calculate total value
83611 if (treeCheckStrictly) {
83612 // all the nodes
83613 treeSelectTotalValue = _util2.obj.values(_v2n);
83614 } else if (treeCheckedStrategy === 'all') {
83615 // all
83616 treeSelectTotalValue = _util2.obj.values(_v2n);
83617 } else if (treeCheckedStrategy === 'parent') {
83618 // totalValue is pointless when treeCheckedStrategy = 'parent'
83619 treeSelectTotalValue = undefined;
83620 }
83621
83622 // custom render function
83623 if (maxTagPlaceholder) {
83624 return maxTagPlaceholder(value, treeSelectTotalValue);
83625 }
83626
83627 // default render function
83628 if (treeCheckedStrategy === 'parent') {
83629 // don't show totalValue when treeCheckedStrategy = 'parent'
83630 return '' + _util2.str.template(locale.shortMaxTagPlaceholder, {
83631 selected: value.length
83632 });
83633 }
83634 return '' + _util2.str.template(locale.maxTagPlaceholder, {
83635 selected: value.length,
83636 total: treeSelectTotalValue.length
83637 });
83638 };
83639
83640 /*eslint-enable*/
83641
83642 TreeSelect.prototype.render = function render() {
83643 var _props6 = this.props,
83644 prefix = _props6.prefix,
83645 size = _props6.size,
83646 placeholder = _props6.placeholder,
83647 disabled = _props6.disabled,
83648 hasArrow = _props6.hasArrow,
83649 hasBorder = _props6.hasBorder,
83650 hasClear = _props6.hasClear,
83651 label = _props6.label,
83652 readOnly = _props6.readOnly,
83653 autoWidth = _props6.autoWidth,
83654 popupStyle = _props6.popupStyle,
83655 popupClassName = _props6.popupClassName,
83656 showSearch = _props6.showSearch,
83657 multiple = _props6.multiple,
83658 treeCheckable = _props6.treeCheckable,
83659 treeCheckStrictly = _props6.treeCheckStrictly,
83660 className = _props6.className,
83661 popupContainer = _props6.popupContainer,
83662 popupProps = _props6.popupProps,
83663 followTrigger = _props6.followTrigger,
83664 isPreview = _props6.isPreview,
83665 dataSource = _props6.dataSource,
83666 tagInline = _props6.tagInline;
83667
83668 var others = _util2.obj.pickOthers(Object.keys(TreeSelect.propTypes), this.props);
83669 var _state5 = this.state,
83670 value = _state5.value,
83671 visible = _state5.visible;
83672
83673 // if (non-leaf 节点可选 & 父子节点选中状态需要联动),需要额外计算父子节点间的联动关系
83674
83675 var valueForSelect = treeCheckable && !treeCheckStrictly ? this.getValueForSelect(value) : value;
83676
83677 var data = this.getData(valueForSelect, true);
83678 if (!multiple && !treeCheckable) {
83679 data = data[0];
83680 }
83681
83682 if (isPreview) {
83683 return this.renderPreview(data, others);
83684 }
83685
83686 return _react2.default.createElement(_select2.default, (0, _extends3.default)({
83687 prefix: prefix,
83688 className: className,
83689 size: size,
83690 hasBorder: hasBorder,
83691 hasArrow: hasArrow,
83692 hasClear: hasClear,
83693 placeholder: placeholder,
83694 disabled: disabled,
83695 autoWidth: autoWidth,
83696 label: label,
83697 readOnly: readOnly,
83698 ref: this.saveSelectRef,
83699 dataSource: dataSource,
83700 value: data,
83701 onChange: this.handleChange,
83702 visible: visible,
83703 onVisibleChange: this.handleVisibleChange,
83704 showSearch: showSearch,
83705 onSearch: this.handleSearch,
83706 onSearchClear: this.handleSearchClear,
83707 popupContainer: popupContainer,
83708 popupStyle: popupStyle,
83709 popupClassName: popupClassName,
83710 popupProps: popupProps,
83711 followTrigger: followTrigger,
83712 tagInline: tagInline,
83713 maxTagPlaceholder: this.renderMaxTagPlaceholder
83714 }, others, {
83715 onRemove: this.handleRemove,
83716 onKeyDown: this.handleKeyDown,
83717 popupContent: this.renderPopupContent(),
83718 mode: treeCheckable || multiple ? 'multiple' : 'single'
83719 }));
83720 };
83721
83722 return TreeSelect;
83723}(_react.Component), _class.propTypes = {
83724 prefix: _propTypes2.default.string,
83725 pure: _propTypes2.default.bool,
83726 locale: _propTypes2.default.object,
83727 className: _propTypes2.default.string,
83728 /**
83729 * 树节点
83730 */
83731 children: _propTypes2.default.node,
83732 /**
83733 * 选择框大小
83734 */
83735 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
83736 /**
83737 * 选择框占位符
83738 */
83739 placeholder: _propTypes2.default.string,
83740 /**
83741 * 是否禁用
83742 */
83743 disabled: _propTypes2.default.bool,
83744 /**
83745 * 是否有下拉箭头
83746 */
83747 hasArrow: _propTypes2.default.bool,
83748 /**
83749 * 是否有边框
83750 */
83751 hasBorder: _propTypes2.default.bool,
83752 /**
83753 * 是否有清空按钮
83754 */
83755 hasClear: _propTypes2.default.bool,
83756 /**
83757 * 自定义内联 label
83758 */
83759 label: _propTypes2.default.node,
83760 /**
83761 * 是否只读,只读模式下可以展开弹层但不能选择
83762 */
83763 readOnly: _propTypes2.default.bool,
83764 /**
83765 * 下拉框是否与选择器对齐
83766 */
83767 autoWidth: _propTypes2.default.bool,
83768 /**
83769 * 数据源,该属性优先级高于 children
83770 */
83771 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.object),
83772 /**
83773 * value/defaultValue 在 dataSource 中不存在时,是否展示
83774 * @version 1.25
83775 */
83776 preserveNonExistentValue: _propTypes2.default.bool,
83777 /**
83778 * (受控)当前值
83779 */
83780 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object, _propTypes2.default.arrayOf(_propTypes2.default.any)]),
83781 /**
83782 * (非受控)默认值
83783 */
83784 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object, _propTypes2.default.arrayOf(_propTypes2.default.any)]),
83785 /**
83786 * 选中值改变时触发的回调函数
83787 * @param {String|Array} value 选中的值,单选时返回单个值,多选时返回数组
83788 * @param {Object|Array} data 选中的数据,包括 value, label, pos, key属性,单选时返回单个值,多选时返回数组,父子节点选中关联时,同时选中,只返回父节点
83789 */
83790 onChange: _propTypes2.default.func,
83791 /**
83792 * 是否一行显示,仅在 multiple 和 treeCheckable 为 true 时生效
83793 * @version 1.25
83794 */
83795 tagInline: _propTypes2.default.bool,
83796 /**
83797 * 隐藏多余 tag 时显示的内容,在 tagInline 生效时起作用
83798 * @param {Object[]} selectedValues 当前已选中的元素
83799 * @param {Object[]} totalValues 总待选元素
83800 * @returns {reactNode}
83801 * @version 1.25
83802 */
83803 maxTagPlaceholder: _propTypes2.default.func,
83804 /**
83805 * 是否显示搜索框
83806 */
83807 showSearch: _propTypes2.default.bool,
83808 /**
83809 * 是否使用本地过滤,在数据源为远程的时候需要关闭此项
83810 */
83811 filterLocal: _propTypes2.default.bool,
83812 /**
83813 * 在搜索框中输入时触发的回调函数
83814 * @param {String} keyword 输入的关键字
83815 */
83816 onSearch: _propTypes2.default.func,
83817 onSearchClear: _propTypes2.default.func,
83818 /**
83819 * 无数据时显示内容
83820 */
83821 notFoundContent: _propTypes2.default.node,
83822 /**
83823 * 是否支持多选
83824 */
83825 multiple: _propTypes2.default.bool,
83826 /**
83827 * 下拉框中的树是否支持勾选节点的复选框
83828 */
83829 treeCheckable: _propTypes2.default.bool,
83830 /**
83831 * 下拉框中的树勾选节点复选框是否完全受控(父子节点选中状态不再关联)
83832 */
83833 treeCheckStrictly: _propTypes2.default.bool,
83834 /**
83835 * 定义选中时回填的方式
83836 * @enumdesc 返回所有选中的节点, 父子节点都选中时只返回父节点, 父子节点都选中时只返回子节点
83837 */
83838 treeCheckedStrategy: _propTypes2.default.oneOf(['all', 'parent', 'child']),
83839 /**
83840 * 下拉框中的树是否默认展开所有节点
83841 */
83842 treeDefaultExpandAll: _propTypes2.default.bool,
83843 /**
83844 * 下拉框中的树默认展开节点key的数组
83845 */
83846 treeDefaultExpandedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
83847 /**
83848 * 下拉框中的树异步加载数据的函数,使用请参考[Tree的异步加载数据Demo](https://fusion.design/pc/component/tree?themeid=2#dynamic-container)
83849 * @param {ReactElement} node 被点击展开的节点
83850 */
83851 treeLoadData: _propTypes2.default.func,
83852 /**
83853 * 透传到 Tree 的属性对象
83854 */
83855 treeProps: _propTypes2.default.object,
83856 /**
83857 * 初始下拉框是否显示
83858 */
83859 defaultVisible: _propTypes2.default.bool,
83860 /**
83861 * 当前下拉框是否显示
83862 */
83863 visible: _propTypes2.default.bool,
83864 /**
83865 * 下拉框显示或关闭时触发事件的回调函数
83866 * @param {Boolean} visible 是否显示
83867 * @param {String} type 触发显示关闭的操作类型
83868 */
83869 onVisibleChange: _propTypes2.default.func,
83870 /**
83871 * 下拉框自定义样式对象
83872 */
83873 popupStyle: _propTypes2.default.object,
83874 /**
83875 * 下拉框样式自定义类名
83876 */
83877 popupClassName: _propTypes2.default.string,
83878 /**
83879 * 下拉框挂载的容器节点
83880 */
83881 popupContainer: _propTypes2.default.any,
83882 /**
83883 * 透传到 Popup 的属性对象
83884 */
83885 popupProps: _propTypes2.default.object,
83886 /**
83887 * 是否跟随滚动
83888 */
83889 followTrigger: _propTypes2.default.bool,
83890 /**
83891 * 是否为预览态
83892 */
83893 isPreview: _propTypes2.default.bool,
83894 /**
83895 * 预览态模式下渲染的内容
83896 * @param {Array<data>} value 选择值 { label: , value:}
83897 */
83898 renderPreview: _propTypes2.default.func,
83899 /**
83900 * 是否开启虚拟滚动
83901 */
83902 useVirtual: _propTypes2.default.bool,
83903 /**
83904 * 是否是不可变数据
83905 * @version 1.23
83906 */
83907 immutable: _propTypes2.default.bool
83908}, _class.defaultProps = {
83909 prefix: 'next-',
83910 pure: false,
83911 locale: _zhCn2.default.TreeSelect,
83912 size: 'medium',
83913 disabled: false,
83914 hasArrow: true,
83915 hasBorder: true,
83916 hasClear: false,
83917 autoWidth: true,
83918 defaultValue: null,
83919 onChange: noop,
83920 tagInline: false,
83921 showSearch: false,
83922 filterLocal: true,
83923 onSearch: noop,
83924 onSearchClear: noop,
83925 notFoundContent: 'Not Found',
83926 multiple: false,
83927 treeCheckable: false,
83928 treeCheckStrictly: false,
83929 treeCheckedStrategy: 'parent',
83930 treeDefaultExpandAll: false,
83931 treeDefaultExpandedKeys: [],
83932 treeProps: {},
83933 defaultVisible: false,
83934 onVisibleChange: noop,
83935 useVirtual: false,
83936 /**
83937 * TODO
83938 * 目前 select/cascade select 是默认支持的,在 2.x 版本中 tree-select 也将默认支持
83939 */
83940 preserveNonExistentValue: false
83941}, _temp);
83942TreeSelect.displayName = 'TreeSelect';
83943
83944TreeSelect.Node = TreeNode;
83945
83946exports.default = (0, _reactLifecyclesCompat.polyfill)(TreeSelect);
83947module.exports = exports['default'];
83948
83949/***/ }),
83950/* 461 */
83951/***/ (function(module, exports, __webpack_require__) {
83952
83953"use strict";
83954
83955
83956exports.__esModule = true;
83957
83958var _typography = __webpack_require__(462);
83959
83960var _typography2 = _interopRequireDefault(_typography);
83961
83962var _paragraph = __webpack_require__(463);
83963
83964var _paragraph2 = _interopRequireDefault(_paragraph);
83965
83966var _title = __webpack_require__(464);
83967
83968var _title2 = _interopRequireDefault(_title);
83969
83970var _text = __webpack_require__(68);
83971
83972var _text2 = _interopRequireDefault(_text);
83973
83974function _interopRequireDefault(obj) {
83975 return obj && obj.__esModule ? obj : { default: obj };
83976}
83977
83978_typography2.default.Paragraph = _paragraph2.default;
83979_typography2.default.H1 = (0, _title2.default)('h1');
83980_typography2.default.H2 = (0, _title2.default)('h2');
83981_typography2.default.H3 = (0, _title2.default)('h3');
83982_typography2.default.H4 = (0, _title2.default)('h4');
83983_typography2.default.H5 = (0, _title2.default)('h5');
83984_typography2.default.H6 = (0, _title2.default)('h6');
83985_typography2.default.Text = _text2.default;
83986
83987exports.default = _typography2.default;
83988module.exports = exports['default'];
83989
83990/***/ }),
83991/* 462 */
83992/***/ (function(module, exports, __webpack_require__) {
83993
83994"use strict";
83995
83996
83997exports.__esModule = true;
83998
83999var _classCallCheck2 = __webpack_require__(2);
84000
84001var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84002
84003var _possibleConstructorReturn2 = __webpack_require__(3);
84004
84005var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84006
84007var _inherits2 = __webpack_require__(4);
84008
84009var _inherits3 = _interopRequireDefault(_inherits2);
84010
84011var _class, _temp;
84012
84013var _react = __webpack_require__(0);
84014
84015var _react2 = _interopRequireDefault(_react);
84016
84017var _propTypes = __webpack_require__(5);
84018
84019var _propTypes2 = _interopRequireDefault(_propTypes);
84020
84021var _text = __webpack_require__(68);
84022
84023var _text2 = _interopRequireDefault(_text);
84024
84025function _interopRequireDefault(obj) {
84026 return obj && obj.__esModule ? obj : { default: obj };
84027}
84028
84029/**
84030 * Typography
84031 * @description 继承 Typography.Text API
84032 * @order 0
84033 */
84034var Typography = (_temp = _class = function (_Component) {
84035 (0, _inherits3.default)(Typography, _Component);
84036
84037 function Typography() {
84038 (0, _classCallCheck3.default)(this, Typography);
84039 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
84040 }
84041
84042 Typography.prototype.render = function render() {
84043 return _react2.default.createElement(_text2.default, this.props);
84044 };
84045
84046 return Typography;
84047}(_react.Component), _class.propTypes = {
84048 /**
84049 * 设置标签类型
84050 */
84051 component: _propTypes2.default.elementType
84052}, _class.defaultProps = {
84053 component: 'article'
84054}, _temp);
84055Typography.displayName = 'Typography';
84056exports.default = Typography;
84057module.exports = exports['default'];
84058
84059/***/ }),
84060/* 463 */
84061/***/ (function(module, exports, __webpack_require__) {
84062
84063"use strict";
84064
84065
84066exports.__esModule = true;
84067
84068var _extends2 = __webpack_require__(1);
84069
84070var _extends3 = _interopRequireDefault(_extends2);
84071
84072var _objectWithoutProperties2 = __webpack_require__(8);
84073
84074var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
84075
84076var _classCallCheck2 = __webpack_require__(2);
84077
84078var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84079
84080var _possibleConstructorReturn2 = __webpack_require__(3);
84081
84082var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84083
84084var _inherits2 = __webpack_require__(4);
84085
84086var _inherits3 = _interopRequireDefault(_inherits2);
84087
84088var _class, _temp;
84089
84090var _react = __webpack_require__(0);
84091
84092var _react2 = _interopRequireDefault(_react);
84093
84094var _propTypes = __webpack_require__(5);
84095
84096var _propTypes2 = _interopRequireDefault(_propTypes);
84097
84098var _classnames = __webpack_require__(7);
84099
84100var _classnames2 = _interopRequireDefault(_classnames);
84101
84102var _configProvider = __webpack_require__(9);
84103
84104var _configProvider2 = _interopRequireDefault(_configProvider);
84105
84106var _text = __webpack_require__(68);
84107
84108var _text2 = _interopRequireDefault(_text);
84109
84110function _interopRequireDefault(obj) {
84111 return obj && obj.__esModule ? obj : { default: obj };
84112}
84113
84114/**
84115 * Typography.Paragraph
84116 * @description 继承 Typography.Text 的 API
84117 * @order 2
84118 */
84119var Paragraph = (_temp = _class = function (_React$Component) {
84120 (0, _inherits3.default)(Paragraph, _React$Component);
84121
84122 function Paragraph() {
84123 (0, _classCallCheck3.default)(this, Paragraph);
84124 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
84125 }
84126
84127 Paragraph.prototype.render = function render() {
84128 var _props = this.props,
84129 prefix = _props.prefix,
84130 className = _props.className,
84131 component = _props.component,
84132 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'component']);
84133
84134 var cls = (0, _classnames2.default)(prefix + 'typography-paragraph', className);
84135
84136 return _react2.default.createElement(_text2.default, (0, _extends3.default)({}, others, { className: cls, component: component }));
84137 };
84138
84139 return Paragraph;
84140}(_react2.default.Component), _class.propTypes = {
84141 prefix: _propTypes2.default.string,
84142 /**
84143 * 设置标签类型
84144 */
84145 component: _propTypes2.default.elementType
84146}, _class.defaultProps = {
84147 prefix: 'next-',
84148 type: 'long',
84149 size: 'medium',
84150 component: 'p'
84151}, _temp);
84152Paragraph.displayName = 'Paragraph';
84153exports.default = _configProvider2.default.config(Paragraph);
84154module.exports = exports['default'];
84155
84156/***/ }),
84157/* 464 */
84158/***/ (function(module, exports, __webpack_require__) {
84159
84160"use strict";
84161
84162
84163exports.__esModule = true;
84164
84165var _extends2 = __webpack_require__(1);
84166
84167var _extends3 = _interopRequireDefault(_extends2);
84168
84169var _objectWithoutProperties2 = __webpack_require__(8);
84170
84171var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
84172
84173var _classCallCheck2 = __webpack_require__(2);
84174
84175var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84176
84177var _possibleConstructorReturn2 = __webpack_require__(3);
84178
84179var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84180
84181var _inherits2 = __webpack_require__(4);
84182
84183var _inherits3 = _interopRequireDefault(_inherits2);
84184
84185var _react = __webpack_require__(0);
84186
84187var _react2 = _interopRequireDefault(_react);
84188
84189var _propTypes = __webpack_require__(5);
84190
84191var _propTypes2 = _interopRequireDefault(_propTypes);
84192
84193var _text = __webpack_require__(68);
84194
84195var _text2 = _interopRequireDefault(_text);
84196
84197var _configProvider = __webpack_require__(9);
84198
84199var _configProvider2 = _interopRequireDefault(_configProvider);
84200
84201function _interopRequireDefault(obj) {
84202 return obj && obj.__esModule ? obj : { default: obj };
84203}
84204
84205exports.default = function (Tag) {
84206 var _class, _temp;
84207
84208 /**
84209 * Typography.Title
84210 * @description 分为 H1, H2, H3, H4, H5, H6 不同的组件,表示不同层级,继承 Typography.Text API
84211 * @order 1
84212 */
84213 var Title = (_temp = _class = function (_Component) {
84214 (0, _inherits3.default)(Title, _Component);
84215
84216 function Title() {
84217 (0, _classCallCheck3.default)(this, Title);
84218 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
84219 }
84220
84221 Title.prototype.render = function render() {
84222 var _props = this.props,
84223 prefix = _props.prefix,
84224 className = _props.className,
84225 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className']);
84226
84227 return _react2.default.createElement(_text2.default, (0, _extends3.default)({}, others, {
84228 component: Tag,
84229 className: (className || '') + ' ' + prefix + 'typography-title'
84230 }));
84231 };
84232
84233 return Title;
84234 }(_react.Component), _class.propTypes = {
84235 prefix: _propTypes2.default.string
84236 }, _class.defaultProps = {
84237 prefix: 'next-'
84238 }, _temp);
84239 Title.displayName = 'Title';
84240
84241 Title.displayName = Tag.toUpperCase();
84242 return _configProvider2.default.config(Title);
84243};
84244
84245module.exports = exports['default'];
84246
84247/***/ }),
84248/* 465 */
84249/***/ (function(module, exports, __webpack_require__) {
84250
84251"use strict";
84252
84253
84254exports.__esModule = true;
84255
84256var _extends2 = __webpack_require__(1);
84257
84258var _extends3 = _interopRequireDefault(_extends2);
84259
84260var _objectWithoutProperties2 = __webpack_require__(8);
84261
84262var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
84263
84264var _classCallCheck2 = __webpack_require__(2);
84265
84266var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84267
84268var _possibleConstructorReturn2 = __webpack_require__(3);
84269
84270var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84271
84272var _inherits2 = __webpack_require__(4);
84273
84274var _inherits3 = _interopRequireDefault(_inherits2);
84275
84276var _react = __webpack_require__(0);
84277
84278var _react2 = _interopRequireDefault(_react);
84279
84280var _configProvider = __webpack_require__(9);
84281
84282var _configProvider2 = _interopRequireDefault(_configProvider);
84283
84284var _util = __webpack_require__(6);
84285
84286var _util2 = __webpack_require__(42);
84287
84288var _transform2 = __webpack_require__(195);
84289
84290var _transform3 = _interopRequireDefault(_transform2);
84291
84292var _upload = __webpack_require__(106);
84293
84294var _upload2 = _interopRequireDefault(_upload);
84295
84296var _list = __webpack_require__(108);
84297
84298var _list2 = _interopRequireDefault(_list);
84299
84300var _card = __webpack_require__(469);
84301
84302var _card2 = _interopRequireDefault(_card);
84303
84304var _dragger = __webpack_require__(470);
84305
84306var _dragger2 = _interopRequireDefault(_dragger);
84307
84308var _selecter = __webpack_require__(107);
84309
84310var _selecter2 = _interopRequireDefault(_selecter);
84311
84312var _uploader = __webpack_require__(198);
84313
84314var _uploader2 = _interopRequireDefault(_uploader);
84315
84316function _interopRequireDefault(obj) {
84317 return obj && obj.__esModule ? obj : { default: obj };
84318}
84319
84320_upload2.default.Card = _configProvider2.default.config(_card2.default, { componentName: 'Upload' });
84321_upload2.default.Dragger = _configProvider2.default.config(_dragger2.default, { componentName: 'Upload' });
84322_upload2.default.Selecter = _selecter2.default;
84323_upload2.default.Uploader = _uploader2.default;
84324_upload2.default.ErrorCode = _util2.errorCode;
84325
84326// compatible with 0.x version
84327_upload2.default.ImageUpload = _configProvider2.default.config(_card2.default, {
84328 componentName: 'Upload',
84329 transform: /* istanbul ignore next */function transform(props, deprecated) {
84330 deprecated('Upload.ImageUpload', 'Upload.Card', 'Upload');
84331 var newprops = (0, _transform3.default)(props, function () {});
84332 if (newprops.locale && newprops.locale.image) {
84333 newprops.locale.card = newprops.locale.image;
84334 }
84335
84336 return newprops;
84337 }
84338});
84339
84340// compatible with 0.x version
84341_upload2.default.DragUpload = _configProvider2.default.config(_dragger2.default, {
84342 componentName: 'Upload',
84343 transform: /* istanbul ignore next */function transform(props, deprecated) {
84344 deprecated('Upload.DragUpload', 'Upload.Dragger', 'Upload');
84345 var newprops = (0, _transform3.default)(props, function () {});
84346 if (!newprops.listType) {
84347 newprops.listType = 'card';
84348 }
84349
84350 return newprops;
84351 }
84352});
84353
84354// compatible with 0.x version
84355/* istanbul ignore next */
84356_upload2.default.Core = function (_React$Component) {
84357 (0, _inherits3.default)(Core, _React$Component);
84358
84359 function Core(props) {
84360 (0, _classCallCheck3.default)(this, Core);
84361
84362 // eslint-disable-next-line
84363 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
84364
84365 _this.handleSelect = function (files) {
84366 _this.uploader.startUpload(files);
84367 };
84368
84369 var _this$props = _this.props,
84370 action = _this$props.action,
84371 name = _this$props.name,
84372 method = _this$props.method,
84373 beforeUpload = _this$props.beforeUpload,
84374 onProgress = _this$props.onProgress,
84375 onError = _this$props.onError,
84376 withCredentials = _this$props.withCredentials,
84377 headers = _this$props.headers,
84378 data = _this$props.data,
84379 onSuccess = _this$props.onSuccess;
84380
84381 _this.uploader = new _uploader2.default({
84382 action: action,
84383 name: name,
84384 method: method,
84385 beforeUpload: beforeUpload,
84386 onProgress: onProgress,
84387 onError: onError,
84388 withCredentials: withCredentials,
84389 headers: headers,
84390 data: data,
84391 onSuccess: onSuccess
84392 });
84393 return _this;
84394 }
84395
84396 Core.prototype.abort = function abort() {
84397 this.uploader.abort();
84398 };
84399
84400 Core.prototype.render = function render() {
84401 _util.log.deprecated('Upload.Core', 'Upload.Selecter and Upload.Uploader', 'Upload');
84402
84403 // eslint-disable-next-line
84404 var _props = this.props,
84405 action = _props.action,
84406 name = _props.name,
84407 method = _props.method,
84408 beforeUpload = _props.beforeUpload,
84409 onProgress = _props.onProgress,
84410 onError = _props.onError,
84411 withCredentials = _props.withCredentials,
84412 headers = _props.headers,
84413 data = _props.data,
84414 onSuccess = _props.onSuccess,
84415 others = (0, _objectWithoutProperties3.default)(_props, ['action', 'name', 'method', 'beforeUpload', 'onProgress', 'onError', 'withCredentials', 'headers', 'data', 'onSuccess']);
84416
84417 var props = others;
84418
84419 return _react2.default.createElement(_selecter2.default, (0, _extends3.default)({}, (0, _transform3.default)(props, function () {}), {
84420 onSelect: this.handleSelect
84421 }));
84422 };
84423
84424 return Core;
84425}(_react2.default.Component);
84426
84427_upload2.default.List = _list2.default;
84428
84429// compatible with 0.x version
84430/* istanbul ignore next */
84431_upload2.default.CropUpload = function () {
84432 _util.log.deprecated('Upload.CropUpload', '@alife/bc-next-crop-upload', 'Upload');
84433 return null;
84434};
84435
84436exports.default = _configProvider2.default.config(_upload2.default, {
84437 transform: _transform3.default
84438});
84439module.exports = exports['default'];
84440
84441/***/ }),
84442/* 466 */
84443/***/ (function(module, exports, __webpack_require__) {
84444
84445"use strict";
84446
84447
84448exports.__esModule = true;
84449exports.default = undefined;
84450
84451var _extends2 = __webpack_require__(1);
84452
84453var _extends3 = _interopRequireDefault(_extends2);
84454
84455var _classCallCheck2 = __webpack_require__(2);
84456
84457var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84458
84459var _possibleConstructorReturn2 = __webpack_require__(3);
84460
84461var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84462
84463var _inherits2 = __webpack_require__(4);
84464
84465var _inherits3 = _interopRequireDefault(_inherits2);
84466
84467var _react = __webpack_require__(0);
84468
84469var _react2 = _interopRequireDefault(_react);
84470
84471var _html5Uploader = __webpack_require__(197);
84472
84473var _html5Uploader2 = _interopRequireDefault(_html5Uploader);
84474
84475var _iframeUploader = __webpack_require__(468);
84476
84477var _iframeUploader2 = _interopRequireDefault(_iframeUploader);
84478
84479function _interopRequireDefault(obj) {
84480 return obj && obj.__esModule ? obj : { default: obj };
84481}
84482
84483var Uploader = function (_React$Component) {
84484 (0, _inherits3.default)(Uploader, _React$Component);
84485
84486 function Uploader() {
84487 var _temp, _this, _ret;
84488
84489 (0, _classCallCheck3.default)(this, Uploader);
84490
84491 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
84492 args[_key] = arguments[_key];
84493 }
84494
84495 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
84496 Component: _html5Uploader2.default
84497 }, _this.saveUploaderRef = function (ref) {
84498 _this.uploaderRef = ref;
84499 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
84500 }
84501
84502 Uploader.prototype.componentDidMount = function componentDidMount() {
84503 if (typeof File === 'undefined') {
84504 /* eslint react/no-did-mount-set-state:0 */
84505 this.setState({
84506 Component: _iframeUploader2.default
84507 });
84508 }
84509 };
84510
84511 Uploader.prototype.abort = function abort(file) {
84512 this.uploaderRef.abort(file);
84513 };
84514
84515 Uploader.prototype.startUpload = function startUpload(files) {
84516 this.uploaderRef.startUpload(files);
84517 };
84518
84519 Uploader.prototype.render = function render() {
84520 var Uploader = this.state.Component;
84521 return _react2.default.createElement(Uploader, (0, _extends3.default)({}, this.props, { ref: this.saveUploaderRef }));
84522 };
84523
84524 return Uploader;
84525}(_react2.default.Component);
84526
84527Uploader.displayName = 'Uploader';
84528exports.default = Uploader;
84529module.exports = exports['default'];
84530
84531/***/ }),
84532/* 467 */
84533/***/ (function(module, exports, __webpack_require__) {
84534
84535"use strict";
84536
84537
84538exports.__esModule = true;
84539exports.default = upload;
84540/**
84541 * clone from https://github.com/react-component/upload/blob/master/src/request.js
84542 */
84543
84544function getError(option, xhr, msg) {
84545 msg = msg || 'cannot post ' + option.action + ' ' + xhr.status + '\'';
84546 var err = new Error(msg);
84547 err.status = xhr.status;
84548 err.method = option.method;
84549 err.url = option.action;
84550 return err;
84551}
84552
84553function getBody(xhr) {
84554 var text = xhr.responseText || xhr.response;
84555 if (!text) {
84556 return text;
84557 }
84558
84559 try {
84560 return JSON.parse(text);
84561 } catch (e) {
84562 return text;
84563 }
84564}
84565
84566// option {
84567// onProgress: (event: { percent: number }): void,
84568// onError: (event: Error, body?: Object): void,
84569// onSuccess: (body: Object): void,
84570// data: Object,
84571// filename: String,
84572// file: File,
84573// withCredentials: Boolean,
84574// action: String,
84575// headers: Object,
84576// method: String
84577// timeout: Number
84578// }
84579function upload(option) {
84580 var xhr = new XMLHttpRequest();
84581
84582 if (option.onProgress && xhr.upload) {
84583 xhr.upload.onprogress = function progress(e) {
84584 if (e.total > 0) {
84585 e.percent = e.loaded / e.total * 100;
84586 }
84587 option.onProgress(e);
84588 };
84589 }
84590
84591 var formData = new FormData();
84592
84593 if (option.data) {
84594 Object.keys(option.data).forEach(function (key) {
84595 formData.append(key, option.data[key]);
84596 });
84597 }
84598 if (option.file instanceof Blob) {
84599 formData.append(option.filename, option.file, option.file.name);
84600 } else {
84601 formData.append(option.filename, option.file);
84602 }
84603
84604 xhr.onerror = function error(e) {
84605 option.onError(e);
84606 };
84607
84608 xhr.onload = function onload() {
84609 // allow success when 2xx status
84610 // see https://github.com/react-component/upload/issues/34
84611 if (xhr.status < 200 || xhr.status >= 300) {
84612 return option.onError(getError(option, xhr), getBody(xhr));
84613 }
84614
84615 option.onSuccess(getBody(xhr), xhr);
84616 };
84617
84618 option.method = option.method || 'POST';
84619 xhr.open(option.method, option.action, true);
84620
84621 // In Internet Explorer, the timeout property may be set only after calling the open() method and before calling the send() method.
84622 // see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout
84623 var timeout = option.timeout;
84624
84625 if (typeof timeout === 'number' && timeout > 0) {
84626 xhr.timeout = timeout;
84627 xhr.ontimeout = function () {
84628 var msg = 'Upload abort for exceeding time (timeout: ' + timeout + 'ms)';
84629 option.onError(getError(option, xhr, msg), getBody(xhr));
84630 };
84631 }
84632
84633 // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179
84634 if (option.withCredentials && 'withCredentials' in xhr) {
84635 xhr.withCredentials = true;
84636 }
84637
84638 var headers = option.headers || {};
84639
84640 // when set headers['X-Requested-With'] = null , can close default XHR header
84641 // see https://github.com/react-component/upload/issues/33
84642 if (headers['X-Requested-With'] !== null) {
84643 xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
84644 }
84645
84646 for (var h in headers) {
84647 if (headers.hasOwnProperty(h) && headers[h] !== null) {
84648 xhr.setRequestHeader(h, headers[h]);
84649 }
84650 }
84651 xhr.send(formData);
84652
84653 return {
84654 abort: function abort() {
84655 xhr.abort();
84656 }
84657 };
84658}
84659module.exports = exports['default'];
84660
84661/***/ }),
84662/* 468 */
84663/***/ (function(module, exports, __webpack_require__) {
84664
84665"use strict";
84666
84667
84668exports.__esModule = true;
84669
84670var _extends2 = __webpack_require__(1);
84671
84672var _extends3 = _interopRequireDefault(_extends2);
84673
84674var _classCallCheck2 = __webpack_require__(2);
84675
84676var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84677
84678var _possibleConstructorReturn2 = __webpack_require__(3);
84679
84680var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84681
84682var _inherits2 = __webpack_require__(4);
84683
84684var _inherits3 = _interopRequireDefault(_inherits2);
84685
84686var _class, _temp, _initialiseProps; /* istanbul ignore file */
84687
84688var _react = __webpack_require__(0);
84689
84690var _react2 = _interopRequireDefault(_react);
84691
84692var _propTypes = __webpack_require__(5);
84693
84694var _propTypes2 = _interopRequireDefault(_propTypes);
84695
84696var _reactDom = __webpack_require__(12);
84697
84698var _reactDom2 = _interopRequireDefault(_reactDom);
84699
84700var _util = __webpack_require__(6);
84701
84702var _util2 = __webpack_require__(42);
84703
84704function _interopRequireDefault(obj) {
84705 return obj && obj.__esModule ? obj : { default: obj };
84706}
84707
84708var INPUT_STYLE = {
84709 position: 'absolute',
84710 top: 0,
84711 right: 0,
84712 fontSize: 9999,
84713 zIndex: 9999,
84714 opacity: 0,
84715 outline: 'none',
84716 cursor: 'pointer'
84717};
84718
84719var IframeUploader = (_temp = _class = function (_React$Component) {
84720 (0, _inherits3.default)(IframeUploader, _React$Component);
84721
84722 function IframeUploader(props) {
84723 (0, _classCallCheck3.default)(this, IframeUploader);
84724
84725 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
84726
84727 _initialiseProps.call(_this);
84728
84729 _this.domain = typeof document !== 'undefined' && document.domain ? document.domain : '';
84730 _this.uid = (0, _util2.uid)();
84731 return _this;
84732 }
84733
84734 IframeUploader.prototype.componentDidMount = function componentDidMount() {
84735 this.updateInputWH();
84736 };
84737
84738 IframeUploader.prototype.componentDidUpdate = function componentDidUpdate() {
84739 this.updateInputWH();
84740 };
84741
84742 IframeUploader.prototype.startUpload = function startUpload() {
84743 this.upload(this.file);
84744 };
84745
84746 IframeUploader.prototype.upload = function upload(file) {
84747 var _this2 = this;
84748
84749 if (!this.state.uploading) {
84750 // eslint-disable-next-line
84751 this.state.uploading = true;
84752 this.setState({ uploading: true });
84753 }
84754
84755 var _props = this.props,
84756 beforeUpload = _props.beforeUpload,
84757 action = _props.action,
84758 name = _props.name,
84759 data = _props.data;
84760
84761 if (!beforeUpload) {
84762 return this.post(file);
84763 }
84764 var requestData = {
84765 action: action,
84766 name: name,
84767 data: data
84768 };
84769 var before = beforeUpload(file, requestData);
84770 if (before && before.then) {
84771 before.then(function (data) {
84772 _this2.post(file, data);
84773 }, function () {
84774 _this2.endUpload();
84775 });
84776 } else if (before !== false) {
84777 this.post(file, _util.obj.isPlainObject(before) ? before : undefined);
84778 } else {
84779 this.endUpload();
84780 }
84781 };
84782
84783 IframeUploader.prototype.endUpload = function endUpload() {
84784 this.file = {};
84785 if (this.state.uploading) {
84786 // eslint-disable-next-line
84787 this.state.uploading = false;
84788 this.setState({ uploading: false });
84789 }
84790 };
84791
84792 IframeUploader.prototype.updateInputWH = function updateInputWH() {
84793 var rootNode = _reactDom2.default.findDOMNode(this);
84794 var inputNode = this.inputEl;
84795 inputNode.style.height = rootNode.offsetHeight + 'px';
84796 inputNode.style.width = rootNode.offsetWidth + 'px';
84797 };
84798
84799 IframeUploader.prototype.abort = function abort(file) {
84800 if (file) {
84801 var _uid = file;
84802 if (file && file.uid) {
84803 _uid = file.uid;
84804 }
84805 if (_uid === this.file.uid) {
84806 this.endUpload();
84807 }
84808 } else {
84809 this.endUpload();
84810 }
84811 };
84812
84813 IframeUploader.prototype.post = function post(file) {
84814 var requestOption = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
84815
84816 var formNode = this.formEl;
84817 var dataSpan = this.dataEl;
84818 var fileInput = this.inputEl;
84819
84820 var propsData = this.props.data;
84821 if (typeof propsData === 'function') {
84822 propsData = propsData(file);
84823 }
84824
84825 var action = requestOption.action,
84826 name = requestOption.name,
84827 data = requestOption.data;
84828
84829 if (name) {
84830 fileInput.setAttribute('name', name);
84831 }
84832
84833 if (action) {
84834 formNode.setAttribute('action', action);
84835 }
84836
84837 if (data) {
84838 propsData = data;
84839 }
84840
84841 var inputs = document.createDocumentFragment();
84842 for (var key in propsData) {
84843 if (data.hasOwnProperty(key)) {
84844 var input = document.createElement('input');
84845 input.setAttribute('name', key);
84846 input.value = propsData[key];
84847 inputs.appendChild(input);
84848 }
84849 }
84850 dataSpan.appendChild(inputs);
84851 formNode.submit();
84852 dataSpan.innerHTML = '';
84853 this.props.onStart(file);
84854 };
84855
84856 IframeUploader.prototype.render = function render() {
84857 var _props2 = this.props,
84858 disabled = _props2.disabled,
84859 className = _props2.className,
84860 children = _props2.children,
84861 accept = _props2.accept,
84862 name = _props2.name,
84863 style = _props2.style;
84864 var uid = this.uid;
84865
84866 var iframeName = name + '-' + uid + '-iframe';
84867
84868 return _react2.default.createElement('span', {
84869 className: className,
84870 style: (0, _extends3.default)({
84871 position: 'relative',
84872 zIndex: 0,
84873 display: 'inline-block'
84874 }, style)
84875 }, !disabled ? _react2.default.createElement('iframe', {
84876 ref: this.saveIFrameRef,
84877 name: iframeName,
84878 onLoad: this.onLoad,
84879 style: { display: 'none' }
84880 }) : null, _react2.default.createElement('form', {
84881 ref: this.saveFormRef,
84882 method: 'post',
84883 action: this.props.action,
84884 encType: 'multipart/form-data',
84885 target: iframeName
84886 }, _react2.default.createElement('input', { name: '_documentDomain', value: this.domain, type: 'hidden' }), _react2.default.createElement('span', { ref: this.saveDataRef }), _react2.default.createElement('input', {
84887 ref: this.saveInputRef,
84888 type: 'file',
84889 accept: accept,
84890 name: name,
84891 onChange: this.onSelect,
84892 style: INPUT_STYLE
84893 })), children);
84894 };
84895
84896 return IframeUploader;
84897}(_react2.default.Component), _class.propTypes = {
84898 style: _propTypes2.default.object,
84899 action: _propTypes2.default.string.isRequired,
84900 name: _propTypes2.default.string.isRequired,
84901 data: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]),
84902 disabled: _propTypes2.default.bool,
84903 className: _propTypes2.default.string,
84904 children: _propTypes2.default.node,
84905 headers: _propTypes2.default.object,
84906 autoUpload: _propTypes2.default.bool,
84907 onSelect: _propTypes2.default.func,
84908 beforeUpload: _propTypes2.default.func,
84909 onStart: _propTypes2.default.func,
84910 onSuccess: _propTypes2.default.func,
84911 onError: _propTypes2.default.func,
84912 accept: _propTypes2.default.string
84913}, _class.defaultProps = {
84914 name: 'file',
84915 onSelect: _util.func.noop,
84916 beforeUpload: _util.func.noop,
84917 onStart: _util.func.noop,
84918 onSuccess: _util.func.noop,
84919 onError: _util.func.noop,
84920 onAbort: _util.func.noop
84921}, _initialiseProps = function _initialiseProps() {
84922 var _this3 = this;
84923
84924 this.state = {
84925 uploading: false
84926 };
84927 this.file = {};
84928 this.uid = '';
84929
84930 this.onLoad = function () {
84931 if (!_this3.state.uploading) {
84932 return;
84933 }
84934 var props = _this3.props,
84935 file = _this3.file;
84936
84937 var response = void 0;
84938 try {
84939 var doc = _this3.iFrameEl.contentDocument;
84940 var script = doc.getElementsByTagName('script')[0];
84941 if (script && script.parentNode === doc.body) {
84942 doc.body.removeChild(script);
84943 }
84944 response = doc.body.innerHTML;
84945 props.onSuccess(response, file);
84946 } catch (err) {
84947 _util.log.warning('cross domain error for Upload. Maybe server should return document.domain script.');
84948 response = 'cross-domain';
84949 props.onError(err, null, file);
84950 }
84951 _this3.endUpload();
84952 };
84953
84954 this.onSelect = function (e) {
84955 _this3.file = {
84956 uid: (0, _util2.uid)(),
84957 name: e.target.value
84958 };
84959 _this3.props.onSelect([_this3.file]);
84960 };
84961
84962 this.saveIFrameRef = function (ref) {
84963 _this3.iFrameEl = ref;
84964 };
84965
84966 this.saveFormRef = function (ref) {
84967 _this3.formEl = ref;
84968 };
84969
84970 this.saveDataRef = function (ref) {
84971 _this3.dataEl = ref;
84972 };
84973
84974 this.saveInputRef = function (ref) {
84975 _this3.inputEl = ref;
84976 };
84977}, _temp);
84978IframeUploader.displayName = 'IframeUploader';
84979exports.default = IframeUploader;
84980module.exports = exports['default'];
84981
84982/***/ }),
84983/* 469 */
84984/***/ (function(module, exports, __webpack_require__) {
84985
84986"use strict";
84987
84988
84989exports.__esModule = true;
84990
84991var _extends2 = __webpack_require__(1);
84992
84993var _extends3 = _interopRequireDefault(_extends2);
84994
84995var _classCallCheck2 = __webpack_require__(2);
84996
84997var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84998
84999var _possibleConstructorReturn2 = __webpack_require__(3);
85000
85001var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
85002
85003var _inherits2 = __webpack_require__(4);
85004
85005var _inherits3 = _interopRequireDefault(_inherits2);
85006
85007var _class, _temp, _initialiseProps;
85008
85009var _react = __webpack_require__(0);
85010
85011var _react2 = _interopRequireDefault(_react);
85012
85013var _propTypes = __webpack_require__(5);
85014
85015var _propTypes2 = _interopRequireDefault(_propTypes);
85016
85017var _classnames = __webpack_require__(7);
85018
85019var _classnames2 = _interopRequireDefault(_classnames);
85020
85021var _reactLifecyclesCompat = __webpack_require__(10);
85022
85023var _zhCn = __webpack_require__(13);
85024
85025var _zhCn2 = _interopRequireDefault(_zhCn);
85026
85027var _util = __webpack_require__(6);
85028
85029var _base = __webpack_require__(196);
85030
85031var _base2 = _interopRequireDefault(_base);
85032
85033var _list = __webpack_require__(108);
85034
85035var _list2 = _interopRequireDefault(_list);
85036
85037var _upload = __webpack_require__(106);
85038
85039var _upload2 = _interopRequireDefault(_upload);
85040
85041function _interopRequireDefault(obj) {
85042 return obj && obj.__esModule ? obj : { default: obj };
85043}
85044
85045/**
85046 * Upload.Card
85047 * @description 继承 Upload 的 API,除非特别说明
85048 */
85049var Card = (_temp = _class = function (_Base) {
85050 (0, _inherits3.default)(Card, _Base);
85051
85052 function Card(props) {
85053 (0, _classCallCheck3.default)(this, Card);
85054
85055 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
85056
85057 _initialiseProps.call(_this);
85058
85059 var value = void 0;
85060 /* istanbul ignore else */
85061 if ('value' in props) {
85062 value = props.value;
85063 } else {
85064 value = props.defaultValue;
85065 }
85066
85067 _this.state = {
85068 value: !Array.isArray(value) ? [] : value,
85069 uploaderRef: _this.uploaderRef
85070 };
85071 return _this;
85072 }
85073
85074 Card.prototype.componentDidMount = function componentDidMount() {
85075 this.updateUploaderRef(this.uploaderRef);
85076 };
85077
85078 Card.prototype.componentDidUpdate = function componentDidUpdate() {
85079 var uploaderRef = this.state.uploaderRef;
85080
85081 if (!uploaderRef && this.uploaderRef) {
85082 this.updateUploaderRef(this.uploaderRef);
85083 }
85084 };
85085
85086 Card.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
85087 var isUploading = prevState.uploaderRef && prevState.uploaderRef.isUploading();
85088 if ('value' in nextProps && nextProps.value !== prevState.value && !isUploading) {
85089 return {
85090 value: !Array.isArray(nextProps.value) ? [] : [].concat(nextProps.value)
85091 };
85092 }
85093
85094 return null;
85095 };
85096
85097 Card.prototype.isUploading = function isUploading() {
85098 return this.uploaderRef.isUploading();
85099 };
85100
85101 Card.prototype.saveRef = function saveRef(ref) {
85102 this.saveUploaderRef(ref);
85103 };
85104
85105 Card.prototype.updateUploaderRef = function updateUploaderRef(uploaderRef) {
85106 this.setState({ uploaderRef: uploaderRef });
85107 };
85108
85109 Card.prototype.render = function render() {
85110 var _classNames,
85111 _this2 = this;
85112
85113 var _props = this.props,
85114 action = _props.action,
85115 disabled = _props.disabled,
85116 prefix = _props.prefix,
85117 locale = _props.locale,
85118 className = _props.className,
85119 style = _props.style,
85120 limit = _props.limit,
85121 onPreview = _props.onPreview,
85122 onRemove = _props.onRemove,
85123 onCancel = _props.onCancel,
85124 timeout = _props.timeout,
85125 isPreview = _props.isPreview,
85126 renderPreview = _props.renderPreview,
85127 itemRender = _props.itemRender,
85128 reUpload = _props.reUpload,
85129 showDownload = _props.showDownload;
85130
85131 var isExceedLimit = this.state.value.length >= limit;
85132 var uploadButtonCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'upload-list-item'] = true, _classNames[prefix + 'hidden'] = isExceedLimit, _classNames));
85133
85134 var children = this.props.children || locale.card.addPhoto;
85135
85136 var onRemoveFunc = disabled ? _util.func.prevent : onRemove;
85137 var othersForList = _util.obj.pickOthers(Card.propTypes, this.props);
85138 var othersForUpload = _util.obj.pickOthers(_list2.default.propTypes, othersForList);
85139
85140 if (isPreview) {
85141 if (typeof renderPreview === 'function') {
85142 var _classNames2;
85143
85144 var previewCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'form-preview'] = true, _classNames2[className] = !!className, _classNames2));
85145 return _react2.default.createElement('div', { style: style, className: previewCls }, renderPreview(this.state.value, this.props));
85146 }
85147 }
85148
85149 return _react2.default.createElement(_list2.default, (0, _extends3.default)({
85150 className: className,
85151 style: style,
85152 listType: 'card',
85153 closable: true,
85154 locale: locale,
85155 value: this.state.value,
85156 onRemove: onRemoveFunc,
85157 onCancel: onCancel,
85158 onPreview: onPreview,
85159 itemRender: itemRender,
85160 isPreview: isPreview,
85161 uploader: this.uploaderRef,
85162 reUpload: reUpload,
85163 showDownload: showDownload
85164 }, othersForList), _react2.default.createElement(_upload2.default, (0, _extends3.default)({}, othersForUpload, {
85165 shape: 'card',
85166 prefix: prefix,
85167 disabled: disabled,
85168 action: action,
85169 timeout: timeout,
85170 isPreview: isPreview,
85171 value: this.state.value,
85172 onProgress: this.onProgress,
85173 onChange: this.onChange,
85174 ref: function ref(_ref) {
85175 return _this2.saveRef(_ref);
85176 },
85177 className: uploadButtonCls
85178 }), children));
85179 };
85180
85181 return Card;
85182}(_base2.default), _class.displayName = 'Card', _class.propTypes = {
85183 prefix: _propTypes2.default.string,
85184 locale: _propTypes2.default.object,
85185 children: _propTypes2.default.object,
85186 value: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]),
85187 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]),
85188 /**
85189 * 点击图片回调
85190 */
85191 onPreview: _propTypes2.default.func,
85192 /**
85193 * 改变时候的回调
85194 */
85195 onChange: _propTypes2.default.func,
85196 /**
85197 * 点击移除的回调
85198 */
85199 onRemove: _propTypes2.default.func,
85200 /**
85201 * 取消上传的回调
85202 */
85203 onCancel: _propTypes2.default.func,
85204 /**
85205 * 自定义成功和失败的列表渲染方式
85206 * @param {File} file 文件对象
85207 * @param {Object} obj {remove: 删除回调}
85208 * @retuns {ReactNode} React元素
85209 * @version 1.21
85210 */
85211 itemRender: _propTypes2.default.func,
85212 /**
85213 * 选择新文件上传并替换
85214 * @version 1.24
85215 */
85216 reUpload: _propTypes2.default.bool,
85217 /**
85218 * 展示下载按钮
85219 * @version 1.24
85220 */
85221 showDownload: _propTypes2.default.bool,
85222 /**
85223 * 上传中
85224 */
85225 onProgress: _propTypes2.default.func,
85226 isPreview: _propTypes2.default.bool,
85227 renderPreview: _propTypes2.default.func
85228}, _class.defaultProps = {
85229 prefix: 'next-',
85230 locale: _zhCn2.default.Upload,
85231 showDownload: true,
85232 onChange: _util.func.noop,
85233 onPreview: _util.func.noop,
85234 onProgress: _util.func.noop
85235}, _initialiseProps = function _initialiseProps() {
85236 var _this3 = this;
85237
85238 this.onProgress = function (value, targetItem) {
85239 _this3.setState({
85240 value: value
85241 });
85242
85243 _this3.props.onProgress(value, targetItem);
85244 };
85245
85246 this.onChange = function (value, file) {
85247 if (!('value' in _this3.props)) {
85248 _this3.setState({
85249 value: value
85250 });
85251 }
85252 _this3.props.onChange(value, file);
85253 };
85254}, _temp);
85255exports.default = (0, _reactLifecyclesCompat.polyfill)(Card);
85256module.exports = exports['default'];
85257
85258/***/ }),
85259/* 470 */
85260/***/ (function(module, exports, __webpack_require__) {
85261
85262"use strict";
85263
85264
85265exports.__esModule = true;
85266
85267var _extends2 = __webpack_require__(1);
85268
85269var _extends3 = _interopRequireDefault(_extends2);
85270
85271var _objectWithoutProperties2 = __webpack_require__(8);
85272
85273var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
85274
85275var _classCallCheck2 = __webpack_require__(2);
85276
85277var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
85278
85279var _possibleConstructorReturn2 = __webpack_require__(3);
85280
85281var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
85282
85283var _inherits2 = __webpack_require__(4);
85284
85285var _inherits3 = _interopRequireDefault(_inherits2);
85286
85287var _class, _temp2;
85288
85289var _react = __webpack_require__(0);
85290
85291var _react2 = _interopRequireDefault(_react);
85292
85293var _propTypes = __webpack_require__(5);
85294
85295var _propTypes2 = _interopRequireDefault(_propTypes);
85296
85297var _classnames = __webpack_require__(7);
85298
85299var _classnames2 = _interopRequireDefault(_classnames);
85300
85301var _icon = __webpack_require__(11);
85302
85303var _icon2 = _interopRequireDefault(_icon);
85304
85305var _util = __webpack_require__(6);
85306
85307var _zhCn = __webpack_require__(13);
85308
85309var _zhCn2 = _interopRequireDefault(_zhCn);
85310
85311var _upload = __webpack_require__(106);
85312
85313var _upload2 = _interopRequireDefault(_upload);
85314
85315function _interopRequireDefault(obj) {
85316 return obj && obj.__esModule ? obj : { default: obj };
85317}
85318
85319/**
85320 * Upload.Dragger
85321 * @description IE10+ 支持。继承 Upload 的 API,除非特别说明
85322 */
85323var Dragger = (_temp2 = _class = function (_React$Component) {
85324 (0, _inherits3.default)(Dragger, _React$Component);
85325
85326 function Dragger() {
85327 var _temp, _this, _ret;
85328
85329 (0, _classCallCheck3.default)(this, Dragger);
85330
85331 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
85332 args[_key] = arguments[_key];
85333 }
85334
85335 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
85336 dragOver: false
85337 }, _this.onDragOver = function (e) {
85338 if (!_this.state.dragOver) {
85339 _this.setState({
85340 dragOver: true
85341 });
85342 }
85343
85344 _this.props.onDragOver(e);
85345 }, _this.onDragLeave = function (e) {
85346 _this.setState({
85347 dragOver: false
85348 });
85349 _this.props.onDragLeave(e);
85350 }, _this.onDrop = function (e) {
85351 _this.setState({
85352 dragOver: false
85353 });
85354 _this.props.onDrop(e);
85355 }, _this.saveUploaderRef = function (ref) {
85356 /* istanbul ignore if */
85357 if (ref && typeof ref.getInstance === 'function') {
85358 _this.uploaderRef = ref.getInstance();
85359 } else {
85360 _this.uploaderRef = ref;
85361 }
85362 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
85363 }
85364
85365 /* istanbul ignore next */
85366 Dragger.prototype.abort = function abort(file) {
85367 /* istanbul ignore next */
85368 this.uploaderRef.abort(file);
85369 };
85370 /* istanbul ignore next */
85371
85372 Dragger.prototype.startUpload = function startUpload() {
85373 /* istanbul ignore next */
85374 this.uploaderRef.startUpload();
85375 };
85376
85377 Dragger.prototype.render = function render() {
85378 var _classNames;
85379
85380 var _props = this.props,
85381 className = _props.className,
85382 style = _props.style,
85383 shape = _props.shape,
85384 locale = _props.locale,
85385 prefix = _props.prefix,
85386 listType = _props.listType,
85387 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'style', 'shape', 'locale', 'prefix', 'listType']);
85388
85389 var prefixCls = prefix + 'upload-drag';
85390 var cls = (0, _classnames2.default)((_classNames = {}, _classNames['' + prefixCls] = true, _classNames[prefixCls + '-over'] = this.state.dragOver, _classNames[className] = !!className, _classNames));
85391
85392 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));
85393
85394 return _react2.default.createElement(_upload2.default, (0, _extends3.default)({}, others, {
85395 prefix: prefix,
85396 shape: shape,
85397 listType: listType,
85398 dragable: true,
85399 style: style,
85400 onDragOver: this.onDragOver,
85401 onDragLeave: this.onDragLeave,
85402 onDrop: this.onDrop,
85403 ref: this.saveUploaderRef
85404 }), children);
85405 };
85406
85407 return Dragger;
85408}(_react2.default.Component), _class.propTypes = {
85409 /**
85410 * 样式前缀
85411 */
85412 prefix: _propTypes2.default.string,
85413 locale: _propTypes2.default.object,
85414 shape: _propTypes2.default.string,
85415 onDragOver: _propTypes2.default.func,
85416 onDragLeave: _propTypes2.default.func,
85417 onDrop: _propTypes2.default.func,
85418 limit: _propTypes2.default.number,
85419 className: _propTypes2.default.string,
85420 style: _propTypes2.default.object,
85421 defaultValue: _propTypes2.default.array,
85422 children: _propTypes2.default.node,
85423 listType: _propTypes2.default.string,
85424 timeout: _propTypes2.default.number
85425}, _class.defaultProps = {
85426 prefix: 'next-',
85427 onDragOver: _util.func.noop,
85428 onDragLeave: _util.func.noop,
85429 onDrop: _util.func.noop,
85430 locale: _zhCn2.default.Upload
85431}, _temp2);
85432Dragger.displayName = 'Dragger';
85433exports.default = Dragger;
85434module.exports = exports['default'];
85435
85436/***/ }),
85437/* 471 */
85438/***/ (function(module, exports, __webpack_require__) {
85439
85440"use strict";
85441
85442
85443exports.__esModule = true;
85444
85445var _extends2 = __webpack_require__(1);
85446
85447var _extends3 = _interopRequireDefault(_extends2);
85448
85449var _objectWithoutProperties2 = __webpack_require__(8);
85450
85451var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
85452
85453var _classCallCheck2 = __webpack_require__(2);
85454
85455var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
85456
85457var _possibleConstructorReturn2 = __webpack_require__(3);
85458
85459var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
85460
85461var _inherits2 = __webpack_require__(4);
85462
85463var _inherits3 = _interopRequireDefault(_inherits2);
85464
85465var _class, _temp;
85466
85467var _react = __webpack_require__(0);
85468
85469var _react2 = _interopRequireDefault(_react);
85470
85471var _reactDom = __webpack_require__(12);
85472
85473var _reactDom2 = _interopRequireDefault(_reactDom);
85474
85475var _propTypes = __webpack_require__(5);
85476
85477var _propTypes2 = _interopRequireDefault(_propTypes);
85478
85479var _configProvider = __webpack_require__(9);
85480
85481var _configProvider2 = _interopRequireDefault(_configProvider);
85482
85483var _animate = __webpack_require__(20);
85484
85485var _animate2 = _interopRequireDefault(_animate);
85486
85487var _message = __webpack_require__(94);
85488
85489var _message2 = _interopRequireDefault(_message);
85490
85491var _guid = __webpack_require__(129);
85492
85493var _guid2 = _interopRequireDefault(_guid);
85494
85495var _config2 = __webpack_require__(472);
85496
85497var _config3 = _interopRequireDefault(_config2);
85498
85499function _interopRequireDefault(obj) {
85500 return obj && obj.__esModule ? obj : { default: obj };
85501}
85502
85503var getAnimation = function getAnimation(placement) {
85504 switch (placement) {
85505 case 'tl':
85506 case 'bl':
85507 return 'slideInLeft';
85508 case 'tr':
85509 case 'br':
85510 return 'slideInRight';
85511 default:
85512 return null;
85513 }
85514};
85515
85516var Notification = (_temp = _class = function (_Component) {
85517 (0, _inherits3.default)(Notification, _Component);
85518
85519 function Notification(props) {
85520 (0, _classCallCheck3.default)(this, Notification);
85521
85522 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
85523
85524 _this.close = function (key) {
85525 var notifications = _this.state.notifications;
85526
85527 var index = notifications.findIndex(function (notification) {
85528 return notification.key === key;
85529 });
85530
85531 if (index === -1) return;
85532 var _notifications$index = notifications[index],
85533 onClose = _notifications$index.onClose,
85534 timer = _notifications$index.timer;
85535
85536 notifications.splice(index, 1);
85537
85538 var timerIndex = _this.timers.findIndex(function (v) {
85539 return v === timer;
85540 });
85541
85542 if (timerIndex !== -1) {
85543 _this.timers.splice(timerIndex, 1);
85544 }
85545
85546 if (timer) {
85547 clearTimeout(timer);
85548 }
85549
85550 _this.setState({
85551 notifications: notifications
85552 });
85553
85554 if (onClose) {
85555 onClose();
85556 }
85557 };
85558
85559 _this.open = function (_ref) {
85560 var key = _ref.key,
85561 duration = _ref.duration,
85562 others = (0, _objectWithoutProperties3.default)(_ref, ['key', 'duration']);
85563
85564 var notifications = [].concat(_this.state.notifications);
85565 if (!key) {
85566 key = (0, _guid2.default)('notification-');
85567 }
85568
85569 var index = notifications.findIndex(function (notification) {
85570 return notification.key === key;
85571 });
85572
85573 if (index !== -1) {
85574 notifications[index] = (0, _extends3.default)({}, notifications[index], others);
85575 } else {
85576 var timer = void 0;
85577
85578 if (duration > 0) {
85579 timer = setTimeout(function () {
85580 _this.close(key);
85581 }, duration);
85582 _this.timers.push(timer);
85583 }
85584 notifications.push((0, _extends3.default)({}, others, {
85585 key: key,
85586 timer: timer
85587 }));
85588 }
85589
85590 if (_config3.default.maxCount > 0 && _config3.default.maxCount < notifications.length) {
85591 while (notifications.length > _config3.default.maxCount) {
85592 var _key = notifications[0].key;
85593
85594 _this.close(_key);
85595 notifications.splice(0, 1);
85596 }
85597 }
85598
85599 _this.setState({
85600 notifications: notifications
85601 });
85602
85603 return key;
85604 };
85605
85606 _this.state = {
85607 notifications: []
85608 };
85609 _this.timers = [];
85610 return _this;
85611 }
85612
85613 Notification.prototype.componentWillUnmount = function componentWillUnmount() {
85614 this.timers.forEach(function (timer) {
85615 if (!timer) return;
85616 clearTimeout(timer);
85617 });
85618 };
85619
85620 Notification.prototype.render = function render() {
85621 var _ref2;
85622
85623 var prefix = this.props.prefix;
85624 var notifications = this.state.notifications;
85625
85626 return _react2.default.createElement('div', {
85627 className: prefix + 'notification',
85628 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)
85629 }, _react2.default.createElement(_animate2.default, {
85630 animationAppear: true,
85631 animation: {
85632 enter: getAnimation(_config3.default.placement),
85633 leave: prefix + 'notification-fade-leave'
85634 },
85635 singleMode: false
85636 }, notifications.map(function (_ref3) {
85637 var key = _ref3.key,
85638 type = _ref3.type,
85639 title = _ref3.title,
85640 content = _ref3.content,
85641 icon = _ref3.icon,
85642 onClick = _ref3.onClick,
85643 style = _ref3.style,
85644 className = _ref3.className;
85645 return _react2.default.createElement(_message2.default, {
85646 key: key,
85647 shape: 'toast',
85648 type: type,
85649 title: title,
85650 iconType: icon,
85651 closeable: true,
85652 animation: false,
85653 size: _config3.default.size,
85654 visible: true,
85655 style: style,
85656 className: className,
85657 onClick: onClick,
85658 onClose: function onClose() {
85659 return close(key);
85660 }
85661 }, content);
85662 })));
85663 };
85664
85665 return Notification;
85666}(_react.Component), _class.propTypes = {
85667 prefix: _propTypes2.default.string
85668}, _class.defaultProps = {
85669 prefix: 'next-'
85670}, _temp);
85671Notification.displayName = 'Notification';
85672
85673var ConfigedNotification = _configProvider2.default.config(Notification, {
85674 exportNames: ['open', 'close']
85675});
85676var instance = void 0;
85677var mounting = false;
85678var waitOpens = [];
85679
85680function open() {
85681 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
85682
85683 if (!options.title && !options.content) return;
85684
85685 var duration = !options.duration && options.duration !== 0 ? _config3.default.duration : options.duration;
85686
85687 if (!instance) {
85688 if (!options.key) {
85689 options.key = (0, _guid2.default)('notification-');
85690 }
85691
85692 waitOpens.push((0, _extends3.default)({}, options, {
85693 duration: duration
85694 }));
85695
85696 if (!mounting) {
85697 mounting = true;
85698 var div = document.createElement('div');
85699 if (_config3.default.getContainer) {
85700 var root = _config3.default.getContainer();
85701 root.appendChild(div);
85702 } else {
85703 document.body.appendChild(div);
85704 }
85705
85706 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, _configProvider2.default.getContext(), _react2.default.createElement(ConfigedNotification, {
85707 ref: function ref(_ref4) {
85708 instance = _ref4;
85709 }
85710 })), div, function () {
85711 waitOpens.forEach(function (item) {
85712 return instance.open(item);
85713 });
85714 waitOpens = [];
85715 mounting = false;
85716 });
85717 }
85718
85719 return options.key;
85720 }
85721
85722 var key = instance.open((0, _extends3.default)({}, options, {
85723 duration: duration
85724 }));
85725
85726 return key;
85727}
85728
85729function close(key) {
85730 if (!instance) {
85731 var index = waitOpens.findIndex(function (item) {
85732 return item.key === key;
85733 });
85734 waitOpens.splice(index, 1);
85735 return;
85736 }
85737
85738 instance.close(key);
85739}
85740
85741function destroy() {
85742 if (!instance) return;
85743 var mountNode = _reactDom2.default.findDOMNode(instance).parentNode;
85744 if (mountNode) {
85745 _reactDom2.default.unmountComponentAtNode(mountNode);
85746 mountNode.parentNode.removeChild(mountNode);
85747 }
85748}
85749
85750var levels = {};
85751
85752['success', 'error', 'warning', 'notice', 'help'].forEach(function (type) {
85753 levels[type] = function () {
85754 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
85755
85756 return open((0, _extends3.default)({}, options, {
85757 type: type
85758 }));
85759 };
85760});
85761exports.default = (0, _extends3.default)({
85762 config: function config() {
85763 for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) {
85764 args[_key2] = arguments[_key2];
85765 }
85766
85767 return _extends3.default.apply(undefined, [_config3.default].concat(args));
85768 },
85769
85770 open: open,
85771 close: close,
85772 destroy: destroy
85773}, levels);
85774module.exports = exports['default'];
85775
85776/***/ }),
85777/* 472 */
85778/***/ (function(module, exports, __webpack_require__) {
85779
85780"use strict";
85781
85782
85783exports.__esModule = true;
85784exports.default = {
85785 offset: [30, 30],
85786 maxCount: 0,
85787 size: 'large',
85788 placement: 'tr',
85789 duration: 4500,
85790 getContainer: function getContainer() {
85791 return document.body;
85792 }
85793};
85794module.exports = exports['default'];
85795
85796/***/ }),
85797/* 473 */
85798/***/ (function(module, exports, __webpack_require__) {
85799
85800"use strict";
85801
85802
85803exports.__esModule = true;
85804
85805var _extends2 = __webpack_require__(1);
85806
85807var _extends3 = _interopRequireDefault(_extends2);
85808
85809var _classCallCheck2 = __webpack_require__(2);
85810
85811var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
85812
85813var _possibleConstructorReturn2 = __webpack_require__(3);
85814
85815var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
85816
85817var _inherits2 = __webpack_require__(4);
85818
85819var _inherits3 = _interopRequireDefault(_inherits2);
85820
85821var _class, _temp;
85822
85823var _react = __webpack_require__(0);
85824
85825var _react2 = _interopRequireDefault(_react);
85826
85827var _propTypes = __webpack_require__(5);
85828
85829var _propTypes2 = _interopRequireDefault(_propTypes);
85830
85831var _classnames = __webpack_require__(7);
85832
85833var _classnames2 = _interopRequireDefault(_classnames);
85834
85835var _reactLifecyclesCompat = __webpack_require__(10);
85836
85837var _configProvider = __webpack_require__(9);
85838
85839var _configProvider2 = _interopRequireDefault(_configProvider);
85840
85841var _util = __webpack_require__(6);
85842
85843function _interopRequireDefault(obj) {
85844 return obj && obj.__esModule ? obj : { default: obj };
85845}
85846
85847/**
85848 * Divider
85849 */
85850var Divider = (_temp = _class = function (_Component) {
85851 (0, _inherits3.default)(Divider, _Component);
85852
85853 function Divider() {
85854 (0, _classCallCheck3.default)(this, Divider);
85855 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
85856 }
85857
85858 Divider.prototype.render = function render() {
85859 var _classNames;
85860
85861 var _props = this.props,
85862 prefix = _props.prefix,
85863 className = _props.className,
85864 dashed = _props.dashed,
85865 direction = _props.direction,
85866 orientation = _props.orientation,
85867 children = _props.children;
85868
85869 var others = _util.obj.pickOthers(Divider.propTypes, this.props);
85870
85871 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);
85872
85873 return _react2.default.createElement('div', (0, _extends3.default)({ role: 'separator', className: cls }, others), children && _react2.default.createElement('span', { className: prefix + 'divider-inner-text' }, children));
85874 };
85875
85876 return Divider;
85877}(_react.Component), _class.propTypes = {
85878 prefix: _propTypes2.default.string,
85879 children: _propTypes2.default.any,
85880 className: _propTypes2.default.string,
85881 /**
85882 * 是否为虚线
85883 */
85884 dashed: _propTypes2.default.bool,
85885 /**
85886 * 线是水平还是垂直类型
85887 */
85888 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
85889 /**
85890 * 分割线标题的位置
85891 */
85892 orientation: _propTypes2.default.oneOf(['left', 'right', 'center'])
85893}, _class.defaultProps = {
85894 prefix: 'next-',
85895 direction: 'hoz',
85896 orientation: 'center',
85897 dashed: false
85898}, _temp);
85899Divider.displayName = 'Divider';
85900exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Divider));
85901module.exports = exports['default'];
85902
85903/***/ }),
85904/* 474 */
85905/***/ (function(module, exports, __webpack_require__) {
85906
85907"use strict";
85908
85909
85910exports.__esModule = true;
85911
85912var _extends2 = __webpack_require__(1);
85913
85914var _extends3 = _interopRequireDefault(_extends2);
85915
85916var _classCallCheck2 = __webpack_require__(2);
85917
85918var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
85919
85920var _possibleConstructorReturn2 = __webpack_require__(3);
85921
85922var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
85923
85924var _inherits2 = __webpack_require__(4);
85925
85926var _inherits3 = _interopRequireDefault(_inherits2);
85927
85928var _class, _temp2;
85929
85930var _react = __webpack_require__(0);
85931
85932var _react2 = _interopRequireDefault(_react);
85933
85934var _propTypes = __webpack_require__(5);
85935
85936var _propTypes2 = _interopRequireDefault(_propTypes);
85937
85938var _classnames = __webpack_require__(7);
85939
85940var _classnames2 = _interopRequireDefault(_classnames);
85941
85942var _configProvider = __webpack_require__(9);
85943
85944var _configProvider2 = _interopRequireDefault(_configProvider);
85945
85946var _icon = __webpack_require__(11);
85947
85948var _icon2 = _interopRequireDefault(_icon);
85949
85950var _util = __webpack_require__(6);
85951
85952function _interopRequireDefault(obj) {
85953 return obj && obj.__esModule ? obj : { default: obj };
85954}
85955
85956/**
85957 * Avatar
85958 */
85959var Avatar = (_temp2 = _class = function (_Component) {
85960 (0, _inherits3.default)(Avatar, _Component);
85961
85962 function Avatar() {
85963 var _temp, _this, _ret;
85964
85965 (0, _classCallCheck3.default)(this, Avatar);
85966
85967 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
85968 args[_key] = arguments[_key];
85969 }
85970
85971 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.state = {
85972 isImgExist: true
85973 }, _this.handleImgLoadError = function () {
85974 var onError = _this.props.onError;
85975
85976 var errorFlag = onError ? onError() : undefined;
85977 if (errorFlag !== false) {
85978 _this.setState({ isImgExist: false });
85979 }
85980 }, _this.getIconSize = function (avatarSize) {
85981 return typeof avatarSize === 'number' ? avatarSize / 2 : avatarSize;
85982 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
85983 }
85984
85985 Avatar.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
85986 if (prevProps.src !== this.props.src) {
85987 // eslint-disable-next-line react/no-did-update-set-state
85988 this.setState({ isImgExist: true });
85989 }
85990 };
85991
85992 Avatar.prototype.render = function render() {
85993 var _classNames;
85994
85995 var _props = this.props,
85996 prefix = _props.prefix,
85997 className = _props.className,
85998 style = _props.style,
85999 size = _props.size,
86000 icon = _props.icon,
86001 alt = _props.alt,
86002 srcSet = _props.srcSet,
86003 shape = _props.shape,
86004 src = _props.src;
86005 var isImgExist = this.state.isImgExist;
86006 var children = this.props.children;
86007
86008 var others = _util.obj.pickOthers(Avatar.propTypes, this.props);
86009
86010 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);
86011
86012 var sizeStyle = typeof size === 'number' ? {
86013 width: size,
86014 height: size,
86015 lineHeight: size + 'px',
86016 fontSize: icon ? size / 2 : 18
86017 } : {};
86018
86019 var iconSize = this.getIconSize(size);
86020 if (src) {
86021 if (isImgExist) {
86022 children = _react2.default.createElement('img', { src: src, srcSet: srcSet, onError: this.handleImgLoadError, alt: alt });
86023 } else {
86024 children = _react2.default.createElement(_icon2.default, { type: 'picture', size: iconSize });
86025 }
86026 } else if (typeof icon === 'string') {
86027 children = _react2.default.createElement(_icon2.default, { type: icon, size: iconSize });
86028 } else if (icon) {
86029 var newIconSize = 'size' in icon.props ? icon.props.size : iconSize;
86030 children = _react2.default.cloneElement(icon, { size: newIconSize });
86031 }
86032
86033 return _react2.default.createElement('span', (0, _extends3.default)({ className: cls, style: (0, _extends3.default)({}, sizeStyle, style) }, others), children);
86034 };
86035
86036 return Avatar;
86037}(_react.Component), _class.propTypes = {
86038 prefix: _propTypes2.default.string,
86039 children: _propTypes2.default.any,
86040 className: _propTypes2.default.string,
86041 /**
86042 * 头像的大小
86043 * @enumdesc 小,中,大
86044 */
86045 size: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['small', 'medium', 'large']), _propTypes2.default.number]),
86046 /**
86047 * 头像的形状
86048 * @enumdesc 圆形,方形
86049 */
86050 shape: _propTypes2.default.oneOf(['circle', 'square']),
86051 /**
86052 * icon 类头像的图标类型,可设为 Icon 的 `type` 或 `ReactNode`
86053 */
86054 icon: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string]),
86055 /**
86056 * 图片类头像的资源地址
86057 */
86058 src: _propTypes2.default.string,
86059 /**
86060 * 图片加载失败的事件,返回 false 会关闭组件默认的 fallback 行为
86061 */
86062 onError: _propTypes2.default.func,
86063 /**
86064 * 图像无法显示时的 alt 替代文本
86065 */
86066 alt: _propTypes2.default.string,
86067 /**
86068 * 图片类头像响应式资源地址
86069 */
86070 srcSet: _propTypes2.default.string
86071}, _class.defaultProps = {
86072 prefix: 'next-',
86073 size: 'medium',
86074 shape: 'circle'
86075}, _temp2);
86076Avatar.displayName = 'Avatar';
86077exports.default = _configProvider2.default.config(Avatar);
86078module.exports = exports['default'];
86079
86080/***/ }),
86081/* 475 */
86082/***/ (function(module, exports, __webpack_require__) {
86083
86084"use strict";
86085
86086
86087exports.__esModule = true;
86088
86089var _list = __webpack_require__(476);
86090
86091var _list2 = _interopRequireDefault(_list);
86092
86093var _item = __webpack_require__(477);
86094
86095var _item2 = _interopRequireDefault(_item);
86096
86097function _interopRequireDefault(obj) {
86098 return obj && obj.__esModule ? obj : { default: obj };
86099}
86100
86101_list2.default.Item = _item2.default;
86102
86103exports.default = _list2.default;
86104module.exports = exports['default'];
86105
86106/***/ }),
86107/* 476 */
86108/***/ (function(module, exports, __webpack_require__) {
86109
86110"use strict";
86111
86112
86113exports.__esModule = true;
86114
86115var _extends2 = __webpack_require__(1);
86116
86117var _extends3 = _interopRequireDefault(_extends2);
86118
86119var _objectWithoutProperties2 = __webpack_require__(8);
86120
86121var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
86122
86123var _classCallCheck2 = __webpack_require__(2);
86124
86125var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
86126
86127var _possibleConstructorReturn2 = __webpack_require__(3);
86128
86129var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
86130
86131var _inherits2 = __webpack_require__(4);
86132
86133var _inherits3 = _interopRequireDefault(_inherits2);
86134
86135var _class, _temp;
86136
86137var _react = __webpack_require__(0);
86138
86139var _react2 = _interopRequireDefault(_react);
86140
86141var _propTypes = __webpack_require__(5);
86142
86143var _propTypes2 = _interopRequireDefault(_propTypes);
86144
86145var _classnames = __webpack_require__(7);
86146
86147var _classnames2 = _interopRequireDefault(_classnames);
86148
86149var _reactLifecyclesCompat = __webpack_require__(10);
86150
86151var _loading = __webpack_require__(100);
86152
86153var _loading2 = _interopRequireDefault(_loading);
86154
86155var _zhCn = __webpack_require__(13);
86156
86157var _zhCn2 = _interopRequireDefault(_zhCn);
86158
86159var _configProvider = __webpack_require__(9);
86160
86161var _configProvider2 = _interopRequireDefault(_configProvider);
86162
86163function _interopRequireDefault(obj) {
86164 return obj && obj.__esModule ? obj : { default: obj };
86165}
86166
86167/**
86168 * List
86169 */
86170var List = (_temp = _class = function (_Component) {
86171 (0, _inherits3.default)(List, _Component);
86172
86173 function List() {
86174 (0, _classCallCheck3.default)(this, List);
86175 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
86176 }
86177
86178 List.prototype.render = function render() {
86179 var _classNames;
86180
86181 var _props = this.props,
86182 prefix = _props.prefix,
86183 header = _props.header,
86184 footer = _props.footer,
86185 size = _props.size,
86186 divider = _props.divider,
86187 className = _props.className,
86188 children = _props.children,
86189 rtl = _props.rtl,
86190 dataSource = _props.dataSource,
86191 renderItem = _props.renderItem,
86192 locale = _props.locale,
86193 loading = _props.loading,
86194 _props$loadingCompone = _props.loadingComponent,
86195 LoadingComponent = _props$loadingCompone === undefined ? _loading2.default : _props$loadingCompone,
86196 emptyContent = _props.emptyContent,
86197 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'header', 'footer', 'size', 'divider', 'className', 'children', 'rtl', 'dataSource', 'renderItem', 'locale', 'loading', 'loadingComponent', 'emptyContent']);
86198
86199 if (rtl) {
86200 others.dir = 'rtl';
86201 }
86202
86203 var dSValid = Array.isArray(dataSource);
86204
86205 var classes = (0, _classnames2.default)(prefix + 'list', (_classNames = {}, _classNames[prefix + 'list-' + size] = size, _classNames[prefix + 'list-divider'] = divider, _classNames), className);
86206
86207 var customContent = dSValid && dataSource.map(function (one, index) {
86208 return renderItem(one, index);
86209 });
86210
86211 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);
86212
86213 if (loading) {
86214 var loadingClassName = prefix + 'list-loading';
86215 return _react2.default.createElement(LoadingComponent, { className: loadingClassName }, content);
86216 }
86217
86218 return content;
86219 };
86220
86221 return List;
86222}(_react.Component), _class.propTypes = {
86223 prefix: _propTypes2.default.string,
86224 rtl: _propTypes2.default.bool,
86225 /**
86226 * 列表头部
86227 */
86228 header: _propTypes2.default.node,
86229 /**
86230 * 列表尾部
86231 */
86232 footer: _propTypes2.default.node,
86233 /**
86234 * 列表尺寸
86235 */
86236 size: _propTypes2.default.oneOf(['medium', 'small']),
86237 /**
86238 * 是否显示分割线
86239 */
86240 divider: _propTypes2.default.bool,
86241 /**
86242 * 列表数据源
86243 */
86244 dataSource: _propTypes2.default.array,
86245 /**
86246 * 当使用 dataSource 时,可以用 renderItem 自定义渲染列表项
86247 * @param {Any} current 当前遍历的项
86248 * @param {Number} index 当前遍历的项的索引
86249 */
86250 renderItem: _propTypes2.default.func,
86251 /**
86252 * 是否在加载中
86253 */
86254 loading: _propTypes2.default.bool,
86255 /**
86256 * 自定义 Loading 组件
86257 * 请务必传递 props, 使用方式: loadingComponent={props => <Loading {...props}/>}
86258 * @param {LoadingProps} props 需要透传给组件的参数
86259 * @return {React.ReactNode} 展示的组件
86260 */
86261 loadingComponent: _propTypes2.default.func,
86262 /**
86263 * 设置数据为空的时候的表格内容展现
86264 */
86265 emptyContent: _propTypes2.default.node,
86266 className: _propTypes2.default.string,
86267 children: _propTypes2.default.any,
86268 locale: _propTypes2.default.object
86269}, _class.defaultProps = {
86270 rtl: false,
86271 size: 'medium',
86272 divider: true,
86273 prefix: 'next-',
86274 locale: _zhCn2.default.List,
86275 renderItem: function renderItem(item) {
86276 return item;
86277 },
86278 loading: false
86279}, _temp);
86280List.displayName = 'List';
86281exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(List));
86282module.exports = exports['default'];
86283
86284/***/ }),
86285/* 477 */
86286/***/ (function(module, exports, __webpack_require__) {
86287
86288"use strict";
86289
86290
86291exports.__esModule = true;
86292
86293var _extends2 = __webpack_require__(1);
86294
86295var _extends3 = _interopRequireDefault(_extends2);
86296
86297var _objectWithoutProperties2 = __webpack_require__(8);
86298
86299var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
86300
86301var _classCallCheck2 = __webpack_require__(2);
86302
86303var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
86304
86305var _possibleConstructorReturn2 = __webpack_require__(3);
86306
86307var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
86308
86309var _inherits2 = __webpack_require__(4);
86310
86311var _inherits3 = _interopRequireDefault(_inherits2);
86312
86313var _class, _temp;
86314
86315var _react = __webpack_require__(0);
86316
86317var _react2 = _interopRequireDefault(_react);
86318
86319var _propTypes = __webpack_require__(5);
86320
86321var _propTypes2 = _interopRequireDefault(_propTypes);
86322
86323var _classnames = __webpack_require__(7);
86324
86325var _classnames2 = _interopRequireDefault(_classnames);
86326
86327var _reactLifecyclesCompat = __webpack_require__(10);
86328
86329var _configProvider = __webpack_require__(9);
86330
86331var _configProvider2 = _interopRequireDefault(_configProvider);
86332
86333function _interopRequireDefault(obj) {
86334 return obj && obj.__esModule ? obj : { default: obj };
86335}
86336
86337/**
86338 * List.Item
86339 */
86340var ListItem = (_temp = _class = function (_Component) {
86341 (0, _inherits3.default)(ListItem, _Component);
86342
86343 function ListItem() {
86344 (0, _classCallCheck3.default)(this, ListItem);
86345 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
86346 }
86347
86348 ListItem.prototype.render = function render() {
86349 var _props = this.props,
86350 prefix = _props.prefix,
86351 title = _props.title,
86352 description = _props.description,
86353 media = _props.media,
86354 extra = _props.extra,
86355 className = _props.className,
86356 children = _props.children,
86357 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'title', 'description', 'media', 'extra', 'className', 'children']);
86358
86359 var classes = (0, _classnames2.default)(prefix + 'list-item', className);
86360
86361 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);
86362 };
86363
86364 return ListItem;
86365}(_react.Component), _class.propTypes = {
86366 prefix: _propTypes2.default.string,
86367 /**
86368 * 列表元素的标题
86369 */
86370 title: _propTypes2.default.node,
86371 /**
86372 * 列表元素的描述内容
86373 */
86374 description: _propTypes2.default.node,
86375 /**
86376 * 列表元素的头像 / 图标 / 图片内容
86377 */
86378 media: _propTypes2.default.node,
86379 /**
86380 * 额外内容
86381 */
86382 extra: _propTypes2.default.node,
86383 className: _propTypes2.default.any
86384}, _class.defaultProps = {
86385 prefix: 'next-'
86386}, _temp);
86387ListItem.displayName = 'ListItem';
86388exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(ListItem));
86389module.exports = exports['default'];
86390
86391/***/ }),
86392/* 478 */
86393/***/ (function(module, exports, __webpack_require__) {
86394
86395"use strict";
86396
86397
86398exports.__esModule = true;
86399
86400var _extends2 = __webpack_require__(1);
86401
86402var _extends3 = _interopRequireDefault(_extends2);
86403
86404var _react = __webpack_require__(0);
86405
86406var _react2 = _interopRequireDefault(_react);
86407
86408var _configProvider = __webpack_require__(9);
86409
86410var _configProvider2 = _interopRequireDefault(_configProvider);
86411
86412var _timePicker = __webpack_require__(479);
86413
86414var _timePicker2 = _interopRequireDefault(_timePicker);
86415
86416function _interopRequireDefault(obj) {
86417 return obj && obj.__esModule ? obj : { default: obj };
86418}
86419
86420var ConfigTimePicker = _configProvider2.default.config(_timePicker2.default);
86421
86422ConfigTimePicker.RangePicker = _react2.default.forwardRef(function (props, ref) {
86423 return _react2.default.createElement(ConfigTimePicker, (0, _extends3.default)({ ref: ref }, props, { type: 'range' }));
86424});
86425ConfigTimePicker.RangePicker.displayName = 'RangePicker';
86426
86427exports.default = ConfigTimePicker;
86428module.exports = exports['default'];
86429
86430/***/ }),
86431/* 479 */
86432/***/ (function(module, exports, __webpack_require__) {
86433
86434"use strict";
86435
86436
86437exports.__esModule = true;
86438
86439var _objectWithoutProperties2 = __webpack_require__(8);
86440
86441var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
86442
86443var _classCallCheck2 = __webpack_require__(2);
86444
86445var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
86446
86447var _possibleConstructorReturn2 = __webpack_require__(3);
86448
86449var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
86450
86451var _inherits2 = __webpack_require__(4);
86452
86453var _inherits3 = _interopRequireDefault(_inherits2);
86454
86455var _extends2 = __webpack_require__(1);
86456
86457var _extends3 = _interopRequireDefault(_extends2);
86458
86459var _class, _temp, _initialiseProps;
86460
86461var _react = __webpack_require__(0);
86462
86463var _react2 = _interopRequireDefault(_react);
86464
86465var _propTypes = __webpack_require__(5);
86466
86467var _propTypes2 = _interopRequireDefault(_propTypes);
86468
86469var _reactLifecyclesCompat = __webpack_require__(10);
86470
86471var _classnames3 = __webpack_require__(7);
86472
86473var _classnames4 = _interopRequireDefault(_classnames3);
86474
86475var _configProvider = __webpack_require__(9);
86476
86477var _configProvider2 = _interopRequireDefault(_configProvider);
86478
86479var _input = __webpack_require__(18);
86480
86481var _input2 = _interopRequireDefault(_input);
86482
86483var _button = __webpack_require__(17);
86484
86485var _button2 = _interopRequireDefault(_button);
86486
86487var _overlay = __webpack_require__(15);
86488
86489var _overlay2 = _interopRequireDefault(_overlay);
86490
86491var _zhCn = __webpack_require__(13);
86492
86493var _zhCn2 = _interopRequireDefault(_zhCn);
86494
86495var _util = __webpack_require__(6);
86496
86497var _panel = __webpack_require__(199);
86498
86499var _panel2 = _interopRequireDefault(_panel);
86500
86501var _utils = __webpack_require__(200);
86502
86503var _propTypes3 = __webpack_require__(109);
86504
86505var _propTypes4 = _interopRequireDefault(_propTypes3);
86506
86507var _util2 = __webpack_require__(43);
86508
86509var _footerPanel = __webpack_require__(201);
86510
86511var _footerPanel2 = _interopRequireDefault(_footerPanel);
86512
86513var _dateInput = __webpack_require__(481);
86514
86515var _dateInput2 = _interopRequireDefault(_dateInput);
86516
86517var _constant = __webpack_require__(110);
86518
86519function _interopRequireDefault(obj) {
86520 return obj && obj.__esModule ? obj : { default: obj };
86521}
86522
86523var Popup = _overlay2.default.Popup;
86524var noop = _util.func.noop,
86525 checkDate = _util.func.checkDate,
86526 checkRangeDate = _util.func.checkRangeDate;
86527
86528var timePickerLocale = _zhCn2.default.TimePicker;
86529
86530var presetPropType = _propTypes2.default.shape((0, _extends3.default)({
86531 label: _propTypes2.default.string,
86532 value: _propTypes2.default.oneOfType([_propTypes2.default.func, _utils.checkDateValue])
86533}, _button2.default.propTypes));
86534
86535var TimePicker2 = (_temp = _class = function (_Component) {
86536 (0, _inherits3.default)(TimePicker2, _Component);
86537
86538 function TimePicker2(props, context) {
86539 (0, _classCallCheck3.default)(this, TimePicker2);
86540
86541 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
86542
86543 _initialiseProps.call(_this);
86544
86545 var isRange = props.type === _constant.TIME_PICKER_TYPE.RANGE;
86546
86547 _this.state = {};
86548 if (isRange) {
86549 var _this$getInitRangeInp = _this.getInitRangeInputState(),
86550 inputType = _this$getInitRangeInp.inputType,
86551 justBeginInput = _this$getInitRangeInp.justBeginInput;
86552
86553 _this.state = {
86554 inputType: inputType,
86555 justBeginInput: justBeginInput
86556 };
86557 }
86558
86559 var _this$props = _this.props,
86560 format = _this$props.format,
86561 visible = _this$props.visible,
86562 defaultVisible = _this$props.defaultVisible,
86563 prefix = _this$props.prefix;
86564
86565 var value = _this.getInitValue();
86566
86567 // const value = formatInputTimeValue(props.value || props.defaultValue, props.format, isRange);
86568 _this.state = (0, _extends3.default)({}, _this.state, {
86569 isRange: isRange,
86570 inputStr: '', // 输入框的输入值, string类型
86571 value: value, // 确定值 dayjs类型
86572 curValue: value, // 临时值 dayjs类型
86573 preValue: value, // 上个值 dayjs类型
86574 inputValue: (0, _util2.fmtValue)(value, format),
86575 inputing: false,
86576 visible: 'visible' in _this.props ? visible : defaultVisible
86577 });
86578 _this.prefixCls = prefix + 'time-picker2';
86579 return _this;
86580 }
86581
86582 TimePicker2.getDerivedStateFromProps = function getDerivedStateFromProps(props, prevState) {
86583 var disabled = props.disabled,
86584 type = props.type,
86585 format = props.format,
86586 propsValue = props.value;
86587
86588 var isRange = type === _constant.TIME_PICKER_TYPE.RANGE;
86589 var state = {
86590 isRange: isRange
86591 };
86592
86593 if ('value' in props) {
86594 // checkDate function doesn't support hh:mm:ss format, convert to valid dayjs value in advance
86595 var formatter = function formatter(v) {
86596 return typeof v === 'string' ? (0, _util.datejs)(v, format) : v;
86597 };
86598 var formattedValue = Array.isArray(propsValue) ? propsValue.map(function (v) {
86599 return formatter(v);
86600 }) : formatter(propsValue);
86601 var value = isRange ? checkRangeDate(formattedValue, state.inputType, disabled) : checkDate(formattedValue);
86602 if ((0, _util2.isValueChanged)(value, state.preValue)) {
86603 state = (0, _extends3.default)({}, state, {
86604 value: value,
86605 preValue: value
86606 });
86607 if (isRange && !prevState.selecting) {
86608 state.inputValue = (0, _util2.fmtValue)(value, format);
86609 state.curValue = formattedValue || [];
86610 }
86611 }
86612 }
86613
86614 if ('visible' in props) {
86615 state.visible = props.visible;
86616 }
86617
86618 return state;
86619 };
86620
86621 /**
86622 * 获取初始值
86623 */
86624
86625 /**
86626 * 获取 RangePicker 输入框初始输入状态
86627 * @returns {Object} inputState
86628 * @returns {boolean} inputState.justBeginInput 是否初始输入
86629 * @returns {number} inputState.inputType 当前输入框
86630 */
86631
86632 /**
86633 * 处理点击文档区域导致的弹层收起逻辑
86634 * @param {boolean} visible 是否可见
86635 * @param {string} type 事件类型
86636 */
86637
86638 /**
86639 * 获取 `onChange` 和 `onOk` 方法的输出参数
86640 * @param {Dayjs} value
86641 * @returns 默认返回 `Dayjs` 实例和 `format` 格式化的值
86642 * 如果传了了 `outputFormat` 属性则返回 `outputFormat` 格式化的值
86643 */
86644
86645 /**
86646 * 获取输入框的禁用状态
86647 * @param {Number} idx
86648 * @returns {Boolean}
86649 */
86650
86651 TimePicker2.prototype.renderPreview = function renderPreview(others) {
86652 var _props = this.props,
86653 prefix = _props.prefix,
86654 format = _props.format,
86655 className = _props.className,
86656 renderPreview = _props.renderPreview;
86657 var value = this.state.value;
86658
86659 var previewCls = (0, _classnames4.default)(className, prefix + 'form-preview');
86660
86661 var label = value ? value.format(format) : '';
86662
86663 if (typeof renderPreview === 'function') {
86664 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
86665 }
86666
86667 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
86668 };
86669
86670 TimePicker2.prototype.render = function render() {
86671 var _classnames,
86672 _this2 = this,
86673 _classnames2;
86674
86675 var _props2 = this.props,
86676 prefix = _props2.prefix,
86677 label = _props2.label,
86678 state = _props2.state,
86679 placeholder = _props2.placeholder,
86680 size = _props2.size,
86681 format = _props2.format,
86682 hasClear = _props2.hasClear,
86683 hourStep = _props2.hourStep,
86684 minuteStep = _props2.minuteStep,
86685 secondStep = _props2.secondStep,
86686 disabledHours = _props2.disabledHours,
86687 disabledMinutes = _props2.disabledMinutes,
86688 disabledSeconds = _props2.disabledSeconds,
86689 renderTimeMenuItems = _props2.renderTimeMenuItems,
86690 inputProps = _props2.inputProps,
86691 popupAlign = _props2.popupAlign,
86692 popupTriggerType = _props2.popupTriggerType,
86693 popupContainer = _props2.popupContainer,
86694 popupStyle = _props2.popupStyle,
86695 popupClassName = _props2.popupClassName,
86696 popupProps = _props2.popupProps,
86697 popupComponent = _props2.popupComponent,
86698 followTrigger = _props2.followTrigger,
86699 disabled = _props2.disabled,
86700 hasBorder = _props2.hasBorder,
86701 className = _props2.className,
86702 locale = _props2.locale,
86703 rtl = _props2.rtl,
86704 isPreview = _props2.isPreview,
86705 preset = _props2.preset,
86706 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']);
86707 var _state = this.state,
86708 value = _state.value,
86709 inputStr = _state.inputStr,
86710 inputValue = _state.inputValue,
86711 curValue = _state.curValue,
86712 inputing = _state.inputing,
86713 visible = _state.visible,
86714 isRange = _state.isRange,
86715 inputType = _state.inputType;
86716
86717 var triggerCls = (0, _classnames4.default)((_classnames = {}, _classnames[this.prefixCls + '-trigger'] = true, _classnames));
86718
86719 if (rtl) {
86720 others.dir = 'rtl';
86721 }
86722
86723 if (isPreview) {
86724 return this.renderPreview(_util.obj.pickOthers(others, TimePicker2.PropTypes));
86725 }
86726
86727 var sharedInputProps = (0, _extends3.default)({
86728 prefix: prefix,
86729 locale: locale,
86730 label: label,
86731 state: state,
86732 placeholder: placeholder
86733 }, inputProps, {
86734 size: size,
86735 disabled: disabled,
86736 // RangePicker 有临时输入态在 inputValue 里面
86737 value: inputing ? inputStr : isRange ? inputValue : (0, _util2.fmtValue)(value, format) || '',
86738 hasClear: value && hasClear,
86739 inputType: inputType,
86740 isRange: isRange,
86741 onInputTypeChange: this.onInputTypeChange,
86742 onInput: this.handleInput,
86743 onKeyDown: this.onKeyDown,
86744 ref: function ref(el) {
86745 return _this2.dateInput = el;
86746 }
86747 });
86748
86749 var triggerInput = _react2.default.createElement('div', { className: triggerCls }, _react2.default.createElement(_dateInput2.default, (0, _extends3.default)({}, sharedInputProps, {
86750 label: label,
86751 state: state,
86752 onClick: this.onClick,
86753 hasBorder: hasBorder,
86754 placeholder: placeholder || locale.placeholder,
86755 className: (0, _classnames4.default)(this.prefixCls + '-input')
86756 })));
86757
86758 var panelProps = {
86759 prefix: prefix,
86760 locale: locale,
86761 value: inputing ? this.checkValue(inputStr) : curValue,
86762 // value: curValue,
86763 isRange: isRange,
86764 disabled: disabled,
86765 showHour: format.indexOf('H') > -1,
86766 showSecond: format.indexOf('s') > -1,
86767 showMinute: format.indexOf('m') > -1,
86768 hourStep: hourStep,
86769 minuteStep: minuteStep,
86770 secondStep: secondStep,
86771 disabledHours: disabledHours,
86772 disabledMinutes: disabledMinutes,
86773 disabledSeconds: disabledSeconds,
86774 renderTimeMenuItems: renderTimeMenuItems,
86775 onSelect: this.handleChange
86776 };
86777
86778 var classNames = (0, _classnames4.default)((_classnames2 = {}, _classnames2['' + this.prefixCls] = true, _classnames2[this.prefixCls + '-' + size] = size, _classnames2[prefix + 'disabled'] = disabled, _classnames2), className);
86779
86780 var PopupComponent = popupComponent ? popupComponent : Popup;
86781 var oKable = !!(isRange ? inputValue && inputValue[inputType] : inputValue);
86782
86783 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(TimePicker2.propTypes, others), { className: classNames }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
86784 align: popupAlign
86785 }, popupProps, {
86786 followTrigger: followTrigger,
86787 visible: visible,
86788 onVisibleChange: this.handleVisibleChange,
86789 trigger: triggerInput,
86790 container: popupContainer,
86791 disabled: disabled,
86792 triggerType: popupTriggerType,
86793 style: popupStyle,
86794 className: popupClassName
86795 }), _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, {
86796 prefix: prefix,
86797 className: this.prefixCls + '-footer',
86798 showTime: true,
86799 locale: locale,
86800 oKable: oKable,
86801 showOk: isRange,
86802 onOk: this.onOk,
86803 onChange: this.handleChange,
86804 preset: preset
86805 }) : null))));
86806 };
86807
86808 return TimePicker2;
86809}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
86810 prefix: _propTypes2.default.string,
86811 rtl: _propTypes2.default.bool,
86812 /**
86813 * 按钮的文案
86814 */
86815 label: _propTypes2.default.node,
86816 /**
86817 * 输入框状态
86818 */
86819 state: _propTypes2.default.oneOf(['error', 'success']),
86820 /**
86821 * 输入框提示
86822 */
86823 placeholder: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.string), _propTypes2.default.string]),
86824 /**
86825 * 时间值,dayjs格式或者2020-01-01字符串格式,受控状态使用
86826 */
86827 value: _propTypes4.default.value,
86828 /**
86829 * 时间初值,dayjs格式或者2020-01-01字符串格式,非受控状态使用
86830 */
86831 defaultValue: _propTypes4.default.value,
86832 /**
86833 * 时间选择框的尺寸
86834 */
86835 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
86836 /**
86837 * 是否允许清空时间
86838 */
86839 hasClear: _propTypes2.default.bool,
86840 /**
86841 * 时间的格式
86842 * https://dayjs.gitee.io/docs/zh-CN/display/format
86843 */
86844 format: _propTypes2.default.string,
86845 /**
86846 * 小时选项步长
86847 */
86848 hourStep: _propTypes2.default.number,
86849 /**
86850 * 分钟选项步长
86851 */
86852 minuteStep: _propTypes2.default.number,
86853 /**
86854 * 秒钟选项步长
86855 */
86856 secondStep: _propTypes2.default.number,
86857 /**
86858 * 禁用小时函数
86859 * @param {Number} index 时 0 - 23
86860 * @return {Boolean} 是否禁用
86861 */
86862 disabledHours: _propTypes2.default.func,
86863 /**
86864 * 禁用分钟函数
86865 * @param {Number} index 分 0 - 59
86866 * @return {Boolean} 是否禁用
86867 */
86868 disabledMinutes: _propTypes2.default.func,
86869 /**
86870 * 禁用秒钟函数
86871 * @param {Number} index 秒 0 - 59
86872 * @return {Boolean} 是否禁用
86873 */
86874 disabledSeconds: _propTypes2.default.func,
86875 /**
86876 * 渲染的可选择时间列表
86877 * [{
86878 * label: '01',
86879 * value: 1
86880 * }]
86881 * @param {Array} list 默认渲染的列表
86882 * @param {String} mode 渲染的菜单 hour, minute, second
86883 * @param {dayjs} value 当前时间,可能为 null
86884 * @return {Array} 返回需要渲染的数据
86885 */
86886 renderTimeMenuItems: _propTypes2.default.func,
86887 /**
86888 * 弹层是否显示(受控)
86889 */
86890 visible: _propTypes2.default.bool,
86891 /**
86892 * 弹层默认是否显示(非受控)
86893 */
86894 defaultVisible: _propTypes2.default.bool,
86895 /**
86896 * 弹层容器
86897 * @param {Object} target 目标节点
86898 * @return {ReactNode} 容器节点
86899 */
86900 popupContainer: _propTypes2.default.any,
86901 /**
86902 * 弹层对齐方式, 详情见Overlay 文档
86903 */
86904 popupAlign: _propTypes2.default.string,
86905 /**
86906 * 弹层触发方式
86907 */
86908 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
86909 /**
86910 * 弹层展示状态变化时的回调
86911 * @param {Boolean} visible 弹层是否隐藏和显示
86912 * @param {String} type 触发弹层显示和隐藏的来源 fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
86913 */
86914 onVisibleChange: _propTypes2.default.func,
86915 /**
86916 * 弹层自定义样式
86917 */
86918 popupStyle: _propTypes2.default.object,
86919 /**
86920 * 弹层自定义样式类
86921 */
86922 popupClassName: _propTypes2.default.string,
86923 /**
86924 * 弹层属性
86925 */
86926 popupProps: _propTypes2.default.object,
86927 /**
86928 * 是否跟随滚动
86929 */
86930 followTrigger: _propTypes2.default.bool,
86931 /**
86932 * 是否禁用
86933 */
86934 disabled: _propTypes2.default.bool,
86935 /**
86936 * 输入框是否有边框
86937 */
86938 hasBorder: _propTypes2.default.bool,
86939 /**
86940 * 是否为预览态
86941 */
86942 isPreview: _propTypes2.default.bool,
86943 /**
86944 * 预览态模式下渲染的内容
86945 * @param {DayjsObject} value 时间
86946 */
86947 renderPreview: _propTypes2.default.func,
86948 /**
86949 * 时间值改变时的回调
86950 * @param {DayjsObject} date dayjs时间对象
86951 * @param {Object|String} dateString 时间对象或时间字符串
86952 */
86953 onChange: _propTypes2.default.func,
86954 className: _propTypes2.default.string,
86955 name: _propTypes2.default.string,
86956 /**
86957 * 预设值,会显示在时间面板下面
86958 */
86959 preset: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(presetPropType), presetPropType]),
86960 inputProps: _propTypes2.default.shape(_input2.default.propTypes),
86961 popupComponent: _propTypes2.default.elementType,
86962 type: _propTypes2.default.oneOf(['time', 'range'])
86963}), _class.defaultProps = {
86964 prefix: 'next-',
86965 rtl: false,
86966 locale: timePickerLocale,
86967 size: 'medium',
86968 format: 'HH:mm:ss',
86969 hasClear: true,
86970 disabled: false,
86971 hasBorder: true,
86972 type: 'time',
86973 popupAlign: 'tl bl',
86974 popupTriggerType: 'click',
86975 onChange: noop,
86976 onVisibleChange: noop
86977}, _initialiseProps = function _initialiseProps() {
86978 var _this3 = this;
86979
86980 this.getInitValue = function () {
86981 var props = _this3.props;
86982 var type = props.type,
86983 value = props.value,
86984 defaultValue = props.defaultValue;
86985
86986 var val = type === _constant.TIME_PICKER_TYPE.RANGE ? [null, null] : null;
86987
86988 val = 'value' in props ? value : 'defaultValue' in props ? defaultValue : val;
86989
86990 return _this3.checkValue(val);
86991 };
86992
86993 this.getInitRangeInputState = function () {
86994 return {
86995 justBeginInput: _this3.isEnabled(),
86996 inputType: _this3.isEnabled(0) ? _constant.TIME_INPUT_TYPE.BEGIN : _constant.TIME_INPUT_TYPE.END
86997 };
86998 };
86999
87000 this.onKeyDown = function (e) {
87001 if (e.keyCode === _util.KEYCODE.ENTER) {
87002 var inputValue = _this3.state.inputValue;
87003
87004 _this3.handleChange(inputValue, 'KEYDOWN_ENTER');
87005 _this3.onClick();
87006 return;
87007 }
87008
87009 var _state2 = _this3.state,
87010 value = _state2.value,
87011 inputStr = _state2.inputStr,
87012 inputType = _state2.inputType,
87013 isRange = _state2.isRange;
87014 var _props3 = _this3.props,
87015 format = _props3.format,
87016 _props3$hourStep = _props3.hourStep,
87017 hourStep = _props3$hourStep === undefined ? 1 : _props3$hourStep,
87018 _props3$minuteStep = _props3.minuteStep,
87019 minuteStep = _props3$minuteStep === undefined ? 1 : _props3$minuteStep,
87020 _props3$secondStep = _props3.secondStep,
87021 secondStep = _props3$secondStep === undefined ? 1 : _props3$secondStep,
87022 disabledMinutes = _props3.disabledMinutes,
87023 disabledSeconds = _props3.disabledSeconds;
87024
87025 var unit = 'second';
87026
87027 if (disabledSeconds) {
87028 unit = disabledMinutes ? 'hour' : 'minute';
87029 }
87030
87031 var timeStr = (0, _utils.onTimeKeydown)(e, {
87032 format: format,
87033 timeInputStr: isRange ? inputStr[inputType] : inputStr,
87034 steps: {
87035 hour: hourStep,
87036 minute: minuteStep,
87037 second: secondStep
87038 },
87039 value: value
87040 }, unit);
87041
87042 if (!timeStr) return;
87043 var newInputStr = timeStr;
87044 if (isRange) {
87045 newInputStr = inputStr;
87046 newInputStr[inputType] = timeStr;
87047 }
87048
87049 _this3.handleChange(newInputStr, 'KEYDOWN_CODE');
87050 };
87051
87052 this.onVisibleChange = function (visible, type) {
87053 if (!('visible' in _this3.props)) {
87054 _this3.setState({
87055 visible: visible
87056 });
87057 }
87058 _this3.props.onVisibleChange(visible, type);
87059 };
87060
87061 this.onClick = function () {
87062 var _state3 = _this3.state,
87063 visible = _state3.visible,
87064 inputType = _state3.inputType;
87065
87066 if (!visible) {
87067 _this3.onVisibleChange(true);
87068 _this3.handleInputFocus(inputType);
87069 }
87070 };
87071
87072 this.handleVisibleChange = function (visible, targetType) {
87073 if (targetType === 'docClick') {
87074 // 弹层收起 触发 Change 逻辑
87075 if (!visible) {
87076 _this3.handleChange(_this3.state.curValue, 'VISIBLE_CHANGE');
87077 }
87078 _this3.onVisibleChange(visible);
87079 }
87080 };
87081
87082 this.handleInputFocus = function (inputType) {
87083 var inputEl = _this3.dateInput && _this3.dateInput.input;
87084
87085 if (_this3.state.isRange) {
87086 inputEl = inputEl && inputEl[inputType];
87087 }
87088
87089 inputEl && inputEl.focus();
87090 };
87091
87092 this.onOk = function () {
87093 var curValue = _this3.state.curValue;
87094
87095 var checkedValue = _this3.checkValue(curValue);
87096
87097 _util.func.invoke(_this3.props, 'onOk', _this3.getOutputArgs(checkedValue));
87098
87099 _this3.setState({ value: checkedValue });
87100 _this3.handleChange(checkedValue, 'CLICK_OK');
87101 };
87102
87103 this.onInputTypeChange = function (idx) {
87104 var _state4 = _this3.state,
87105 inputType = _state4.inputType,
87106 visible = _state4.visible;
87107
87108 if (idx !== inputType) {
87109 _this3.setState({
87110 inputType: idx,
87111 justBeginInput: !(idx !== null && visible)
87112 });
87113 }
87114 };
87115
87116 this.checkValue = function (value, strictly) {
87117 var inputType = _this3.state.inputType;
87118
87119 var formatter = function formatter(v) {
87120 return typeof v === 'string' ? (0, _util.datejs)(v, 'HH:mm:ss') : v;
87121 };
87122 var formattedValue = Array.isArray(value) ? value.map(function (v) {
87123 return formatter(v);
87124 }) : formatter(value);
87125
87126 return _this3.props.type === _constant.TIME_PICKER_TYPE.RANGE ? checkRangeDate(formattedValue, inputType, _this3.props.disabled, strictly) : checkDate(formattedValue);
87127 };
87128
87129 this.getOutputArgs = function (value) {
87130 var format = _this3.props.format;
87131
87132 return [value, (0, _util2.fmtValue)(value, format)];
87133 };
87134
87135 this.onChange = function (v) {
87136 var state = _this3.state,
87137 props = _this3.props;
87138 var format = props.format;
87139
87140 var nextValue = v === undefined ? state.value : v;
87141 var value = _this3.checkValue(nextValue);
87142
87143 _this3.setState({
87144 curValue: value,
87145 preValue: value,
87146 inputStr: (0, _util2.fmtValue)(value, format),
87147 inputValue: (0, _util2.fmtValue)(value, format)
87148 });
87149
87150 _util.func.invoke(_this3.props, 'onChange', _this3.getOutputArgs(nextValue));
87151 };
87152
87153 this.shouldSwitchInput = function (value) {
87154 var _state5 = _this3.state,
87155 inputType = _state5.inputType,
87156 justBeginInput = _state5.justBeginInput;
87157
87158 var idx = justBeginInput ? (0, _util2.switchInputType)(inputType) : value.indexOf(null);
87159
87160 if (idx !== -1 && _this3.isEnabled(idx)) {
87161 _this3.onInputTypeChange(idx);
87162 _this3.handleInputFocus(idx);
87163 return true;
87164 }
87165
87166 return false;
87167 };
87168
87169 this.handleChange = function (v, eventType) {
87170 var format = _this3.props.format;
87171 var _state6 = _this3.state,
87172 isRange = _state6.isRange,
87173 value = _state6.value,
87174 preValue = _state6.preValue;
87175
87176 var forceEvents = ['KEYDOWN_ENTER', 'CLICK_PRESET', 'CLICK_OK', 'INPUT_CLEAR', 'VISIBLE_CHANGE'];
87177 var isTemporary = isRange && !forceEvents.includes(eventType);
87178
87179 // 面板收起时候,将值设置为确认值
87180 v = eventType === 'VISIBLE_CHANGE' ? value : _this3.checkValue(v, !isTemporary);
87181
87182 var stringV = (0, _util2.fmtValue)(v, format);
87183
87184 _this3.setState({
87185 curValue: v,
87186 inputStr: stringV,
87187 inputValue: stringV,
87188 inputing: false,
87189 selecting: eventType === 'start' || eventType === 'end'
87190 });
87191
87192 if (!isTemporary) {
87193 _this3.setState({
87194 value: v
87195 }, function () {
87196 // 判断当前选择结束,收起面板:
87197 // 1. 非 Range 选择
87198 // 2. 非 选择预设时间、面板收起、清空输入 操作
87199 // 3. 不需要切换输入框
87200 var shouldHidePanel = ['CLICK_PRESET', 'VISIBLE_CHANGE', 'KEYDOWN_ENTER', 'INPUT_CLEAR', 'CLICK_OK'].includes(eventType) || isRange && !_this3.shouldSwitchInput(v);
87201 if (shouldHidePanel) {
87202 _this3.onVisibleChange(false);
87203 }
87204
87205 if ((0, _util2.isValueChanged)(v, preValue)) {
87206 _this3.onChange(v);
87207 }
87208 });
87209 }
87210 };
87211
87212 this.isEnabled = function (idx) {
87213 var disabled = _this3.props.disabled;
87214
87215 return Array.isArray(disabled) ? idx === undefined ? !disabled[0] && !disabled[1] : !disabled[idx] : !disabled;
87216 };
87217
87218 this.handleClear = function () {
87219 /**
87220 * 清空输入之后 input 组件内部会让第二个输入框获得焦点
87221 * 所以这里需要设置 setTimeout 才能让第一个 input 获得焦点
87222 */
87223 _this3.clearTimeoutId = setTimeout(function () {
87224 _this3.handleInputFocus(0);
87225 });
87226
87227 _this3.setState({
87228 inputType: _constant.TIME_INPUT_TYPE.BEGIN,
87229 justBeginInput: _this3.isEnabled()
87230 });
87231 };
87232
87233 this.handleInput = function (v, eventType) {
87234 var isRange = _this3.state.isRange;
87235
87236 if (eventType === 'clear') {
87237 _this3.handleChange(v, 'INPUT_CLEAR');
87238
87239 if (isRange) {
87240 _this3.handleClear();
87241 }
87242 } else {
87243 _this3.setState({
87244 inputStr: v,
87245 inputValue: v,
87246 curValue: _this3.checkValue(v),
87247 inputing: true,
87248 visible: true
87249 });
87250 }
87251 };
87252}, _temp);
87253TimePicker2.displayName = 'TimePicker2';
87254exports.default = (0, _reactLifecyclesCompat.polyfill)(TimePicker2);
87255module.exports = exports['default'];
87256
87257/***/ }),
87258/* 480 */
87259/***/ (function(module, exports, __webpack_require__) {
87260
87261"use strict";
87262
87263
87264exports.__esModule = true;
87265
87266var _classCallCheck2 = __webpack_require__(2);
87267
87268var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
87269
87270var _possibleConstructorReturn2 = __webpack_require__(3);
87271
87272var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
87273
87274var _inherits2 = __webpack_require__(4);
87275
87276var _inherits3 = _interopRequireDefault(_inherits2);
87277
87278var _class, _temp2;
87279
87280var _react = __webpack_require__(0);
87281
87282var _react2 = _interopRequireDefault(_react);
87283
87284var _propTypes = __webpack_require__(5);
87285
87286var _propTypes2 = _interopRequireDefault(_propTypes);
87287
87288var _classnames2 = __webpack_require__(7);
87289
87290var _classnames3 = _interopRequireDefault(_classnames2);
87291
87292var _utils = __webpack_require__(200);
87293
87294function _interopRequireDefault(obj) {
87295 return obj && obj.__esModule ? obj : { default: obj };
87296}
87297
87298function scrollTo(element, to, duration) {
87299 var requestAnimationFrame = window.requestAnimationFrame || function requestAnimationFrameTimeout() {
87300 return setTimeout(arguments.length <= 0 ? undefined : arguments[0], 10);
87301 };
87302
87303 if (duration <= 0) {
87304 element.scrollTop = to;
87305 return;
87306 }
87307
87308 var difference = to - element.scrollTop;
87309 var perTick = difference / duration * 10;
87310
87311 requestAnimationFrame(function () {
87312 element.scrollTop = element.scrollTop + perTick;
87313
87314 if (element.scrollTop === to) {
87315 return;
87316 }
87317
87318 scrollTo(element, to, duration - 10);
87319 });
87320}
87321
87322var noop = function noop() {};
87323
87324var TimeMenu = (_temp2 = _class = function (_React$Component) {
87325 (0, _inherits3.default)(TimeMenu, _React$Component);
87326
87327 function TimeMenu() {
87328 var _temp, _this, _ret;
87329
87330 (0, _classCallCheck3.default)(this, TimeMenu);
87331
87332 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
87333 args[_key] = arguments[_key];
87334 }
87335
87336 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) {
87337 _this.menu = ref;
87338 }, _this._menuWrapperRefHandler = function (ref) {
87339 _this.menuWrapper = ref;
87340 }, _this.createMenuItems = function (list) {
87341 var _this$props = _this.props,
87342 prefix = _this$props.prefix,
87343 mode = _this$props.mode,
87344 disabled = _this$props.disabled,
87345 disabledItems = _this$props.disabledItems,
87346 activeIndex = _this$props.activeIndex,
87347 onSelect = _this$props.onSelect,
87348 renderTimeMenuItems = _this$props.renderTimeMenuItems,
87349 timeValue = _this$props.value;
87350
87351 list = renderTimeMenuItems(list, mode, timeValue) || list;
87352
87353 return list.map(function (_ref) {
87354 var _classnames;
87355
87356 var label = _ref.label,
87357 value = _ref.value;
87358
87359 var isDisabled = disabled || disabledItems(value);
87360 var itemCls = (0, _classnames3.default)((_classnames = {}, _classnames[_this.prefixCls + '-menu-item'] = true, _classnames[prefix + 'disabled'] = isDisabled, _classnames[prefix + 'selected'] = value === activeIndex, _classnames));
87361 var onClick = isDisabled ? noop : function () {
87362 return onSelect(value, mode);
87363 };
87364 return _react2.default.createElement('li', {
87365 role: 'option',
87366 'aria-selected': String(value === activeIndex),
87367 key: value,
87368 title: value,
87369 className: itemCls,
87370 onClick: onClick
87371 }, label);
87372 });
87373 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
87374 }
87375
87376 TimeMenu.prototype.componentDidMount = function componentDidMount() {
87377 this.scrollToSelected(0);
87378 };
87379
87380 TimeMenu.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
87381 if (prevProps.activeIndex !== this.props.activeIndex) {
87382 this.scrollToSelected(120);
87383 }
87384 };
87385
87386 TimeMenu.prototype.scrollToSelected = function scrollToSelected() {
87387 var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
87388 var _props = this.props,
87389 activeIndex = _props.activeIndex,
87390 step = _props.step;
87391
87392 var targetIndex = Math.floor((activeIndex || 0) / step);
87393 var firstItem = this.menu.children[targetIndex];
87394 var offsetTo = firstItem.offsetTop;
87395 scrollTo(this.menu, offsetTo, duration);
87396 };
87397
87398 TimeMenu.prototype.render = function render() {
87399 var _props2 = this.props,
87400 mode = _props2.mode,
87401 step = _props2.step;
87402
87403 var total = mode === 'hour' ? 24 : 60;
87404 var list = [];
87405 for (var i = 0; i < total; i++) {
87406 if (i % step === 0) {
87407 list.push({
87408 label: i,
87409 value: i
87410 });
87411 }
87412 }
87413
87414 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)));
87415 };
87416
87417 return TimeMenu;
87418}(_react2.default.Component), _class.propTypes = {
87419 prefix: _propTypes2.default.string,
87420 title: _propTypes2.default.node,
87421 mode: _propTypes2.default.oneOf(['hour', 'minute', 'second']),
87422 step: _propTypes2.default.number,
87423 activeIndex: _propTypes2.default.number,
87424 value: _utils.checkDayjsObj,
87425 disabledItems: _propTypes2.default.func,
87426 renderTimeMenuItems: _propTypes2.default.func,
87427 onSelect: _propTypes2.default.func,
87428 disabled: _propTypes2.default.bool
87429}, _class.defaultProps = {
87430 step: 1,
87431 disabledItems: function disabledItems() {
87432 return false;
87433 },
87434 renderTimeMenuItems: function renderTimeMenuItems(list) {
87435 return list;
87436 },
87437 onSelect: function onSelect() {},
87438 disabled: false
87439}, _temp2);
87440TimeMenu.displayName = 'TimeMenu';
87441exports.default = TimeMenu;
87442module.exports = exports['default'];
87443
87444/***/ }),
87445/* 481 */
87446/***/ (function(module, exports, __webpack_require__) {
87447
87448"use strict";
87449
87450
87451exports.__esModule = true;
87452
87453var _extends2 = __webpack_require__(1);
87454
87455var _extends3 = _interopRequireDefault(_extends2);
87456
87457var _objectWithoutProperties2 = __webpack_require__(8);
87458
87459var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
87460
87461var _classCallCheck2 = __webpack_require__(2);
87462
87463var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
87464
87465var _possibleConstructorReturn2 = __webpack_require__(3);
87466
87467var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
87468
87469var _inherits2 = __webpack_require__(4);
87470
87471var _inherits3 = _interopRequireDefault(_inherits2);
87472
87473var _class, _temp;
87474
87475var _react = __webpack_require__(0);
87476
87477var _react2 = _interopRequireDefault(_react);
87478
87479var _reactLifecyclesCompat = __webpack_require__(10);
87480
87481var _propTypes = __webpack_require__(5);
87482
87483var PT = _interopRequireWildcard(_propTypes);
87484
87485var _classnames3 = __webpack_require__(7);
87486
87487var _classnames4 = _interopRequireDefault(_classnames3);
87488
87489var _propTypes2 = __webpack_require__(109);
87490
87491var _propTypes3 = _interopRequireDefault(_propTypes2);
87492
87493var _constant = __webpack_require__(110);
87494
87495var _util = __webpack_require__(6);
87496
87497var _util2 = __webpack_require__(43);
87498
87499var _input = __webpack_require__(18);
87500
87501var _input2 = _interopRequireDefault(_input);
87502
87503var _icon = __webpack_require__(11);
87504
87505var _icon2 = _interopRequireDefault(_icon);
87506
87507function _interopRequireWildcard(obj) {
87508 if (obj && obj.__esModule) {
87509 return obj;
87510 } else {
87511 var newObj = {};if (obj != null) {
87512 for (var key in obj) {
87513 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
87514 }
87515 }newObj.default = obj;return newObj;
87516 }
87517}
87518
87519function _interopRequireDefault(obj) {
87520 return obj && obj.__esModule ? obj : { default: obj };
87521}
87522
87523var DateInput = (_temp = _class = function (_React$Component) {
87524 (0, _inherits3.default)(DateInput, _React$Component);
87525
87526 function DateInput(props) {
87527 (0, _classCallCheck3.default)(this, DateInput);
87528
87529 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
87530
87531 _this.setInputRef = function (el, index) {
87532 if (_this.props.isRange) {
87533 if (!_this.input) {
87534 _this.input = [];
87535 }
87536 _this.input[index] = el;
87537 } else {
87538 _this.input = el;
87539 }
87540 };
87541
87542 _this.setValue = function (v) {
87543 var _this$props = _this.props,
87544 isRange = _this$props.isRange,
87545 inputType = _this$props.inputType,
87546 value = _this$props.value;
87547
87548 var newVal = v;
87549
87550 if (isRange) {
87551 newVal = [].concat(value);
87552 newVal[inputType] = v;
87553 }
87554
87555 return newVal;
87556 };
87557
87558 _this.formatter = function (v) {
87559 var format = _this.props.format;
87560
87561 return typeof format === 'function' ? format(v) : v.format(format);
87562 };
87563
87564 _this.onInput = function (v, e, eventType) {
87565 v = _this.setValue(v);
87566
87567 if (eventType === 'clear') {
87568 v = null;
87569 e.stopPropagation();
87570 }
87571
87572 _util.func.invoke(_this.props, 'onInput', [v, eventType]);
87573 };
87574
87575 _this.handleTypeChange = function (inputType) {
87576 if (inputType !== _this.props.inputType) {
87577 _util.func.invoke(_this.props, 'onInputTypeChange', [inputType]);
87578 }
87579 };
87580
87581 _this.getPlaceholder = function () {
87582 var isRange = _this.props.isRange;
87583
87584 var holder = _this.props.placeholder;
87585
87586 if (isRange && !Array.isArray(holder)) {
87587 holder = Array(2).fill(holder);
87588 }
87589
87590 return holder;
87591 };
87592
87593 _this.getHtmlSize = function () {
87594 var _this$props2 = _this.props,
87595 isRange = _this$props2.isRange,
87596 format = _this$props2.format,
87597 hasBorder = _this$props2.hasBorder;
87598
87599 var value = '12:12:12';
87600 var size = 0;
87601
87602 if (isRange) {
87603 var fmtStr = (0, _util2.fmtValue)([value, value].map(_util.datejs), format);
87604 size = Math.max.apply(Math, fmtStr.map(function (s) {
87605 return s && s.length || 0;
87606 }));
87607 } else {
87608 var _fmtStr = (0, _util2.fmtValue)((0, _util.datejs)(value), format);
87609 size = _fmtStr && _fmtStr.length || 0;
87610 }
87611
87612 return String(Math.max(size, hasBorder ? 12 : 8));
87613 };
87614
87615 _this.prefixCls = props.prefix + 'time-picker2-input';
87616 return _this;
87617 }
87618
87619 /**
87620 * 根据 format 计算输入框 htmlSize
87621 */
87622
87623 DateInput.prototype.render = function render() {
87624 var _classnames2;
87625
87626 var onInput = this.onInput,
87627 setInputRef = this.setInputRef,
87628 handleTypeChange = this.handleTypeChange,
87629 prefixCls = this.prefixCls;
87630 var _props = this.props,
87631 autoFocus = _props.autoFocus,
87632 readOnly = _props.readOnly,
87633 isRange = _props.isRange,
87634 value = _props.value,
87635 onBlur = _props.onBlur,
87636 hasClear = _props.hasClear,
87637 inputType = _props.inputType,
87638 size = _props.size,
87639 focus = _props.focus,
87640 prefix = _props.prefix,
87641 hasBorder = _props.hasBorder,
87642 separator = _props.separator,
87643 disabled = _props.disabled,
87644 inputProps = _props.inputProps,
87645 state = _props.state,
87646 label = _props.label,
87647 onClick = _props.onClick,
87648 onKeyDown = _props.onKeyDown,
87649 restProps = (0, _objectWithoutProperties3.default)(_props, ['autoFocus', 'readOnly', 'isRange', 'value', 'onBlur', 'hasClear', 'inputType', 'size', 'focus', 'prefix', 'hasBorder', 'separator', 'disabled', 'inputProps', 'state', 'label', 'onClick', 'onKeyDown']);
87650
87651 var placeholder = this.getPlaceholder();
87652 var htmlSize = this.getHtmlSize();
87653
87654 var sharedProps = (0, _extends3.default)({}, _util.obj.pickProps(restProps, _input2.default), inputProps, {
87655 size: size,
87656 prefix: prefix,
87657 htmlSize: htmlSize,
87658 readOnly: readOnly,
87659 hasBorder: hasBorder,
87660 onBlur: onBlur,
87661 onChange: onInput,
87662 onClick: onClick,
87663 onKeyDown: onKeyDown
87664 });
87665
87666 var rangeProps = void 0;
87667 if (isRange) {
87668 rangeProps = [_constant.TIME_INPUT_TYPE.BEGIN, _constant.TIME_INPUT_TYPE.END].map(function (idx) {
87669 var _classnames;
87670
87671 var _disabled = Array.isArray(disabled) ? disabled[idx] : disabled;
87672
87673 return (0, _extends3.default)({}, sharedProps, {
87674 autoFocus: autoFocus,
87675 placeholder: placeholder[idx],
87676 value: value[idx] || '',
87677 disabled: _disabled,
87678 ref: function ref(_ref) {
87679 return setInputRef(_ref, idx);
87680 },
87681 onFocus: _disabled ? undefined : function () {
87682 return handleTypeChange(idx);
87683 },
87684 className: (0, _classnames4.default)((_classnames = {}, _classnames[prefixCls + '-active'] = inputType === idx, _classnames))
87685 });
87686 });
87687 }
87688
87689 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) {
87690 return v;
87691 }) : disabled, _classnames2));
87692
87693 var calendarIcon = _react2.default.createElement(_icon2.default, { type: 'clock', className: this.prefixCls + '-symbol-clock-icon' });
87694
87695 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], {
87696 label: label,
87697 hasBorder: false,
87698 autoFocus: autoFocus // eslint-disable-line jsx-a11y/no-autofocus
87699 })), _react2.default.createElement('div', { className: prefixCls + '-separator' }, separator), _react2.default.createElement(_input2.default, (0, _extends3.default)({}, rangeProps[1], {
87700 state: state,
87701 hasBorder: false,
87702 hasClear: !state && hasClear,
87703 hint: state ? null : calendarIcon
87704 }))) : _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedProps, {
87705 label: label,
87706 state: state,
87707 disabled: disabled,
87708 hasClear: !state && hasClear,
87709 placeholder: placeholder,
87710 autoFocus: autoFocus // eslint-disable-line jsx-a11y/no-autofocus
87711 , ref: setInputRef,
87712 value: value || '',
87713 hint: state ? null : calendarIcon
87714 })));
87715 };
87716
87717 return DateInput;
87718}(_react2.default.Component), _class.propTypes = {
87719 prefix: PT.string,
87720 rtl: PT.bool,
87721 locale: PT.object,
87722 value: PT.oneOfType([PT.arrayOf(PT.string), PT.string]),
87723 inputType: _propTypes3.default.inputType,
87724 format: _propTypes3.default.format,
87725 isRange: PT.bool,
87726 hasClear: PT.bool,
87727 onInputTypeChange: PT.func,
87728 autoFocus: PT.bool,
87729 readOnly: _propTypes3.default.readOnly,
87730 placeholder: _propTypes3.default.placeholder,
87731 size: _propTypes3.default.size,
87732 focus: PT.bool,
87733 hasBorder: PT.bool,
87734 onKeyDown: PT.func,
87735 onClick: PT.func,
87736 separator: PT.node,
87737 disabled: _propTypes3.default.disabled,
87738 inputProps: PT.object,
87739 label: PT.node
87740}, _class.defaultProps = {
87741 autoFocus: false,
87742 readOnly: false,
87743 hasClear: true,
87744 separator: '-',
87745 hasBorder: true,
87746 size: 'medium'
87747}, _temp);
87748DateInput.displayName = 'DateInput';
87749exports.default = (0, _reactLifecyclesCompat.polyfill)(DateInput);
87750module.exports = exports['default'];
87751
87752/***/ }),
87753/* 482 */
87754/***/ (function(module, exports, __webpack_require__) {
87755
87756"use strict";
87757
87758
87759exports.__esModule = true;
87760
87761var _extends2 = __webpack_require__(1);
87762
87763var _extends3 = _interopRequireDefault(_extends2);
87764
87765var _typeof2 = __webpack_require__(14);
87766
87767var _typeof3 = _interopRequireDefault(_typeof2);
87768
87769var _objectWithoutProperties2 = __webpack_require__(8);
87770
87771var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
87772
87773var _MODE2FORMAT;
87774
87775var _react = __webpack_require__(0);
87776
87777var _react2 = _interopRequireDefault(_react);
87778
87779var _configProvider = __webpack_require__(9);
87780
87781var _configProvider2 = _interopRequireDefault(_configProvider);
87782
87783var _picker = __webpack_require__(483);
87784
87785var _picker2 = _interopRequireDefault(_picker);
87786
87787var _constant = __webpack_require__(44);
87788
87789function _interopRequireDefault(obj) {
87790 return obj && obj.__esModule ? obj : { default: obj };
87791}
87792
87793var DATE = _constant.DATE_PICKER_MODE.DATE,
87794 WEEK = _constant.DATE_PICKER_MODE.WEEK,
87795 MONTH = _constant.DATE_PICKER_MODE.MONTH,
87796 QUARTER = _constant.DATE_PICKER_MODE.QUARTER,
87797 YEAR = _constant.DATE_PICKER_MODE.YEAR;
87798
87799var MODE2FORMAT = (_MODE2FORMAT = {}, _MODE2FORMAT[DATE] = 'YYYY-MM-DD', _MODE2FORMAT[WEEK] = 'YYYY-wo', _MODE2FORMAT[MONTH] = 'YYYY-MM', _MODE2FORMAT[QUARTER] = 'YYYY-[Q]Q', _MODE2FORMAT[YEAR] = 'YYYY', _MODE2FORMAT);
87800
87801/* istanbul ignore next */
87802var transform = function transform(props, deprecated) {
87803 var footerRender = props.footerRender,
87804 onVisibleMonthChange = props.onVisibleMonthChange,
87805 defaultVisibleMonth = props.defaultVisibleMonth,
87806 ranges = props.ranges,
87807 newProps = (0, _objectWithoutProperties3.default)(props, ['footerRender', 'onVisibleMonthChange', 'defaultVisibleMonth', 'ranges']);
87808
87809 var mode = props.mode || DATE;
87810
87811 if ('footerRender' in props) {
87812 deprecated('footerRender', 'extraFooterRender', 'DatePicker');
87813 newProps.extraFooterRender = footerRender;
87814 }
87815
87816 if (onVisibleMonthChange) {
87817 deprecated('onVisibleMonthChange', 'onPanelChange', 'DatePicker');
87818 newProps.onPanelChange = onVisibleMonthChange;
87819 }
87820
87821 if (defaultVisibleMonth) {
87822 deprecated('defaultVisibleMonth', 'defaultPanelValue', 'DatePicker');
87823 newProps.defaultPanelValue = onVisibleMonthChange;
87824 }
87825
87826 if ('ranges' in props) {
87827 deprecated('ranges', 'preset: PT.oneOfType([PT.array, PT.object])', 'DatePicker');
87828 newProps.preset = ranges;
87829 }
87830
87831 if ([WEEK, MONTH, QUARTER, YEAR].includes(mode)) {
87832 delete newProps.showTime;
87833 } else if ((0, _typeof3.default)(props.showTime) === 'object') {
87834 deprecated('showTime: object', 'showTime && timePanelProps', 'DatePicker');
87835 newProps.timePanelProps = props.showTime;
87836 newProps.showTime = true;
87837 }
87838
87839 if (!newProps.format) {
87840 newProps.format = MODE2FORMAT[mode] + (newProps.showTime ? ' HH:mm:ss' : '');
87841 }
87842
87843 return newProps;
87844};
87845
87846var ConfigPicker = _configProvider2.default.config(_picker2.default, {
87847 componentName: 'DatePicker2',
87848 transform: transform
87849});
87850var generatePicker = function generatePicker(mode) {
87851 return _react2.default.forwardRef(function (props, ref) {
87852 return _react2.default.createElement(ConfigPicker, (0, _extends3.default)({ ref: ref }, props, { mode: mode }));
87853 });
87854};
87855
87856var DatePicker2 = generatePicker();
87857DatePicker2.displayName = 'DatePicker2';
87858
87859DatePicker2.MonthPicker = generatePicker(MONTH);
87860DatePicker2.MonthPicker.displayName = 'MonthPicker2';
87861
87862DatePicker2.YearPicker = generatePicker(YEAR);
87863DatePicker2.YearPicker.displayName = 'YearPicker2';
87864
87865DatePicker2.WeekPicker = generatePicker(WEEK);
87866DatePicker2.WeekPicker.displayName = 'WeekPicker2';
87867
87868DatePicker2.QuarterPicker = generatePicker(QUARTER);
87869DatePicker2.QuarterPicker.displayName = 'QuarterPicker2';
87870
87871DatePicker2.RangePicker = _react2.default.forwardRef(function (props, ref) {
87872 return _react2.default.createElement(ConfigPicker, (0, _extends3.default)({ ref: ref }, props, { type: 'range' }));
87873});
87874DatePicker2.RangePicker.displayName = 'RangePicker2';
87875
87876exports.default = DatePicker2;
87877module.exports = exports['default'];
87878
87879/***/ }),
87880/* 483 */
87881/***/ (function(module, exports, __webpack_require__) {
87882
87883"use strict";
87884
87885
87886exports.__esModule = true;
87887
87888var _objectWithoutProperties2 = __webpack_require__(8);
87889
87890var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
87891
87892var _extends2 = __webpack_require__(1);
87893
87894var _extends3 = _interopRequireDefault(_extends2);
87895
87896var _classCallCheck2 = __webpack_require__(2);
87897
87898var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
87899
87900var _possibleConstructorReturn2 = __webpack_require__(3);
87901
87902var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
87903
87904var _inherits2 = __webpack_require__(4);
87905
87906var _inherits3 = _interopRequireDefault(_inherits2);
87907
87908var _class, _temp, _initialiseProps;
87909
87910var _react = __webpack_require__(0);
87911
87912var _react2 = _interopRequireDefault(_react);
87913
87914var _reactLifecyclesCompat = __webpack_require__(10);
87915
87916var _classnames2 = __webpack_require__(7);
87917
87918var _classnames3 = _interopRequireDefault(_classnames2);
87919
87920var _propTypes = __webpack_require__(5);
87921
87922var PT = _interopRequireWildcard(_propTypes);
87923
87924var _propTypes2 = __webpack_require__(45);
87925
87926var _propTypes3 = _interopRequireDefault(_propTypes2);
87927
87928var _zhCn = __webpack_require__(13);
87929
87930var _zhCn2 = _interopRequireDefault(_zhCn);
87931
87932var _util = __webpack_require__(6);
87933
87934var _util2 = __webpack_require__(43);
87935
87936var _constant = __webpack_require__(44);
87937
87938var _overlay = __webpack_require__(15);
87939
87940var _overlay2 = _interopRequireDefault(_overlay);
87941
87942var _dateInput = __webpack_require__(484);
87943
87944var _dateInput2 = _interopRequireDefault(_dateInput);
87945
87946var _datePanel = __webpack_require__(485);
87947
87948var _datePanel2 = _interopRequireDefault(_datePanel);
87949
87950var _rangePanel = __webpack_require__(489);
87951
87952var _rangePanel2 = _interopRequireDefault(_rangePanel);
87953
87954var _footerPanel = __webpack_require__(201);
87955
87956var _footerPanel2 = _interopRequireDefault(_footerPanel);
87957
87958function _interopRequireWildcard(obj) {
87959 if (obj && obj.__esModule) {
87960 return obj;
87961 } else {
87962 var newObj = {};if (obj != null) {
87963 for (var key in obj) {
87964 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
87965 }
87966 }newObj.default = obj;return newObj;
87967 }
87968}
87969
87970function _interopRequireDefault(obj) {
87971 return obj && obj.__esModule ? obj : { default: obj };
87972}
87973
87974var Popup = _overlay2.default.Popup;
87975var pickProps = _util.obj.pickProps,
87976 pickOthers = _util.obj.pickOthers;
87977var renderNode = _util.func.renderNode,
87978 checkDate = _util.func.checkDate,
87979 checkRangeDate = _util.func.checkRangeDate;
87980var Picker = (_temp = _class = function (_React$Component) {
87981 (0, _inherits3.default)(Picker, _React$Component);
87982
87983 function Picker(props) {
87984 (0, _classCallCheck3.default)(this, Picker);
87985
87986 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
87987
87988 _initialiseProps.call(_this);
87989
87990 var prefix = props.prefix,
87991 type = props.type,
87992 format = props.format,
87993 mode = props.mode,
87994 defaultVisible = props.defaultVisible;
87995
87996 _this.state = {
87997 panelMode: mode,
87998 visible: defaultVisible
87999 };
88000
88001 if (type === _constant.DATE_PICKER_TYPE.RANGE) {
88002 var _this$getInitRangeInp = _this.getInitRangeInputState(),
88003 inputType = _this$getInitRangeInp.inputType,
88004 justBeginInput = _this$getInitRangeInp.justBeginInput;
88005
88006 _this.state = (0, _extends3.default)({
88007 inputType: inputType,
88008 justBeginInput: justBeginInput
88009 }, _this.state);
88010 }
88011
88012 var value = _this.getInitValue();
88013
88014 _this.state = (0, _extends3.default)({
88015 value: value, // 确定值
88016 curValue: value, // 临时值
88017 preValue: value, // 上个值
88018 inputValue: (0, _util2.fmtValue)(value, format)
88019 }, _this.state);
88020
88021 _this.prefixCls = prefix + 'date-picker2';
88022
88023 _this.popupRef = _react2.default.createRef();
88024 return _this;
88025 }
88026
88027 Picker.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
88028 var type = props.type,
88029 showTime = props.showTime,
88030 showOk = props.showOk,
88031 disabled = props.disabled,
88032 format = props.format;
88033
88034 var isRange = type === _constant.DATE_PICKER_TYPE.RANGE;
88035
88036 var newState = {
88037 isRange: isRange,
88038 showOk: !!(showOk || showTime)
88039 };
88040
88041 /**
88042 * 如果当前输入框可能被 disabled
88043 * 且另一个输入框非 disabled 则切换到另一个输入框
88044 */
88045 if (isRange) {
88046 var inputType = state.inputType;
88047
88048 var _disabled = Array.isArray(disabled) ? disabled : [disabled, disabled];
88049
88050 if (_disabled[inputType]) {
88051 var otherType = (0, _util2.switchInputType)(state.inputType);
88052
88053 if (!_disabled[otherType]) {
88054 inputType = otherType;
88055 }
88056 }
88057
88058 newState.inputType = inputType;
88059 }
88060
88061 if ('value' in props) {
88062 var value = isRange ? checkRangeDate(props.value, state.inputType, disabled) : checkDate(props.value);
88063
88064 if ((0, _util2.isValueChanged)(value, state.preValue)) {
88065 newState = (0, _extends3.default)({}, newState, {
88066 value: value,
88067 curValue: value,
88068 preValue: value,
88069 inputValue: (0, _util2.fmtValue)(value, format)
88070 });
88071 }
88072 }
88073
88074 return newState;
88075 };
88076
88077 Picker.prototype.componentWillUnmount = function componentWillUnmount() {
88078 [this.clearTimeoutId, this.timeoutId].forEach(function (id) {
88079 return id && clearTimeout(id);
88080 });
88081 };
88082
88083 /**
88084 * 获取初始值
88085 */
88086
88087 /**
88088 * 获取 RangePicker 输入框初始输入状态
88089 * @returns {Object} inputState
88090 * @returns {boolean} inputState.justBeginInput 是否初始输入
88091 * @returns {number} inputState.inputType 当前输入框
88092 */
88093
88094 /**
88095 * 处理点击文档区域导致的弹层收起逻辑
88096 * @param {boolean} visible 是否可见
88097 * @param {string} type 事件类型
88098 */
88099
88100 Picker.prototype.onVisibleChange = function onVisibleChange(visible) {
88101 var _this2 = this;
88102
88103 if (visible !== this.state.visible) {
88104 var callback = function callback() {
88105 _this2.setState({
88106 visible: visible,
88107 justBeginInput: _this2.isEnabled()
88108 });
88109 };
88110
88111 if (this.timeoutId) {
88112 clearTimeout(this.timeoutId);
88113 this.timeoutId = null;
88114 }
88115
88116 if (visible) {
88117 callback();
88118 } else {
88119 this.timeoutId = setTimeout(callback, 0);
88120 }
88121
88122 _util.func.invoke(this.props, 'onVisibleChange', [visible]);
88123 }
88124 };
88125
88126 /**
88127 * 获取输入框的禁用状态
88128 * @param {Number} idx
88129 * @returns {Boolean}
88130 */
88131
88132 /**
88133 * check if value has disabled value
88134 *
88135 * @param {string|string[]|Dayjs|Dayjs[]} val
88136 * @returns {Boolean}
88137 */
88138
88139 /**
88140 * 获取 `onChange` 和 `onOk` 方法的输出参数
88141 * @param {Dayjs} value
88142 * @returns 默认返回 `Dayjs` 实例和 `format` 格式化的值
88143 * 如果传了了 `outputFormat` 属性则返回 `outputFormat` 格式化的值
88144 */
88145
88146 Picker.prototype.render = function render() {
88147 var _this3 = this,
88148 _classnames;
88149
88150 var prefixCls = this.prefixCls,
88151 handleChange = this.handleChange,
88152 handleMouseDown = this.handleMouseDown,
88153 handleVisibleChange = this.handleVisibleChange,
88154 onOk = this.onOk,
88155 onClick = this.onClick,
88156 handleInput = this.handleInput,
88157 onInputTypeChange = this.onInputTypeChange,
88158 onPanelChange = this.onPanelChange,
88159 onKeyDown = this.onKeyDown;
88160 var _props = this.props,
88161 rtl = _props.rtl,
88162 locale = _props.locale,
88163 prefix = _props.prefix,
88164 inputReadOnly = _props.inputReadOnly,
88165 showTime = _props.showTime,
88166 preset = _props.preset,
88167 mode = _props.mode,
88168 format = _props.format,
88169 trigger = _props.trigger,
88170 disabledDate = _props.disabledDate,
88171 extraFooterRender = _props.extraFooterRender,
88172 timePanelProps = _props.timePanelProps,
88173 resetTime = _props.resetTime,
88174 placeholder = _props.placeholder,
88175 disabledTime = _props.disabledTime,
88176 dateCellRender = _props.dateCellRender,
88177 disabled = _props.disabled,
88178 isPreview = _props.isPreview,
88179 className = _props.className,
88180 defaultPanelValue = _props.defaultPanelValue,
88181 renderPreview = _props.renderPreview,
88182 label = _props.label,
88183 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']);
88184 var _state = this.state,
88185 isRange = _state.isRange,
88186 inputType = _state.inputType,
88187 justBeginInput = _state.justBeginInput,
88188 panelMode = _state.panelMode,
88189 showOk = _state.showOk,
88190 align = _state.align;
88191 var _state2 = this.state,
88192 inputValue = _state2.inputValue,
88193 curValue = _state2.curValue;
88194
88195 var _getPopupOffsetLeft = this.getPopupOffsetLeft(),
88196 arrowLeft = _getPopupOffsetLeft.arrowLeft,
88197 panelLeft = _getPopupOffsetLeft.panelLeft;
88198
88199 // 预览态
88200
88201
88202 if (isPreview) {
88203 var previewCls = (0, _classnames3.default)(className, prefix + 'form-preview');
88204
88205 return _react2.default.createElement('div', { className: previewCls }, renderNode(renderPreview, isRange ? inputValue.join('-') : inputValue, [curValue, this.props]));
88206 }
88207
88208 var visible = 'visible' in this.props ? this.props.visible : this.state.visible;
88209 var allDisabled = isRange && Array.isArray(disabled) ? disabled.every(function (v) {
88210 return v;
88211 }) : disabled;
88212 var sharedProps = {
88213 rtl: rtl,
88214 prefix: prefix,
88215 locale: locale,
88216 mode: mode,
88217 format: format,
88218 showTime: showTime,
88219 inputType: inputType
88220 };
88221
88222 // 输入框
88223 var inputProps = (0, _extends3.default)({}, pickProps(_dateInput2.default.propTypes, restProps), sharedProps, {
88224 value: inputValue,
88225 label: label,
88226 isRange: isRange,
88227 disabled: disabled,
88228 placeholder: placeholder,
88229 onInputTypeChange: onInputTypeChange,
88230 focus: visible,
88231 onInput: handleInput,
88232 readOnly: inputReadOnly,
88233 inputProps: this.props.inputProps,
88234 ref: function ref(el) {
88235 return _this3.dateInput = el;
88236 }
88237 });
88238
88239 // 禁用状态下 不允许清空
88240 if (!this.isEnabled()) {
88241 inputProps.hasClear = false;
88242 }
88243
88244 var triggerNode = renderNode(trigger, _react2.default.createElement(_dateInput2.default, inputProps));
88245
88246 // 日期
88247 var panelProps = (0, _extends3.default)({}, sharedProps, {
88248 panelMode: panelMode,
88249 value: curValue,
88250 disabledDate: disabledDate,
88251 onPanelChange: onPanelChange,
88252 timePanelProps: timePanelProps,
88253 disabledTime: disabledTime,
88254 resetTime: resetTime,
88255 dateCellRender: dateCellRender,
88256 defaultPanelValue: defaultPanelValue,
88257 onSelect: handleChange
88258 });
88259
88260 var DateNode = isRange ? _react2.default.createElement(_rangePanel2.default, (0, _extends3.default)({ justBeginInput: justBeginInput }, panelProps)) : _react2.default.createElement(_datePanel2.default, panelProps);
88261
88262 // 底部节点
88263 var oKable = !!(isRange ? inputValue && inputValue[inputType] : inputValue);
88264 var shouldShowFooter = showOk || preset || extraFooterRender;
88265
88266 var footerNode = shouldShowFooter ? _react2.default.createElement(_footerPanel2.default, {
88267 oKable: oKable,
88268 onOk: onOk,
88269 showOk: showOk,
88270 onChange: handleChange,
88271 preset: preset,
88272 locale: locale,
88273 prefix: prefix,
88274 extraRender: extraFooterRender
88275 }) : null;
88276
88277 var triggerProps = void 0;
88278 if (!allDisabled) {
88279 triggerProps = { onKeyDown: onKeyDown, onClick: onClick };
88280 }
88281
88282 // popup
88283 var _props2 = this.props,
88284 followTrigger = _props2.followTrigger,
88285 popupTriggerType = _props2.popupTriggerType,
88286 popupAlign = _props2.popupAlign,
88287 popupContainer = _props2.popupContainer,
88288 popupStyle = _props2.popupStyle,
88289 popupClassName = _props2.popupClassName,
88290 popupComponent = _props2.popupComponent,
88291 popupProps = _props2.popupProps;
88292
88293 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));
88294 var PopupComp = popupComponent || Popup;
88295
88296 return _react2.default.createElement('div', (0, _extends3.default)({}, pickOthers(Picker.propTypes, restProps), {
88297 dir: rtl ? 'rtl' : undefined,
88298 className: (0, _classnames3.default)(className, prefixCls),
88299 style: this.props.style
88300 }), _react2.default.createElement(PopupComp, (0, _extends3.default)({
88301 rtl: rtl,
88302 key: 'date-picker-popup',
88303 visible: visible,
88304 align: popupAlign,
88305 container: popupContainer,
88306 followTrigger: followTrigger,
88307 triggerType: popupTriggerType,
88308 style: popupStyle,
88309 onVisibleChange: handleVisibleChange,
88310 disabled: allDisabled,
88311 trigger: _react2.default.createElement('div', (0, _extends3.default)({}, triggerProps, { role: 'button', tabIndex: '0', style: { width: '100%' } }), triggerNode),
88312 onPosition: this.getCurrentAlign,
88313 canCloseByTrigger: false
88314 }, popupProps, {
88315 className: popupCls
88316 }), _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))));
88317 };
88318
88319 return Picker;
88320}(_react2.default.Component), _class.propTypes = {
88321 rtl: PT.bool,
88322 prefix: PT.string,
88323 locale: PT.object,
88324 name: PT.string,
88325
88326 // calendar
88327 mode: _propTypes3.default.mode,
88328 type: _propTypes3.default.type,
88329 value: _propTypes3.default.value,
88330 defaultValue: _propTypes3.default.value,
88331 defaultPanelValue: _propTypes3.default.date,
88332 disabledDate: PT.func,
88333 visible: PT.bool,
88334 defaultVisible: PT.bool,
88335 dateCellRender: PT.func,
88336
88337 // event
88338 onOk: PT.func,
88339 onChange: PT.func,
88340 onVisibleChange: PT.func,
88341 onPanelChange: PT.func,
88342
88343 // time
88344 showTime: PT.bool,
88345 resetTime: PT.bool,
88346 timePanelProps: PT.object,
88347 disabledTime: PT.object,
88348
88349 // header
88350 titleRender: PT.func,
88351
88352 // footer
88353 preset: PT.oneOfType([PT.array, PT.object]),
88354 extraFooterRender: _propTypes3.default.render,
88355 showOk: PT.bool,
88356
88357 // input
88358 trigger: _propTypes3.default.render,
88359 hasBorder: PT.bool,
88360 inputProps: PT.object,
88361 hasClear: PT.bool,
88362 placeholder: _propTypes3.default.placeholder,
88363 disabled: _propTypes3.default.disabled,
88364 inputReadOnly: _propTypes3.default.readOnly,
88365 /**
88366 * 日期显示格式
88367 */
88368 format: _propTypes3.default.format,
88369 label: PT.node,
88370 separator: PT.node,
88371 /**
88372 * 输出格式:控制 onChange、onOk 事件的输出值格式
88373 * - string 类型:根据时间格式进行转换
88374 * - function 类型:((date: Dayjs, dateStr: string) => any)
88375 *
88376 * @version 1.23
88377 */
88378 outputFormat: _propTypes3.default.format,
88379
88380 // popup
88381 followTrigger: PT.bool,
88382 popupTriggerType: PT.oneOf(['click', 'hover']),
88383 popupAlign: PT.string,
88384 popupContainer: PT.any,
88385 popupStyle: PT.object,
88386 popupClassName: PT.string,
88387 popupComponent: PT.elementType,
88388 popupProps: PT.object,
88389
88390 // preview
88391 isPreview: PT.bool,
88392 renderPreview: PT.func,
88393
88394 // ariaLabel
88395 dateInputAriaLabel: _propTypes3.default.ariaLabel
88396}, _class.defaultProps = {
88397 rtl: false,
88398 prefix: 'next-',
88399 popupTriggerType: 'click',
88400 locale: _zhCn2.default.DatePicker,
88401 defaultVisible: false,
88402 type: _constant.DATE_PICKER_TYPE.DATE,
88403 mode: _constant.DATE_PICKER_MODE.DATE,
88404 format: 'YYYY-MM-DD'
88405}, _initialiseProps = function _initialiseProps() {
88406 var _this4 = this;
88407
88408 this.getInitValue = function () {
88409 var props = _this4.props;
88410 var type = props.type,
88411 value = props.value,
88412 defaultValue = props.defaultValue;
88413
88414 var val = type === _constant.DATE_PICKER_TYPE.RANGE ? [null, null] : null;
88415
88416 val = 'value' in props ? value : 'defaultValue' in props ? defaultValue : val;
88417
88418 return _this4.checkValue(val);
88419 };
88420
88421 this.getInitRangeInputState = function () {
88422 return {
88423 justBeginInput: _this4.isEnabled(),
88424 inputType: _this4.isEnabled(0) ? _constant.DATE_INPUT_TYPE.BEGIN : _constant.DATE_INPUT_TYPE.END
88425 };
88426 };
88427
88428 this.handleVisibleChange = function (visible, targetType) {
88429 if (['docClick', 'fromTrigger'].indexOf(targetType) > -1) {
88430 // 弹层收起 触发 Change 逻辑
88431 if (!visible) {
88432 _this4.handleChange(_this4.state.curValue, 'VISIBLE_CHANGE');
88433 }
88434 _this4.onVisibleChange(visible);
88435 }
88436 };
88437
88438 this.checkValue = function (value, strictly) {
88439 return _this4.props.type === _constant.DATE_PICKER_TYPE.RANGE ? checkRangeDate(value, _this4.state.inputType, _this4.props.disabled, strictly) : checkDate(value);
88440 };
88441
88442 this.handleInputFocus = function (inputType) {
88443 var inputEl = _this4.dateInput && _this4.dateInput.input;
88444
88445 if (_this4.state.isRange) {
88446 inputEl = inputEl && inputEl[inputType];
88447 }
88448
88449 inputEl && inputEl.focus();
88450 };
88451
88452 this.handleMouseDown = function (e) {
88453 e.preventDefault();
88454 };
88455
88456 this.handleInput = function (v, eventType) {
88457 if (eventType === 'clear') {
88458 _this4.handleChange(v, 'INPUT_CLEAR');
88459
88460 if (_this4.state.isRange) {
88461 _this4.handleClear();
88462 }
88463 } else {
88464 _this4.setState({
88465 inputValue: v,
88466 visible: true
88467 });
88468 }
88469 };
88470
88471 this.onPanelChange = function (value, mode) {
88472 _this4.setState({
88473 panelMode: mode
88474 });
88475 _util.func.invoke(_this4.props, 'onPanelChange', [value, mode]);
88476 };
88477
88478 this.handleClear = function () {
88479 /**
88480 * 清空输入之后 input 组件内部会让第二个输入框获得焦点
88481 * 所以这里需要设置 setTimeout 才能让第一个 input 获得焦点
88482 */
88483 _this4.clearTimeoutId = setTimeout(function () {
88484 _this4.handleInputFocus(0);
88485 });
88486
88487 _this4.setState({
88488 inputType: _constant.DATE_INPUT_TYPE.BEGIN,
88489 justBeginInput: _this4.isEnabled()
88490 });
88491 };
88492
88493 this.shouldSwitchInput = function (value) {
88494 var _state3 = _this4.state,
88495 inputType = _state3.inputType,
88496 justBeginInput = _state3.justBeginInput;
88497
88498 var idx = justBeginInput ? (0, _util2.switchInputType)(inputType) : value.indexOf(null);
88499
88500 if (idx !== -1 && _this4.isEnabled(idx)) {
88501 _this4.onInputTypeChange(idx);
88502 _this4.handleInputFocus(idx);
88503 return true;
88504 }
88505
88506 return false;
88507 };
88508
88509 this.isEnabled = function (idx) {
88510 var disabled = _this4.props.disabled;
88511
88512 return Array.isArray(disabled) ? idx === undefined ? !disabled[0] && !disabled[1] : !disabled[idx] : !disabled;
88513 };
88514
88515 this.checkValueDisabled = function (val) {
88516 var disabledDate = _this4.props.disabledDate;
88517 var panelMode = _this4.state.panelMode;
88518
88519 var values = (Array.isArray(val) ? val : [val]).map(function (value) {
88520 return checkDate(value);
88521 });
88522
88523 if (!disabledDate) {
88524 return false;
88525 }
88526
88527 return values.some(function (value) {
88528 return disabledDate(value, panelMode);
88529 });
88530 };
88531
88532 this.onKeyDown = function (e) {
88533 switch (e.keyCode) {
88534 case _util.KEYCODE.ENTER:
88535 {
88536 var inputValue = _this4.state.inputValue;
88537
88538 _this4.onClick();
88539 if (_this4.checkValueDisabled(inputValue)) {
88540 // reset inputValue when current inputValue is disabled
88541 _this4.handleChange(inputValue, 'VISIBLE_CHANGE');
88542 return;
88543 }
88544 _this4.handleChange(inputValue, 'KEYDOWN_ENTER');
88545 break;
88546 }
88547 default:
88548 return;
88549 }
88550 };
88551
88552 this.handleChange = function (v, eventType) {
88553 var format = _this4.props.format;
88554 var _state4 = _this4.state,
88555 isRange = _state4.isRange,
88556 showOk = _state4.showOk,
88557 value = _state4.value,
88558 preValue = _state4.preValue;
88559
88560 var forceEvents = ['KEYDOWN_ENTER', 'CLICK_PRESET', 'CLICK_OK', 'INPUT_CLEAR', 'VISIBLE_CHANGE'];
88561 var isTemporary = showOk && !forceEvents.includes(eventType);
88562
88563 // 面板收起时候,将值设置为确认值
88564 v = eventType === 'VISIBLE_CHANGE' ? value : _this4.checkValue(v, !isTemporary);
88565
88566 _this4.setState({
88567 curValue: v,
88568 inputValue: (0, _util2.fmtValue)(v, format)
88569 });
88570
88571 if (!isTemporary) {
88572 _this4.setState({
88573 value: v
88574 }, function () {
88575 // 判断当前选择结束,收起面板:
88576 // 1. 非 Range 选择
88577 // 2. 非 选择预设时间、面板收起、清空输入 操作
88578 // 3. 不需要切换输入框
88579 var shouldHidePanel = !isRange || ['CLICK_PRESET', 'VISIBLE_CHANGE', 'INPUT_CLEAR'].includes(eventType) || !_this4.shouldSwitchInput(v);
88580
88581 if (shouldHidePanel) {
88582 _this4.onVisibleChange(false);
88583
88584 if ((0, _util2.isValueChanged)(v, preValue)) {
88585 _this4.onChange();
88586 }
88587 }
88588 });
88589 }
88590 };
88591
88592 this.onChange = function () {
88593 var state = _this4.state,
88594 props = _this4.props;
88595 var format = props.format;
88596
88597 var value = _this4.checkValue('value' in props ? props.value : state.value);
88598
88599 _this4.setState({
88600 curValue: value,
88601 preValue: value,
88602 inputValue: (0, _util2.fmtValue)(value, format)
88603 });
88604
88605 _util.func.invoke(_this4.props, 'onChange', _this4.getOutputArgs(state.value));
88606 };
88607
88608 this.onOk = function () {
88609 var inputValue = _this4.state.inputValue;
88610
88611 var checkedValue = _this4.checkValue(inputValue);
88612
88613 _util.func.invoke(_this4.props, 'onOk', _this4.getOutputArgs(checkedValue));
88614
88615 _this4.setState({ value: checkedValue });
88616 _this4.handleChange(checkedValue, 'CLICK_OK');
88617 };
88618
88619 this.onInputTypeChange = function (idx) {
88620 var _state5 = _this4.state,
88621 inputType = _state5.inputType,
88622 visible = _state5.visible;
88623
88624 if (idx !== inputType) {
88625 _this4.setState({
88626 inputType: idx,
88627 justBeginInput: !(idx !== null && visible)
88628 });
88629 }
88630 };
88631
88632 this.onClick = function () {
88633 var _state6 = _this4.state,
88634 visible = _state6.visible,
88635 inputType = _state6.inputType;
88636
88637 if (!visible) {
88638 _this4.handleInputFocus(inputType);
88639 }
88640 };
88641
88642 this.getOutputArgs = function (value) {
88643 var _props3 = _this4.props,
88644 outputFormat = _props3.outputFormat,
88645 format = _props3.format;
88646
88647 if (outputFormat) {
88648 return [(0, _util2.fmtValue)(value, outputFormat)];
88649 }
88650 return [value, (0, _util2.fmtValue)(value, format)];
88651 };
88652
88653 this.getCurrentAlign = function (_ref) {
88654 var align = _ref.align;
88655
88656 _this4.setState({
88657 align: align
88658 });
88659 };
88660
88661 this.getRangeInputOffsetLeft = function () {
88662 var left = _this4.dateInput && _this4.dateInput.input && _this4.dateInput.input[_this4.state.inputType] && _this4.dateInput.input[_this4.state.inputType].getInputNode().offsetLeft;
88663
88664 return left;
88665 };
88666
88667 this.getPopupOffsetLeft = function () {
88668 var inputOffsetLeft = _this4.getRangeInputOffsetLeft();
88669 var popupElement = _this4.popupRef.current;
88670 var popupElementWidth = popupElement ? popupElement.offsetWidth : 0;
88671
88672 // 弹层宽度大于输入元素长度,只偏移 arrow
88673 if (popupElementWidth > 1.2 * inputOffsetLeft) {
88674 return {
88675 arrowLeft: inputOffsetLeft,
88676 panelLeft: 0
88677 };
88678 } else {
88679 // 否则 panel 整体偏移,arrow 随 panel 整体偏移
88680 return {
88681 arrowLeft: 0,
88682 panelLeft: inputOffsetLeft
88683 };
88684 }
88685 };
88686
88687 this.renderArrow = function (left) {
88688 return _react2.default.createElement('div', { key: 'arrow', className: _this4.props.prefix + 'range-picker2-arrow', style: { left: left } });
88689 };
88690}, _temp);
88691Picker.displayName = 'Picker';
88692exports.default = (0, _reactLifecyclesCompat.polyfill)(Picker);
88693module.exports = exports['default'];
88694
88695/***/ }),
88696/* 484 */
88697/***/ (function(module, exports, __webpack_require__) {
88698
88699"use strict";
88700
88701
88702exports.__esModule = true;
88703
88704var _extends2 = __webpack_require__(1);
88705
88706var _extends3 = _interopRequireDefault(_extends2);
88707
88708var _objectWithoutProperties2 = __webpack_require__(8);
88709
88710var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
88711
88712var _classCallCheck2 = __webpack_require__(2);
88713
88714var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
88715
88716var _possibleConstructorReturn2 = __webpack_require__(3);
88717
88718var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
88719
88720var _inherits2 = __webpack_require__(4);
88721
88722var _inherits3 = _interopRequireDefault(_inherits2);
88723
88724var _class, _temp;
88725
88726var _react = __webpack_require__(0);
88727
88728var _react2 = _interopRequireDefault(_react);
88729
88730var _reactLifecyclesCompat = __webpack_require__(10);
88731
88732var _propTypes = __webpack_require__(5);
88733
88734var PT = _interopRequireWildcard(_propTypes);
88735
88736var _classnames3 = __webpack_require__(7);
88737
88738var _classnames4 = _interopRequireDefault(_classnames3);
88739
88740var _propTypes2 = __webpack_require__(45);
88741
88742var _propTypes3 = _interopRequireDefault(_propTypes2);
88743
88744var _constant = __webpack_require__(44);
88745
88746var _util = __webpack_require__(6);
88747
88748var _util2 = __webpack_require__(43);
88749
88750var _input = __webpack_require__(18);
88751
88752var _input2 = _interopRequireDefault(_input);
88753
88754var _icon = __webpack_require__(11);
88755
88756var _icon2 = _interopRequireDefault(_icon);
88757
88758function _interopRequireWildcard(obj) {
88759 if (obj && obj.__esModule) {
88760 return obj;
88761 } else {
88762 var newObj = {};if (obj != null) {
88763 for (var key in obj) {
88764 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
88765 }
88766 }newObj.default = obj;return newObj;
88767 }
88768}
88769
88770function _interopRequireDefault(obj) {
88771 return obj && obj.__esModule ? obj : { default: obj };
88772}
88773
88774var DATE = _constant.DATE_PICKER_MODE.DATE,
88775 WEEK = _constant.DATE_PICKER_MODE.WEEK,
88776 MONTH = _constant.DATE_PICKER_MODE.MONTH,
88777 QUARTER = _constant.DATE_PICKER_MODE.QUARTER,
88778 YEAR = _constant.DATE_PICKER_MODE.YEAR;
88779var DateInput = (_temp = _class = function (_React$Component) {
88780 (0, _inherits3.default)(DateInput, _React$Component);
88781
88782 function DateInput(props) {
88783 (0, _classCallCheck3.default)(this, DateInput);
88784
88785 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
88786
88787 _this.setInputRef = function (el, index) {
88788 if (_this.props.isRange) {
88789 if (!_this.input) {
88790 _this.input = [];
88791 }
88792 _this.input[index] = el;
88793 } else {
88794 _this.input = el;
88795 }
88796 };
88797
88798 _this.setValue = function (v) {
88799 var _this$props = _this.props,
88800 isRange = _this$props.isRange,
88801 inputType = _this$props.inputType,
88802 value = _this$props.value;
88803
88804 var newVal = v;
88805
88806 if (isRange) {
88807 newVal = [].concat(value);
88808 newVal[inputType] = v;
88809 }
88810
88811 return newVal;
88812 };
88813
88814 _this.formatter = function (v) {
88815 var format = _this.props.format;
88816
88817 return typeof format === 'function' ? format(v) : v.format(format);
88818 };
88819
88820 _this.onInput = function (v, e, eventType) {
88821 v = _this.setValue(v);
88822
88823 if (eventType === 'clear') {
88824 v = null;
88825 e.stopPropagation();
88826 }
88827
88828 _util.func.invoke(_this.props, 'onInput', [v, eventType]);
88829 };
88830
88831 _this.handleTypeChange = function (inputType) {
88832 if (inputType !== _this.props.inputType) {
88833 _util.func.invoke(_this.props, 'onInputTypeChange', [inputType]);
88834 }
88835 };
88836
88837 _this.getPlaceholder = function () {
88838 var _mode2placeholder;
88839
88840 var _this$props2 = _this.props,
88841 locale = _this$props2.locale,
88842 isRange = _this$props2.isRange,
88843 mode = _this$props2.mode;
88844 var placeholder = locale.placeholder,
88845 selectDate = locale.selectDate,
88846 monthPlaceholder = locale.monthPlaceholder,
88847 weekPlaceholder = locale.weekPlaceholder,
88848 yearPlaceholder = locale.yearPlaceholder,
88849 startPlaceholder = locale.startPlaceholder,
88850 quarterPlaceholder = locale.quarterPlaceholder,
88851 endPlaceholder = locale.endPlaceholder;
88852
88853 var mode2placeholder = (_mode2placeholder = {}, _mode2placeholder[DATE] = selectDate, _mode2placeholder[WEEK] = weekPlaceholder, _mode2placeholder[MONTH] = monthPlaceholder, _mode2placeholder[QUARTER] = quarterPlaceholder, _mode2placeholder[YEAR] = yearPlaceholder, _mode2placeholder);
88854
88855 var holder = _this.props.placeholder;
88856
88857 holder = holder || (isRange ? [startPlaceholder, endPlaceholder] : mode2placeholder[mode] || placeholder);
88858
88859 if (isRange && !Array.isArray(holder)) {
88860 holder = Array(2).fill(holder);
88861 }
88862
88863 return holder;
88864 };
88865
88866 _this.getHtmlSize = function () {
88867 var _this$props3 = _this.props,
88868 isRange = _this$props3.isRange,
88869 format = _this$props3.format,
88870 hasBorder = _this$props3.hasBorder;
88871
88872 var value = '2020-12-12 12:12:12';
88873 var size = 0;
88874
88875 if (isRange) {
88876 var fmtStr = (0, _util2.fmtValue)([value, value].map(_util.datejs), format);
88877 size = Math.max.apply(Math, fmtStr.map(function (s) {
88878 return s && s.length || 0;
88879 }));
88880 } else {
88881 var _fmtStr = (0, _util2.fmtValue)((0, _util.datejs)(value), format);
88882 (0, _util2.fmtValue)((0, _util.datejs)(value), format);
88883 size = _fmtStr && _fmtStr.length || 0;
88884 }
88885
88886 return String(Math.max(size, hasBorder ? 12 : 8));
88887 };
88888
88889 _this.prefixCls = props.prefix + 'date-picker2-input';
88890 return _this;
88891 }
88892
88893 /**
88894 * 根据 format 计算输入框 htmlSize
88895 */
88896
88897 DateInput.prototype.render = function render() {
88898 var _classnames2;
88899
88900 var onInput = this.onInput,
88901 setInputRef = this.setInputRef,
88902 handleTypeChange = this.handleTypeChange,
88903 prefixCls = this.prefixCls;
88904 var _props = this.props,
88905 autoFocus = _props.autoFocus,
88906 readOnly = _props.readOnly,
88907 isRange = _props.isRange,
88908 value = _props.value,
88909 prefix = _props.prefix,
88910 hasClear = _props.hasClear,
88911 inputType = _props.inputType,
88912 size = _props.size,
88913 focus = _props.focus,
88914 hasBorder = _props.hasBorder,
88915 separator = _props.separator,
88916 disabled = _props.disabled,
88917 inputProps = _props.inputProps,
88918 dateInputAriaLabel = _props.dateInputAriaLabel,
88919 state = _props.state,
88920 label = _props.label,
88921 restProps = (0, _objectWithoutProperties3.default)(_props, ['autoFocus', 'readOnly', 'isRange', 'value', 'prefix', 'hasClear', 'inputType', 'size', 'focus', 'hasBorder', 'separator', 'disabled', 'inputProps', 'dateInputAriaLabel', 'state', 'label']);
88922
88923 var placeholder = this.getPlaceholder();
88924 var htmlSize = this.getHtmlSize();
88925
88926 var sharedProps = (0, _extends3.default)({}, _util.obj.pickProps(restProps, _input2.default), inputProps, {
88927 size: size,
88928 htmlSize: htmlSize,
88929 readOnly: readOnly,
88930 hasBorder: false,
88931 onChange: onInput
88932 });
88933
88934 var rangeProps = void 0;
88935 if (isRange) {
88936 rangeProps = [_constant.DATE_INPUT_TYPE.BEGIN, _constant.DATE_INPUT_TYPE.END].map(function (idx) {
88937 var _classnames;
88938
88939 var _disabled = Array.isArray(disabled) ? disabled[idx] : disabled;
88940
88941 return (0, _extends3.default)({}, sharedProps, {
88942 autoFocus: autoFocus,
88943 placeholder: placeholder[idx],
88944 value: value[idx] || '',
88945 'aria-label': Array.isArray(dateInputAriaLabel) ? dateInputAriaLabel[idx] : dateInputAriaLabel,
88946 disabled: _disabled,
88947 ref: function ref(_ref) {
88948 return setInputRef(_ref, idx);
88949 },
88950 onFocus: _disabled ? undefined : function () {
88951 return handleTypeChange(idx);
88952 },
88953 className: (0, _classnames4.default)((_classnames = {}, _classnames[prefixCls + '-active'] = inputType === idx, _classnames))
88954 });
88955 });
88956 }
88957
88958 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) {
88959 return v;
88960 }) : disabled, _classnames2));
88961
88962 var calendarIcon = _react2.default.createElement(_icon2.default, { type: 'calendar', className: prefix + 'date-picker2-symbol-calendar-icon' });
88963
88964 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], {
88965 label: label,
88966 autoFocus: autoFocus // eslint-disable-line jsx-a11y/no-autofocus
88967 })), _react2.default.createElement('div', { className: prefixCls + '-separator' }, separator), _react2.default.createElement(_input2.default, (0, _extends3.default)({}, rangeProps[1], {
88968 state: state,
88969 hasClear: !state && hasClear,
88970 hint: state ? null : calendarIcon
88971 }))) : _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedProps, {
88972 label: label,
88973 state: state,
88974 disabled: disabled,
88975 hasClear: !state && hasClear,
88976 placeholder: placeholder,
88977 autoFocus: autoFocus // eslint-disable-line jsx-a11y/no-autofocus
88978 , ref: setInputRef,
88979 'aria-label': dateInputAriaLabel,
88980 value: value || '',
88981 hint: state ? null : calendarIcon
88982 })));
88983 };
88984
88985 return DateInput;
88986}(_react2.default.Component), _class.propTypes = {
88987 prefix: PT.string,
88988 rtl: PT.bool,
88989 locale: PT.object,
88990 value: _propTypes3.default.inputValue,
88991 inputType: _propTypes3.default.inputType,
88992 format: _propTypes3.default.format,
88993 isRange: PT.bool,
88994 hasClear: PT.bool,
88995 onInputTypeChange: PT.func,
88996 autoFocus: PT.bool,
88997 readOnly: _propTypes3.default.readOnly,
88998 placeholder: _propTypes3.default.placeholder,
88999 size: _propTypes3.default.size,
89000 focus: PT.bool,
89001 hasBorder: PT.bool,
89002 separator: PT.node,
89003 disabled: _propTypes3.default.disabled,
89004 inputProps: PT.object,
89005 dateInputAriaLabel: _propTypes3.default.ariaLabel,
89006 label: PT.node
89007}, _class.defaultProps = {
89008 autoFocus: false,
89009 readOnly: false,
89010 hasClear: true,
89011 separator: '-',
89012 hasBorder: true,
89013 size: 'medium'
89014}, _temp);
89015DateInput.displayName = 'DateInput';
89016exports.default = (0, _reactLifecyclesCompat.polyfill)(DateInput);
89017module.exports = exports['default'];
89018
89019/***/ }),
89020/* 485 */
89021/***/ (function(module, exports, __webpack_require__) {
89022
89023"use strict";
89024
89025
89026exports.__esModule = true;
89027
89028var _extends2 = __webpack_require__(1);
89029
89030var _extends3 = _interopRequireDefault(_extends2);
89031
89032var _typeof2 = __webpack_require__(14);
89033
89034var _typeof3 = _interopRequireDefault(_typeof2);
89035
89036var _objectWithoutProperties2 = __webpack_require__(8);
89037
89038var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
89039
89040var _classCallCheck2 = __webpack_require__(2);
89041
89042var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
89043
89044var _possibleConstructorReturn2 = __webpack_require__(3);
89045
89046var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
89047
89048var _inherits2 = __webpack_require__(4);
89049
89050var _inherits3 = _interopRequireDefault(_inherits2);
89051
89052var _class, _temp, _initialiseProps;
89053
89054var _react = __webpack_require__(0);
89055
89056var _react2 = _interopRequireDefault(_react);
89057
89058var _reactLifecyclesCompat = __webpack_require__(10);
89059
89060var _classnames2 = __webpack_require__(7);
89061
89062var _classnames3 = _interopRequireDefault(_classnames2);
89063
89064var _propTypes = __webpack_require__(5);
89065
89066var PT = _interopRequireWildcard(_propTypes);
89067
89068var _propTypes2 = __webpack_require__(45);
89069
89070var _propTypes3 = _interopRequireDefault(_propTypes2);
89071
89072var _util = __webpack_require__(6);
89073
89074var _util2 = __webpack_require__(43);
89075
89076var _calendar = __webpack_require__(111);
89077
89078var _calendar2 = _interopRequireDefault(_calendar);
89079
89080var _timePanel = __webpack_require__(203);
89081
89082var _timePanel2 = _interopRequireDefault(_timePanel);
89083
89084function _interopRequireWildcard(obj) {
89085 if (obj && obj.__esModule) {
89086 return obj;
89087 } else {
89088 var newObj = {};if (obj != null) {
89089 for (var key in obj) {
89090 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
89091 }
89092 }newObj.default = obj;return newObj;
89093 }
89094}
89095
89096function _interopRequireDefault(obj) {
89097 return obj && obj.__esModule ? obj : { default: obj };
89098}
89099
89100var DatePanel = (_temp = _class = function (_React$Component) {
89101 (0, _inherits3.default)(DatePanel, _React$Component);
89102
89103 function DatePanel(props) {
89104 (0, _classCallCheck3.default)(this, DatePanel);
89105
89106 // 默认时间
89107 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
89108
89109 _initialiseProps.call(_this);
89110
89111 var _props$timePanelProps = props.timePanelProps,
89112 timePanelProps = _props$timePanelProps === undefined ? {} : _props$timePanelProps;
89113
89114 var defaultTime = timePanelProps.defaultValue;
89115
89116 if (defaultTime) {
89117 // fix: https://github.com/alibaba-fusion/next/issues/3203
89118 defaultTime = (0, _util.datejs)(defaultTime, typeof defaultTime === 'string' ? timePanelProps.format || 'HH:mm:ss' : undefined);
89119 }
89120
89121 _this.state = {
89122 defaultTime: defaultTime
89123 };
89124 return _this;
89125 }
89126
89127 DatePanel.prototype.render = function render() {
89128 var _classnames;
89129
89130 var _props = this.props,
89131 mode = _props.mode,
89132 panelMode = _props.panelMode,
89133 prefix = _props.prefix,
89134 showTime = _props.showTime,
89135 value = _props.value,
89136 disabledDate = _props.disabledDate,
89137 disabledTime = _props.disabledTime,
89138 timePanelProps = _props.timePanelProps,
89139 dateCellRender = _props.dateCellRender,
89140 restProps = (0, _objectWithoutProperties3.default)(_props, ['mode', 'panelMode', 'prefix', 'showTime', 'value', 'disabledDate', 'disabledTime', 'timePanelProps', 'dateCellRender']);
89141
89142 var className = (0, _classnames3.default)(prefix + 'date-picker2-panel', (_classnames = {}, _classnames[prefix + 'date-time-picker2-panel'] = showTime, _classnames));
89143
89144 // 禁用时间
89145 var _disabledTime = void 0;
89146 if (showTime && mode === panelMode && disabledTime) {
89147 _disabledTime = typeof disabledTime === 'function' ? disabledTime(value) : disabledTime;
89148 if ((typeof _disabledTime === 'undefined' ? 'undefined' : (0, _typeof3.default)(_disabledTime)) !== 'object') {
89149 _disabledTime = null;
89150 }
89151 }
89152
89153 return _react2.default.createElement('div', { className: className }, _react2.default.createElement(_calendar2.default, (0, _extends3.default)({}, _util.obj.pickProps(_calendar2.default.propTypes, restProps), {
89154 shape: 'panel',
89155 value: value,
89156 panelMode: mode,
89157 colNum: showTime ? 6 : undefined,
89158 onSelect: this.handleSelect,
89159 onPanelChange: this.handlePanelChange,
89160 disabledDate: disabledDate,
89161 dateCellRender: dateCellRender
89162 })), showTime && mode === panelMode ? _react2.default.createElement(_timePanel2.default, (0, _extends3.default)({}, _util.obj.pickProps(_timePanel2.default.propTypes, restProps), {
89163 prefix: prefix,
89164 value: value || this.state.defaultTime,
89165 onSelect: this.onTimeSelect,
89166 disabledTime: disabledTime,
89167 timePanelProps: (0, _extends3.default)({}, _disabledTime, timePanelProps)
89168 })) : null);
89169 };
89170
89171 return DatePanel;
89172}(_react2.default.Component), _class.propTypes = {
89173 rtl: PT.bool,
89174 prefix: PT.string,
89175 locale: PT.object,
89176 mode: _propTypes3.default.mode,
89177 panelMode: PT.any,
89178 value: _propTypes3.default.date,
89179 disabledDate: PT.func,
89180 showTime: PT.bool,
89181 resetTime: PT.bool,
89182 timePanelProps: PT.object,
89183 disabledTime: _propTypes3.default.disabledTime,
89184 dateCellRender: PT.func
89185}, _class.defaultProps = {
89186 showTime: false,
89187 resetTime: false
89188}, _initialiseProps = function _initialiseProps() {
89189 var _this2 = this;
89190
89191 this.onTimeSelect = function (v) {
89192 _this2.handleSelect(v, true);
89193 };
89194
89195 this.handleSelect = function (v, fromTimeChange) {
89196 var defaultTime = _this2.state.defaultTime;
89197
89198 var timeVal = null;
89199
89200 if (!_this2.props.resetTime && !fromTimeChange) {
89201 timeVal = _this2.props.value || defaultTime || (0, _util.datejs)();
89202 }
89203
89204 v = (0, _util2.setTime)(v, timeVal);
89205
89206 _util.func.invoke(_this2.props, 'onSelect', [v]);
89207 };
89208
89209 this.handlePanelChange = function (v, mode) {
89210 _util.func.invoke(_this2.props, 'onPanelChange', [v, mode]);
89211 };
89212}, _temp);
89213DatePanel.displayName = 'DatePanel';
89214exports.default = (0, _reactLifecyclesCompat.polyfill)(DatePanel);
89215module.exports = exports['default'];
89216
89217/***/ }),
89218/* 486 */
89219/***/ (function(module, exports, __webpack_require__) {
89220
89221"use strict";
89222
89223
89224exports.__esModule = true;
89225
89226var _extends2 = __webpack_require__(1);
89227
89228var _extends3 = _interopRequireDefault(_extends2);
89229
89230var _objectWithoutProperties2 = __webpack_require__(8);
89231
89232var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
89233
89234var _classCallCheck2 = __webpack_require__(2);
89235
89236var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
89237
89238var _possibleConstructorReturn2 = __webpack_require__(3);
89239
89240var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
89241
89242var _inherits2 = __webpack_require__(4);
89243
89244var _inherits3 = _interopRequireDefault(_inherits2);
89245
89246var _class, _temp, _initialiseProps;
89247
89248var _react = __webpack_require__(0);
89249
89250var _react2 = _interopRequireDefault(_react);
89251
89252var _reactLifecyclesCompat = __webpack_require__(10);
89253
89254var _propTypes = __webpack_require__(5);
89255
89256var PT = _interopRequireWildcard(_propTypes);
89257
89258var _classnames = __webpack_require__(7);
89259
89260var _classnames2 = _interopRequireDefault(_classnames);
89261
89262var _zhCn = __webpack_require__(13);
89263
89264var _zhCn2 = _interopRequireDefault(_zhCn);
89265
89266var _util = __webpack_require__(6);
89267
89268var _propTypes2 = __webpack_require__(202);
89269
89270var _propTypes3 = _interopRequireDefault(_propTypes2);
89271
89272var _constant = __webpack_require__(52);
89273
89274var _headerPanel = __webpack_require__(487);
89275
89276var _headerPanel2 = _interopRequireDefault(_headerPanel);
89277
89278var _dateTable = __webpack_require__(488);
89279
89280var _dateTable2 = _interopRequireDefault(_dateTable);
89281
89282function _interopRequireWildcard(obj) {
89283 if (obj && obj.__esModule) {
89284 return obj;
89285 } else {
89286 var newObj = {};if (obj != null) {
89287 for (var key in obj) {
89288 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
89289 }
89290 }newObj.default = obj;return newObj;
89291 }
89292}
89293
89294function _interopRequireDefault(obj) {
89295 return obj && obj.__esModule ? obj : { default: obj };
89296}
89297
89298var pickProps = _util.obj.pickProps,
89299 pickOthers = _util.obj.pickOthers;
89300
89301// CALENDAR_MODE => DATE_PANEL_MODE
89302
89303function getPanelMode(mode) {
89304 return mode && (mode === _constant.CALENDAR_MODE.YEAR ? _constant.DATE_PANEL_MODE.MONTH : _constant.DATE_PANEL_MODE.DATE);
89305}
89306
89307function isValueChanged(newVal, oldVal) {
89308 return newVal !== oldVal && !(0, _util.datejs)(newVal).isSame((0, _util.datejs)(oldVal));
89309}
89310
89311var Calendar = (_temp = _class = function (_React$Component) {
89312 (0, _inherits3.default)(Calendar, _React$Component);
89313
89314 function Calendar(props) {
89315 (0, _classCallCheck3.default)(this, Calendar);
89316
89317 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
89318
89319 _initialiseProps.call(_this);
89320
89321 var defaultValue = props.defaultValue,
89322 mode = props.mode,
89323 _props$defaultPanelVa = props.defaultPanelValue,
89324 defaultPanelValue = _props$defaultPanelVa === undefined ? (0, _util.datejs)() : _props$defaultPanelVa;
89325
89326 var value = 'value' in props ? props.value : defaultValue;
89327 var panelValue = (0, _util.datejs)('panelValue' in props ? props.panelValue : value || defaultPanelValue);
89328 var panelMode = props.panelMode || getPanelMode(mode) || _constant.DATE_PANEL_MODE.DATE;
89329
89330 _this.state = {
89331 mode: mode,
89332 value: value,
89333 panelMode: panelMode,
89334 panelValue: panelValue.isValid() ? panelValue : (0, _util.datejs)()
89335 };
89336 return _this;
89337 }
89338
89339 Calendar.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
89340 var newState = null;
89341 var value = void 0;
89342 var panelValue = void 0;
89343
89344 if ('value' in props && isValueChanged(props.value, state.value)) {
89345 value = props.value;
89346 panelValue = (0, _util.datejs)(value);
89347 }
89348
89349 if ('panelValue' in props) {
89350 panelValue = (0, _util.datejs)(props.panelValue);
89351 }
89352
89353 // panelValue不能是无效值
89354 if (panelValue) {
89355 panelValue = panelValue.isValid() ? panelValue : (0, _util.datejs)();
89356 newState = {
89357 panelValue: panelValue
89358 };
89359 }
89360 if (value) {
89361 newState.value = value;
89362 }
89363
89364 return newState;
89365 };
89366
89367 Calendar.prototype.render = function render() {
89368 var value = 'value' in this.props ? (0, _util.datejs)(this.props.value) : this.state.value;
89369 var _state = this.state,
89370 panelMode = _state.panelMode,
89371 mode = _state.mode,
89372 panelValue = _state.panelValue;
89373 var _props = this.props,
89374 prefix = _props.prefix,
89375 shape = _props.shape,
89376 rtl = _props.rtl,
89377 className = _props.className,
89378 restProps = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'shape', 'rtl', 'className']);
89379
89380 var sharedProps = {
89381 rtl: rtl,
89382 prefix: prefix,
89383 shape: shape,
89384 value: value,
89385 panelValue: panelValue
89386 };
89387
89388 var headerPanelProps = (0, _extends3.default)({}, pickProps(_headerPanel2.default.propTypes, restProps), sharedProps, {
89389 mode: mode,
89390 panelMode: panelMode,
89391 onPanelValueChange: this.onPanelValueChange,
89392 onModeChange: this.onModeChange,
89393 onPanelModeChange: this.onPanelModeChange,
89394 showModeSwitch: this.props.mode !== _constant.CALENDAR_MODE.YEAR
89395 });
89396
89397 var dateTableProps = (0, _extends3.default)({}, pickProps(_dateTable2.default.propTypes, restProps), sharedProps, {
89398 mode: panelMode,
89399 onSelect: this.onDateSelect
89400 });
89401
89402 var classNames = (0, _classnames2.default)([prefix + 'calendar2', prefix + 'calendar2-' + shape, className]);
89403
89404 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)));
89405 };
89406
89407 return Calendar;
89408}(_react2.default.Component), _class.propTypes = {
89409 rtl: PT.bool,
89410 name: PT.string,
89411 prefix: PT.string,
89412 locale: PT.object,
89413 /**
89414 * 展现形态
89415 */
89416 shape: _propTypes3.default.shape,
89417 /*
89418 * 日期模式: month | year
89419 */
89420 mode: _propTypes3.default.mode,
89421 /**
89422 * 默认选中的日期(受控)
89423 */
89424 value: _propTypes3.default.date,
89425 /**
89426 * 默认选中的日期
89427 */
89428 defaultValue: _propTypes3.default.date,
89429 /**
89430 * 面板显示的日期(受控)
89431 */
89432 panelValue: _propTypes3.default.date,
89433 /**
89434 * 面板默认显示的日期
89435 */
89436 defaultPanelValue: _propTypes3.default.date,
89437 /**
89438 * 不可选择的日期
89439 */
89440 disabledDate: PT.func,
89441 /**
89442 * 可显示的日期范围
89443 */
89444 validRange: PT.arrayOf(_propTypes3.default.date),
89445 /**
89446 * 自定义日期渲染
89447 */
89448 dateCellRender: PT.func,
89449 quarterCellRender: PT.func,
89450 monthCellRender: PT.func,
89451 yearCellRender: PT.func,
89452 /**
89453 * 自定义头部渲染
89454 */
89455 headerRender: PT.func,
89456 /**
89457 * 日期变化回调
89458 */
89459 onChange: PT.func,
89460 /**
89461 * 点击选择日期回调
89462 */
89463 onSelect: PT.func,
89464 /**
89465 * 日期面板变化回调
89466 */
89467 onPanelChange: PT.func,
89468 cellProps: PT.object,
89469 cellClassName: PT.oneOfType([PT.func, PT.string]),
89470 panelMode: PT.any,
89471 onPrev: PT.func,
89472 onNext: PT.func,
89473 onSuperPrev: PT.func,
89474 onSuperNext: PT.func,
89475 colNum: PT.number
89476}, _class.defaultProps = {
89477 rtl: false,
89478 prefix: 'next-',
89479 locale: _zhCn2.default.Calendar,
89480 shape: _constant.CALENDAR_SHAPE.FULLSCREEN,
89481 mode: _constant.CALENDAR_MODE.MONTH
89482}, _initialiseProps = function _initialiseProps() {
89483 var _this2 = this;
89484
89485 this.switchPanelMode = function (mode) {
89486 var MONTH = _constant.DATE_PANEL_MODE.MONTH,
89487 YEAR = _constant.DATE_PANEL_MODE.YEAR,
89488 DECADE = _constant.DATE_PANEL_MODE.DECADE;
89489
89490 var originalPanelMode = _this2.props.panelMode || getPanelMode(mode);
89491
89492 switch (mode) {
89493 case YEAR:
89494 return MONTH;
89495 case DECADE:
89496 return YEAR;
89497 default:
89498 return originalPanelMode;
89499 }
89500 };
89501
89502 this.shouldSwitchPanelMode = function () {
89503 var _props2 = _this2.props,
89504 mode = _props2.mode,
89505 shape = _props2.shape;
89506 var panelMode = _this2.state.panelMode;
89507
89508 var originalPanelMode = _this2.props.panelMode || getPanelMode(mode);
89509 return shape === _constant.CALENDAR_SHAPE.PANEL && panelMode !== originalPanelMode;
89510 };
89511
89512 this.onDateSelect = function (value, _, _ref) {
89513 var isCurrent = _ref.isCurrent;
89514 var panelMode = _this2.state.panelMode;
89515
89516 var unit = panelMode === 'date' ? 'day' : panelMode;
89517
89518 if (_this2.shouldSwitchPanelMode()) {
89519 _this2.onPanelChange(value, _this2.switchPanelMode(panelMode), 'DATESELECT_VALUE_SWITCH_MODE');
89520 } else {
89521 isCurrent || _this2.onPanelValueChange(value, 'DATESELECT');
89522 value.isSame(_this2.state.value, unit) || _this2.onChange(value);
89523
89524 _util.func.invoke(_this2.props, 'onSelect', [value]);
89525 }
89526 };
89527
89528 this.onModeChange = function (mode, reason) {
89529 _this2.setState({
89530 mode: mode
89531 });
89532 var panelMode = getPanelMode(mode);
89533
89534 if (_this2.state.panelMode !== panelMode) {
89535 _this2.onPanelModeChange(panelMode, reason);
89536 }
89537 };
89538
89539 this.onPanelValueChange = function (panelValue, reason) {
89540 _this2.onPanelChange(panelValue, _this2.state.panelMode, reason);
89541 };
89542
89543 this.onPanelModeChange = function (panelMode, reason) {
89544 _this2.onPanelChange(_this2.state.panelValue, panelMode, reason);
89545 };
89546
89547 this.onPanelChange = function (value, mode, reason) {
89548 _this2.setState({
89549 panelMode: mode,
89550 panelValue: value
89551 });
89552
89553 _util.func.invoke(_this2.props, 'onPanelChange', [value, mode, reason]);
89554 };
89555
89556 this.onChange = function (value) {
89557 _this2.setState({
89558 value: value,
89559 panelValue: value
89560 });
89561 _util.func.invoke(_this2.props, 'onChange', [value]);
89562 };
89563}, _temp);
89564Calendar.displayName = 'Calendar';
89565exports.default = (0, _reactLifecyclesCompat.polyfill)(Calendar);
89566module.exports = exports['default'];
89567
89568/***/ }),
89569/* 487 */
89570/***/ (function(module, exports, __webpack_require__) {
89571
89572"use strict";
89573
89574
89575exports.__esModule = true;
89576
89577var _extends2 = __webpack_require__(1);
89578
89579var _extends3 = _interopRequireDefault(_extends2);
89580
89581var _classCallCheck2 = __webpack_require__(2);
89582
89583var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
89584
89585var _possibleConstructorReturn2 = __webpack_require__(3);
89586
89587var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
89588
89589var _inherits2 = __webpack_require__(4);
89590
89591var _inherits3 = _interopRequireDefault(_inherits2);
89592
89593var _class, _temp;
89594
89595var _react = __webpack_require__(0);
89596
89597var _react2 = _interopRequireDefault(_react);
89598
89599var _reactLifecyclesCompat = __webpack_require__(10);
89600
89601var _propTypes = __webpack_require__(5);
89602
89603var PT = _interopRequireWildcard(_propTypes);
89604
89605var _util = __webpack_require__(6);
89606
89607var _constant = __webpack_require__(52);
89608
89609var _radio = __webpack_require__(50);
89610
89611var _radio2 = _interopRequireDefault(_radio);
89612
89613var _select = __webpack_require__(29);
89614
89615var _select2 = _interopRequireDefault(_select);
89616
89617var _button = __webpack_require__(17);
89618
89619var _button2 = _interopRequireDefault(_button);
89620
89621var _icon = __webpack_require__(11);
89622
89623var _icon2 = _interopRequireDefault(_icon);
89624
89625function _interopRequireWildcard(obj) {
89626 if (obj && obj.__esModule) {
89627 return obj;
89628 } else {
89629 var newObj = {};if (obj != null) {
89630 for (var key in obj) {
89631 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
89632 }
89633 }newObj.default = obj;return newObj;
89634 }
89635}
89636
89637function _interopRequireDefault(obj) {
89638 return obj && obj.__esModule ? obj : { default: obj };
89639}
89640
89641var renderNode = _util.func.renderNode;
89642var DATE = _constant.DATE_PANEL_MODE.DATE,
89643 WEEK = _constant.DATE_PANEL_MODE.WEEK,
89644 QUARTER = _constant.DATE_PANEL_MODE.QUARTER,
89645 MONTH = _constant.DATE_PANEL_MODE.MONTH,
89646 YEAR = _constant.DATE_PANEL_MODE.YEAR,
89647 DECADE = _constant.DATE_PANEL_MODE.DECADE;
89648var HeaderPanel = (_temp = _class = function (_React$PureComponent) {
89649 (0, _inherits3.default)(HeaderPanel, _React$PureComponent);
89650
89651 function HeaderPanel(props) {
89652 (0, _classCallCheck3.default)(this, HeaderPanel);
89653
89654 var _this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call(this, props));
89655
89656 _this.createPanelBtns = function (_ref) {
89657 var unit = _ref.unit,
89658 _ref$num = _ref.num,
89659 num = _ref$num === undefined ? 1 : _ref$num,
89660 _ref$isSuper = _ref.isSuper,
89661 isSuper = _ref$isSuper === undefined ? true : _ref$isSuper;
89662
89663 var value = _this.props.panelValue.clone();
89664 var prefixCls = _this.prefixCls;
89665
89666 var iconTypes = isSuper ? ['arrow-double-left', 'arrow-double-right'] : ['arrow-left', 'arrow-right'];
89667
89668 return [_react2.default.createElement(_button2.default, {
89669 text: true,
89670 className: prefixCls + '-btn ' + prefixCls + '-left-btn',
89671 onClick: function onClick() {
89672 return _this.handleClick(value, { num: num, unit: unit, isSuper: isSuper, isNext: false });
89673 },
89674 key: 'prev-btn-' + unit
89675 }, _react2.default.createElement(_icon2.default, { type: iconTypes[0] })), _react2.default.createElement(_button2.default, {
89676 text: true,
89677 className: prefixCls + '-btn ' + prefixCls + '-right-btn',
89678 onClick: function onClick() {
89679 return _this.handleClick(value, { num: num, unit: unit, isSuper: isSuper, isNext: true });
89680 },
89681 key: 'next-btn-' + unit
89682 }, _react2.default.createElement(_icon2.default, { type: iconTypes[1] }))];
89683 };
89684
89685 _this.renderModeSwitch = function () {
89686 var _this$props = _this.props,
89687 mode = _this$props.mode,
89688 locale = _this$props.locale,
89689 onModeChange = _this$props.onModeChange;
89690
89691 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));
89692 };
89693
89694 _this.renderMonthSelect = function () {
89695 var prefixCls = _this.prefixCls;
89696 var _this$props2 = _this.props,
89697 panelValue = _this$props2.panelValue,
89698 onPanelValueChange = _this$props2.onPanelValueChange;
89699
89700 var curMonth = panelValue.month();
89701 var dataSource = _util.datejs.monthsShort().map(function (label, value) {
89702 return {
89703 label: label,
89704 value: value
89705 };
89706 });
89707
89708 return _react2.default.createElement(_select2.default, {
89709 className: prefixCls + '-select-month',
89710 popupClassName: prefixCls + '-select-month-popup',
89711 value: curMonth,
89712 dataSource: dataSource,
89713 onChange: function onChange(v) {
89714 return onPanelValueChange(panelValue.month(v));
89715 }
89716 });
89717 };
89718
89719 _this.prefixCls = props.prefix + 'calendar2-header';
89720 return _this;
89721 }
89722
89723 HeaderPanel.prototype.handleClick = function handleClick(value, _ref2) {
89724 var unit = _ref2.unit,
89725 num = _ref2.num,
89726 isSuper = _ref2.isSuper,
89727 isNext = _ref2.isNext;
89728 var _props = this.props,
89729 onPanelValueChange = _props.onPanelValueChange,
89730 onPrev = _props.onPrev,
89731 onSuperPrev = _props.onSuperPrev,
89732 onNext = _props.onNext,
89733 onSuperNext = _props.onSuperNext;
89734
89735 var handler = void 0;
89736
89737 if (isSuper) {
89738 handler = isNext ? onSuperNext : onSuperPrev;
89739 } else {
89740 handler = isNext ? onNext : onPrev;
89741 }
89742
89743 if (handler) {
89744 handler(value, { unit: unit, num: num });
89745 } else {
89746 var m = isNext ? 'add' : 'subtract';
89747 onPanelValueChange(value[m](num, unit), 'PANEL');
89748 }
89749 };
89750
89751 HeaderPanel.prototype.renderYearSelect = function renderYearSelect() {
89752 var prefixCls = this.prefixCls;
89753 var _props2 = this.props,
89754 validValue = _props2.validValue,
89755 panelValue = _props2.panelValue,
89756 onPanelValueChange = _props2.onPanelValueChange;
89757
89758 var curYear = panelValue.year();
89759
89760 var beginYear = void 0;
89761 var endYear = void 0;
89762
89763 // TODO 有效区间
89764 if (validValue) {
89765 var begin = validValue[0],
89766 end = validValue[1];
89767
89768 beginYear = begin.year();
89769 endYear = end.year();
89770 } else {
89771 for (var i = 0; i < 20; i++) {
89772 beginYear = curYear - 10;
89773 endYear = curYear + 10;
89774 }
89775 }
89776 var dataSource = [];
89777 for (var _i = beginYear; _i < endYear; _i++) {
89778 dataSource.push({ label: _i, value: _i });
89779 }
89780
89781 return _react2.default.createElement(_select2.default, {
89782 key: 'year-select',
89783 className: prefixCls + '-select-year',
89784 popupClassName: prefixCls + '-select-year-popup',
89785 value: curYear,
89786 dataSource: dataSource,
89787 onChange: function onChange(v) {
89788 return onPanelValueChange(panelValue.year(v));
89789 }
89790 });
89791 };
89792
89793 HeaderPanel.prototype.renderTextField = function renderTextField() {
89794 var prefixCls = this.prefixCls;
89795 var _props3 = this.props,
89796 panelValue = _props3.panelValue,
89797 locale = _props3.locale,
89798 panelMode = _props3.panelMode,
89799 onPanelModeChange = _props3.onPanelModeChange;
89800
89801 var monthBeforeYear = locale.monthBeforeYear || false;
89802 var localeData = _util.datejs.localeData();
89803
89804 var year = panelValue.year() + (locale && locale.year === '年' ? '年' : '');
89805 var month = localeData.monthsShort()[panelValue.month()];
89806 var DATE = _constant.DATE_PANEL_MODE.DATE,
89807 WEEK = _constant.DATE_PANEL_MODE.WEEK,
89808 QUARTER = _constant.DATE_PANEL_MODE.QUARTER,
89809 MONTH = _constant.DATE_PANEL_MODE.MONTH,
89810 YEAR = _constant.DATE_PANEL_MODE.YEAR,
89811 DECADE = _constant.DATE_PANEL_MODE.DECADE;
89812
89813 var nodes = void 0;
89814 var yearNode = _react2.default.createElement(_button2.default, {
89815 text: true,
89816 key: 'year-btn',
89817 tabIndex: -1,
89818 className: prefixCls + '-btn',
89819 onClick: function onClick() {
89820 return onPanelModeChange(YEAR);
89821 }
89822 }, year);
89823
89824 switch (panelMode) {
89825 case DATE:
89826 case WEEK:
89827 {
89828 var monthNode = _react2.default.createElement(_button2.default, {
89829 text: true,
89830 key: 'month-btn',
89831 tabIndex: -1,
89832 className: prefixCls + '-btn',
89833 onClick: function onClick() {
89834 return onPanelModeChange(MONTH);
89835 }
89836 }, month);
89837 nodes = monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];
89838 break;
89839 }
89840
89841 case MONTH:
89842 case QUARTER:
89843 {
89844 nodes = yearNode;
89845 break;
89846 }
89847
89848 case YEAR:
89849 {
89850 var curYear = panelValue.year();
89851 var start = curYear - curYear % 10;
89852 var end = start + 9;
89853 nodes = _react2.default.createElement(_button2.default, {
89854 text: true,
89855 key: 'decade-btn',
89856 tabIndex: -1,
89857 className: prefixCls + '-btn',
89858 onClick: function onClick() {
89859 return onPanelModeChange(DECADE);
89860 }
89861 }, this.props.rtl ? end + '-' + start : start + '-' + end);
89862 break;
89863 }
89864 case DECADE:
89865 {
89866 var _curYear = panelValue.year();
89867 var _start = _curYear - _curYear % 100;
89868 var _end = _start + 99;
89869
89870 nodes = this.props.rtl ? _end + '-' + _start : _start + '-' + _end;
89871 break;
89872 }
89873 }
89874
89875 return _react2.default.createElement('div', { key: 'header-text-field', className: prefixCls + '-text-field' }, nodes);
89876 };
89877
89878 HeaderPanel.prototype.renderPanelHeader = function renderPanelHeader() {
89879 var createPanelBtns = this.createPanelBtns;
89880 var panelMode = this.props.panelMode;
89881
89882 var nodes = [];
89883
89884 var textFieldNode = this.renderTextField();
89885
89886 switch (panelMode) {
89887 case DATE:
89888 case WEEK:
89889 {
89890 var _createPanelBtns = createPanelBtns({
89891 unit: 'month',
89892 isSuper: false
89893 }),
89894 preMonthBtn = _createPanelBtns[0],
89895 nextMonthBtn = _createPanelBtns[1];
89896
89897 var _createPanelBtns2 = createPanelBtns({
89898 unit: 'year'
89899 }),
89900 preYearBtn = _createPanelBtns2[0],
89901 nextYearBtn = _createPanelBtns2[1];
89902
89903 nodes = [preYearBtn, preMonthBtn, textFieldNode, nextMonthBtn, nextYearBtn];
89904 break;
89905 }
89906 case QUARTER:
89907 case MONTH:
89908 {
89909 var _createPanelBtns3 = createPanelBtns({
89910 unit: 'year'
89911 }),
89912 _preYearBtn = _createPanelBtns3[0],
89913 _nextYearBtn = _createPanelBtns3[1];
89914
89915 nodes = [_preYearBtn, textFieldNode, _nextYearBtn];
89916 break;
89917 }
89918 case YEAR:
89919 {
89920 var _createPanelBtns4 = createPanelBtns({
89921 unit: 'year',
89922 num: 10
89923 }),
89924 preDecadeBtn = _createPanelBtns4[0],
89925 nextDecadeBtn = _createPanelBtns4[1];
89926
89927 nodes = [preDecadeBtn, textFieldNode, nextDecadeBtn];
89928 break;
89929 }
89930 case DECADE:
89931 {
89932 var _createPanelBtns5 = createPanelBtns({
89933 unit: 'year',
89934 num: 100
89935 }),
89936 preCenturyBtn = _createPanelBtns5[0],
89937 nextCenturyBtn = _createPanelBtns5[1];
89938
89939 nodes = [preCenturyBtn, textFieldNode, nextCenturyBtn];
89940 break;
89941 }
89942 }
89943
89944 return nodes;
89945 };
89946
89947 HeaderPanel.prototype.renderInner = function renderInner() {
89948 var prefixCls = this.prefixCls;
89949 var _props4 = this.props,
89950 shape = _props4.shape,
89951 showTitle = _props4.showTitle,
89952 value = _props4.value,
89953 mode = _props4.mode,
89954 showModeSwitch = _props4.showModeSwitch;
89955
89956 var nodes = [];
89957
89958 if (shape === _constant.CALENDAR_SHAPE.PANEL) {
89959 return this.renderPanelHeader();
89960 } else {
89961 if (showTitle) {
89962 nodes.push(_react2.default.createElement('div', { key: 'title', className: prefixCls + '-title' }, renderNode(this.props.titleRender, value.format(), [value])));
89963 }
89964 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))));
89965 }
89966
89967 return nodes;
89968 };
89969
89970 HeaderPanel.prototype.render = function render() {
89971 return _react2.default.createElement('div', { className: '' + this.prefixCls }, renderNode(this.props.headerRender, this.renderInner(), [].concat(this.props)));
89972 };
89973
89974 return HeaderPanel;
89975}(_react2.default.PureComponent), _class.propTypes = {
89976 rtl: PT.bool,
89977 prefix: PT.string,
89978 locale: PT.object,
89979 mode: PT.any,
89980 shape: PT.string,
89981 value: PT.any,
89982 panelMode: PT.any,
89983 panelValue: PT.any,
89984 validValue: PT.any,
89985 showTitle: PT.bool,
89986 showModeSwitch: PT.bool,
89987 onModeChange: PT.func,
89988 onPanelValueChange: PT.func,
89989 onPanelModeChange: PT.func,
89990 onPrev: PT.func,
89991 onNext: PT.func,
89992 onSuperPrev: PT.func,
89993 onSuperNext: PT.func,
89994 titleRender: PT.func,
89995 /**
89996 * 扩展操作区域渲染
89997 */
89998 renderHeaderExtra: PT.func,
89999 /**
90000 * 自定义头部渲染
90001 */
90002 headerRender: PT.func
90003}, _class.defaultProps = {
90004 showTitle: false
90005}, _temp);
90006exports.default = (0, _reactLifecyclesCompat.polyfill)(HeaderPanel);
90007module.exports = exports['default'];
90008
90009/***/ }),
90010/* 488 */
90011/***/ (function(module, exports, __webpack_require__) {
90012
90013"use strict";
90014
90015
90016exports.__esModule = true;
90017
90018var _extends3 = __webpack_require__(1);
90019
90020var _extends4 = _interopRequireDefault(_extends3);
90021
90022var _classCallCheck2 = __webpack_require__(2);
90023
90024var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
90025
90026var _possibleConstructorReturn2 = __webpack_require__(3);
90027
90028var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
90029
90030var _inherits2 = __webpack_require__(4);
90031
90032var _inherits3 = _interopRequireDefault(_inherits2);
90033
90034var _mode2Rows, _class, _temp;
90035
90036var _react = __webpack_require__(0);
90037
90038var _react2 = _interopRequireDefault(_react);
90039
90040var _reactLifecyclesCompat = __webpack_require__(10);
90041
90042var _classnames2 = __webpack_require__(7);
90043
90044var _classnames3 = _interopRequireDefault(_classnames2);
90045
90046var _propTypes = __webpack_require__(5);
90047
90048var PT = _interopRequireWildcard(_propTypes);
90049
90050var _propTypes2 = __webpack_require__(202);
90051
90052var _propTypes3 = _interopRequireDefault(_propTypes2);
90053
90054var _constant = __webpack_require__(52);
90055
90056var _util = __webpack_require__(6);
90057
90058function _interopRequireWildcard(obj) {
90059 if (obj && obj.__esModule) {
90060 return obj;
90061 } else {
90062 var newObj = {};if (obj != null) {
90063 for (var key in obj) {
90064 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
90065 }
90066 }newObj.default = obj;return newObj;
90067 }
90068}
90069
90070function _interopRequireDefault(obj) {
90071 return obj && obj.__esModule ? obj : { default: obj };
90072}
90073
90074var bindCtx = _util.func.bindCtx,
90075 renderNode = _util.func.renderNode;
90076var DATE = _constant.DATE_PANEL_MODE.DATE,
90077 WEEK = _constant.DATE_PANEL_MODE.WEEK,
90078 MONTH = _constant.DATE_PANEL_MODE.MONTH,
90079 QUARTER = _constant.DATE_PANEL_MODE.QUARTER,
90080 YEAR = _constant.DATE_PANEL_MODE.YEAR,
90081 DECADE = _constant.DATE_PANEL_MODE.DECADE;
90082
90083// 面板行数
90084
90085var mode2Rows = (_mode2Rows = {}, _mode2Rows[DATE] = 7, _mode2Rows[WEEK] = 7, _mode2Rows[MONTH] = 4, _mode2Rows[QUARTER] = 4, _mode2Rows[YEAR] = 4, _mode2Rows[DECADE] = 3, _mode2Rows);
90086
90087var DateTable = (_temp = _class = function (_React$Component) {
90088 (0, _inherits3.default)(DateTable, _React$Component);
90089
90090 function DateTable(props) {
90091 (0, _classCallCheck3.default)(this, DateTable);
90092
90093 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
90094
90095 _this.getCustomRender = function (mode) {
90096 var _mode2RenderName;
90097
90098 var mode2RenderName = (_mode2RenderName = {}, _mode2RenderName[DATE] = 'dateCellRender', _mode2RenderName[QUARTER] = 'quarterCellRender', _mode2RenderName[MONTH] = 'monthCellRender', _mode2RenderName[YEAR] = 'yearCellRender', _mode2RenderName);
90099
90100 return _this.props[mode2RenderName[mode]];
90101 };
90102
90103 _this.prefixCls = props.prefix + 'calendar2';
90104
90105 bindCtx(_this, ['getDateCellData', 'getMonthCellData', 'getQuarterCellData', 'getYearCellData', 'getDecadeData', 'handleKeyDown', 'handleSelect', 'handleMouseEnter', 'handleMouseLeave']);
90106
90107 _this.state = {
90108 hoverValue: null
90109 };
90110 return _this;
90111 }
90112
90113 DateTable.prototype.handleSelect = function handleSelect(v, e, args) {
90114 _util.func.invoke(this.props, 'onSelect', [v, e, args]);
90115 };
90116
90117 DateTable.prototype.handleKeyDown = function handleKeyDown(v, e, args) {
90118 switch (e.keyCode) {
90119 case _util.KEYCODE.ENTER:
90120 this.handleSelect(v, e, args);
90121 break;
90122 case _util.KEYCODE.RIGHT:
90123 break;
90124 }
90125 // e.preventDefault();
90126 };
90127
90128 DateTable.prototype.handleMouseEnter = function handleMouseEnter(v, e, args) {
90129 _util.func.invoke(this.props.cellProps, 'onMouseEnter', [v, e, args]);
90130 };
90131
90132 DateTable.prototype.handleMouseLeave = function handleMouseLeave(v, e, args) {
90133 _util.func.invoke(this.props.cellProps, 'onMouseLeave', [v, e, args]);
90134 };
90135
90136 DateTable.prototype.isSame = function isSame(curDate, date, mode) {
90137 switch (mode) {
90138 case DATE:
90139 return curDate.isSame(date, 'day');
90140 case WEEK:
90141 return curDate.isSame(date, 'week');
90142 case QUARTER:
90143 return curDate.isSame(date, 'quarter');
90144 case MONTH:
90145 return curDate.isSame(date, 'month');
90146 case YEAR:
90147 return curDate.isSame(date, 'year');
90148 case DECADE:
90149 {
90150 var curYear = curDate.year();
90151 var targetYear = date.year();
90152 return curYear <= targetYear && targetYear < curYear + 10;
90153 }
90154 }
90155 };
90156
90157 /**
90158 * 渲染日期面板
90159 * @param {Object[]} cellData - 单元格数据
90160 * @param {String} cellData[].label - 单元格显示文本
90161 * @param {Object} cellData[].value - 日期对象
90162 * @param {Boolean} cellData[].isCurrent - 是否是当前面板时间范围内的值
90163 */
90164 DateTable.prototype.renderCellContent = function renderCellContent(cellData) {
90165 var _this2 = this;
90166
90167 var props = this.props;
90168 var mode = props.mode,
90169 hoveredState = props.hoveredState,
90170 cellClassName = props.cellClassName;
90171 var hoverValue = this.state.hoverValue;
90172
90173 var cellContent = [];
90174 var cellCls = this.prefixCls + '-cell';
90175
90176 var now = (0, _util.datejs)();
90177 var rowLen = mode2Rows[mode];
90178
90179 for (var i = 0; i < cellData.length;) {
90180 var children = [];
90181
90182 var isCurrentWeek = void 0;
90183
90184 var _loop = function _loop(j) {
90185 var _extends2;
90186
90187 var _cellData = cellData[i++],
90188 label = _cellData.label,
90189 value = _cellData.value,
90190 key = _cellData.key,
90191 isCurrent = _cellData.isCurrent;
90192
90193 var v = value.startOf(mode);
90194
90195 var isDisabled = props.disabledDate && props.disabledDate(v, mode);
90196 var hoverState = hoverValue && hoveredState && hoveredState(hoverValue);
90197 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)));
90198
90199 var onEvents = null;
90200
90201 if (!isDisabled) {
90202 onEvents = {
90203 onClick: function onClick(e) {
90204 return _this2.handleSelect(v, e, { isCurrent: isCurrent, label: label });
90205 },
90206 onKeyDown: function onKeyDown(e) {
90207 return _this2.handleKeyDown(v, e, { isCurrent: isCurrent, label: label });
90208 },
90209 onMouseEnter: function onMouseEnter(e) {
90210 return _this2.handleMouseEnter(v, e, { isCurrent: isCurrent, label: label });
90211 },
90212 onMouseLeave: function onMouseLeave(e) {
90213 return _this2.handleMouseLeave(v, e, { isCurrent: isCurrent, label: label });
90214 }
90215 };
90216 }
90217
90218 if (mode === WEEK && j === 0) {
90219 var week = v.week();
90220
90221 children.push(_react2.default.createElement('td', { key: 'w-' + week, className: '' + cellCls }, _react2.default.createElement('div', { className: cellCls + '-inner' }, week)));
90222 isCurrentWeek = isCurrent;
90223 }
90224
90225 var customRender = _this2.getCustomRender(mode);
90226
90227 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]))));
90228 };
90229
90230 for (var j = 0; j < rowLen; j++) {
90231 _loop(j);
90232 }
90233
90234 var className = void 0;
90235 if (mode === WEEK) {
90236 var _classnames;
90237
90238 className = (0, _classnames3.default)(this.prefixCls + '-week', (_classnames = {}, _classnames[this.prefixCls + '-week-current'] = isCurrentWeek, _classnames));
90239 }
90240
90241 cellContent.push(_react2.default.createElement('tr', { key: i, className: className }, children));
90242 }
90243
90244 return cellContent;
90245 };
90246
90247 // 星期几
90248
90249
90250 DateTable.prototype.renderWeekdaysHead = function renderWeekdaysHead() {
90251 var weekdaysMin = _util.datejs.weekdaysMin();
90252 var firstDayOfWeek = _util.datejs.localeData().firstDayOfWeek();
90253
90254 // 默认一周的第一天是周日,否则需要调整
90255 if (firstDayOfWeek !== 0) {
90256 weekdaysMin = weekdaysMin.slice(firstDayOfWeek).concat(weekdaysMin.slice(0, firstDayOfWeek));
90257 }
90258
90259 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) {
90260 return _react2.default.createElement('th', { key: d }, d);
90261 })));
90262 };
90263
90264 DateTable.prototype.getDateCellData = function getDateCellData() {
90265 var _props = this.props,
90266 panelValue = _props.panelValue,
90267 colNum = _props.colNum;
90268
90269 var firstDayOfMonth = panelValue.clone().startOf('month');
90270 var weekOfFirstDay = firstDayOfMonth.day(); // 当月第一天星期几
90271 var daysOfCurMonth = panelValue.endOf('month').date(); // 当月天数
90272 var firstDayOfWeek = _util.datejs.localeData().firstDayOfWeek(); // 一周的第一天是星期几
90273
90274 var cellData = [];
90275 var preDays = (weekOfFirstDay - firstDayOfWeek + 7) % 7;
90276 var nextDays = colNum ? colNum * mode2Rows[DATE] - preDays - daysOfCurMonth : (7 - (preDays + daysOfCurMonth) % 7) % 7;
90277
90278 // 上个月日期
90279 for (var i = preDays; i > 0; i--) {
90280 cellData.push(firstDayOfMonth.clone().subtract(i, 'day'));
90281 }
90282
90283 // 本月日期
90284 for (var _i = 0; _i < daysOfCurMonth; _i++) {
90285 cellData.push(firstDayOfMonth.clone().add(_i, 'day'));
90286 }
90287
90288 // 下个月日期
90289 for (var _i2 = 0; _i2 < nextDays; _i2++) {
90290 cellData.push(firstDayOfMonth.clone().add(daysOfCurMonth + _i2, 'day'));
90291 }
90292
90293 return cellData.map(function (value) {
90294 return {
90295 value: value,
90296 label: value.date(),
90297 isCurrent: value.isSame(firstDayOfMonth, 'month'),
90298 key: value.format('YYYY-MM-DD')
90299 };
90300 });
90301 };
90302
90303 DateTable.prototype.getMonthCellData = function getMonthCellData() {
90304 var panelValue = this.props.panelValue;
90305
90306 return _util.datejs.monthsShort().map(function (label, index) {
90307 var value = panelValue.clone().month(index);
90308
90309 return {
90310 label: label,
90311 value: value,
90312 isCurrent: true,
90313 key: value.format('YYYY-MM')
90314 };
90315 });
90316 };
90317
90318 DateTable.prototype.getQuarterCellData = function getQuarterCellData() {
90319 var panelValue = this.props.panelValue;
90320
90321 return [1, 2, 3, 4].map(function (i) {
90322 return {
90323 label: 'Q' + i,
90324 value: panelValue.clone().quarter(i),
90325 isCurrent: true,
90326 key: 'Q' + i
90327 };
90328 });
90329 };
90330
90331 DateTable.prototype.getYearCellData = function getYearCellData() {
90332 var panelValue = this.props.panelValue;
90333
90334 var curYear = panelValue.year();
90335 var startYear = curYear - curYear % 10 - 1;
90336 var cellData = [];
90337
90338 for (var i = 0; i < 12; i++) {
90339 var y = startYear + i;
90340
90341 cellData.push({
90342 value: panelValue.clone().year(y),
90343 label: y,
90344 isCurrent: i > 0 && i < 11,
90345 key: y
90346 });
90347 }
90348
90349 return cellData;
90350 };
90351
90352 DateTable.prototype.getDecadeData = function getDecadeData() {
90353 var panelValue = this.props.panelValue;
90354
90355 var curYear = panelValue.year();
90356 var startYear = curYear - curYear % 100 - 10;
90357 var cellData = [];
90358
90359 for (var i = 0; i < 12; i++) {
90360 var y = startYear + i * 10;
90361
90362 cellData.push({
90363 value: panelValue.clone().year(y),
90364 label: y + '-' + (y + 9),
90365 isCurrent: i > 0 && i < 11,
90366 key: y + '-' + (y + 9)
90367 });
90368 }
90369
90370 return cellData;
90371 };
90372
90373 DateTable.prototype.render = function render() {
90374 var _mode2Data;
90375
90376 var mode = this.props.mode;
90377
90378 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);
90379
90380 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]())));
90381 };
90382
90383 return DateTable;
90384}(_react2.default.Component), _class.propTypes = {
90385 mode: _propTypes3.default.panelMode,
90386 value: _propTypes3.default.date,
90387 panelValue: _propTypes3.default.date,
90388 dateCellRender: PT.func,
90389 quarterCellRender: PT.func,
90390 monthCellRender: PT.func,
90391 yearCellRender: PT.func,
90392 disabledDate: PT.func,
90393 selectedState: PT.func,
90394 hoveredState: PT.func,
90395 onSelect: PT.func,
90396 onDateSelect: PT.func,
90397 startOnSunday: PT.bool,
90398 cellClassName: PT.oneOfType([PT.func, PT.string]),
90399 colNum: PT.number,
90400 cellProps: PT.object
90401}, _temp);
90402DateTable.displayName = 'DateTable';
90403exports.default = (0, _reactLifecyclesCompat.polyfill)(DateTable);
90404module.exports = exports['default'];
90405
90406/***/ }),
90407/* 489 */
90408/***/ (function(module, exports, __webpack_require__) {
90409
90410"use strict";
90411
90412
90413exports.__esModule = true;
90414
90415var _objectWithoutProperties2 = __webpack_require__(8);
90416
90417var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
90418
90419var _extends3 = __webpack_require__(1);
90420
90421var _extends4 = _interopRequireDefault(_extends3);
90422
90423var _classCallCheck2 = __webpack_require__(2);
90424
90425var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
90426
90427var _possibleConstructorReturn2 = __webpack_require__(3);
90428
90429var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
90430
90431var _inherits2 = __webpack_require__(4);
90432
90433var _inherits3 = _interopRequireDefault(_inherits2);
90434
90435var _class, _temp, _initialiseProps;
90436
90437var _react = __webpack_require__(0);
90438
90439var _react2 = _interopRequireDefault(_react);
90440
90441var _reactLifecyclesCompat = __webpack_require__(10);
90442
90443var _classnames3 = __webpack_require__(7);
90444
90445var _classnames4 = _interopRequireDefault(_classnames3);
90446
90447var _propTypes = __webpack_require__(5);
90448
90449var PT = _interopRequireWildcard(_propTypes);
90450
90451var _propTypes2 = __webpack_require__(45);
90452
90453var _propTypes3 = _interopRequireDefault(_propTypes2);
90454
90455var _util = __webpack_require__(6);
90456
90457var _util2 = __webpack_require__(43);
90458
90459var _constant = __webpack_require__(44);
90460
90461var _constant2 = __webpack_require__(52);
90462
90463var _calendar = __webpack_require__(111);
90464
90465var _calendar2 = _interopRequireDefault(_calendar);
90466
90467var _timePanel = __webpack_require__(203);
90468
90469var _timePanel2 = _interopRequireDefault(_timePanel);
90470
90471function _interopRequireWildcard(obj) {
90472 if (obj && obj.__esModule) {
90473 return obj;
90474 } else {
90475 var newObj = {};if (obj != null) {
90476 for (var key in obj) {
90477 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
90478 }
90479 }newObj.default = obj;return newObj;
90480 }
90481}
90482
90483function _interopRequireDefault(obj) {
90484 return obj && obj.__esModule ? obj : { default: obj };
90485}
90486
90487var DATE = _constant2.DATE_PANEL_MODE.DATE,
90488 WEEK = _constant2.DATE_PANEL_MODE.WEEK,
90489 MONTH = _constant2.DATE_PANEL_MODE.MONTH,
90490 QUARTER = _constant2.DATE_PANEL_MODE.QUARTER,
90491 YEAR = _constant2.DATE_PANEL_MODE.YEAR;
90492var UN_SELECTED = _constant2.CALENDAR_CELL_STATE.UN_SELECTED,
90493 SELECTED = _constant2.CALENDAR_CELL_STATE.SELECTED,
90494 SELECTED_BEGIN = _constant2.CALENDAR_CELL_STATE.SELECTED_BEGIN,
90495 SELECTED_END = _constant2.CALENDAR_CELL_STATE.SELECTED_END;
90496var BEGIN = _constant.DATE_INPUT_TYPE.BEGIN,
90497 END = _constant.DATE_INPUT_TYPE.END;
90498
90499var operate = function operate(mode, value, operator) {
90500 var newVal = value.clone();
90501
90502 switch (mode) {
90503 case DATE:
90504 case WEEK:
90505 return newVal[operator](1, 'month');
90506 case QUARTER:
90507 case MONTH:
90508 return newVal[operator](1, 'year');
90509 case YEAR:
90510 return newVal[operator](10, 'year');
90511 }
90512};
90513
90514var isSamePanel = function isSamePanel(a, b, mode) {
90515 switch (mode) {
90516 case DATE:
90517 case WEEK:
90518 return a.isSame(b, 'month');
90519 case QUARTER:
90520 case MONTH:
90521 return a.isSame(b, 'year');
90522 case YEAR:
90523 {
90524 var begin = a.year() - a.year() % 20;
90525 var byear = b.year();
90526
90527 return byear >= begin && byear < begin + 20;
90528 }
90529 }
90530};
90531
90532// 计算 面板日期
90533var getPanelValue = function getPanelValue(_ref, defaultValue) {
90534 var mode = _ref.mode,
90535 value = _ref.value,
90536 inputType = _ref.inputType,
90537 showTime = _ref.showTime;
90538 var begin = value[0],
90539 end = value[1];
90540
90541 var otherType = inputType === BEGIN ? END : BEGIN;
90542 var _inputType = inputType;
90543
90544 if (!value[inputType] && value[otherType]) {
90545 _inputType = otherType;
90546 }
90547
90548 var panelValue = value[_inputType] || (0, _util.datejs)(defaultValue);
90549
90550 // https://github.com/alibaba-fusion/next/issues/3186
90551 if (!showTime && _inputType === END && end && (begin && !isSamePanel(begin, end, mode) || !begin)) {
90552 panelValue = operate(mode, panelValue, 'subtract');
90553 }
90554
90555 return panelValue && panelValue.isValid() ? panelValue : (0, _util.datejs)();
90556};
90557
90558var RangePanel = (_temp = _class = function (_React$Component) {
90559 (0, _inherits3.default)(RangePanel, _React$Component);
90560
90561 function RangePanel(props) {
90562 (0, _classCallCheck3.default)(this, RangePanel);
90563
90564 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
90565
90566 _initialiseProps.call(_this);
90567
90568 var mode = props.mode,
90569 defaultPanelValue = props.defaultPanelValue,
90570 _props$timePanelProps = props.timePanelProps,
90571 timePanelProps = _props$timePanelProps === undefined ? {} : _props$timePanelProps;
90572
90573 // 默认时间
90574
90575 var defaultTime = timePanelProps.defaultValue || [];
90576 if (!Array.isArray(defaultTime)) {
90577 defaultTime = [defaultTime, defaultTime];
90578 }
90579 defaultTime = defaultTime.map(function (t) {
90580 return (0, _util.datejs)(t, timePanelProps.format || 'HH:mm:ss');
90581 });
90582
90583 _this.state = {
90584 mode: mode,
90585 panelValue: getPanelValue(props, defaultPanelValue),
90586 inputType: props.inputType,
90587 curHoverValue: null,
90588 defaultTime: defaultTime
90589 };
90590 return _this;
90591 }
90592
90593 RangePanel.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
90594 if (props.inputType !== state.inputType) {
90595 return {
90596 inputType: props.inputType,
90597 panelValue: getPanelValue(props, state.panelValue)
90598 };
90599 }
90600 return null;
90601 };
90602
90603 RangePanel.prototype.componentWillUnmount = function componentWillUnmount() {
90604 this.currentRaf && window.cancelAnimationFrame(this.currentRaf);
90605 };
90606
90607 // 日期面板显示的日期区间
90608
90609
90610 RangePanel.prototype.getRanges = function getRanges() {
90611 var mode = this.props.mode;
90612 var v = this.state.panelValue;
90613
90614 var begin = v.clone();
90615 var end = operate(mode, v, 'add');
90616
90617 return [begin, end];
90618 };
90619
90620 // 日期cell状态
90621 RangePanel.prototype.handleCellState = function handleCellState(v, value) {
90622 var mode = this.props.mode;
90623 var begin = value[0],
90624 end = value[1];
90625
90626 var unit = this.getUnitByMode(mode);
90627
90628 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;
90629 };
90630
90631 RangePanel.prototype.getUnitByMode = function getUnitByMode(mode) {
90632 return mode === DATE ? 'day' : mode;
90633 };
90634
90635 // 头部面板日期切换点击事件
90636
90637
90638 RangePanel.prototype.renderRange = function renderRange(sharedProps) {
90639 var _classnames;
90640
90641 var handlePanelChange = this.handlePanelChange,
90642 handleCanlendarClick = this.handleCanlendarClick,
90643 hasModeChanged = this.hasModeChanged;
90644 var _props = this.props,
90645 value = _props.value,
90646 prefix = _props.prefix;
90647
90648 var ranges = this.getRanges();
90649
90650 var calendarProps = function calendarProps(idx) {
90651 return (0, _extends4.default)({}, sharedProps, {
90652 value: value[idx],
90653 panelValue: ranges[idx],
90654 onPanelChange: function onPanelChange(v, m) {
90655 return handlePanelChange(v, m, idx);
90656 }
90657 });
90658 };
90659
90660 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), {
90661 className: prefix + 'range-picker-right',
90662 key: 'range-panel-calendar-right',
90663 onNext: handleCanlendarClick,
90664 onSuperNext: handleCanlendarClick
90665 }))];
90666
90667 var className = (0, _classnames4.default)(prefix + 'range-picker2-panel', (_classnames = {}, _classnames[prefix + 'range-picker2-panel-single'] = hasModeChanged, _classnames));
90668
90669 return _react2.default.createElement('div', { key: 'range-panel', className: className }, !this.hasModeChanged ? calendarNodes : calendarNodes[this.state.calendarIdx]);
90670 };
90671
90672 RangePanel.prototype.render = function render() {
90673 var handleSelect = this.handleSelect,
90674 getCellClassName = this.getCellClassName,
90675 handleMouseEnter = this.handleMouseEnter,
90676 handleMouseLeave = this.handleMouseLeave;
90677 var _props2 = this.props,
90678 mode = _props2.mode,
90679 justBeginInput = _props2.justBeginInput,
90680 dateCellRender = _props2.dateCellRender,
90681 restProps = (0, _objectWithoutProperties3.default)(_props2, ['mode', 'justBeginInput', 'dateCellRender']);
90682
90683 // 切换面板mode
90684
90685 this.hasModeChanged = this.state.mode !== this.props.mode;
90686
90687 var sharedProps = (0, _extends4.default)({}, _util.obj.pickProps(_calendar2.default.propTypes, restProps), {
90688 shape: 'panel',
90689 panelMode: mode,
90690 dateCellRender: dateCellRender
90691 });
90692
90693 sharedProps.disabledDate = justBeginInput ? this.props.disabledDate : this.disabledDate;
90694
90695 // 日期面板固定列数 保证对齐
90696 if ([DATE, WEEK].includes(mode)) {
90697 sharedProps.colNum = 6;
90698 }
90699
90700 if (!this.hasModeChanged) {
90701 sharedProps = (0, _extends4.default)({}, sharedProps, {
90702 onSelect: handleSelect,
90703 cellClassName: getCellClassName,
90704 cellProps: {
90705 onMouseEnter: handleMouseEnter,
90706 onMouseLeave: handleMouseLeave
90707 }
90708 });
90709 }
90710
90711 return this.props.showTime ? this.renderRangeTime(sharedProps) : this.renderRange(sharedProps);
90712 };
90713
90714 return RangePanel;
90715}(_react2.default.Component), _class.propTypes = {
90716 rtl: PT.bool,
90717 prefix: PT.string,
90718 locale: PT.object,
90719 mode: _propTypes3.default.mode,
90720 value: PT.arrayOf(_propTypes3.default.date),
90721 inputType: _propTypes3.default.inputType,
90722 handleCellState: PT.func,
90723 disabledDate: PT.func,
90724 justBeginInput: PT.bool,
90725 resetTime: PT.bool,
90726 showTime: PT.bool,
90727 timePanelProps: PT.object,
90728 disabledTime: PT.object,
90729 dateCellRender: PT.func
90730}, _class.defaultProps = {
90731 disabledDate: function disabledDate() {
90732 return false;
90733 },
90734 justBeginInput: true
90735}, _initialiseProps = function _initialiseProps() {
90736 var _this2 = this;
90737
90738 this.disabledDate = function (v) {
90739 var _props3 = _this2.props,
90740 mode = _props3.mode,
90741 inputType = _props3.inputType,
90742 disabledDate = _props3.disabledDate,
90743 _props3$value = _props3.value,
90744 begin = _props3$value[0],
90745 end = _props3$value[1];
90746
90747 var unit = (0, _util2.mode2unit)(mode);
90748
90749 return disabledDate(v, mode) || inputType === END && begin && begin.isAfter(v, unit) || inputType === BEGIN && end && end.isBefore(v, unit);
90750 };
90751
90752 this.onTimeSelect = function (v) {
90753 var _props4 = _this2.props,
90754 value = _props4.value,
90755 inputType = _props4.inputType;
90756 var begin = value[0],
90757 end = value[1];
90758
90759 var curDateVal = value[inputType];
90760 if (!curDateVal) {
90761 curDateVal = inputType === BEGIN && end ? end.subtract(1, 'day') : inputType === END && begin ? begin.add(1, 'day') : (0, _util.datejs)();
90762 }
90763 curDateVal = (0, _util2.setTime)(curDateVal, v);
90764
90765 _this2.handleSelect(curDateVal, true);
90766 };
90767
90768 this.handleSelect = function (v, fromTimeChange) {
90769 var _props5 = _this2.props,
90770 value = _props5.value,
90771 inputType = _props5.inputType,
90772 resetTime = _props5.resetTime;
90773
90774 var otherType = (0, _util2.switchInputType)(inputType);
90775 var newValue = [].concat(value);
90776
90777 var defaultTime = _this2.state.defaultTime[inputType];
90778 var timeVal = null;
90779
90780 // 如果不是选择时间面板触发的时间改变或不需要重置时间
90781 // 则需要设置时间值,优先级如下:
90782 // - 目前这个日期时间
90783 // - 默认时间
90784 // - 另一日期时间
90785 // - 当前时间
90786 if (!fromTimeChange && !resetTime) {
90787 timeVal = value[inputType] || defaultTime || value[otherType] || (0, _util.datejs)();
90788 }
90789
90790 newValue[inputType === BEGIN ? 0 : 1] = (0, _util2.setTime)(v, timeVal);
90791
90792 _util.func.invoke(_this2.props, 'onSelect', [newValue]);
90793 };
90794
90795 this.handlePanelChange = function (v, mode, idx) {
90796 _this2.setState({
90797 mode: mode,
90798 panelValue: v,
90799 calendarIdx: idx
90800 });
90801
90802 _util.func.invoke(_this2.props, 'onPanelChange', [v, mode]);
90803 };
90804
90805 this.handleMouseEnter = function (value) {
90806 _this2.currentRaf && window.cancelAnimationFrame(_this2.currentRaf);
90807 _this2.currentRaf = window.requestAnimationFrame(function () {
90808 _this2.setState({
90809 curHoverValue: value
90810 });
90811 });
90812 };
90813
90814 this.handleMouseLeave = function () {
90815 _this2.currentRaf && window.cancelAnimationFrame(_this2.currentRaf);
90816 _this2.setState({
90817 curHoverValue: null
90818 });
90819 };
90820
90821 this.handleEdgeState = function (value, mode) {
90822 var unit = _this2.getUnitByMode(mode);
90823
90824 switch (mode) {
90825 case DATE:
90826 {
90827 var endDate = value.endOf('month');
90828 var beginDate = value.startOf('month');
90829 return beginDate.isSame(value, unit) ? 1 : endDate.isSame(value, unit) ? 2 : 0;
90830 }
90831 case YEAR:
90832 {
90833 var year = value.year();
90834
90835 var beginYear = value.year() - value.year() % 10;
90836 var endYear = beginYear + 9;
90837 return year === beginYear ? 1 : year === endYear ? 2 : 0;
90838 }
90839 default:
90840 return 0;
90841 }
90842 };
90843
90844 this.getCellClassName = function (value) {
90845 var _extends2;
90846
90847 var _props6 = _this2.props,
90848 prefix = _props6.prefix,
90849 inputType = _props6.inputType,
90850 mode = _props6.mode;
90851 var curHoverValue = _this2.state.curHoverValue;
90852 var _props$value = _this2.props.value,
90853 begin = _props$value[0],
90854 end = _props$value[1];
90855
90856 var unit = _this2.getUnitByMode(mode);
90857
90858 var state = _this2.handleCellState(value, _this2.props.value);
90859 var prefixCls = prefix + 'calendar2-cell';
90860
90861 var hoverClassName = void 0;
90862 if (curHoverValue) {
90863 var hoverValue = [].concat(_this2.props.value);
90864 hoverValue[inputType] = curHoverValue;
90865 var hoverBegin = hoverValue[0],
90866 hoverEnd = hoverValue[1];
90867
90868 if (hoverBegin && hoverEnd && hoverBegin.isBefore(hoverEnd, unit)) {
90869 var _hoverClassName;
90870
90871 var hoverState = _this2.handleCellState(value, hoverValue);
90872
90873 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);
90874 }
90875 }
90876
90877 var rangeClassName = void 0;
90878 if (!_this2.hasModeChanged) {
90879 var _ref2, _ref3;
90880
90881 var edgeState = _this2.handleEdgeState(value, mode);
90882 var isIllegal = end && begin && begin.isAfter(end);
90883
90884 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);
90885 }
90886
90887 return (0, _extends4.default)((_extends2 = {}, _extends2[prefixCls + '-selected'] = state >= SELECTED, _extends2), rangeClassName, hoverClassName);
90888 };
90889
90890 this.handleCanlendarClick = function (_, _ref4) {
90891 var unit = _ref4.unit,
90892 num = _ref4.num;
90893
90894 _this2.setState({
90895 panelValue: _this2.state.panelValue.clone().add(num, unit)
90896 });
90897 };
90898
90899 this.renderRangeTime = function (sharedProps) {
90900 var _classnames2;
90901
90902 var _props7 = _this2.props,
90903 value = _props7.value,
90904 prefix = _props7.prefix,
90905 showTime = _props7.showTime,
90906 inputType = _props7.inputType,
90907 _props7$timePanelProp = _props7.timePanelProps,
90908 timePanelProps = _props7$timePanelProp === undefined ? {} : _props7$timePanelProp,
90909 disabledTime = _props7.disabledTime;
90910
90911 var className = (0, _classnames4.default)(prefix + 'range-picker2-panel', (_classnames2 = {}, _classnames2[prefix + 'range-picker2-panel-single'] = _this2.hasModeChanged, _classnames2));
90912
90913 // 禁用时间
90914 var _disabledTime = void 0;
90915 if (showTime && !_this2.hasModeChanged && disabledTime) {
90916 _disabledTime = typeof disabledTime === 'function' ? disabledTime(value, inputType) : disabledTime;
90917 }
90918
90919 return _react2.default.createElement('div', { key: 'range-time-panel', className: className }, _react2.default.createElement(_calendar2.default, (0, _extends4.default)({
90920 panelValue: _this2.state.panelValue
90921 }, sharedProps, {
90922 value: value[inputType],
90923 onPanelChange: _this2.handlePanelChange
90924 })), showTime && !_this2.hasModeChanged ? _react2.default.createElement(_timePanel2.default, {
90925 prefix: prefix,
90926 inputType: inputType,
90927 value: value[inputType] || _this2.state.defaultTime[inputType],
90928 onSelect: _this2.onTimeSelect,
90929 disabledTime: disabledTime,
90930 timePanelProps: (0, _extends4.default)({}, _disabledTime, timePanelProps)
90931 }) : null);
90932 };
90933}, _temp);
90934RangePanel.displayName = 'RangePanel';
90935exports.default = (0, _reactLifecyclesCompat.polyfill)(RangePanel);
90936module.exports = exports['default'];
90937
90938/***/ }),
90939/* 490 */
90940/***/ (function(module, exports, __webpack_require__) {
90941
90942"use strict";
90943
90944
90945exports.__esModule = true;
90946exports.default = {
90947 momentLocale: 'ja',
90948 Timeline: {
90949 expand: '開く',
90950 fold: '閉じる'
90951 },
90952 Balloon: {
90953 close: '閉鎖する'
90954 },
90955 Card: {
90956 expand: '開く',
90957 fold: '閉じる'
90958 },
90959 Calendar: {
90960 today: '本日',
90961 now: '現在',
90962 ok: '確認',
90963 clear: 'クリア',
90964 month: '月',
90965 year: '年',
90966 prevYear: '前の年',
90967 nextYear: '次の年',
90968 prevMonth: '前の月',
90969 nextMonth: '来月',
90970 prevDecade: '前の十年',
90971 nextDecade: '次の十年',
90972 yearSelectAriaLabel: '年を選んで',
90973 monthSelectAriaLabel: '月を選択し'
90974 },
90975 DatePicker: {
90976 placeholder: '日付けの選択',
90977 datetimePlaceholder: '日時を選択してください',
90978 monthPlaceholder: '月を選択してください',
90979 yearPlaceholder: '年を選択してください',
90980 weekPlaceholder: '周を選んでください',
90981 now: '現在',
90982 selectTime: '時間の選択',
90983 selectDate: '日付けの選択',
90984 ok: '確認',
90985 clear: 'クリア',
90986 startPlaceholder: '開始日',
90987 endPlaceholder: '最終日',
90988 hour: '時',
90989 minute: '分',
90990 second: '秒'
90991 },
90992 Dialog: {
90993 close: '閉鎖する',
90994 ok: '確認',
90995 cancel: 'キャンセル'
90996 },
90997 Drawer: {
90998 close: '閉鎖する'
90999 },
91000 Message: {
91001 closeAriaLabel: '閉鎖する'
91002 },
91003 Pagination: {
91004 prev: '前のページ',
91005 next: '次のページ',
91006 goTo: '第',
91007 page: 'ページへ',
91008 go: '確認',
91009 total: '第{current}ページ、{total}ページ',
91010 labelPrev: '前のページ、当面の第{current}ページ',
91011 labelNext: '次のページ、当面の第{current}ページ',
91012 inputAriaLabel: '数ページまでジャンプしてください',
91013 selectAriaLabel: 'ページごとに数本表示してください',
91014 pageSize: 'ページサイズ:'
91015 },
91016 Input: {
91017 clear: 'クリア'
91018 },
91019 List: {
91020 empty: 'データなし'
91021 },
91022 Select: {
91023 selectPlaceholder: '選択',
91024 autoCompletePlaceholder: '入力',
91025 notFoundContent: '選択肢なし',
91026 maxTagPlaceholder: '選択済み {selected}/{total}',
91027 selectAll: '全選'
91028 },
91029 TreeSelect: {
91030 maxTagPlaceholder: '選択済み {selected}/{total}',
91031 shortMaxTagPlaceholder: '選択済み {selected}'
91032 },
91033 Table: {
91034 empty: 'データなし',
91035 ok: '確認',
91036 reset: 'リセット',
91037 asc: '昇順',
91038 desc: '降順',
91039 expanded: '展開している',
91040 folded: '収まった',
91041 filter: 'フィルタ',
91042 selectAll: '全選'
91043 },
91044 TimePicker: {
91045 placeholder: '時間の選択',
91046 clear: 'クリア',
91047 hour: '時',
91048 minute: '分',
91049 second: '秒',
91050 ok: '確認'
91051 },
91052 Transfer: {
91053 items: '項目',
91054 item: '項目',
91055 moveAll: '全ての移動',
91056 searchPlaceholder: '入力',
91057 moveToLeft: '選択した要素のチェックを外します',
91058 moveToRight: '選択した要素を送信'
91059 },
91060 Upload: {
91061 card: {
91062 cancel: 'キャンセル',
91063 addPhoto: '画像アップロード',
91064 download: 'ダウンロード',
91065 delete: '削除'
91066 },
91067 drag: {
91068 text: '枠にドラッグしてアップロード',
91069 hint: 'docx, xls, PDF, rar, zip, PNG, JPG 等がサポートしています'
91070 },
91071 upload: {
91072 delete: '削除'
91073 }
91074 },
91075 Search: {
91076 buttonText: 'サーチ'
91077 },
91078 Tag: {
91079 delete: 'デリート'
91080 },
91081 Rating: {
91082 description: '評価オプション'
91083 },
91084 Switch: {
91085 on: '開いています',
91086 off: '閉じられました'
91087 },
91088 Tab: {
91089 closeAriaLabel: '閉じられました'
91090 },
91091 Form: {
91092 Validate: {
91093 default: '%sのコンテントは間違いです',
91094 required: '%sが必要です',
91095 format: {
91096 number: '%sは番号ではありません',
91097 email: '%sは有効なEメールではありません',
91098 url: '%sは有効なURLではありません',
91099 tel: '%sは有効な電話番号ではありません'
91100 },
91101 number: {
91102 length: '%sは正確に%sキャラクターでなければなりません',
91103 min: '%sはmin%sが必要です',
91104 max: '%sはmax%sが必要です',
91105 minLength: '%sはmin%sキャラクターが必要です',
91106 maxLength: '%sはmax%sキャラクターが必要です'
91107 },
91108 string: {
91109 length: '%sは正確に%sキャラクターでなければなりません',
91110 min: '%sはmin%sが必要です',
91111 max: '%sはmax%sが必要です',
91112 minLength: '%sはmin%sキャラクターが必要です',
91113 maxLength: '%sはmax%sキャラクターが必要です'
91114 },
91115 array: {
91116 length: '%sの長さは%sでなければなりません',
91117 minLength: '%sの長さはmin%sが必要です',
91118 maxLength: '%sの長さはmax%sが必要です'
91119 },
91120 pattern: '%sの値%sはパターン%sと一致しません'
91121 }
91122 }
91123};
91124module.exports = exports['default'];
91125
91126/***/ }),
91127/* 491 */,
91128/* 492 */,
91129/* 493 */
91130/***/ (function(module, exports, __webpack_require__) {
91131
91132"use strict";
91133
91134
91135var next = __webpack_require__(204);
91136
91137next.locales = {};
91138next.locales['en-us'] = __webpack_require__(494);
91139next.locales['ja-ja'] = __webpack_require__(490);
91140next.locales['ja-jp'] = __webpack_require__(490);
91141next.locales['zh-cn'] = __webpack_require__(13);
91142next.locales['zh-hk'] = __webpack_require__(495);
91143next.locales['zh-tw'] = __webpack_require__(496);
91144next.locales['vi-vn'] = __webpack_require__(497);
91145next.locales['it-it'] = __webpack_require__(498);
91146next.locales['pt-pt'] = __webpack_require__(499);
91147next.locales['ko-kr'] = __webpack_require__(500);
91148next.locales['ms-my'] = __webpack_require__(501);
91149next.locales['th-th'] = __webpack_require__(502);
91150next.locales['id-id'] = __webpack_require__(503);
91151
91152module.exports = next;
91153
91154/***/ }),
91155/* 494 */
91156/***/ (function(module, exports, __webpack_require__) {
91157
91158"use strict";
91159
91160
91161exports.__esModule = true;
91162exports.default = {
91163 momentLocale: 'en',
91164 Timeline: {
91165 expand: 'Expand',
91166 fold: 'Fold'
91167 },
91168 Balloon: {
91169 close: 'Close'
91170 },
91171 Card: {
91172 expand: 'Expand',
91173 fold: 'Fold'
91174 },
91175 Calendar: {
91176 today: 'Today',
91177 now: 'Now',
91178 ok: 'OK',
91179 clear: 'Clear',
91180 month: 'Month',
91181 year: 'Year',
91182 prevYear: 'Previous Year',
91183 nextYear: 'Next Year',
91184 prevMonth: 'Previous Month',
91185 nextMonth: 'Next Month',
91186 prevDecade: 'Previous Decade',
91187 nextDecade: 'Next Decade',
91188 yearSelectAriaLabel: 'Select Year',
91189 monthSelectAriaLabel: 'Select Month'
91190 },
91191 DatePicker: {
91192 placeholder: 'Select Date',
91193 datetimePlaceholder: 'Select Date And Time',
91194 monthPlaceholder: 'Select Month',
91195 yearPlaceholder: 'Select Year',
91196 weekPlaceholder: 'Select Week',
91197 now: 'Now',
91198 selectTime: 'Select Time',
91199 selectDate: 'Select Date',
91200 ok: 'OK',
91201 clear: 'Clear',
91202 startPlaceholder: 'Start Date',
91203 endPlaceholder: 'End Date',
91204 hour: 'H',
91205 minute: 'M',
91206 second: 'S'
91207 },
91208 Dialog: {
91209 close: 'Close',
91210 ok: 'OK',
91211 cancel: 'Cancel'
91212 },
91213 Drawer: {
91214 close: 'Close'
91215 },
91216 Message: {
91217 closeAriaLabel: 'Close'
91218 },
91219 Pagination: {
91220 prev: 'Previous',
91221 next: 'Next',
91222 goTo: 'Go to',
91223 page: 'Page',
91224 go: 'View',
91225 total: 'Page {current}, {total} pages',
91226 labelPrev: 'Previous page, current page {current}',
91227 labelNext: 'Next page, current page {current}',
91228 inputAriaLabel: 'Please enter what page to skip to',
91229 selectAriaLabel: 'Please select how many items are displayed on each page',
91230 pageSize: 'Items per page:'
91231 },
91232 Input: {
91233 clear: 'Clear'
91234 },
91235 List: {
91236 empty: 'No Data'
91237 },
91238 Select: {
91239 selectPlaceholder: 'Please Select',
91240 autoCompletePlaceholder: 'Please Input',
91241 notFoundContent: 'No Options',
91242 maxTagPlaceholder: 'Selected {selected}/{total} Total',
91243 selectAll: 'Select All'
91244 },
91245 TreeSelect: {
91246 maxTagPlaceholder: 'Selected {selected}/{total} Total',
91247 shortMaxTagPlaceholder: 'Selected {selected}'
91248 },
91249 Table: {
91250 empty: 'No Data',
91251 ok: 'OK',
91252 reset: 'Reset',
91253 asc: 'Ascending Order',
91254 desc: 'Descending Order',
91255 expanded: 'Expanded',
91256 folded: 'Folded',
91257 filter: 'Filter',
91258 selectAll: 'Select All'
91259 },
91260 TimePicker: {
91261 placeholder: 'Select Time',
91262 clear: 'Clear',
91263 hour: 'H',
91264 minute: 'M',
91265 second: 'S',
91266 ok: 'OK'
91267 },
91268 Transfer: {
91269 items: 'items',
91270 item: 'item',
91271 moveAll: 'Move All',
91272 searchPlaceholder: 'Please Input',
91273 moveToLeft: 'Uncheck Selected Elements',
91274 moveToRight: 'Submit Selected Elements'
91275 },
91276 Upload: {
91277 card: {
91278 cancel: 'Cancel',
91279 addPhoto: 'Add Picture',
91280 download: 'Download',
91281 delete: 'Delete'
91282 },
91283 drag: {
91284 text: 'Click or Drag the file to this area to upload',
91285 hint: 'Support docx, xls, PDF, rar, zip, PNG, JPG and other files upload'
91286 },
91287 upload: {
91288 delete: 'Delete'
91289 }
91290 },
91291 Search: {
91292 buttonText: 'Search'
91293 },
91294 Tag: {
91295 delete: 'Delete'
91296 },
91297 Rating: {
91298 description: 'Rating Options'
91299 },
91300 Switch: {
91301 on: 'on',
91302 off: 'off'
91303 },
91304 Tab: {
91305 closeAriaLabel: 'close'
91306 },
91307 Form: {
91308 Validate: {
91309 default: 'Validation error on field %s',
91310 required: '%s is required',
91311 format: {
91312 number: '%s is not a number',
91313 email: '%s is not a valid email',
91314 url: '%s is not a valid url',
91315 tel: '%s is not a valid phone number'
91316 },
91317 number: {
91318 length: '%s must be exactly %s characters',
91319 min: '%s cannot be less than %s',
91320 max: '%s cannot be greater than %s',
91321 minLength: '%s must be at least %s characters',
91322 maxLength: '%s cannot be longer than %s characters'
91323 },
91324 string: {
91325 length: '%s must be exactly %s characters',
91326 min: '%s cannot be less than %s',
91327 max: '%s cannot be greater than %s',
91328 minLength: '%s must be at least %s characters',
91329 maxLength: '%s cannot be longer than %s characters'
91330 },
91331 array: {
91332 length: '%s must be exactly %s in length',
91333 minLength: '%s cannot be less than %s in length',
91334 maxLength: '%s cannot be greater than %s in length'
91335 },
91336 pattern: '%s value %s does not match pattern %s'
91337 }
91338 }
91339};
91340module.exports = exports['default'];
91341
91342/***/ }),
91343/* 495 */
91344/***/ (function(module, exports, __webpack_require__) {
91345
91346"use strict";
91347
91348
91349exports.__esModule = true;
91350exports.default = {
91351 momentLocale: 'zh-hk',
91352 Timeline: {
91353 expand: '展開',
91354 fold: '收起'
91355 },
91356 Balloon: {
91357 close: '關閉'
91358 },
91359 Card: {
91360 expand: '展開',
91361 fold: '收起'
91362 },
91363 Calendar: {
91364 today: '今天',
91365 now: '此刻',
91366 ok: '確定',
91367 clear: '清除',
91368 month: '月',
91369 year: '年',
91370 prevYear: '上一年',
91371 nextYear: '下一年',
91372 prevMonth: '上個月',
91373 nextMonth: '下個月',
91374 prevDecade: '上十年',
91375 nextDecade: '後十年',
91376 yearSelectAriaLabel: '選擇年份',
91377 monthSelectAriaLabel: '選擇月份'
91378 },
91379 DatePicker: {
91380 placeholder: '請選擇日期',
91381 datetimePlaceholder: '請選擇日期和時間',
91382 monthPlaceholder: '請選擇月',
91383 yearPlaceholder: '請選擇年',
91384 weekPlaceholder: '請選擇周',
91385 now: '此刻',
91386 selectTime: '選擇時間',
91387 selectDate: '選擇日期',
91388 ok: '確定',
91389 clear: '清除',
91390 startPlaceholder: '起始日期',
91391 endPlaceholder: '結束日期',
91392 hour: '時',
91393 minute: '分',
91394 second: '秒'
91395 },
91396 Dialog: {
91397 close: '關閉',
91398 ok: '確認',
91399 cancel: '取消'
91400 },
91401 Drawer: {
91402 close: '關閉'
91403 },
91404 Message: {
91405 closeAriaLabel: '關閉'
91406 },
91407 Pagination: {
91408 prev: '上一頁',
91409 next: '下一頁',
91410 goTo: '到第',
91411 page: '頁',
91412 go: '確定',
91413 total: '第{current}頁,共{total}頁',
91414 labelPrev: '上一頁,當前第{current}頁',
91415 labelNext: '下一頁,當前第{current}頁',
91416 inputAriaLabel: '請輸入跳轉到第幾頁',
91417 selectAriaLabel: '請選擇每頁顯示幾條',
91418 pageSize: '每頁顯示:'
91419 },
91420 Input: {
91421 clear: '清除'
91422 },
91423 List: {
91424 empty: '沒有數據'
91425 },
91426 Select: {
91427 selectPlaceholder: '請選擇',
91428 autoCompletePlaceholder: '請輸入',
91429 notFoundContent: '無選項',
91430 maxTagPlaceholder: '已選擇 {selected}/{total} 項',
91431 selectAll: '全選'
91432 },
91433 TreeSelect: {
91434 maxTagPlaceholder: '已選擇 {selected}/{total} 項',
91435 shortMaxTagPlaceholder: '已選擇 {selected} 項'
91436 },
91437 Table: {
91438 empty: '沒有數據',
91439 ok: '確認',
91440 reset: '重置',
91441 asc: '升序',
91442 desc: '降序',
91443 expanded: '已展開',
91444 folded: '已摺疊',
91445 filter: '篩選',
91446 selectAll: '全選'
91447 },
91448 TimePicker: {
91449 placeholder: '請選擇時間',
91450 clear: '清除',
91451 hour: '時',
91452 minute: '分',
91453 second: '秒',
91454 ok: '確定'
91455 },
91456 Transfer: {
91457 items: '項',
91458 item: '項',
91459 moveAll: '移動全部',
91460 searchPlaceholder: '請輸入',
91461 moveToLeft: '撤銷選中元素',
91462 moveToRight: '提交選中元素'
91463 },
91464 Upload: {
91465 card: {
91466 cancel: '取消',
91467 addPhoto: '上傳圖片',
91468 download: '下載',
91469 delete: '刪除'
91470 },
91471 drag: {
91472 text: '點擊或者拖動文件到虛線框內上傳',
91473 hint: '支持 docx, xls, PDF, rar, zip, PNG, JPG 等類型的文件'
91474 },
91475 upload: {
91476 delete: '刪除'
91477 }
91478 },
91479 Search: {
91480 buttonText: '檢索'
91481 },
91482 Tag: {
91483 delete: '删除'
91484 },
91485 Rating: {
91486 description: '評分選項'
91487 },
91488 Switch: {
91489 on: '已打開',
91490 off: '已關閉'
91491 },
91492 Tab: {
91493 closeAriaLabel: '關閉'
91494 },
91495 Form: {
91496 Validate: {
91497 default: '%s 校驗失敗',
91498 required: '%s 是必填字段',
91499 format: {
91500 number: '%s 不是合法的數位',
91501 email: '%s 不是合法的email地址',
91502 url: '%s 不是合法的URL地址',
91503 tel: '%s 不是合法的電話號碼'
91504 },
91505 number: {
91506 length: '%s 長度必須是 %s',
91507 min: '%s 不得小於 %s',
91508 max: '%s 不得大於 %s',
91509 minLength: '%s 長度不得少於 %s',
91510 maxLength: '%s 長度不得超過 %s'
91511 },
91512 string: {
91513 length: '%s 長度必須是 %s',
91514 min: '%s 不得小於 %s',
91515 max: '%s 不得大於 %s',
91516 minLength: '%s 長度不得少於 %s',
91517 maxLength: '%s 長度不得超過 %s'
91518 },
91519 array: {
91520 length: '%s 個數必須是 %s',
91521 minLength: '%s 個數不得少於 %s',
91522 maxLength: '%s 個數不得超過 %s'
91523 },
91524 pattern: '%s 數值 %s 不匹配正則 %s'
91525 }
91526 }
91527};
91528module.exports = exports['default'];
91529
91530/***/ }),
91531/* 496 */
91532/***/ (function(module, exports, __webpack_require__) {
91533
91534"use strict";
91535
91536
91537exports.__esModule = true;
91538exports.default = {
91539 momentLocale: 'zh-tw',
91540 Timeline: {
91541 expand: '展開',
91542 fold: '收起'
91543 },
91544 Balloon: {
91545 close: '關閉'
91546 },
91547 Card: {
91548 expand: '展開',
91549 fold: '收起'
91550 },
91551 Calendar: {
91552 today: '今天',
91553 now: '此刻',
91554 ok: '確定',
91555 clear: '清除',
91556 month: '月',
91557 year: '年',
91558 prevYear: '上一年',
91559 nextYear: '下一年',
91560 prevMonth: '上个月',
91561 nextMonth: '下个月',
91562 prevDecade: '上十年',
91563 nextDecade: '后十年',
91564 yearSelectAriaLabel: '選擇年份',
91565 monthSelectAriaLabel: '選擇月份'
91566 },
91567 DatePicker: {
91568 placeholder: '請選擇日期',
91569 datetimePlaceholder: '請選擇日期和時間',
91570 monthPlaceholder: '請選擇月',
91571 yearPlaceholder: '請選擇年',
91572 weekPlaceholder: '請選擇周',
91573 now: '此刻',
91574 selectTime: '選擇時間',
91575 selectDate: '選擇日期',
91576 ok: '確定',
91577 clear: '清除',
91578 startPlaceholder: '起始日期',
91579 endPlaceholder: '結束日期',
91580 hour: '時',
91581 minute: '分',
91582 second: '秒'
91583 },
91584 Dialog: {
91585 close: '關閉',
91586 ok: '確認',
91587 cancel: '取消'
91588 },
91589 Drawer: {
91590 close: '關閉'
91591 },
91592 Message: {
91593 closeAriaLabel: '關閉'
91594 },
91595 Pagination: {
91596 prev: '上一頁',
91597 next: '下一頁',
91598 goTo: '到第',
91599 page: '頁',
91600 go: '確定',
91601 total: '第{current}頁,共{total}頁',
91602 labelPrev: '上一頁,當前第{current}頁',
91603 labelNext: '下一頁,當前第{current}頁',
91604 inputAriaLabel: '請輸入跳轉到第幾頁',
91605 selectAriaLabel: '請選擇每頁顯示幾條',
91606 pageSize: '每頁顯示:'
91607 },
91608 Input: {
91609 clear: '清除'
91610 },
91611 List: {
91612 empty: '沒有數據'
91613 },
91614 Select: {
91615 selectPlaceholder: '請選擇',
91616 autoCompletePlaceholder: '請輸入',
91617 notFoundContent: '無選項',
91618 maxTagPlaceholder: '已選擇 {selected}/{total} 項',
91619 selectAll: '全選'
91620 },
91621 TreeSelect: {
91622 maxTagPlaceholder: '已選擇 {selected}/{total} 項',
91623 shortMaxTagPlaceholder: '已選擇 {selected} 項'
91624 },
91625 Table: {
91626 empty: '沒有數據',
91627 ok: '確認',
91628 reset: '重置',
91629 asc: '昇冪',
91630 desc: '降序',
91631 expanded: '已展開',
91632 folded: '已折疊',
91633 filter: '篩選',
91634 selectAll: '全選'
91635 },
91636 TimePicker: {
91637 placeholder: '請選擇時間',
91638 clear: '清除',
91639 hour: '時',
91640 minute: '分',
91641 second: '秒',
91642 ok: '確定'
91643 },
91644 Transfer: {
91645 items: '項',
91646 item: '項',
91647 moveAll: '移動全部',
91648 searchPlaceholder: '請輸入',
91649 moveToLeft: '撤銷選中元素',
91650 moveToRight: '提交選中元素'
91651 },
91652 Upload: {
91653 card: {
91654 cancel: '取消',
91655 addPhoto: '上傳圖片',
91656 download: '下載',
91657 delete: '刪除'
91658 },
91659 drag: {
91660 text: '點擊或者拖動文件到虛線框內上傳',
91661 hint: '支持 docx, xls, PDF, rar, zip, PNG, JPG 等類型的文件'
91662 },
91663 upload: {
91664 delete: '刪除'
91665 }
91666 },
91667 Search: {
91668 buttonText: '檢索'
91669 },
91670 Tag: {
91671 delete: '删除'
91672 },
91673 Rating: {
91674 description: '評分選項'
91675 },
91676 Switch: {
91677 on: '已打開',
91678 off: '已關閉'
91679 },
91680 Tab: {
91681 closeAriaLabel: '關閉'
91682 },
91683 Form: {
91684 Validate: {
91685 default: '%s 校驗失敗',
91686 required: '%s 是必填字段',
91687 format: {
91688 number: '%s 不是合法的數位',
91689 email: '%s 不是合法的email地址',
91690 url: '%s 不是合法的URL地址',
91691 tel: '%s 不是合法的電話號碼'
91692 },
91693 number: {
91694 length: '%s 長度必須是 %s',
91695 min: '%s 不得小於 %s',
91696 max: '%s 不得大於 %s',
91697 minLength: '%s 長度不得少於 %s',
91698 maxLength: '%s 長度不得超過 %s'
91699 },
91700 string: {
91701 length: '%s 長度必須是 %s',
91702 min: '%s 不得小於 %s',
91703 max: '%s 不得大於 %s',
91704 minLength: '%s 長度不得少於 %s',
91705 maxLength: '%s 長度不得超過 %s'
91706 },
91707 array: {
91708 length: '%s 個數必須是 %s',
91709 minLength: '%s 個數不得少於 %s',
91710 maxLength: '%s 個數不得超過 %s'
91711 },
91712 pattern: '%s 數值 %s 不匹配正則 %s'
91713 }
91714 }
91715};
91716module.exports = exports['default'];
91717
91718/***/ }),
91719/* 497 */
91720/***/ (function(module, exports, __webpack_require__) {
91721
91722"use strict";
91723
91724
91725exports.__esModule = true;
91726/* vietnamese */
91727exports.default = {
91728 momentLocale: 'vi',
91729 Timeline: {
91730 expand: 'Mở rộng',
91731 fold: 'Thu gọn'
91732 },
91733 Balloon: {
91734 close: 'Đóng'
91735 },
91736 Card: {
91737 expand: 'Mở rộng',
91738 fold: 'Thu gọn'
91739 },
91740 Calendar: {
91741 today: 'Hôm nay',
91742 now: 'Bây giờ',
91743 ok: 'OK',
91744 clear: 'Xóa',
91745 month: 'Tháng',
91746 year: 'Năm',
91747 prevYear: 'Năm trước',
91748 nextYear: 'Năm tiếp theo',
91749 prevMonth: 'Tháng trước',
91750 nextMonth: 'Tháng tiếp theo',
91751 prevDecade: 'Thập kỷ trước',
91752 nextDecade: 'Thập kỷ tiếp theo',
91753 yearSelectAriaLabel: 'Chọn năm',
91754 monthSelectAriaLabel: 'Chọn tháng'
91755 },
91756 DatePicker: {
91757 placeholder: 'Chọn ngày',
91758 datetimePlaceholder: 'Chọn ngày và thời gian',
91759 monthPlaceholder: 'Chọn tháng',
91760 yearPlaceholder: 'Chọn năm',
91761 weekPlaceholder: 'Chọn tuần',
91762 now: 'Bây giờ',
91763 selectTime: 'Chọn thời gian',
91764 selectDate: 'Chọn ngày',
91765 ok: 'OK',
91766 clear: 'Xóa',
91767 startPlaceholder: 'Ngày bắt đầu',
91768 endPlaceholder: 'Ngày kết thúc',
91769 hour: 'Giờ',
91770 minute: 'Phút',
91771 second: 'Giây'
91772 },
91773 Dialog: {
91774 close: 'Đóng',
91775 ok: 'OK',
91776 cancel: 'Hủy'
91777 },
91778 Drawer: {
91779 close: 'Đóng'
91780 },
91781 Message: {
91782 closeAriaLabel: 'Đóng'
91783 },
91784 Pagination: {
91785 prev: 'Trước đó',
91786 next: 'Tiếp theo',
91787 goTo: 'Truy cập',
91788 page: 'Trang',
91789 go: 'Xem',
91790 total: 'Trang {current}, {total} trang',
91791 labelPrev: 'Trước đó trang, trang hiện tại {current}',
91792 labelNext: 'Trang tiếp theo, trang hiện tại {current}',
91793 inputAriaLabel: 'Vui lòng nhập trang cần bỏ qua',
91794 selectAriaLabel: 'Vui lòng chọn số mục hiển thị trên mỗi trang',
91795 pageSize: 'Số mục trên mỗi trang:'
91796 },
91797 Input: {
91798 clear: 'Xóa'
91799 },
91800 List: {
91801 empty: 'Không có dữ liệu'
91802 },
91803 Select: {
91804 selectPlaceholder: 'Vui lòng chọn',
91805 autoCompletePlaceholder: 'Vui lòng nhập',
91806 notFoundContent: 'Không có tùy chọn',
91807 maxTagPlaceholder: 'Đã chọn {selected}/{total}',
91808 selectAll: 'Chọn tất cả'
91809 },
91810 TreeSelect: {
91811 maxTagPlaceholder: 'Đã chọn {selected}/{total}',
91812 shortMaxTagPlaceholder: 'Đã chọn {selected}'
91813 },
91814 Table: {
91815 empty: 'Không có dữ liệu',
91816 ok: 'OK',
91817 reset: 'Đặt lại',
91818 asc: 'Thứ tự tăng dần',
91819 desc: 'Thứ tự giảm dần',
91820 expanded: 'Đã mở rộng',
91821 folded: 'Đã thu gọn',
91822 filter: 'Bộ lọc',
91823 selectAll: 'Chọn tất cả'
91824 },
91825 TimePicker: {
91826 placeholder: 'Chọn thời gian',
91827 clear: 'Xóa',
91828 hour: 'Giờ',
91829 minute: 'Phút',
91830 second: 'Giây',
91831 ok: 'OK'
91832 },
91833 Transfer: {
91834 items: 'mục',
91835 item: 'mục',
91836 moveAll: 'Di chuyển tất cả',
91837 searchPlaceholder: 'Vui lòng nhập',
91838 moveToLeft: 'Bỏ chọn các thành phần đã chọn',
91839 moveToRight: 'Gửi các thành phần đã chọn'
91840 },
91841 Upload: {
91842 card: {
91843 cancel: 'Hủy',
91844 addPhoto: 'Thêm ảnh',
91845 download: 'Tải xuống',
91846 delete: 'Xóa'
91847 },
91848 drag: {
91849 text: 'Nhấp chuột hoặc kéo tệp vào khu vực này để tải lên',
91850 hint: 'Hỗ trợ docx, xls, PDF, rar, zip, PNG, JPG và tải lên các tệp khác'
91851 },
91852 upload: {
91853 delete: 'Xóa'
91854 }
91855 },
91856 Search: {
91857 buttonText: 'Tìm kiếm'
91858 },
91859 Tag: {
91860 delete: 'Xóa'
91861 },
91862 Rating: {
91863 description: 'Tùy chọn xếp hạng'
91864 },
91865 Switch: {
91866 on: 'bật',
91867 off: 'tắt'
91868 },
91869 Tab: {
91870 closeAriaLabel: 'Đóng'
91871 },
91872 Form: {
91873 Validate: {
91874 default: 'Lỗi xác thực trên trường %s',
91875 required: '%s là bắt buộc',
91876 format: {
91877 number: '%s không phải là một số',
91878 email: '%s không phải là một email hợp lệ',
91879 url: '%s không phải là một URL hợp lệ',
91880 tel: '%s không phải là số điện thoại hợp lệ'
91881 },
91882 number: {
91883 length: '%s phải chính xác là các ký tự %s',
91884 min: '%s không thể nhỏ hơn %s',
91885 max: '%s không thể lớn hơn %s',
91886 minLength: '%s phải có ít nhất các ký tự %s',
91887 maxLength: '%s không thể dài hơn ký tự %s'
91888 },
91889 string: {
91890 length: '%s phải chính xác là các ký tự %s',
91891 min: '%s không thể nhỏ hơn %s',
91892 max: '%s không thể lớn hơn %s',
91893 minLength: '%s phải có ít nhất các ký tự %s',
91894 maxLength: '%s không thể dài hơn ký tự %s'
91895 },
91896 array: {
91897 length: '%s phải chính xác %s về chiều dài',
91898 minLength: '%s không thể nhỏ hơn %s dài',
91899 maxLength: '%s không thể lớn hơn %s có độ dài'
91900 },
91901 pattern: '%s GIÁ TRỊ %s không khớp với mẫu %s'
91902 }
91903 }
91904};
91905module.exports = exports['default'];
91906
91907/***/ }),
91908/* 498 */
91909/***/ (function(module, exports, __webpack_require__) {
91910
91911"use strict";
91912
91913
91914exports.__esModule = true;
91915/* italian */
91916exports.default = {
91917 momentLocale: 'it',
91918 Timeline: {
91919 expand: 'Espandi',
91920 fold: 'Riduci'
91921 },
91922 Balloon: {
91923 close: 'Chiudi'
91924 },
91925 Card: {
91926 expand: 'Espandi',
91927 fold: 'Riduci'
91928 },
91929 Calendar: {
91930 today: 'Oggi',
91931 now: 'Ora',
91932 ok: 'OK',
91933 clear: 'Cancella',
91934 month: 'Mese',
91935 year: 'Anno',
91936 prevYear: 'Anno precedente',
91937 nextYear: 'Prossimo anno',
91938 prevMonth: 'Mese precedente',
91939 nextMonth: 'Prossimo mese',
91940 prevDecade: 'Decennio precedente',
91941 nextDecade: 'Prossimo decennio',
91942 yearSelectAriaLabel: 'Seleziona anno',
91943 monthSelectAriaLabel: 'Seleziona mese'
91944 },
91945 DatePicker: {
91946 placeholder: 'Seleziona data',
91947 datetimePlaceholder: 'Seleziona data e orario',
91948 monthPlaceholder: 'Seleziona mese',
91949 yearPlaceholder: 'Seleziona anno',
91950 weekPlaceholder: 'Selezionare settimana',
91951 now: 'Ora',
91952 selectTime: 'Seleziona orario',
91953 selectDate: 'Seleziona data',
91954 ok: 'OK',
91955 clear: 'Cancella',
91956 startPlaceholder: 'Data di inizio',
91957 endPlaceholder: 'Data di fine',
91958 hour: 'H',
91959 minute: 'M',
91960 second: 'S'
91961 },
91962 Dialog: {
91963 close: 'Chiudi',
91964 ok: 'OK',
91965 cancel: 'Annulla'
91966 },
91967 Drawer: {
91968 close: 'Chiudi'
91969 },
91970 Message: {
91971 closeAriaLabel: 'Chiudi'
91972 },
91973 Pagination: {
91974 prev: 'Precedente',
91975 next: 'Successivo',
91976 goTo: 'Vai a',
91977 page: 'Pagina',
91978 go: 'Visualizza',
91979 total: 'Pagina {current}, {total} pagine',
91980 labelPrev: 'Pagina precedente, pagina corrente {current}',
91981 labelNext: 'Pagina successiva, pagina corrente {current}',
91982 inputAriaLabel: 'Inserisci a quale pagina saltare',
91983 selectAriaLabel: 'Seleziona il numero di elementi visualizzati in ogni pagina',
91984 pageSize: 'Articoli per pagina:'
91985 },
91986 Input: {
91987 clear: 'Cancella'
91988 },
91989 List: {
91990 empty: 'Nessun dato'
91991 },
91992 Select: {
91993 selectPlaceholder: 'Seleziona',
91994 autoCompletePlaceholder: 'Inserisci',
91995 notFoundContent: 'Nessuna opzione',
91996 maxTagPlaceholder: '{selected} selezionati/{total} totali',
91997 selectAll: 'Seleziona tutto'
91998 },
91999 TreeSelect: {
92000 maxTagPlaceholder: '{selected} selezionati/{total} totali',
92001 shortMaxTagPlaceholder: '{selected} selezionati'
92002 },
92003 Table: {
92004 empty: 'Nessun dato',
92005 ok: 'OK',
92006 reset: 'Ripristina',
92007 asc: 'Ordine ascendente',
92008 desc: 'Ordine decrescente',
92009 expanded: 'Espanso',
92010 folded: 'Ridotto',
92011 filter: 'Filtro',
92012 selectAll: 'Seleziona tutto'
92013 },
92014 TimePicker: {
92015 placeholder: 'Seleziona orario',
92016 clear: 'Cancella',
92017 hour: 'H',
92018 minute: 'M',
92019 second: 'S',
92020 ok: 'OK'
92021 },
92022 Transfer: {
92023 items: 'articoli',
92024 item: 'articolo',
92025 moveAll: 'Sposta tutto',
92026 searchPlaceholder: 'Inserisci',
92027 moveToLeft: 'Deseleziona elementi selezionati',
92028 moveToRight: 'Inviare elementi selezionati'
92029 },
92030 Upload: {
92031 card: {
92032 cancel: 'Annulla',
92033 addPhoto: 'Aggiungi immagine',
92034 download: 'Scarica',
92035 delete: 'Elimina'
92036 },
92037 drag: {
92038 text: "Seleziona o trascina il file in quest'area per caricarlo'",
92039 hint: 'Supporta il caricamento di docx, xls, PDF, rar, zip, PNG, JPG e altri file'
92040 },
92041 upload: {
92042 delete: 'Elimina'
92043 }
92044 },
92045 Search: {
92046 buttonText: 'Cerca'
92047 },
92048 Tag: {
92049 delete: 'Elimina'
92050 },
92051 Rating: {
92052 description: 'Opzioni di valutazione'
92053 },
92054 Switch: {
92055 on: 'on',
92056 off: 'off'
92057 },
92058 Tab: {
92059 closeAriaLabel: 'Chiudi'
92060 },
92061 Form: {
92062 Validate: {
92063 default: 'Errore di convalida sul campo %s',
92064 required: '%s è richiesto',
92065 format: {
92066 number: '%s non è un numero',
92067 email: "%s non è un'email valida",
92068 url: '%s non è un URL valido',
92069 tel: '%s non è un numero di telefono valido'
92070 },
92071 number: {
92072 length: '%s deve essere esattamente caratteri %s',
92073 min: '%s non può essere inferiore a %s',
92074 max: '%s non può essere maggiore di %s',
92075 minLength: '%s deve essere almeno caratteri %s',
92076 maxLength: '%s non può essere più lungo dei caratteri %s'
92077 },
92078 string: {
92079 length: '%s deve essere esattamente caratteri %s',
92080 min: '%s non può essere inferiore a %s',
92081 max: '%s non può essere maggiore di %s',
92082 minLength: '%s deve essere almeno caratteri %s',
92083 maxLength: '%s non può essere più lungo dei caratteri %s'
92084 },
92085 array: {
92086 length: '%s deve essere esattamente %s in lunghezza',
92087 minLength: '%s non può essere inferiore a %s di lunghezza',
92088 maxLength: '%s non può essere maggiore di %s di lunghezza'
92089 },
92090 pattern: '%s Value %s non corrisponde al modello %s'
92091 }
92092 }
92093};
92094module.exports = exports['default'];
92095
92096/***/ }),
92097/* 499 */
92098/***/ (function(module, exports, __webpack_require__) {
92099
92100"use strict";
92101
92102
92103exports.__esModule = true;
92104exports.default = {
92105 momentLocale: 'pt',
92106 Timeline: {
92107 expand: 'Expandir',
92108 fold: 'Comprimir'
92109 },
92110 Balloon: {
92111 close: 'Fechar'
92112 },
92113 Card: {
92114 expand: 'Expandir',
92115 fold: 'Comprimir'
92116 },
92117 Calendar: {
92118 today: 'Hoje',
92119 now: 'Agora',
92120 ok: 'OK',
92121 clear: 'Limpar',
92122 month: 'Mês',
92123 year: '',
92124 prevYear: 'Ano Passado',
92125 nextYear: 'Próximo ano',
92126 prevMonth: 'Mês Passado',
92127 nextMonth: 'Próximo Mês',
92128 prevDecade: 'Década Passada',
92129 nextDecade: 'Próxima Década',
92130 yearSelectAriaLabel: 'Selecionar Ano',
92131 monthSelectAriaLabel: 'Selecionar Mês'
92132 },
92133 DatePicker: {
92134 placeholder: 'Selecione uma Data',
92135 datetimePlaceholder: 'Selecione o Dia e a Hora',
92136 monthPlaceholder: 'Selecione o mês',
92137 yearPlaceholder: 'Selecione o ano',
92138 weekPlaceholder: 'Selecione a semana',
92139 now: 'Agora',
92140 selectTime: 'Selecionar a Hora',
92141 selectDate: 'Selecionar o Dia',
92142 ok: 'OK',
92143 clear: 'Limpar',
92144 startPlaceholder: 'Data de início',
92145 endPlaceholder: 'Data do Fim',
92146 hour: 'H',
92147 minute: 'M',
92148 second: 'S'
92149 },
92150 Dialog: {
92151 close: 'Fechar',
92152 ok: 'OK',
92153 cancel: 'Cancelar'
92154 },
92155 Drawer: {
92156 close: 'Fechar'
92157 },
92158 Message: {
92159 closeAriaLabel: 'Fechar'
92160 },
92161 Pagination: {
92162 prev: 'Voltar',
92163 next: 'Próximo',
92164 goTo: 'Ir para',
92165 page: 'Página',
92166 go: 'View',
92167 total: 'Página {current}, {total} Página(s)',
92168 labelPrev: 'Página Anterior, Página atual {current}',
92169 labelNext: 'Próximo Página, Página atual {current}',
92170 inputAriaLabel: 'Por favor, defina a página que que deseja pular',
92171 selectAriaLabel: 'Por favor, selecione quantos items você quer mostrar por página',
92172 pageSize: 'Items por página:'
92173 },
92174 Input: {
92175 clear: 'Limpar'
92176 },
92177 List: {
92178 empty: 'Vazio'
92179 },
92180 Select: {
92181 selectPlaceholder: 'Por favor, escolha.',
92182 autoCompletePlaceholder: 'Por favor, insira',
92183 notFoundContent: 'Sem opções',
92184 maxTagPlaceholder: 'Escolher {selected}/{total} Total',
92185 selectAll: 'Selecionar Tudo'
92186 },
92187 TreeSelect: {
92188 maxTagPlaceholder: 'Escolher {selected}/{total} Total',
92189 shortMaxTagPlaceholder: 'Escolher {selected}'
92190 },
92191 Table: {
92192 empty: 'Vazio',
92193 ok: 'OK',
92194 reset: 'Resetar',
92195 asc: 'Ordem Crescente',
92196 desc: 'Ordem Descendente',
92197 expanded: 'Expandir',
92198 folded: 'Comprimir',
92199 filter: 'Filtrar',
92200 selectAll: 'Selecionar Tudo'
92201 },
92202 TimePicker: {
92203 placeholder: 'Selecionar Hora',
92204 clear: 'Limpar',
92205 hour: 'H',
92206 minute: 'M',
92207 second: 'S',
92208 ok: 'OK'
92209 },
92210 Transfer: {
92211 items: 'items',
92212 item: 'item',
92213 moveAll: 'Mover Tudo',
92214 searchPlaceholder: 'Por favor, insira',
92215 moveToLeft: 'Desmarcar Elementos',
92216 moveToRight: 'Confirmar Elementos Selecionados'
92217 },
92218 Upload: {
92219 card: {
92220 cancel: 'Cancelar',
92221 addPhoto: 'Adicionar Imagem',
92222 download: 'Download',
92223 delete: 'Deletar'
92224 },
92225 drag: {
92226 text: 'Clique ou Arraste o arquivo para para área pontilhada',
92227 hint: 'Arquivos suportados: docx, xls, PDF, rar, zip, PNG, JPG e outros.'
92228 },
92229 upload: {
92230 delete: 'Deletar'
92231 }
92232 },
92233 Search: {
92234 buttonText: 'Procurar'
92235 },
92236 Tag: {
92237 delete: 'Deletar'
92238 },
92239 Rating: {
92240 description: 'Opções de classificação'
92241 },
92242 Switch: {
92243 on: 'Ativo',
92244 off: 'Inativo'
92245 },
92246 Tab: {
92247 closeAriaLabel: 'Fechar'
92248 },
92249 Form: {
92250 Validate: {
92251 default: 'Erro de validação no campo %s',
92252 required: '%s é necessário',
92253 format: {
92254 number: '%s não é um número',
92255 email: '%s não é um email válido',
92256 url: '%s não é uma url válida',
92257 tel: '%s não é um número de telefone válido'
92258 },
92259 number: {
92260 length: '%s deve ter exatamente %s caracteres',
92261 min: '%s não pode ser menor que %s',
92262 max: '%s não pode ser maior que %s',
92263 minLength: '%s deve ter pelo menos %s caracteres',
92264 maxLength: '%s não pode ter mais do que %s caracteres'
92265 },
92266 string: {
92267 length: '%s deve ter exatamente %s caracteres',
92268 min: '%s não pode ser menor que %s',
92269 max: '%s não pode ser maior que %s',
92270 minLength: '%s deve ter pelo menos %s caracteres',
92271 maxLength: '%s não pode ter mais do que %s caracteres'
92272 },
92273 array: {
92274 length: '%s deve ter exatamente %s de comprimento',
92275 minLength: '%s não pode ter menos que %s de comprimento',
92276 maxLength: '%s não pode ser maior que %s de comprimento'
92277 },
92278 pattern: '%s valor %s não corresponde ao padrão %s'
92279 }
92280 }
92281};
92282module.exports = exports['default'];
92283
92284/***/ }),
92285/* 500 */
92286/***/ (function(module, exports, __webpack_require__) {
92287
92288"use strict";
92289
92290
92291exports.__esModule = true;
92292exports.default = {
92293 momentLocale: 'ko',
92294 Timeline: {
92295 expand: '넓히다',
92296 fold: '멀리'
92297 },
92298 Balloon: {
92299 close: '종료'
92300 },
92301 Card: {
92302 expand: '넓히다',
92303 fold: '멀리'
92304 },
92305 Calendar: {
92306 today: '그밍',
92307 now: '현재',
92308 ok: '확정',
92309 clear: '삭제',
92310 month: '월',
92311 year: '년',
92312 prevYear: '작년',
92313 nextYear: '내년',
92314 prevMonth: '전월',
92315 nextMonth: '차월',
92316 prevDecade: '지난 10년',
92317 nextDecade: '앞으로 10년',
92318 yearSelectAriaLabel: '연간선택',
92319 monthSelectAriaLabel: '월 선택'
92320 },
92321 DatePicker: {
92322 placeholder: '일자 선택',
92323 datetimePlaceholder: '일자 및 시간 선택',
92324 monthPlaceholder: '월 선택',
92325 yearPlaceholder: '연간 선택',
92326 weekPlaceholder: '주 선택',
92327 now: '현재',
92328 selectTime: '시간 선택',
92329 selectDate: '일자 선택',
92330 ok: '확정',
92331 clear: '삭제',
92332 startPlaceholder: '시작일자',
92333 endPlaceholder: '종료일자',
92334 hour: '시',
92335 minute: '분',
92336 second: '초'
92337 },
92338 Dialog: {
92339 close: '종료',
92340 ok: '확정',
92341 cancel: '취소'
92342 },
92343 Drawer: {
92344 close: '종료'
92345 },
92346 Message: {
92347 closeAriaLabel: '종료'
92348 },
92349 Pagination: {
92350 prev: '앞 페이지',
92351 next: '뒷 페이지',
92352 goTo: '처음에는',
92353 page: '페이지',
92354 go: '확정',
92355 total: '{current} 페이지 , 총 {total}페이지',
92356 labelPrev: '앞 페이지 , {current} 페이지',
92357 labelNext: '뒷 페이지 , {current} 페이지',
92358 inputAriaLabel: '원하는 페이지 숫자 입력',
92359 selectAriaLabel: '페이지당 원하는 갯수 선택',
92360 pageSize: '페이지마다 표시:'
92361 },
92362 Input: {
92363 clear: '삭제'
92364 },
92365 List: {
92366 empty: '노데이터'
92367 },
92368 Select: {
92369 selectPlaceholder: '선택',
92370 autoCompletePlaceholder: '기입',
92371 notFoundContent: '해당사항 없음',
92372 maxTagPlaceholder: '기 선택 {selected}/{total} 항',
92373 selectAll: '전부 선택'
92374 },
92375 TreeSelect: {
92376 maxTagPlaceholder: '기 선택 {selected}/{total} 항',
92377 shortMaxTagPlaceholder: '기 선택 {selected} 항'
92378 },
92379 Table: {
92380 empty: '데이터 없음',
92381 ok: '확인',
92382 reset: '리셋',
92383 asc: '오름차순',
92384 desc: '내림차순',
92385 expanded: '전개',
92386 folded: '접다',
92387 filter: '선별',
92388 selectAll: '전부 선택'
92389 },
92390 TimePicker: {
92391 placeholder: '시간 선택',
92392 clear: '삭제',
92393 hour: '시',
92394 minute: '분',
92395 second: '초',
92396 ok: '확정'
92397 },
92398 Transfer: {
92399 items: '항',
92400 item: '항',
92401 moveAll: '전부 이전',
92402 searchPlaceholder: '기입',
92403 moveToLeft: '기 선택항 철회',
92404 moveToRight: '선택항 제출'
92405 },
92406 Upload: {
92407 card: {
92408 cancel: '취소',
92409 addPhoto: '이미지 업로드',
92410 download: '다운로드',
92411 delete: '삭제'
92412 },
92413 drag: {
92414 text: '클릭 또는 마우스로 파일을 점선 내 이동하여 업로드',
92415 hint: 'docx, xls, PDF, rar, zip, PNG, JPG 등 파일 가능'
92416 },
92417 upload: {
92418 delete: '삭제'
92419 }
92420 },
92421 Search: {
92422 buttonText: '써치'
92423 },
92424 Tag: {
92425 delete: '삭제'
92426 },
92427 Rating: {
92428 description: '평점항목'
92429 },
92430 Switch: {
92431 on: '열기',
92432 off: '닫기'
92433 },
92434 Tab: {
92435 closeAriaLabel: '닫기'
92436 },
92437 Form: {
92438 Validate: {
92439 default: '%s 검증 실패',
92440 required: '%s 필수',
92441 format: {
92442 number: '%s 요구에 맞지 않은 데이터 입니다.',
92443 email: '%s 요구에 맞지 않은 email 주소 입니다.',
92444 url: '%s 정확하지 않은 링크입니다.',
92445 tel: ' %s 정확하지 않은 연락 번호 입니다.'
92446 },
92447 number: {
92448 length: '%s 길이는 반드시 %s',
92449 min: '%s 대비 %s가 커야 합니다.',
92450 max: '%s 대비 %s는 작아야 합니다.',
92451 minLength: '%s 글자수는 최소%s',
92452 maxLength: '%s 글자수는 최대%s'
92453 },
92454 string: {
92455 length: '%s 길이는 반드시 %s',
92456 min: '%s 대비 %s가 커야 합니다.',
92457 max: ' %s 대비 %s는 작아야 합니다.',
92458 minLength: '%s 글자수는 최소%s',
92459 maxLength: '%s 글자수는 최대%s'
92460 },
92461 array: {
92462 length: '%s 개수는 반드시 %s',
92463 minLength: '%s 개수는 최소%s',
92464 maxLength: '%s 개수는 최대 %s'
92465 },
92466 pattern: '%s 데이터 중 %s가 요구치 %s 에 적합하지 않습니다.'
92467 }
92468 }
92469};
92470module.exports = exports['default'];
92471
92472/***/ }),
92473/* 501 */
92474/***/ (function(module, exports, __webpack_require__) {
92475
92476"use strict";
92477
92478
92479exports.__esModule = true;
92480exports.default = {
92481 momentLocale: 'ms',
92482 Timeline: {
92483 expand: 'Berkembang',
92484 fold: 'Letakkan'
92485 },
92486 Balloon: {
92487 close: 'menutup'
92488 },
92489 Card: {
92490 expand: 'Berkembang',
92491 fold: 'Letakkan'
92492 },
92493 Calendar: {
92494 today: 'Kini',
92495 now: 'Sekarang',
92496 ok: 'tentukan',
92497 clear: 'Jelas',
92498 month: 'bulan',
92499 year: 'tahun',
92500 prevYear: 'tahun lepas',
92501 nextYear: 'tahun hadapan',
92502 prevMonth: 'bulan lepas',
92503 nextMonth: 'bulan depan',
92504 prevDecade: 'Sepuluh tahun',
92505 nextDecade: 'Sepuluh tahun',
92506 yearSelectAriaLabel: 'Tahun pilihan.',
92507 monthSelectAriaLabel: 'Bulan'
92508 },
92509 DatePicker: {
92510 placeholder: 'Sila pilih tarikh',
92511 datetimePlaceholder: 'Sila pilih tarikh dan masa',
92512 monthPlaceholder: 'Sila pilih sebulan',
92513 yearPlaceholder: 'Sila pilih tahun ini',
92514 weekPlaceholder: 'Sila pilih Minggu',
92515 now: 'Sekarang',
92516 selectTime: 'tempoh pemilihan',
92517 selectDate: 'Tarikh',
92518 ok: 'tentukan',
92519 clear: 'Jelas',
92520 startPlaceholder: 'Tarikh mula',
92521 endPlaceholder: 'Tarikh tamat',
92522 hour: 'Masa',
92523 minute: 'Minit',
92524 second: 'kedua'
92525 },
92526 Dialog: {
92527 close: 'menutup',
92528 ok: 'sahkan',
92529 cancel: 'membatalkan'
92530 },
92531 Drawer: {
92532 close: 'menutup'
92533 },
92534 Message: {
92535 closeAriaLabel: 'menutup'
92536 },
92537 Pagination: {
92538 prev: 'Halaman sebelumnya',
92539 next: 'Muka surat seterusnya',
92540 goTo: 'Yang pertama',
92541 page: 'PAGE',
92542 go: 'tentukan',
92543 total: 'Laman {current}, Jumlah Laman {total}',
92544 labelPrev: 'Halaman sebelumnya, halaman {current} semasa',
92545 labelNext: 'Halaman seterusnya, halaman {current} semasa',
92546 inputAriaLabel: 'Sila masukkan ke halaman yang lebih pendek',
92547 selectAriaLabel: 'Sila pilih beberapa item setiap halaman',
92548 pageSize: 'Tunjukkan pada setiap halaman:'
92549 },
92550 Input: {
92551 clear: 'Jelas'
92552 },
92553 List: {
92554 empty: 'tiada data'
92555 },
92556 Select: {
92557 selectPlaceholder: 'sila pilih',
92558 autoCompletePlaceholder: 'Sila masukkan',
92559 notFoundContent: 'Tiada pilihan',
92560 maxTagPlaceholder: '{selected} / {total}.',
92561 selectAll: 'pilih semua'
92562 },
92563 TreeSelect: {
92564 maxTagPlaceholder: '{selected} / {total}.',
92565 shortMaxTagPlaceholder: '{selected}.'
92566 },
92567 Table: {
92568 empty: 'tiada data',
92569 ok: 'sahkan',
92570 reset: 'Reset semula',
92571 asc: 'Susunan menaik',
92572 desc: 'Dalam susunan menurun',
92573 expanded: 'Sudah pun bermula',
92574 folded: 'Dilipat',
92575 filter: 'penapis',
92576 selectAll: 'pilih semua'
92577 },
92578 TimePicker: {
92579 placeholder: 'Sila pilih masa',
92580 clear: 'Jelas',
92581 hour: 'Masa',
92582 minute: 'Minit',
92583 second: 'kedua',
92584 ok: 'tentukan'
92585 },
92586 Transfer: {
92587 items: 'Item',
92588 item: 'Item',
92589 moveAll: 'Mobile semua',
92590 searchPlaceholder: 'Sila masukkan',
92591 moveToLeft: 'Membatalkan elemen',
92592 moveToRight: 'Mengemukakan elemen'
92593 },
92594 Upload: {
92595 card: {
92596 cancel: 'membatalkan',
92597 addPhoto: 'Muat naik imej',
92598 download: 'muat turun',
92599 delete: 'memadam'
92600 },
92601 drag: {
92602 text: 'Klik atau seret fail ke kotak putus-putus',
92603 hint: 'Sokongan untuk Fail seperti Docx, XLS, PDF, RAR, ZIP, PNG, JPG'
92604 },
92605 upload: {
92606 delete: 'memadam'
92607 }
92608 },
92609 Search: {
92610 buttonText: 'carian untuk'
92611 },
92612 Tag: {
92613 delete: 'memadam'
92614 },
92615 Rating: {
92616 description: 'Pilihan penarafan'
92617 },
92618 Switch: {
92619 on: 'Sudah dibuka',
92620 off: 'ditutup'
92621 },
92622 Tab: {
92623 closeAriaLabel: 'menutup'
92624 },
92625 Form: {
92626 Validate: {
92627 default: 'Pengesahan %s gagal',
92628 required: '%s adalah medan mesti mengisi',
92629 format: {
92630 number: '%s bukan nombor undang-undang',
92631 email: '%s bukan alamat e-mel yang sah',
92632 url: '%s bukan alamat URL yang sah',
92633 tel: '%s bukan nombor telefon yang sah'
92634 },
92635 number: {
92636 length: 'Panjang %s mestilah %s',
92637 min: '%s tidak boleh kurang daripada %s',
92638 max: '%s tidak boleh lebih besar daripada %s',
92639 minLength: 'Watak medan %s tidak boleh kurang daripada %s',
92640 maxLength: 'Watak-watak bidang %s tidak boleh melebihi %s'
92641 },
92642 string: {
92643 length: 'Panjang %s mestilah %s',
92644 min: '%s tidak boleh kurang daripada %s',
92645 max: '%s tidak boleh lebih besar daripada %s',
92646 minLength: 'Panjang %s tidak kurang daripada %s',
92647 maxLength: 'Panjang %s tidak boleh melebihi %s'
92648 },
92649 array: {
92650 length: '%s mestilah %s',
92651 minLength: 'Bilangan %s tidak kurang daripada %s',
92652 maxLength: 'Nombor %s tidak boleh melebihi %s'
92653 },
92654 pattern: '%s Value %s tidak sepadan dengan %s biasa'
92655 }
92656 }
92657};
92658module.exports = exports['default'];
92659
92660/***/ }),
92661/* 502 */
92662/***/ (function(module, exports, __webpack_require__) {
92663
92664"use strict";
92665
92666
92667exports.__esModule = true;
92668exports.default = {
92669 momentLocale: 'th',
92670 Timeline: {
92671 expand: 'ขยาย',
92672 fold: 'เอาออกไป'
92673 },
92674 Balloon: {
92675 close: 'ปิดตัวลง'
92676 },
92677 Card: {
92678 expand: 'ขยาย',
92679 fold: 'เอาออกไป'
92680 },
92681 Calendar: {
92682 today: 'ทุกวันนี้',
92683 now: 'ตอนนี้',
92684 ok: 'กำหนด',
92685 clear: 'ชัดเจน',
92686 month: 'เดือน',
92687 year: 'ปี',
92688 prevYear: 'ปีที่แล้ว',
92689 nextYear: 'ปีหน้า',
92690 prevMonth: 'เดือนที่แล้ว',
92691 nextMonth: 'เดือนหน้า',
92692 prevDecade: 'สิบปี',
92693 nextDecade: 'สิบปี',
92694 yearSelectAriaLabel: 'เลือกปี',
92695 monthSelectAriaLabel: 'เดือน'
92696 },
92697 DatePicker: {
92698 placeholder: 'กรุณาเลือกวันที่',
92699 datetimePlaceholder: 'โปรดเลือกวันที่และเวลา',
92700 monthPlaceholder: 'กรุณาเลือกเดือน',
92701 yearPlaceholder: 'โปรดเลือกปี',
92702 weekPlaceholder: 'กรุณาเลือกสัปดาห์',
92703 now: 'ตอนนี้',
92704 selectTime: 'ระยะเวลาการเลือก',
92705 selectDate: 'วันที่',
92706 ok: 'กำหนด',
92707 clear: 'ชัดเจน',
92708 startPlaceholder: 'วันที่เริ่มต้น',
92709 endPlaceholder: 'วันที่สิ้นสุด',
92710 hour: 'เวลา',
92711 minute: 'นาที',
92712 second: 'ครั้งที่สอง'
92713 },
92714 Dialog: {
92715 close: 'ปิดตัวลง',
92716 ok: 'ยืนยัน',
92717 cancel: 'ยกเลิก'
92718 },
92719 Drawer: {
92720 close: 'ปิดตัวลง'
92721 },
92722 Message: {
92723 closeAriaLabel: 'ปิดตัวลง'
92724 },
92725 Pagination: {
92726 prev: 'หน้าก่อนหน้า',
92727 next: 'หน้าต่อไป',
92728 goTo: 'ในครั้งแรก',
92729 page: 'หน้า',
92730 go: 'กำหนด',
92731 total: 'หน้า {current}, หน้า {total} ทั้งหมด',
92732 labelPrev: 'หน้าก่อนหน้าหน้า {current} ปัจจุบัน',
92733 labelNext: 'หน้าถัดไปหน้า {current} ปัจจุบัน',
92734 inputAriaLabel: 'กรุณาใส่ข้ามไปที่หน้าสั้น',
92735 selectAriaLabel: 'โปรดเลือกรายการบางรายการต่อหน้า',
92736 pageSize: 'แสดงทุกหน้า:'
92737 },
92738 Input: {
92739 clear: 'ชัดเจน'
92740 },
92741 List: {
92742 empty: 'ไม่มีข้อมูล'
92743 },
92744 Select: {
92745 selectPlaceholder: 'กรุณาเลือก',
92746 autoCompletePlaceholder: 'กรุณากรอก',
92747 notFoundContent: 'ไม่มีตัวเลือก',
92748 maxTagPlaceholder: '{selected} / {total}',
92749 selectAll: 'เลือกทั้งหมด'
92750 },
92751 TreeSelect: {
92752 maxTagPlaceholder: '{selected} / {total}',
92753 shortMaxTagPlaceholder: '{selected}'
92754 },
92755 Table: {
92756 empty: 'ไม่มีข้อมูล',
92757 ok: 'ยืนยัน',
92758 reset: 'รีเซ็ต',
92759 asc: 'สั่งซื้อน้อยไปมาก',
92760 desc: 'สั่งซื้อจากมากไปน้อย',
92761 expanded: 'ได้เริ่มแล้ว',
92762 folded: 'พับ',
92763 filter: 'กรอง',
92764 selectAll: 'เลือกทั้งหมด'
92765 },
92766 TimePicker: {
92767 placeholder: 'โปรดเลือกเวลา',
92768 clear: 'ชัดเจน',
92769 hour: 'เวลา',
92770 minute: 'นาที',
92771 second: 'ครั้งที่สอง',
92772 ok: 'กำหนด'
92773 },
92774 Transfer: {
92775 items: 'สิ่งของ',
92776 item: 'สิ่งของ',
92777 moveAll: 'มือถือทั้งหมด',
92778 searchPlaceholder: 'กรุณากรอก',
92779 moveToLeft: 'การจัดสรรองค์ประกอบ',
92780 moveToRight: 'ส่งองค์ประกอบ'
92781 },
92782 Upload: {
92783 card: {
92784 cancel: 'ยกเลิก',
92785 addPhoto: 'อัพโหลดรูปภาพ',
92786 download: 'ดาวน์โหลด',
92787 delete: 'ลบ'
92788 },
92789 drag: {
92790 text: 'คลิกหรือลากไฟล์ไปที่กล่องประ',
92791 hint: 'รองรับไฟล์เช่น DOCX, XLS, PDF, RAR, ZIP, PNG, JPG'
92792 },
92793 upload: {
92794 delete: 'ลบ'
92795 }
92796 },
92797 Search: {
92798 buttonText: 'ค้นหา'
92799 },
92800 Tag: {
92801 delete: 'ลบ'
92802 },
92803 Rating: {
92804 description: 'ตัวเลือกการให้คะแนน'
92805 },
92806 Switch: {
92807 on: 'เปิดแล้ว',
92808 off: 'ปิด'
92809 },
92810 Tab: {
92811 closeAriaLabel: 'ปิดตัวลง'
92812 },
92813 Form: {
92814 Validate: {
92815 default: 'การตรวจสอบ %s ล้มเหลว',
92816 required: '%s เป็นฟิลด์ที่ต้องกรอก',
92817 format: {
92818 number: '%s ไม่ใช่หมายเลขทางกฎหมาย',
92819 email: '%s ไม่ใช่ที่อยู่อีเมลทางกฎหมาย',
92820 url: '%s ไม่ใช่ที่อยู่ URL ที่ถูกต้องตามกฎหมาย',
92821 tel: '%s ไม่ใช่หมายเลขโทรศัพท์ที่ถูกกฎหมาย'
92822 },
92823 number: {
92824 length: 'ความยาว %s ต้องเป็น %s',
92825 min: '%s ต้องไม่น้อยกว่า %s',
92826 max: '%s ต้องไม่มากกว่า %s',
92827 minLength: 'อักขระฟิลด์ %s ต้องไม่น้อยกว่า %s',
92828 maxLength: 'อักขระฟิลด์ %s ต้องไม่เกิน %s'
92829 },
92830 string: {
92831 length: 'ความยาว %s ต้องเป็น %s',
92832 min: '%s ต้องไม่น้อยกว่า %s',
92833 max: '%s ต้องไม่มากกว่า %s',
92834 minLength: 'ความยาว %s ไม่น้อยกว่า %s',
92835 maxLength: 'ความยาว %s ต้องไม่เกิน %s'
92836 },
92837 array: {
92838 length: '%s ต้องเป็น %s',
92839 minLength: 'จำนวน %s ไม่น้อยกว่า %s',
92840 maxLength: 'หมายเลข %s ต้องไม่เกิน %s'
92841 },
92842 pattern: 'ค่า %s %s ไม่ตรงกับ %s ปกติ'
92843 }
92844 }
92845};
92846module.exports = exports['default'];
92847
92848/***/ }),
92849/* 503 */
92850/***/ (function(module, exports, __webpack_require__) {
92851
92852"use strict";
92853
92854
92855exports.__esModule = true;
92856exports.default = {
92857 momentLocale: 'id',
92858 Timeline: {
92859 expand: 'Lebih Banyak',
92860 fold: 'Lebih Sedikit'
92861 },
92862 Balloon: {
92863 close: 'Tutup'
92864 },
92865 Card: {
92866 expand: 'Lebih Banyak',
92867 fold: 'Lebih Sedikit'
92868 },
92869
92870 Calendar: {
92871 today: 'Hari Ini',
92872 now: 'Sekarang',
92873 ok: 'OK',
92874 clear: 'Reset',
92875 month: 'Bulan',
92876 year: 'Tahun',
92877 prevYear: 'Tahun Lalu',
92878 nextYear: 'Tahun Depan',
92879 prevMonth: 'Bulan Lalu',
92880 nextMonth: 'Bulan Depan',
92881 prevDecade: 'Sepuluh Tahun Sebelumnya',
92882 nextDecade: 'Sepuluh Tahun Selanjutnya',
92883 yearSelectAriaLabel: 'Tahun pilihan',
92884 monthSelectAriaLabel: 'Bulan pilihan'
92885 },
92886 DatePicker: {
92887 placeholder: 'Pilih Tanggal',
92888 datetimePlaceholder: 'Pilih Tanggal dan Waktu',
92889 monthPlaceholder: 'Pilih Bulan',
92890 yearPlaceholder: 'Pilih Tahun',
92891 weekPlaceholder: 'Pilih Minggu',
92892 now: 'Sekarang',
92893 selectTime: 'Pilih Waktu',
92894 selectDate: 'Pilih Tanggal',
92895 ok: 'OK',
92896 clear: 'Reset',
92897 startPlaceholder: 'Tanggal Mulai',
92898 endPlaceholder: 'Tanggal Selesai',
92899 hour: 'Jam',
92900 minute: 'Menit',
92901 second: 'Detik'
92902 },
92903 Dialog: {
92904 close: 'Tutup',
92905 ok: 'OK',
92906 cancel: 'Batalkan'
92907 },
92908 Drawer: {
92909 close: 'Tutup'
92910 },
92911 Message: {
92912 closeAriaLabel: 'Tutup'
92913 },
92914 Pagination: {
92915 prev: 'Sebelumnya',
92916 next: 'Selanjutnya',
92917 goTo: 'Ke Halaman',
92918 page: 'Halaman',
92919 go: 'Lihat',
92920 total: 'Halaman {current}, Total {total} Halaman',
92921 labelPrev: 'Halaman Sebelumnya, Halaman {current}',
92922 labelNext: 'Halaman Selanjutnya, Halaman {current}',
92923 inputAriaLabel: 'Masukkan halaman yang ingin dikunjungi',
92924 selectAriaLabel: 'Pilih jumlah yang ingin ditampilkan per halaman',
92925 pageSize: 'Jumlah setiap halaman:'
92926 },
92927 Input: {
92928 clear: 'Reset'
92929 },
92930 List: {
92931 empty: 'Tidak Ada Data'
92932 },
92933 Select: {
92934 selectPlaceholder: 'Silakan Pilih',
92935 autoCompletePlaceholder: 'Silakan Masukkan',
92936 notFoundContent: 'Konten Tidak Ditemukan',
92937 maxTagPlaceholder: '{selected} / {total} Dipilih',
92938 selectAll: 'Pilih Semua'
92939 },
92940 TreeSelect: {
92941 maxTagPlaceholder: '{selected} / {total} Dipilih',
92942 shortMaxTagPlaceholder: '{selected} Dipilih'
92943 },
92944 Table: {
92945 empty: 'Tidak Ada Data',
92946 ok: 'OK',
92947 reset: 'Reset',
92948 asc: 'Kecil ke Besar',
92949 desc: 'Besar ke Kecil',
92950 expanded: 'Lebih Banyak',
92951 folded: 'Lebih Sedikit',
92952 filter: 'Filter',
92953 selectAll: 'Pilih Semua'
92954 },
92955 TimePicker: {
92956 placeholder: 'Silakan Pilih',
92957 clear: 'Reset',
92958 hour: 'Jam',
92959 minute: 'Menit',
92960 second: 'Detik',
92961 ok: 'OK'
92962 },
92963 Transfer: {
92964 items: 'barang',
92965 item: 'barang',
92966 moveAll: 'Pindahkan Semua.',
92967 searchPlaceholder: 'Silakan Masukkan',
92968 moveToLeft: 'Batalkan Pilihan',
92969 moveToRight: 'Simpan'
92970 },
92971 Upload: {
92972 card: {
92973 cancel: 'Batalkan',
92974 addPhoto: 'Tambah Gambar',
92975 download: 'Download',
92976 delete: 'Hapus'
92977 },
92978 drag: {
92979 text: 'Klik atau drag file untuk upload',
92980 hint: 'Tipe file yang didukung: DOCX, XLS, PDF, RAR, ZIP, PNG, JPG'
92981 },
92982 upload: {
92983 delete: 'Hapus'
92984 }
92985 },
92986 Search: {
92987 buttonText: 'Cari'
92988 },
92989 Tag: {
92990 delete: 'Hapus'
92991 },
92992 Rating: {
92993 description: 'Peringkat'
92994 },
92995 Switch: {
92996 on: 'Aktif',
92997 off: 'Non-Aktif'
92998 },
92999 Tab: {
93000 closeAriaLabel: 'Tutup'
93001 },
93002 Form: {
93003 Validate: {
93004 default: 'Validasi %s gagal',
93005 required: '%s wajib diisi',
93006 format: {
93007 number: '%s tidak valid',
93008 email: '%s tidak valid',
93009 url: '%s tidak valid',
93010 tel: '%s tidak valid'
93011 },
93012 number: {
93013 length: 'Panjang %s harus %s',
93014 min: '%s minimum %s',
93015 max: '%s maksimum %s',
93016 minLength: '%s maksimum %s',
93017 maxLength: '%s minimum %s'
93018 },
93019 string: {
93020 length: 'Panjang %s harus %s',
93021 min: '%s minimum %s',
93022 max: '%s maksimum %s',
93023 minLength: '%s maksimum %s',
93024 maxLength: '%s minimum %s'
93025 },
93026 array: {
93027 length: 'Panjang %s harus %s',
93028 minLength: '%s minimum %s',
93029 maxLength: '%s maksimum %s'
93030 },
93031 pattern: ' Value %s %s tidak cocok dengan pattern %s'
93032 }
93033 }
93034};
93035module.exports = exports['default'];
93036
93037/***/ })
93038/******/ ]);
93039});
\No newline at end of file