webpackJsonp([7],{ /***/ 1124: /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { classList: __webpack_require__(2000), events: __webpack_require__(2001), position: __webpack_require__(2002), style: __webpack_require__(1797) }; /***/ }), /***/ 1218: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _deepMerge = __webpack_require__(2011); var _deepMerge2 = _interopRequireDefault(_deepMerge); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var LOCALE_CACHE = 'zh-cn'; var COMPONENTS_LOCALE_CACHE = {}; var getDisplayName = function getDisplayName(Component) { return Component.displayName || Component.name || (typeof Component === 'string' ? Component : 'Component'); }; var Locale = function Locale(Component) { var _class, _temp; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var LocaleProvider = (_temp = _class = function (_React$Component) { _inherits(LocaleProvider, _React$Component); function LocaleProvider() { _classCallCheck(this, LocaleProvider); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } LocaleProvider.prototype._getInstance = function _getInstance(componentInstance) { if (componentInstance) { this.refs = componentInstance.refs; this._instance = componentInstance; } }; LocaleProvider.prototype.getInstance = function getInstance() { return this._instance; }; LocaleProvider.prototype.render = function render() { var _props = this.props, language = _props.language, _props$locale = _props.locale, locale = _props$locale === undefined ? {} : _props$locale, others = _objectWithoutProperties(_props, ['language', 'locale']); var defaultLocale = void 0, displayName = void 0, cacheLocale = void 0, resultLocale = void 0; if (!language) { language = Locale.get(); } // 获取组件挂载的默认多语言文案,增加英文兜底 defaultLocale = LocaleProvider.LOCALE && (LocaleProvider.LOCALE[language] || LocaleProvider.LOCALE['en-us']); // 组件名称 displayName = getDisplayName(Component); // 缓存的多语言文案 cacheLocale = COMPONENTS_LOCALE_CACHE[displayName] ? COMPONENTS_LOCALE_CACHE[displayName] : {}; // 最终的多语言文案 if (options.deepMerge) { resultLocale = (0, _deepMerge2['default'])({}, defaultLocale, cacheLocale, locale); } else { resultLocale = _extends({}, defaultLocale, cacheLocale, locale); } others.ref = this._getInstance.bind(this); return _react2['default'].createElement(Component, _extends({ locale: resultLocale, language: language }, others)); }; return LocaleProvider; }(_react2['default'].Component), _class.propTypes = { language: _propTypes2['default'].string, locale: _propTypes2['default'].object }, _temp); LocaleProvider.displayName = 'LocaleProvider'; Locale.init(LocaleProvider); LocaleProvider.displayName = 'LocaleProvider(' + getDisplayName(Component) + ')'; return LocaleProvider; }; Locale.init = function (Component) { Component.LOCALE = Component.LOCALE || {}; }; Locale.set = function (lang) { LOCALE_CACHE = lang; }; Locale.get = function () { return LOCALE_CACHE; }; Locale.setComponents = function (locales) { COMPONENTS_LOCALE_CACHE = _extends({}, COMPONENTS_LOCALE_CACHE, locales); }; exports['default'] = Locale; module.exports = exports['default']; /***/ }), /***/ 1371: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; exports.convertFieldsError = convertFieldsError; exports.format = format; exports.isEmptyValue = isEmptyValue; exports.isEmptyObject = isEmptyObject; exports.asyncMap = asyncMap; exports.complementError = complementError; exports.deepMerge = deepMerge; /* eslint no-console:0 */ var formatRegExp = /%[sdj%]/g; var warning = exports.warning = function warning() {}; // don't print warning message when in production env or node runtime if (false) { exports.warning = warning = function warning(type, errors) { if (typeof console !== 'undefined' && console.warn) { if (errors.every(function (e) { return typeof e === 'string'; })) { console.warn(type, errors); } } }; } function convertFieldsError(errors) { if (!errors || !errors.length) return null; var fields = {}; errors.forEach(function (error) { var field = error.field; fields[field] = fields[field] || []; fields[field].push(error); }); return fields; } function format() { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var i = 1; var f = args[0]; var len = args.length; if (typeof f === 'function') { return f.apply(null, args.slice(1)); } if (typeof f === 'string') { var str = String(f).replace(formatRegExp, function (x) { if (x === '%%') { return '%'; } if (i >= len) { return x; } switch (x) { case '%s': return String(args[i++]); case '%d': return Number(args[i++]); case '%j': try { return JSON.stringify(args[i++]); } catch (_) { return '[Circular]'; } break; default: return x; } }); for (var arg = args[i]; i < len; arg = args[++i]) { str += ' ' + arg; } return str; } return f; } function isNativeStringType(type) { return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern'; } function isEmptyValue(value, type) { if (value === undefined || value === null) { return true; } if (type === 'array' && Array.isArray(value) && !value.length) { return true; } if (isNativeStringType(type) && typeof value === 'string' && !value) { return true; } return false; } function isEmptyObject(obj) { return Object.keys(obj).length === 0; } function asyncParallelArray(arr, func, callback) { var results = []; var total = 0; var arrLength = arr.length; function count(errors) { results.push.apply(results, errors); total++; if (total === arrLength) { callback(results); } } arr.forEach(function (a) { func(a, count); }); } function asyncSerialArray(arr, func, callback) { var index = 0; var arrLength = arr.length; function next(errors) { if (errors && errors.length) { callback(errors); return; } var original = index; index = index + 1; if (original < arrLength) { func(arr[original], next); } else { callback([]); } } next([]); } function flattenObjArr(objArr) { var ret = []; Object.keys(objArr).forEach(function (k) { ret.push.apply(ret, objArr[k]); }); return ret; } function asyncMap(objArr, option, func, callback) { if (option.first) { var flattenArr = flattenObjArr(objArr); return asyncSerialArray(flattenArr, func, callback); } var firstFields = option.firstFields || []; if (firstFields === true) { firstFields = Object.keys(objArr); } var objArrKeys = Object.keys(objArr); var objArrLength = objArrKeys.length; var total = 0; var results = []; var pending = new Promise(function (resolve, reject) { var next = function next(errors) { results.push.apply(results, errors); total++; if (total === objArrLength) { callback(results); return results.length ? reject({ errors: results, fields: convertFieldsError(results) }) : resolve(); } }; objArrKeys.forEach(function (key) { var arr = objArr[key]; if (firstFields.indexOf(key) !== -1) { asyncSerialArray(arr, func, next); } else { asyncParallelArray(arr, func, next); } }); }); pending['catch'](function (e) { return e; }); return pending; } function complementError(rule) { return function (oe) { if (oe && oe.message) { oe.field = oe.field || rule.fullField; return oe; } return { message: typeof oe === 'function' ? oe() : oe, field: oe.field || rule.fullField }; }; } function deepMerge(target, source) { if (source) { for (var s in source) { if (source.hasOwnProperty(s)) { var value = source[s]; if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && _typeof(target[s]) === 'object') { target[s] = _extends({}, target[s], value); } else { target[s] = value; } } } } return target; } /***/ }), /***/ 1401: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _overlay = __webpack_require__(1798); var _overlay2 = _interopRequireDefault(_overlay); var _gateway = __webpack_require__(1799); var _gateway2 = _interopRequireDefault(_gateway); var _position = __webpack_require__(1800); var _position2 = _interopRequireDefault(_position); var _popup = __webpack_require__(2008); var _popup2 = _interopRequireDefault(_popup); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _overlay2['default'].Gateway = _gateway2['default']; _overlay2['default'].Position = _position2['default']; _overlay2['default'].Popup = _popup2['default']; exports['default'] = _overlay2['default']; module.exports = exports['default']; /***/ }), /***/ 1435: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _required = __webpack_require__(2283); var _required2 = _interopRequireDefault(_required); var _whitespace = __webpack_require__(2594); var _whitespace2 = _interopRequireDefault(_whitespace); var _type = __webpack_require__(2595); var _type2 = _interopRequireDefault(_type); var _range = __webpack_require__(2596); var _range2 = _interopRequireDefault(_range); var _enum = __webpack_require__(2597); var _enum2 = _interopRequireDefault(_enum); var _pattern = __webpack_require__(2598); var _pattern2 = _interopRequireDefault(_pattern); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = { required: _required2['default'], whitespace: _whitespace2['default'], type: _type2['default'], range: _range2['default'], 'enum': _enum2['default'], pattern: _pattern2['default'] }; /***/ }), /***/ 1448: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } function preventDefault(e) { e.preventDefault(); } /** Input */ var Input = (_temp = _class = function (_React$Component) { _inherits(Input, _React$Component); function Input(props) { _classCallCheck(this, Input); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); var value = void 0; if ('value' in props) { value = props.value; } else { value = props.defaultValue; } _this.state = { value: typeof value === 'undefined' ? '' : value }; return _this; } Input.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { this.setState({ value: typeof nextProps.value === 'undefined' ? '' : nextProps.value }); } }; Input.prototype.handleKeyDown = function handleKeyDown(e) { if (e.keyCode === 13) { this.props.onPressEnter(e); } this.props.onKeyDown(e); }; Input.prototype.onChange = function onChange(e) { var value = e.target.value; if (!('value' in this.props)) { // Fix: textarea dit not support maxLength in ie9 if (this.isIe() && this.props.maxLength && this.props.multiple) { var maxLength = parseInt(this.props.maxLength); var len = this.getValueLength(value, true); if (len > maxLength && this.props.cutString) { value = value.replace(/\n/g, '\n\n'); value = value.substr(0, maxLength); value = value.replace(/\n\n/g, '\n'); } } this.setState({ value: value }); } if (this.props.trim) { value = value.trim(); } this.props.onChange(value, e); }; Input.prototype.onFocus = function onFocus(e) { this.setState({ focus: true }); this.props.onFocus(e); }; Input.prototype.onBlur = function onBlur(e) { this.setState({ focus: false }); this.props.onBlur(e); }; Input.prototype.onClear = function onClear(e) { if (this.props.disabled) { return; } // 非受控模式清空内部数据 if (!('value' in this.props)) { this.setState({ value: '' }); } this.props.onChange('', e); this.refs.input.focus(); }; Input.prototype.ieGT9 = function ieGT9() { if (typeof document === 'undefined') { return false; } var documentMode = document.documentMode || 0; return documentMode > 9; }; Input.prototype.isIe = function isIe() { if (typeof document === 'undefined') { return false; } var documentMode = document.documentMode || 0; return documentMode !== 0; }; Input.prototype.renderInput = function renderInput() { var _classNames; var nstyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var nclassName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; // placeholder 在ie9以上会直接触发onChange,影响校验 var placeholder = this.props.placeholder; if (placeholder && this.ieGT9()) { placeholder = null; } /*eslint-disable */ var _props = this.props, multiple = _props.multiple, size = _props.size, className = _props.className, children = _props.children, htmlType = _props.htmlType, maxLen = _props.maxLen, maxLength = _props.maxLength, state = _props.state, onChange = _props.onChange, style = _props.style, addonBefore = _props.addonBefore, addonAfter = _props.addonAfter, onPressEnter = _props.onPressEnter, hasFeedback = _props.hasFeedback, others = _objectWithoutProperties(_props, ['multiple', 'size', 'className', 'children', 'htmlType', 'maxLen', 'maxLength', 'state', 'onChange', 'style', 'addonBefore', 'addonAfter', 'onPressEnter', 'hasFeedback']); /*eslint-enable */ var prefix = this.context.prefix || this.props.prefix; var type = multiple ? 'multiple' : 'single', TagName = multiple ? 'textarea' : 'input', props = _extends({}, others); props.onChange = this.onChange.bind(this); props.value = this.state.value; // Input elements must be either controlled or uncontrolled, // specify either the value prop, or the defaultValue prop, but not both. delete props.defaultValue; !multiple && delete props.rows; var classInput = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'input', true), _defineProperty(_classNames, prefix + 'input-' + type, true), _defineProperty(_classNames, prefix + 'input-' + size, !!size && type === 'single'), _defineProperty(_classNames, 'disabled', !!this.props.disabled), _defineProperty(_classNames, 'clear', this.props.hasClear), _defineProperty(_classNames, 'error', this.props.state === 'error'), _defineProperty(_classNames, 'focus', this.state.focus), _defineProperty(_classNames, 'hidden', this.props.htmlType === 'hidden'), _defineProperty(_classNames, 'noborder', this.props.htmlType === 'file'), _defineProperty(_classNames, nclassName, !!nclassName), _classNames)); var inputStyle = { textIndent: this.props.textIndent }; if (this.props.cutString) { props.maxLength = maxLen ? maxLen : maxLength; } return _react2['default'].createElement( 'span', { className: classInput, style: nstyle }, _react2['default'].createElement(TagName, _extends({}, (0, _nextUtil.pickAttrs)(props), { style: inputStyle, type: htmlType, height: '100%', onKeyDown: this.handleKeyDown.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), key: 'input', ref: 'input' })), this.renderControl() ); }; // `Enter` was considered to be two chars in chrome , but one char in ie. // so we make all `Enter` to be two chars Input.prototype.getValueLength = function getValueLength(value) { var multiple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var nv = '' + value; var strLen = this.props.getValueLength(nv); if (typeof strLen !== 'number') { strLen = nv.length; } if (!multiple) { return strLen; } else { if (this.isIe()) { return strLen + nv.split('\n').length - 1; } return strLen; } }; Input.prototype.renderControl = function renderControl() { var _classNames2; var maxLength = parseInt(this.props.maxLength || this.props.maxLen), hasLimitHint = this.props.hasLimitHint || this.props.maxLen; this.props.maxLen && _nextUtil.log.deprecated('maxLen', 'maxLength', 'Input'); var prefix = this.context.prefix || this.props.prefix; var _props2 = this.props, hasClear = _props2.hasClear, readOnly = _props2.readOnly, state = _props2.state; var len = maxLength > 0 && this.state.value ? this.getValueLength(this.state.value, this.props.multiple) : 0; var classesLenWrap = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'input-len', true), _defineProperty(_classNames2, 'error', len > maxLength), _classNames2)); var icon = null; //多行模式下面没有 success/loading 状态 if (state && !this.props.multiple) { if (state === 'success') { icon = _react2['default'].createElement(_nextIcon2['default'], { type: 'success' }); } else if (state === 'loading') { icon = _react2['default'].createElement(_nextIcon2['default'], { type: 'loading' }); } } var clearWrap = hasClear && !readOnly && '' + this.state.value ? _react2['default'].createElement(_nextIcon2['default'], { type: 'delete-filling', onClick: this.onClear.bind(this), onMouseDown: preventDefault }) : null; var lenWrap = maxLength && hasLimitHint ? _react2['default'].createElement( 'span', { className: classesLenWrap }, len, '/', maxLength ) : null; return clearWrap || lenWrap || icon ? _react2['default'].createElement( 'span', { className: prefix + 'input-control' }, clearWrap, lenWrap, icon ) : null; }; Input.prototype.getInputNode = function getInputNode() { return this.refs.input; }; Input.prototype.render = function render() { var _classNames3, _classNames4, _classNames5; var props = this.props; var prefix = this.context.prefix || this.props.prefix; var wrapperClassName = (0, _classnames2['default'])((_classNames3 = {}, _defineProperty(_classNames3, prefix + 'input-group', true), _defineProperty(_classNames3, '' + props.size, !!props.size), _defineProperty(_classNames3, 'disabled', this.props.disabled), _defineProperty(_classNames3, this.props.className, !!this.props.className), _classNames3)); var addonClassName = prefix + 'input-addon'; var classesAddonBefore = (0, _classnames2['default'])((_classNames4 = {}, _defineProperty(_classNames4, '' + addonClassName, true), _defineProperty(_classNames4, addonClassName + '-before', true), _classNames4)); var classesAddonAfter = (0, _classnames2['default'])((_classNames5 = {}, _defineProperty(_classNames5, '' + addonClassName, true), _defineProperty(_classNames5, addonClassName + '-after', true), _classNames5)); var addonBefore = props.addonBefore ? _react2['default'].createElement( 'span', { className: classesAddonBefore }, props.addonBefore ) : null; var addonAfter = props.addonAfter ? _react2['default'].createElement( 'span', { className: classesAddonAfter }, props.addonAfter ) : null; // style or className is added on Addon instead of input if (addonBefore || addonAfter) { return _react2['default'].createElement( 'span', { className: wrapperClassName, style: this.props.style }, addonBefore, this.renderInput(), addonAfter ); } else { return this.renderInput(this.props.style, this.props.className); } }; return Input; }(_react2['default'].Component), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * 当前值 */ value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), /** * 初始化值 */ defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), /** * 尺寸 * @enumdesc 小, 中, 大 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 状态 设置文本域禁用状态 */ disabled: _propTypes2['default'].bool, /** * 是否为多行,不选则为单行 */ multiple: _propTypes2['default'].bool, maxLen: _propTypes2['default'].number, //TODO: will removed in 1.0 version /** * 最大长度 */ maxLength: _propTypes2['default'].number, /** * 是否展现最大长度样式 */ hasLimitHint: _propTypes2['default'].bool, /** * 是否允许切割字符串 */ cutString: _propTypes2['default'].bool, /** * 是否出现clear按钮 */ hasClear: _propTypes2['default'].bool, /** * 状态(multiple模式不支持 loading/success 状态) * @enumdesc , 错误, 校验中, 成功 */ state: _propTypes2['default'].oneOf(['', 'error', 'loading', 'success']), /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 原生type */ htmlType: _propTypes2['default'].string, /** * 只读 */ readOnly: _propTypes2['default'].bool, /** * onChange返回会自动去除头尾空字符 */ trim: _propTypes2['default'].bool, /** * 文本域前附加内容 */ addonBefore: _propTypes2['default'].node, /** * 文本域后附加内容 */ addonAfter: _propTypes2['default'].node, /** * 输入提示 */ placeholder: _propTypes2['default'].string, /** * 按下回车的回调 */ onPressEnter: _propTypes2['default'].func, onFocus: _propTypes2['default'].func, /** * 失去焦点时候触发的回调 */ onBlur: _propTypes2['default'].func, onKeyDown: _propTypes2['default'].func, /** * 发生改变的时候触发的回调 * @param {String} value 数据 * @param {Event} e DOM事件对象 */ onChange: _propTypes2['default'].func, /** * 自定义字符串计算长度方式 * @param {String} value 数据 * @returns {Number} 自定义长度 */ getValueLength: _propTypes2['default'].func, /** * multiple多行文本框高度
(不要直接用height设置多行文本框的高度, ie9 10会有兼容性问题) */ rows: _propTypes2['default'].number, /** * 文字缩进 */ textIndent: _propTypes2['default'].number, /** * 自定义class */ className: _propTypes2['default'].string }, _class.defaultProps = { htmlType: 'text', disabled: false, prefix: 'next-', multiple: false, hasFeedback: false, maxLen: null, maxLength: null, hasLimitHint: false, cutString: true, hasClear: false, readOnly: false, trim: false, state: '', size: 'medium', onPressEnter: function onPressEnter() {}, onFocus: function onFocus() {}, onBlur: function onBlur() {}, onKeyDown: function onKeyDown() {}, onChange: function onChange() {}, getValueLength: function getValueLength() {}, rows: 4 }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Input.displayName = 'Input'; exports['default'] = Input; module.exports = exports['default']; /***/ }), /***/ 1453: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _menu = __webpack_require__(2014); var _menu2 = _interopRequireDefault(_menu); var _menuItem = __webpack_require__(1518); var _menuItem2 = _interopRequireDefault(_menuItem); var _popupMenuItem = __webpack_require__(2015); var _popupMenuItem2 = _interopRequireDefault(_popupMenuItem); var _menuDivider = __webpack_require__(2016); var _menuDivider2 = _interopRequireDefault(_menuDivider); var _checkboxMenuItem = __webpack_require__(2017); var _checkboxMenuItem2 = _interopRequireDefault(_checkboxMenuItem); var _radioMenuItem = __webpack_require__(2019); var _radioMenuItem2 = _interopRequireDefault(_radioMenuItem); var _menuGroup = __webpack_require__(2020); var _menuGroup2 = _interopRequireDefault(_menuGroup); var _subMenu = __webpack_require__(1806); var _subMenu2 = _interopRequireDefault(_subMenu); var _container = __webpack_require__(1486); var _container2 = _interopRequireDefault(_container); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _menu2['default'].Item = _menuItem2['default']; _menu2['default'].Divider = _menuDivider2['default']; _menu2['default'].CheckboxItem = _checkboxMenuItem2['default']; _menu2['default'].RadioItem = _radioMenuItem2['default']; _menu2['default'].PopupItem = _popupMenuItem2['default']; _menu2['default'].Group = _menuGroup2['default']; _menu2['default'].SubMenu = _subMenu2['default']; _menu2['default'].Container = _container2['default']; exports['default'] = _menu2['default']; module.exports = exports['default']; /***/ }), /***/ 1472: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _button = __webpack_require__(1801); var _button2 = _interopRequireDefault(_button); var _group = __webpack_require__(1802); var _group2 = _interopRequireDefault(_group); var _split = __webpack_require__(2010); var _split2 = _interopRequireDefault(_split); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _button2['default'].Group = _group2['default']; _button2['default'].Split = _split2['default']; exports['default'] = _button2['default']; module.exports = exports['default']; /***/ }), /***/ 1486: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Container = (_temp = _class = function (_React$Component) { _inherits(Container, _React$Component); function Container() { _classCallCheck(this, Container); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Container.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; /** * 获取当前组件的父节点的实例 */ Container.prototype.getParent = function getParent() { return this.props.parent; }; /** * 获取当前组件的根节点 */ Container.prototype.getRoot = function getRoot() { var instance = this.props.parent; while (instance.props.parent) { instance = instance.props.parent; } return instance; }; /** * 为child建立和当前实例的父子级关系 * @param child {ReactElement} */ Container.prototype.addRelation = function addRelation(child) { return _react2['default'].cloneElement(child, { parent: this }); }; /** * 根据type获取父级的实例 * @param type {Class} */ Container.prototype.getParentBy = function getParentBy(func) { var instance = this.props.parent, result = func(instance) ? [instance] : []; while (instance.props.parent) { instance = instance.props.parent; if (func(instance)) { result.push(instance); } } return result; }; Container.prototype.getParentByFlag = function getParentByFlag(flag) { return this.getParentBy(function (inc) { return inc.constructor[flag]; }); }; Container.prototype.getParentByType = function getParentByType(type) { return this.getParentBy(function (inc) { return inc instanceof type; }); }; /** * 获取当前组件的孩子节点的实例 */ Container.prototype.getChildrenInc = function getChildrenInc() { var _this2 = this; return Object.keys(this.refs).map(function (key) { return _this2.refs[key]; }); }; /** * 根据类型获取当前组件的孩子节点的实例 * @param type {Class} */ Container.prototype.getChildrenIncByType = function getChildrenIncByType(type) { return this.getChildrenIncBy(function (child) { return child instanceof type; }); }; Container.prototype.getChildrenIncByFlag = function getChildrenIncByFlag(flag) { return this.getChildrenIncBy(function (child) { return child.constructor[flag]; }); }; Container.prototype.getChildrenIncBy = function getChildrenIncBy(func) { var result = [], loop = function loop(children) { children.forEach(function (child) { if (child.getChildrenInc) { loop(child.getChildrenInc()); } result.push(child); }); }; loop(this.getChildrenInc()); return result.filter(func); }; /** * 获取当前组件的孩子节点 * @return {Array} */ Container.prototype.getChildren = function getChildren() { return this.props.children; }; /** * 根据类型获取当前组件的孩子节点 * @param type {Class} * @return {Array} */ Container.prototype.getChildrenByType = function getChildrenByType(type) { return this.getChildrenBy(function (child) { return child.type === type; }); }; Container.prototype.getChildrenByFlag = function getChildrenByFlag(flag) { return this.getChildrenBy(function (child) { return child.type && child.type[flag]; }); }; Container.prototype.getChildrenBy = function getChildrenBy(func) { var result = [], loop = function loop(children) { _react.Children.forEach(children, function (child) { if (child.props && child.props.children) { loop(child.props.children); } result.push(child); }); }; loop(this.props.children); return result.filter(func); }; return Container; }(_react2['default'].Component), _class.propTypes = { prefix: _propTypes2['default'].string, parent: _propTypes2['default'].any, children: _propTypes2['default'].any }, _temp); Container.displayName = 'Container'; exports['default'] = Container; module.exports = exports['default']; /***/ }), /***/ 1503: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp, _class2, _temp2, _class3, _temp3; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactDom = __webpack_require__(4); var _TransitionGroup = __webpack_require__(2003); var _TransitionGroup2 = _interopRequireDefault(_TransitionGroup); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); var _names = __webpack_require__(2006); var _names2 = _interopRequireDefault(_names); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; var on = _nextDom.events.on; var addClass = _nextDom.classList.addClass; var removeClass = _nextDom.classList.removeClass; var AnimateChild = (_temp = _class = function (_React$Component) { _inherits(AnimateChild, _React$Component); function AnimateChild() { _classCallCheck(this, AnimateChild); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } AnimateChild.prototype.componentDidMount = function componentDidMount() { this.node = (0, _reactDom.findDOMNode)(this); this.onAnimateEnd = this.onAnimateEnd.bind(this); if (this.props.useTransition && _nextUtil.support.transition) { this._animation = on(this.node, _nextUtil.support.transition.end, this.onAnimateEnd); } else if (_nextUtil.support.animation) { this._animation = on(this.node, _nextUtil.support.animation.end, this.onAnimateEnd); } }; AnimateChild.prototype.componentDidUpdate = function componentDidUpdate() { if (this.node !== (0, _reactDom.findDOMNode)(this)) { if (this._animation && this._animation.off) { this._animation.off(); } this.componentDidMount(); } }; AnimateChild.prototype.fakeAnimationEvent = function fakeAnimationEvent() { if (!_nextUtil.support.animation || this.props.useTransition && !_nextUtil.support.transition) { this.timeoutEnd = setTimeout(this.onAnimateEnd, 10); } }; AnimateChild.prototype.componentWillUnmount = function componentWillUnmount() { if (this._animation && this._animation.off) { this._animation.off(); } clearTimeout(this.timeoutEnd); }; AnimateChild.prototype.componentWillAppear = function componentWillAppear(done) { if (this.props.animationAppear) { this.playAction('appear', done); } else { done(); } this.props.beforeAppear(); this.fakeAnimationEvent(); }; AnimateChild.prototype.componentDidAppear = function componentDidAppear() { this.props.afterAppear(); }; AnimateChild.prototype.componentWillEnter = function componentWillEnter(done) { this.playAction('enter', done); this.props.beforeEnter(); this.fakeAnimationEvent(); }; AnimateChild.prototype.componentDidEnter = function componentDidEnter() { this.props.afterEnter(); }; AnimateChild.prototype.componentWillLeave = function componentWillLeave(done) { this.playAction('leave', done); this.props.beforeLeave(); this.fakeAnimationEvent(); }; AnimateChild.prototype.componentDidLeave = function componentDidLeave() { this.props.afterLeave(); }; AnimateChild.prototype.onAnimateEnd = function onAnimateEnd(e) { if (e && e.target !== this.node) { return; } clearTimeout(this.timeout); if (this._done) { this._done(); } e && e.stopPropagation(); }; AnimateChild.prototype.playAction = function playAction(type, done) { var node = (0, _reactDom.findDOMNode)(this), animation = this.props.animation, res = animation[type]; if (typeof res === 'string') { Object.keys(animation).forEach(function (key) { if (typeof animation[key] === 'string') { removeClass(node, animation[key]); removeClass(node, animation[key] + '-active'); } }); addClass(node, res); this.addActiveClass(node, res + '-active'); this._done = done; } else if (typeof res === 'function') { res(node, done); } else { done(); } this.node = node; }; AnimateChild.prototype.addActiveClass = function addActiveClass(node, className) { this.timeout = setTimeout(function () { addClass(node, className); }, 20); }; AnimateChild.prototype.render = function render() { return this.props.children; }; return AnimateChild; }(_react2['default'].Component), _class.propTypes = { beforeAppear: _propTypes2['default'].func, afterAppear: _propTypes2['default'].func, beforeEnter: _propTypes2['default'].func, afterEnter: _propTypes2['default'].func, beforeLeave: _propTypes2['default'].func, afterLeave: _propTypes2['default'].func, children: _propTypes2['default'].any, useTransition: _propTypes2['default'].bool, animationAppear: _propTypes2['default'].bool }, _class.defaultProps = { animationAppear: true }, _temp); /* eslint-disable react/no-multi-comp*/ AnimateChild.displayName = 'AnimateChild'; var SingeChildWrapper = (_temp2 = _class2 = function (_React$Component2) { _inherits(SingeChildWrapper, _React$Component2); function SingeChildWrapper() { _classCallCheck(this, SingeChildWrapper); return _possibleConstructorReturn(this, _React$Component2.apply(this, arguments)); } SingeChildWrapper.prototype.render = function render() { var children = _react2['default'].Children.toArray(this.props.children); return children[0] || null; }; return SingeChildWrapper; }(_react2['default'].Component), _class2.propTypes = { children: _propTypes2['default'].any }, _temp2); /** * Animate */ SingeChildWrapper.displayName = 'SingeChildWrapper'; var Animate = (_temp3 = _class3 = function (_React$Component3) { _inherits(Animate, _React$Component3); function Animate() { _classCallCheck(this, Animate); return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments)); } Animate.prototype.render = function render() { var _props = this.props, animation = _props.animation, children = _props.children, component = _props.component, animationAppear = _props.animationAppear, afterAppear = _props.afterAppear, afterEnter = _props.afterEnter, afterLeave = _props.afterLeave, singleMode = _props.singleMode, useTransition = _props.useTransition, beforeAppear = _props.beforeAppear, beforeEnter = _props.beforeEnter, beforeLeave = _props.beforeLeave, others = _objectWithoutProperties(_props, ['animation', 'children', 'component', 'animationAppear', 'afterAppear', 'afterEnter', 'afterLeave', 'singleMode', 'useTransition', 'beforeAppear', 'beforeEnter', 'beforeLeave']), attrs = { afterAppear: afterAppear, afterEnter: afterEnter, afterLeave: afterLeave, beforeAppear: beforeAppear, beforeEnter: beforeEnter, beforeLeave: beforeLeave, animationAppear: animationAppear, animation: this.normalizeAnimation(animation) }, length = _react2['default'].Children.count(children), animateChildren = _react2['default'].Children.map(children, function (child, index) { var key = child.key; if (!key) { key = 'animate-' + index; } return _react2['default'].createElement( AnimateChild, _extends({}, attrs, { key: key, useTransition: useTransition }), child ); }); if (!component && length <= 1 && singleMode) { component = SingeChildWrapper; } return _react2['default'].createElement( _TransitionGroup2['default'], _extends({ component: component }, others), animateChildren ); }; Animate.prototype.normalizeAnimation = function normalizeAnimation(animation) { if (typeof animation === 'string') { return { appear: animation + '-appear', enter: animation + '-enter', leave: animation + '-leave' }; } return animation; }; return Animate; }(_react2['default'].Component), _class3.propTypes = { children: _propTypes2['default'].any, /** * 配置动画的播放方式, 详见[animation](#animation) */ animation: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].object]), beforeAppear: _propTypes2['default'].func, /** * 在初始动画播放完毕触发的事件 */ afterAppear: _propTypes2['default'].func, beforeEnter: _propTypes2['default'].func, /** * 在进场动画播放完毕触发的事件 */ afterEnter: _propTypes2['default'].func, beforeLeave: _propTypes2['default'].func, /** * 在离开动画播放完毕触发的事件 */ afterLeave: _propTypes2['default'].func, /** * 在针对多个子节点播放动画的时候包裹的标签 */ component: _propTypes2['default'].any, /** * 是否是有单个节点,如果有多个动画的孩子节点,设置该选项为false */ singleMode: _propTypes2['default'].bool, useTransition: _propTypes2['default'].bool, /** * 是否在初始的时候播放动画 */ animationAppear: _propTypes2['default'].bool }, _class3.defaultProps = { animation: { appear: noop, enter: noop, leave: noop }, beforeAppear: noop, afterAppear: noop, beforeEnter: noop, afterEnter: noop, beforeLeave: noop, afterLeave: noop, singleMode: true, animationAppear: true, useTransition: false }, _temp3); Animate.displayName = 'Animate'; exports['default'] = Animate; Animate.names = _names2['default']; module.exports = exports['default']; /***/ }), /***/ 1518: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; /* eslint-disable react/prop-types */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); var _nextOverlay = __webpack_require__(1401); var _nextAnimate = __webpack_require__(1503); var _nextAnimate2 = _interopRequireDefault(_nextAnimate); var _container = __webpack_require__(1486); var _container2 = _interopRequireDefault(_container); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Component = _container2['default']; var noop = function noop() {}; /** * Menu.Item * @order 1 **/ var MenuItem = (_temp = _class = function (_Component) { _inherits(MenuItem, _Component); function MenuItem(props, context) { _classCallCheck(this, MenuItem); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); ['onClick', 'onKeyDown', 'onFocus', 'onMouseEnter', 'onMouseLeave'].forEach(function (method) { _this[method] = _this[method].bind(_this); }); var root = _this.getRoot(); if (!root) { throw new Error('MenuItem should use under Menu.'); } _this.root = root; _this.Menu = root.constructor; _this.SubMenu = root.constructor.SubMenu; return _this; } MenuItem.prototype.componentDidMount = function componentDidMount() { this._meta = _extends({ node: _reactDom2['default'].findDOMNode(this) }, this.props); this.pushMetaToParent(); }; MenuItem.prototype.componentDidUpdate = function componentDidUpdate() { // We need update parent ref to avoid root update. this.root = this.getRoot(); this.pushMetaToParent(); }; // If it have a parentMenu, we push meta to the parentMenu for keyboard navigation. MenuItem.prototype.pushMetaToParent = function pushMetaToParent() { var menu = this.getParentByFlag('_menu')[0]; menu && menu.addChildMeta(this._meta); }; MenuItem.prototype.componentWillUnmount = function componentWillUnmount() { var menu = this.getParentByFlag('_menu')[0]; menu && menu.removeChildMeta(this._meta); }; MenuItem.prototype.render = function render() { var _classnames; var _props = this.props, focused = _props.focused, selected = _props.selected, disabled = _props.disabled, helper = _props.helper, className = _props.className, indentSize = _props.indentSize, children = _props.children, focusedKey = _props.focusedKey, hasSelectedIcon = _props.hasSelectedIcon, index = _props.index, needIndent = _props.needIndent, _props$style = _props.style, style = _props$style === undefined ? {} : _props$style, others = _objectWithoutProperties(_props, ['focused', 'selected', 'disabled', 'helper', 'className', 'indentSize', 'children', 'focusedKey', 'hasSelectedIcon', 'index', 'needIndent', 'style']), prefix = this.getPrefix(); if (typeof selected === 'undefined') { selected = this.root.state.selectedKeys.indexOf(index) > -1; } var cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'menu-item', true), _defineProperty(_classnames, 'disabled', disabled), _defineProperty(_classnames, 'selected', selected), _defineProperty(_classnames, 'focused', index && focusedKey === index), _defineProperty(_classnames, className, className), _classnames)), events = { onClick: this.onClick, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave }, icon = _react2['default'].createElement( _nextAnimate2['default'], { animation: { appear: 'zoomIn', enter: 'zoomIn', leave: 'zoomOut' } }, hasSelectedIcon && selected ? _react2['default'].createElement(_nextIcon2['default'], { type: 'select', className: prefix + 'menu-icon-select', size: 'xs', style: { left: (indentSize || 20) - 16 + 'px' } }) : null ); helper = helper ? _react2['default'].createElement( 'em', { className: prefix + 'menu-item-helper' }, helper ) : null; if (disabled) { events = { // // Avoid trigger menu onSelect events onSelect: function onSelect(e) { e.stopPropagation(); }, onClick: function onClick(e) { e.stopPropagation(); } }; } others = (0, _nextUtil.pickAttrs)(others); if (indentSize && needIndent === true) { style.paddingLeft = indentSize; } return _react2['default'].createElement( 'li', _extends({}, others, events, { style: style, tabIndex: disabled ? null : focused ? 0 : -1, role: 'menuitem', className: cls }), children, icon, helper ); }; MenuItem.prototype.onClick = function onClick(e) { this.root.onItemClick(e, this.props.index, 'click', this); // It will crash Popup or others component. // We will adjust order of params at 2.x this.props.onClick(this.props.index, e); e.stopPropagation(); }; MenuItem.prototype.onKeyDown = function onKeyDown(e) { var keyCode = e.keyCode; this.props.onKeyDown(e); if (keyCode === 32 || keyCode === 13) { this.onClick(e); } }; MenuItem.prototype.onFocus = function onFocus(e) { e.stopPropagation(); }; MenuItem.prototype.onMouseEnter = function onMouseEnter(e) { this.root.onKeyNavNodeFocus(e); this.root.focusChild(this._meta); var parentMenu = this.getParentByType(this.Menu)[0]; if (parentMenu) { var subMenu = parentMenu.getChildrenIncByType(this.SubMenu); var popup = parentMenu.getChildrenIncByType(_nextOverlay.Popup); subMenu.forEach(function (menu) { menu.onContentMouseEnter(); if (menu.props.triggerType === 'hover') { menu.onSubMenuMouseLeave(e); } }); popup.forEach(function (p) { p._onContentMouseEnter(); if (p.props.triggerType === 'hover') { p._onTriggerMouseLeave(e); } }); } this.props.onMouseEnter(e); }; MenuItem.prototype.onMouseLeave = function onMouseLeave(e) { this.root.unFocusChild(this._meta); this.props.onMouseLeave(e); }; return MenuItem; }(Component), _class._menuItem = true, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 显示在菜单右侧的帮助文本,通常用于一些附加信息 */ helper: _propTypes2['default'].string, /** * 禁用当前菜单项, 被禁用不会触发事件, 也无法选中Checkbox/Radio */ disabled: _propTypes2['default'].bool, /** * 当前的菜单项是否被选中, 优先级比Menu传入的selectedKeys要高 */ selected: _propTypes2['default'].bool, focused: _propTypes2['default'].bool, /** * 点击了菜单项触发的事件 * @param {String} key 当前菜单项的key值 * @param {Event} e DOM事件 */ onClick: _propTypes2['default'].func, onKeyDown: _propTypes2['default'].func, parent: _propTypes2['default'].any, /** * 是否显示选中图标 */ hasSelectedIcon: _propTypes2['default'].bool, /** * 是否显示缩进 */ needIndent: _propTypes2['default'].bool }, _class.defaultProps = { helper: null, disabled: false, prefix: 'next-', hasSelectedIcon: true, needIndent: true, onClick: noop, onKeyDown: noop, onMouseEnter: noop, onMouseLeave: noop }, _class.contextTypes = { parentIndex: _propTypes2['default'].array, parentLabel: _propTypes2['default'].array, prefix: _propTypes2['default'].string }, _temp); MenuItem.displayName = 'MenuItem'; exports['default'] = MenuItem; module.exports = exports['default']; /***/ }), /***/ 1519: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _validators = __webpack_require__(2273); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var CalendarProps = { propTypes: { prefix: _propTypes2['default'].string, base: _propTypes2['default'].any, value: _propTypes2['default'].any, mode: _propTypes2['default'].oneOf(['month', 'year', 'decade']), dateCellRender: _propTypes2['default'].func, monthCellRender: _propTypes2['default'].func, yearCellRender: _propTypes2['default'].func, disabledDate: _propTypes2['default'].func, disabledMonth: _propTypes2['default'].func, disabledYear: _propTypes2['default'].func, language: _propTypes2['default'].oneOf(['en-us', 'ar', 'de', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'zh-cn', 'zh-hk', 'zh-tw']), locale: _propTypes2['default'].object }, defaultProps: { prefix: 'next-' } }; var CalendarMixin = { isAllowedDate: function isAllowedDate(value) { var disabledDate = this.props.disabledDate; if (disabledDate && typeof disabledDate === 'function' && disabledDate(value)) { return false; } return true; }, isAllowedMonth: function isAllowedMonth(value) { var disabledMonth = this.props.disabledMonth; if (disabledMonth && typeof disabledMonth === 'function' && disabledMonth(value)) { return false; } return true; }, isAllowedYear: function isAllowedYear(value) { var disabledYear = this.props.disabledYear; if (disabledYear && typeof disabledYear === 'function' && disabledYear(value)) { return false; } return true; }, isSameDay: function isSameDay(one, two) { if (!one || !two) { return false; } one = (0, _nextMoment2['default'])(one).format('YYYY-MM-DD'); two = (0, _nextMoment2['default'])(two).format('YYYY-MM-DD'); return (0, _nextMoment2['default'])(one).isSame(two); }, isRangeDay: function isRangeDay(day, range) { if (!day || !range[0] || !range[1]) { return false; } var theDay = (0, _nextMoment2['default'])(day).format('YYYY-MM-DD'), rangeOne = (0, _nextMoment2['default'])(range[0]).format('YYYY-MM-DD'), rangeTwo = (0, _nextMoment2['default'])(range[1]).format('YYYY-MM-DD'); return (0, _nextMoment2['default'])(theDay).isBetween(rangeOne, rangeTwo); }, getMonthsLocale: function getMonthsLocale(language) { // 设置多语言 _nextMoment2['default'].locale(language); var localeData = _nextMoment2['default'].localeData(), monthsLocale = void 0; // 获得多语言月份 try { monthsLocale = localeData.monthsShort(); } catch (e) { monthsLocale = localeData.months(); } return monthsLocale instanceof Array ? monthsLocale : monthsLocale.format; }, getDecadeYears: function getDecadeYears(baseYear) { var base = Math.floor(baseYear / 10), years = []; for (var i = 0; i < 10; i++) { years.push(base * 10 + i); } return years; }, getLateastYears: function getLateastYears(baseYear) { var years = []; for (var i = 0; i < 21; i++) { years.push(baseYear - 10 + i); } return years; }, getCalendar: function getCalendar(base, language, locale) { // 设置多语言 _nextMoment2['default'].locale(language); var localeData = _nextMoment2['default'].localeData(); var firstDayOfWeek = localeData.firstDayOfWeek(); var _ref = locale.format || {}, customFirstDayOfWeek = _ref.firstDayOfWeek; if ((0, _validators.isWeekdayIndex)(customFirstDayOfWeek)) { firstDayOfWeek = customFirstDayOfWeek; } var calendarStartWeek = [7, 1, 2, 3, 4, 5, 6][firstDayOfWeek]; // firstDayOfWeek 0为周日 // 基准日期 var baseDay = (0, _nextMoment2['default'])(base) || (0, _nextMoment2['default'])(), baseDayYear = baseDay.year(), baseDayMonth = baseDay.month(), baseMonthDays = baseDay.daysInMonth(); // 第一天 var firstDayWeek = baseDay.startOf('month').isoWeekday(); // 最后一天 var lastDayWeek = baseDay.endOf('month').isoWeekday(); // 上个月 var prevMonth = baseDayMonth - 1 < 0 ? 11 : baseDayMonth - 1; var prevMonthDays = baseDay.month(prevMonth).daysInMonth(); var prevYear = prevMonth === 11 ? baseDayYear - 1 : baseDayYear; var calendarPrevMonthDays = (firstDayWeek - calendarStartWeek + 14) % 7; //上月calendar剩余天数 // 下个月 var nextMonth = baseDayMonth + 1 > 11 ? 0 : baseDayMonth + 1; var nextYear = nextMonth === 0 ? baseDayYear + 1 : baseDayYear; var calendarNextMonthDays = (calendarStartWeek - lastDayWeek + 13) % 7; //下月calendar剩余天数 // 日历 var totalDays = baseMonthDays + calendarPrevMonthDays + calendarNextMonthDays, counter = totalDays, calendarWeek = [], calendar = []; // 根据基准日期获得日历 var _loop = function _loop(i) { var date = void 0, year = void 0, month = void 0, prevDay = void 0, curDay = void 0, nextDay = void 0; prevDay = prevMonthDays - calendarPrevMonthDays + i; prevDay = prevDay > prevMonthDays ? 0 : prevDay; curDay = i - calendarPrevMonthDays; curDay = curDay > baseMonthDays ? 0 : curDay; nextDay = i - totalDays + calendarNextMonthDays; date = prevDay || curDay || nextDay; if (prevDay) { month = prevMonth; year = prevYear; } else if (curDay) { month = baseDayMonth; year = baseDayYear; } else if (nextDay) { month = nextMonth; year = nextYear; } // CalendarDate 类型 calendarWeek.push({ value: { timestamp: (0, _nextMoment2['default'])().year(year).month(month).date(date).valueOf(), year: year, month: month, // 0~11 date: date, // 1~31 week: (calendarStartWeek + i - 1) % 7 === 0 ? 7 : (calendarStartWeek + i - 1) % 7, // 1 ~ 7 valueOf: function valueOf() { return (0, _nextMoment2['default'])().year(year).month(month).date(date).valueOf(); } }, base: { timestamp: baseDay.valueOf(), year: baseDay.year(), month: baseDayMonth, // 0~11 date: baseDay.date(), // 1~31 week: baseDay.isoWeekday(), // 1~7 valueOf: function valueOf() { return baseDay.valueOf(); } } }); if (calendarWeek.length === 7) { calendar.push(calendarWeek); calendarWeek = []; } }; for (var i = 1; i <= counter; i++) { _loop(i); } return calendar; } }; function extend(a, b) { for (var key in b) { if (b.hasOwnProperty(key)) { a[key] = b[key]; } } } function CalendarMixinTo(Component) { ['defaultProps', 'propTypes'].forEach(function (prop) { Component[prop] = Component[prop] || {}; extend(Component[prop], CalendarProps[prop]); }); extend(Component.prototype, CalendarMixin); } exports['default'] = CalendarMixinTo; module.exports = exports['default']; /***/ }), /***/ 1559: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _checkbox = __webpack_require__(1807); var _checkbox2 = _interopRequireDefault(_checkbox); var _checkboxGroup = __webpack_require__(2018); var _checkboxGroup2 = _interopRequireDefault(_checkboxGroup); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _checkbox2['default'].Group = _checkboxGroup2['default']; exports['default'] = _checkbox2['default']; module.exports = exports['default']; /***/ }), /***/ 1567: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _select = __webpack_require__(2013); var _select2 = _interopRequireDefault(_select); var _combobox = __webpack_require__(2021); var _combobox2 = _interopRequireDefault(_combobox); var _option = __webpack_require__(2022); var _option2 = _interopRequireDefault(_option); var _optionGroup = __webpack_require__(1808); var _optionGroup2 = _interopRequireDefault(_optionGroup); var _index = __webpack_require__(2023); var _index2 = _interopRequireDefault(_index); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _combobox2['default'].LOCALE = _index2['default']; _select2['default'].LOCALE = _index2['default']; _select2['default'].Combobox = _combobox2['default']; _select2['default'].Option = _option2['default']; _select2['default'].OptionGroup = _optionGroup2['default']; exports['default'] = _select2['default']; module.exports = exports['default']; /***/ }), /***/ 1668: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.scaleImage = exports.readFileAsDataURL = exports.uid = undefined; var _jpegHeaders = __webpack_require__(2698); var _jpegHeaders2 = _interopRequireDefault(_jpegHeaders); var _exifParser = __webpack_require__(2699); var _exifParser2 = _interopRequireDefault(_exifParser); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /* eslint-disable */ var now = +new Date(); /** * 生成唯一的id * @return {String} uid */ var uid = exports.uid = function uid() { return (now++).toString(36); }; /** * Detect subsampling in loaded image. * In iOS, larger images than 2M pixels may be subsampled in rendering. */ function detectSubsampling(img) { var iw = img.naturalWidth; var ih = img.naturalHeight; if (iw * ih > 1024 * 1024) { // subsampling may happen over megapixel image var canvas = document.createElement('canvas'); canvas.width = canvas.height = 1; var ctx = canvas.getContext('2d'); ctx.drawImage(img, -iw + 1, 0); // subsampled image becomes half smaller in rendering size. // check alpha channel value to confirm image is covering edge pixel or not. // if alpha value is 0 image is not covering, hence subsampled. return ctx.getImageData(0, 0, 1, 1).data[3] === 0; } else { return false; } } /** * Detecting vertical squash in loaded image. * Fixes a bug which squash image vertically while drawing into canvas for some images. */ function detectVerticalSquash(img, iw, ih) { var canvas = document.createElement('canvas'); canvas.width = 1; canvas.height = ih; var ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0); var data = ctx.getImageData(0, 0, 1, ih).data; // search image edge pixel position in case it is squashed vertically. var sy = 0; var ey = ih; var py = ih; while (py > sy) { var alpha = data[(py - 1) * 4 + 3]; if (alpha === 0) { ey = py; } else { sy = py; } py = ey + sy >> 1; } var ratio = py / ih; return ratio === 0 ? 1 : ratio; } /** * Rendering image element (with resizing) into the canvas element */ function renderImageToCanvas(img, canvas, width, height) { var iw = img.naturalWidth; var ih = img.naturalHeight; var ctx = canvas.getContext('2d'); canvas.width = width; canvas.height = height; ctx.save(); var subsampled = detectSubsampling(img); if (subsampled) { iw /= 2; ih /= 2; } var d = 1024; // size of tiling canvas var tilingCanvas = document.createElement('canvas'); tilingCanvas.width = tilingCanvas.height = d; var tilingCtx = tilingCanvas.getContext('2d'); var vertSquashRatio = detectVerticalSquash(img, iw, ih); var sy = 0; while (sy < ih) { var sh = sy + d > ih ? ih - sy : d; var sx = 0; while (sx < iw) { var sw = sx + d > iw ? iw - sx : d; tilingCtx.clearRect(0, 0, d, d); tilingCtx.drawImage(img, -sx, -sy); var dx = sx * width / iw << 0; var dw = Math.ceil(sw * width / iw); var dy = sy * height / ih / vertSquashRatio << 0; var dh = Math.ceil(sh * height / ih / vertSquashRatio); ctx.drawImage(tilingCanvas, 0, 0, sw, sh, dx, dy, dw, dh); sx += d; } sy += d; } ctx.restore(); tilingCanvas = tilingCtx = null; } function dataHandle(data, canvas, resize, mime) { data = canvas.toDataURL(mime); // Remove data prefix information and grab the base64 encoded data and decode it data = data.substring(data.indexOf('base64,') + 7); data = atob(data); return data; } function canvasResize(data, resize, mime, cb) { var img = new Image(); img.onerror = img.onabort = function (err) { throw err || new Error('resize failed'); }; img.onload = function () { var canvas = void 0, width = void 0, height = void 0, scale = void 0, jpegHeaders = void 0, exifParser = void 0; canvas = document.createElement('canvas'); canvas.style.display = 'none'; document.body.appendChild(canvas); // 图片压缩 resize.width = resize.width || img.width; resize.height = resize.height || img.height; scale = Math.min(resize.width / img.width, resize.height / img.height); if (scale < 1) { width = Math.round(img.width * scale); height = Math.round(img.height * scale); } else { width = img.width; height = img.height; } if (width && height) { // Scale image and canvas renderImageToCanvas(img, canvas, width, height); // Preserve JPEG headers if (mime === 'image/jpeg') { jpegHeaders = new _jpegHeaders2['default'](atob(data.substring(data.indexOf('base64,') + 7))); if (jpegHeaders.headers && jpegHeaders.headers.length) { exifParser = new _exifParser2['default'](); if (exifParser.init(jpegHeaders.get('exif')[0])) { // Set new width and height exifParser.setExif('PixelXDimension', width); exifParser.setExif('PixelYDimension', height); // Update EXIF header jpegHeaders.set('exif', exifParser.getBinary()); } } } data = dataHandle(data, canvas, resize, mime); // Restore JPEG headers if applicable if (jpegHeaders && jpegHeaders.headers && jpegHeaders.headers.length) { data = jpegHeaders.restore(data); jpegHeaders.purge(); // free memory } } else { // Image does not need to be resized data = null; } // Remove canvas and execute callback with decoded image data canvas.parentNode.removeChild(canvas); data ? cb(data) : function () { throw new Error('resize failed'); }(); }; img.src = data; } // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL var readFileAsDataURL = exports.readFileAsDataURL = function readFileAsDataURL(file, cb) { var reader = new FileReader(); reader.onloadend = function () { return cb(reader.result); }; reader.readAsDataURL(file); }; /** * 调整图片尺寸 * @param {File} file - 文件对象 * @param {[type]} resize [description] * @param {[type]} mime [description] * @return {[type]} [description] */ var scaleImage = exports.scaleImage = function scaleImage(file, resize, mime, cb) { return readFileAsDataURL(file, function (data) { return canvasResize(data, resize, mime, cb); }); }; /***/ }), /***/ 1741: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextOverlay = __webpack_require__(1401); var _nextOverlay2 = _interopRequireDefault(_nextOverlay); var _func = __webpack_require__(1796); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Children = _react2['default'].Children, Popup = _nextOverlay2['default'].Popup, noop = function noop() {}; /** * Dropdown */ var Dropdown = (_temp = _class = function (_React$Component) { _inherits(Dropdown, _React$Component); function Dropdown(props) { _classCallCheck(this, Dropdown); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); _this.state = { visible: props.visible || props.defaultVisible || false }; return _this; } Dropdown.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('visible' in nextProps) { this.setState({ visible: nextProps.visible }); } }; Dropdown.prototype.onMenuClick = function onMenuClick() { if (!('visible' in this.props)) { this.setState({ visible: false }); } this.props.onVisibleChange(false, 'fromContent'); }; Dropdown.prototype.onVisibleChange = function onVisibleChange(visible) { if (!('visible' in this.props)) { this.setState({ visible: visible }); } this.props.onVisibleChange(visible); }; Dropdown.prototype.render = function render() { var child = Children.only(this.props.children), content = _react2['default'].cloneElement(child, { onClick: (0, _func.makeChain)(this.onMenuClick.bind(this), child.props.onClick) }); return _react2['default'].createElement( Popup, _extends({}, this.props, { canCloseByOutSideClick: true, visible: this.state.visible, onVisibleChange: this.onVisibleChange.bind(this) }), content ); }; return Dropdown; }(_react2['default'].Component), _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 弹层内容 */ children: _propTypes2['default'].node, /** * 弹层当前是否可见 */ visible: _propTypes2['default'].bool, /** * 弹层默认是否可见 */ defaultVisible: _propTypes2['default'].bool, /** * 弹层在显示和隐藏时触发的回调函数 * @param {Boolean} visible 弹层是否显示 * @param {String} type 触发弹层显示和隐藏的来源 * @param {Object} event 事件对象 */ onVisibleChange: _propTypes2['default'].func, /** * 触发弹层显示或者隐藏的元素 */ trigger: _propTypes2['default'].node, /** * 触发弹层显示或者隐藏的事件 */ triggerType: _propTypes2['default'].oneOf(['hover', 'click', 'focus']), /** * 是否禁用,如果设置为true,那么trigger不能触发弹层的显示或隐藏 */ disabled: _propTypes2['default'].bool, /** * 弹层相对于trigger的定位, 详见[Overlay的定位部分](http://fusion-demo.alibaba-inc.com/components?type=next&themeId=next&name=overlay#demo-guide) */ align: _propTypes2['default'].string, /** * 弹层相对于trigger的定位的微调 */ offset: _propTypes2['default'].array, /** * 悬浮状态下延时时间 */ delay: _propTypes2['default'].number, /** * 弹层弹出后是否自动获取焦点 */ autoFocus: _propTypes2['default'].bool, /** * 是否带有遮罩 * @type {Boolean} */ hasMask: _propTypes2['default'].bool, /** * 在弹层隐藏后是否保留当前的DOM */ cache: _propTypes2['default'].bool, /** * 弹层显示前触发的回调函数 */ beforeOpen: _propTypes2['default'].func, /** * 弹层显示后触发的回调函数 */ afterOpen: _propTypes2['default'].func, /** * 弹层关闭前触发的回调函数 */ beforeClose: _propTypes2['default'].func, /** * 弹层关闭后触发的回调函数 */ afterClose: _propTypes2['default'].func, /** * 弹层定位完成后触发的回调函数 * @param {Object} config 定位的参数 * @param {Object} node 定位的元素 */ onPosition: _propTypes2['default'].func, /** * 动画的配置,如果设置为false,将关闭动画 */ animation: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].object]) }, _class.defaultProps = { prefix: 'next-', defaultVisible: false, onVisibleChange: noop, triggerType: 'hover', disabled: false, align: 'tl bl', offset: [0, 0], delay: 200, autoFocus: true, hasMask: false, cache: false, beforeOpen: noop, afterOpen: noop, beforeClose: noop, afterClose: noop, onPosition: noop, animation: { 'in': 'expandInDown', out: 'expandOutUp' } }, _temp); Dropdown.displayName = 'Dropdown'; exports['default'] = Dropdown; module.exports = exports['default']; /***/ }), /***/ 1742: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _radio = __webpack_require__(1803); var _radio2 = _interopRequireDefault(_radio); var _radioGroup = __webpack_require__(2012); var _radioGroup2 = _interopRequireDefault(_radioGroup); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _radio2['default'].Group = _radioGroup2['default']; exports['default'] = _radio2['default']; module.exports = exports['default']; /***/ }), /***/ 1743: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _calendar = __webpack_require__(2563); var _calendar2 = _interopRequireDefault(_calendar); var _datePickerPanel = __webpack_require__(2568); var _datePickerPanel2 = _interopRequireDefault(_datePickerPanel); var _rangePickerPanel = __webpack_require__(2570); var _rangePickerPanel2 = _interopRequireDefault(_rangePickerPanel); var _locale = __webpack_require__(2572); var _locale2 = _interopRequireDefault(_locale); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _calendar2['default'].LOCALE = _locale2['default']; _datePickerPanel2['default'].LOCALE = _locale2['default']; _rangePickerPanel2['default'].LOCALE = _locale2['default']; _calendar2['default'].DatePickerPanel = _datePickerPanel2['default']; _calendar2['default'].RangePickerPanel = _rangePickerPanel2['default']; exports['default'] = _calendar2['default']; module.exports = exports['default']; /***/ }), /***/ 1744: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /*eslint-disable no-useless-escape */ var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; function isFunction(obj) { return !!(obj && obj.constructor && obj.call && obj.apply); } function isString(str) { return typeof str === 'string'; } function isISODate(str) { if (isString(str)) { var match = extendedIsoRegex.exec(str) || basicIsoRegex.exec(str); // 这里检测强制规范 if (match && match.length && match[2] === 'T' && match[4] === 'Z') { return true; } } return false; } /** * 格式化日期值为目标格式的字符串 * @param {Object} dateObject 日期对象 * @param {String|Function} format 格式字符串或格式函数 */ function formatDate(dateObject, format) { if (isFunction(format)) { return format(dateObject); } return (0, _nextMoment2['default'])(dateObject).format(format); } /** * 构造自定义 CalendarDate 对象 * @param {Object} value 被 moment 格式化后的日期值 { _d, _isUTC, _isValid, _locale, ... } * @return {Object} 格式化后的 Calendar 日期对象 */ function getCalendarDate(value) { if (!value.isValid()) { return {}; } return { timestamp: value.valueOf(), year: value.year(), month: value.month(), date: value.date(), week: value.isoWeekday(), valueOf: function valueOf() { return value.valueOf(); } }; } var utils = { isFunction: isFunction, // mixin object props to target mixin: function mixin(target, object) { for (var key in object) { if (Object.prototype.hasOwnProperty.call(object, key)) { target[key] = object[key]; } } return target; }, filterObject: function filterObject(obj) { for (var key in obj) { if (obj[key] === undefined) { delete obj[key]; } } return obj; }, getCalendarDate: getCalendarDate, /** * 判断输入值是否是有效的 CalendarDate 对象 * @param {Object} calendarDate 输入日期对象 * @param {Function} disabledDateFn 判断日期是否是禁用日期的函数 */ isValidCalendarDate: function isValidCalendarDate(calendarDate, disabledDateFn) { if (isFunction(disabledDateFn)) { return !disabledDateFn(calendarDate); } return true; }, /** * 获取模糊匹配和精确匹配日期的正则表达式 * @param {Array|String} formater format 数组 * @return {Object} { fuzzy, exact } */ getStrRegExp: function getStrRegExp(formater) { var exactRegExp = []; var fuzzyRegExp = []; for (var i = 0; i < formater.length; i++) { if (/[a-zA-Z]/.test(formater[i])) { exactRegExp.push('[0-9]'); } else { exactRegExp.push(formater[i]); if (fuzzyRegExp.indexOf(formater[i]) === -1) { fuzzyRegExp.push(formater[i]); } } } return { fuzzy: new RegExp('^[0-9' + fuzzyRegExp.join('') + ']{0,' + exactRegExp.length + '}$'), exact: new RegExp('^' + exactRegExp.join('') + '$') }; }, getFormat: function getFormat(formater, format) { var hasTime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (format) { return { dateFormat: hasTime ? 'YYYY-MM-DD' : format, timeFormat: 'HH:mm:ss', dateTimeFormat: format }; } var dateFormat = formater[0]; var timeFormat = formater[1] || 'HH:mm:ss'; var dateTimeFormat = !hasTime ? dateFormat : [dateFormat, timeFormat]; return { dateFormat: dateFormat, timeFormat: timeFormat, dateTimeFormat: dateTimeFormat }; }, toMoment: function toMoment(value, format) { var disabledDateCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () { return false; }; if (!value) { return null; } var val = void 0; if (_nextMoment2['default'].isMoment(value) && value.isValid()) { val = value; } else if (isISODate(value)) { val = (0, _nextMoment2['default'])(value); } else if (isString(value) && isString(format)) { val = (0, _nextMoment2['default'])(value, format); }if (isString(value) && Array.isArray(format)) { if (format.length === 1 && isString(format[0])) { val = (0, _nextMoment2['default'])(value, format[0]); } else if (format.length === 2 && isString(format[0]) && isString(format[1])) { val = (0, _nextMoment2['default'])(value, format.join(' ')); } else { val = (0, _nextMoment2['default'])(value); } } else { val = (0, _nextMoment2['default'])(value); } if (val && val.isValid() && !disabledDateCallback(getCalendarDate(val))) { return val; } return null; }, // dateTimeFormat 可不传,如果传的话,就强制用 datTimeFormat 格式化 parseDateParts: function parseDateParts(momentObject, dateFormat, timeFormat, dateTimeFormat) { if (!momentObject) { return { dateValue: null, dateString: '', timeString: '', dateTimeString: '' }; } var dateValue = momentObject.toDate(); var dateString = formatDate(dateValue, dateFormat); var timeString = formatDate(dateValue, timeFormat); var dateTimeString = void 0; if (Array.isArray(dateTimeFormat)) { dateTimeString = formatDate(dateValue, dateTimeFormat[0]) + ' ' + formatDate(dateValue, dateTimeFormat[1]); } else { dateTimeString = formatDate(dateValue, dateTimeFormat); } return { dateValue: dateValue, dateString: dateString, timeString: timeString, dateTimeString: dateTimeString }; } }; exports['default'] = utils; module.exports = exports['default']; /***/ }), /***/ 1745: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.inRange = inRange; exports.getPercent = getPercent; exports.getPrecision = getPrecision; function inRange(value, range, min) { if (!Array.isArray(range)) { range = [min, range]; } return value >= range[0] && value <= range[1]; } function getPercent(min, max, value) { return (value - min) * 100 / (max - min); } function getPrecision(step) { var precision = 0; var stepString = step.toString(); if (stepString.indexOf('.') !== -1) { precision = stepString.length - stepString.indexOf('.') - 1; } return precision; } // export function debounce(func, wait, immediate) { // let timeout; // return function() { // let context = this, args = arguments; // let later = function() { // timeout = null; // if (!immediate) func.apply(context, args); // }; // let callNow = immediate && !timeout; // clearTimeout(timeout); // timeout = setTimeout(later, wait); // if (callNow) func.apply(context, args); // }; // } // export function throttle(func, wait, options) { // /* options的默认值 // * 表示首次调用返回值方法时,会马上调用func;否则仅会记录当前时刻,当第二次调用的时间间隔超过wait时,才调用func。 // * options.leading = true; // * 表示当调用方法时,未到达wait指定的时间间隔,则启动计时器延迟调用func函数,若后续在既未达到wait指定的时间间隔和func函数又未被调用的情况下调用返回值方法,则被调用请求将被丢弃。 // * options.trailing = true; // * 注意:当options.trailing = false时,效果与上面的简单实现效果相同 // */ // let context, args, result; // let timeout = null; // let previous = 0; // if (!options) options = {}; // let later = function() { // previous = options.leading === false ? 0 : new Date().getTime(); // timeout = null; // result = func.apply(context, args); // if (!timeout) context = args = null; // }; // return function() { // let now = new Date().getTime(); // if (!previous && options.leading === false) previous = now; // // 计算剩余时间 // let remaining = wait - (now - previous); // context = this; // args = arguments; // // 当到达wait指定的时间间隔,则调用func函数 // // 精彩之处:按理来说remaining <= 0已经足够证明已经到达wait的时间间隔,但这里还考虑到假如客户端修改了系统时间则马上执行func函数。 // if (remaining <= 0 || remaining > wait) { // // 由于setTimeout存在最小时间精度问题,因此会存在到达wait的时间间隔,但之前设置的setTimeout操作还没被执行,因此为保险起见,这里先清理setTimeout操作 // if (timeout) { // clearTimeout(timeout); // timeout = null; // } // previous = now; // result = func.apply(context, args); // if (!timeout) context = args = null; // } else if (!timeout && options.trailing !== false) { // // options.trailing=true时,延时执行func函数 // timeout = setTimeout(later, remaining); // } // return result; // }; // } /***/ }), /***/ 1746: /***/ (function(module, exports, __webpack_require__) { "use strict"; function extend(a, b) { for (var key in b) { if (b.hasOwnProperty(key)) { a[key] = b[key]; } } } module.exports = { /** * test if you can use dom in the environment */ canUseDOM: !!(typeof window !== 'undefined' && window.document && window.document.createElement), /** * string transform: * 'min-width' to 'minWidth' * '-moz-transition' to 'MozTransition' */ camel2hyphen: function camel2hyphen(str) { return str.replace(/[A-Z]/g, function (match) { return '-' + match.toLowerCase(); }).toLowerCase(); }, /** * string transform: * 'minWidth' to 'min-width' * 'MozTransition' to '-moz-transition' */ hyphen2camel: function hyphen2camel(str) { return str.toLowerCase().replace(/-[a-z]/g, function (match) { return match.slice(1).toUpperCase(); }); }, getNodeWidth: function getNodeWidth(node) { if (!node) { return 0; } return node.offsetWidth; }, getNodeHeight: function getNodeHeight(node) { if (!node) { return 0; } return node.offsetHeight; }, /** * IE8 检测 */ isIE8: function () { if (!document || typeof document === 'undefined') { return false; } var documentMode = document.documentMode || 0; return documentMode === 8; }(), mixinTo: function mixinTo(Target, mixin) { extend(Target.prototype, mixin); } }; /***/ }), /***/ 1796: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.makeChain = function (left, right) { var args = [].slice.call(arguments, 0); if (args.length == 2 && !right || args.length == 1) { return left; } return function () { for (var i = args.length - 1; i >= 0; i--) { if (args[i] && typeof args[i] == 'function') { args[i].apply(this, arguments); } } }; }; /***/ }), /***/ 1797: /***/ (function(module, exports, __webpack_require__) { "use strict"; var PIXEL_PATTERN = /margin|padding|width|height|max|min|offset/; var getComputedStyle = function getComputedStyle(node) { return node.nodeType == 1 ? node.ownerDocument.defaultView.getComputedStyle(node, null) : {}; }, removePixel = { left: true, top: true }, getStyleValue = function getStyleValue(node, type, value) { type = type.toLowerCase(); if (value === 'auto') { if (type === 'height') { return node.offsetHeight; } if (type === 'width') { return node.offsetWidth; } } if (!(type in removePixel)) { removePixel[type] = PIXEL_PATTERN.test(type); } return removePixel[type] ? parseFloat(value) || 0 : value; }, floatMap = { cssFloat: 1, styleFloat: 1, float: 1 }; function camelize(name) { return name.replace(/-(.)/g, function ($0, $1) { return $1.toUpperCase(); }); } function hyphenate(name) { return name.replace(/[A-Z]/g, function ($1) { return '-' + $1.toLowerCase(); }); } function getStyle(node, name) { var length = arguments.length, style = getComputedStyle(node); name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name; return length === 1 ? style : getStyleValue(node, name, style.getPropertyValue(hyphenate(name)) || node.style[camelize(name)]); } function setStyle(node, name, value) { var length = arguments.length; name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name; if (length === 3) { if (typeof value === 'number' && PIXEL_PATTERN.test(name)) { value = value + 'px'; } return node.style[camelize(name)] = value; // IE8 support. } for (var x in name) { setStyle(node, x, name[x]); } return getComputedStyle(node); } function getOuterWidth(el) { if (el === document.body) { return document.documentElement.clientWidth; } return el.offsetWidth; } function getOuterHeight(el) { if (el === document.body) { return window.innerHeight || document.documentElement.clientHeight; } return el.offsetHeight; } function getDocSize() { var width = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth), height = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight); return { width: width, height: height }; } function getClientSize() { var width = document.documentElement.clientWidth, height = window.innerHeight || document.documentElement.clientHeight; return { width: width, height: height }; } function getScroll() { return { scrollLeft: Math.max(document.documentElement.scrollLeft, document.body.scrollLeft), scrollTop: Math.max(document.documentElement.scrollTop, document.body.scrollTop) }; } function getOffset(node) { var box = node.getBoundingClientRect(), docElem = document.documentElement; return { left: box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0), top: box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0) }; } module.exports = { set: setStyle, get: getStyle, getOuterWidth: getOuterWidth, getOuterHeight: getOuterHeight, getDocSize: getDocSize, getClientSize: getClientSize, getScroll: getScroll, getOffset: getOffset }; /***/ }), /***/ 1798: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextDom = __webpack_require__(1124); var _nextUtil = __webpack_require__(889); var _classnames3 = __webpack_require__(3); var _classnames4 = _interopRequireDefault(_classnames3); var _manager = __webpack_require__(2007); var _manager2 = _interopRequireDefault(_manager); var _gateway = __webpack_require__(1799); var _gateway2 = _interopRequireDefault(_gateway); var _position = __webpack_require__(1800); var _position2 = _interopRequireDefault(_position); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var REACT_VERSION = parseInt(_react2['default'].version, 10); var Children = _react2['default'].Children, makeChain = _nextUtil.func.makeChain, noop = function noop() {}, saveLastFocusNode = _nextUtil.focus.saveLastFocusNode, getFocusNodeList = _nextUtil.focus.getFocusNodeList, backLastFocusNode = _nextUtil.focus.backLastFocusNode, ANIMATION_CLS = 'animated'; var isScrollDisplay = function isScrollDisplay(element) { try { var scrollbarStyle = window.getComputedStyle(element, '::-webkit-scrollbar'); return !scrollbarStyle || scrollbarStyle.getPropertyValue('display') !== 'none'; } catch (e) { // ignore error for firefox } return true; }; var hasScroll = function hasScroll() { var doc = document.documentElement; return doc.scrollHeight > doc.clientHeight && (0, _nextUtil.scrollbar)().width > 0 && isScrollDisplay(document.documentElement) && isScrollDisplay(document.body); }; var modals = []; var bodyOverflowY = void 0, bodyPaddingRight = void 0; // // // /** Overlay */ var Overlay = (_temp = _class = function (_React$Component) { _inherits(Overlay, _React$Component); Overlay.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; function Overlay(props, context) { _classCallCheck(this, Overlay); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this.state = { visible: props.visible }; _this.Manager = _manager2['default']; _this._onDocumentKeyDown = _this._onDocumentKeyDown.bind(_this); _this._onDocumentClick = _this._onDocumentClick.bind(_this); _this._onMaskClick = _this._onMaskClick.bind(_this); _this._onPosition = _this._onPosition.bind(_this); _this._safeClickNode = []; _this.beforeOpen = _this.beforeOpen.bind(_this); _this.beforeClose = _this.beforeClose.bind(_this); _this.onAnimateEnd = _this.onAnimateEnd.bind(_this); return _this; } Overlay.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if (!this._isMounted && nextProps.visible) { this._isMounted = true; } var willOpen = !this.state.visible && nextProps.visible; var willClose = this.state.visible && this.state.animationType !== 'out' && !nextProps.visible; if (willOpen) { this.beforeOpen(); nextProps.beforeOpen(); } else if (willClose) { this.beforeClose(); nextProps.beforeClose(); } if (nextProps.animation && _nextUtil.support.animation) { if (willOpen) { this.enter(); } else if (willClose) { this.leave(); } } else { this.setState({ visible: nextProps.visible }); } }; Overlay.prototype.componentWillMount = function componentWillMount() { if (this.props.visible) { this.beforeOpen(); this.props.beforeOpen(); if (this.props.animation && _nextUtil.support.animation) { this.enter(); } } }; Overlay.prototype._initAnimationEvents = function _initAnimationEvents(flag) { var node = this.getContentNode(); // react 16 中,在 componentDidMount 中调用初始化方法中并不能保证节点完成渲染 if (REACT_VERSION > 15 && !node && flag !== 'try') { return setTimeout(this._initAnimationEvents.bind(this, 'try')); } if (node) { this._animation = _nextDom.events.on(node, _nextUtil.support.animation.end, this.onAnimateEnd); } }; Overlay.prototype.enter = function enter() { var _this2 = this; this.setState({ visible: true, animationType: 'in' }, function () { if (REACT_VERSION > 15) { // in react 16, callback will be called before DOM mounted. setTimeout(function () { !_this2.isDestroyed && _this2.onEntering && _this2.onEntering(); }); } else { _this2.onEntering && _this2.onEntering(); } }); }; Overlay.prototype.leave = function leave() { this.setState({ animationType: 'out' }); this.onLeaving && this.onLeaving(); }; Overlay.prototype.onAnimateEnd = function onAnimateEnd() { if (this.state.animationType === 'out') { this.setState({ visible: false, animationType: 'none' }); this.onLeaved && this.onLeaved(); } else if (this.state.animationType === 'in') { this.setState({ animationType: 'none' }); this.onEntered && this.onEntered(); } }; Overlay.prototype.getAnimationCls = function getAnimationCls(config) { var className = void 0; switch (this.state.animationType) { case 'in': className = ANIMATION_CLS + ' ' + config['in']; break; case 'out': className = ANIMATION_CLS + ' ' + config.out; break; case 'none': className = ''; } return className; }; Overlay.prototype.getContentNode = function getContentNode() { return _reactDom2['default'].findDOMNode(this.getContent()); }; Overlay.prototype.getContent = function getContent() { return this.content || this.refs[this.contentRef]; }; Overlay.prototype.getWrapperNode = function getWrapperNode() { return this.refs.gateway ? this.refs.gateway.getContentNode() : null; }; Overlay.prototype.render = function render() { var _this3 = this; /* eslint-disable no-unused-vars */ var _props = this.props, animation = _props.animation, cache = _props.cache, container = _props.container, className = _props.className, style = _props.style, hasMask = _props.hasMask, shouldUpdatePosition = _props.shouldUpdatePosition, target = _props.target, offset = _props.offset, align = _props.align, onPosition = _props.onPosition, beforePosition = _props.beforePosition, needAdjust = _props.needAdjust, children = _props.children, safeId = _props.safeId, canCloseByOutSideClick = _props.canCloseByOutSideClick, canCloseByEsc = _props.canCloseByEsc, visible = _props.visible, beforeOpen = _props.beforeOpen, beforeClose = _props.beforeClose, afterOpen = _props.afterOpen, afterClose = _props.afterClose, onOpen = _props.onOpen, onClose = _props.onClose, onRequestClose = _props.onRequestClose, wrapperCls = _props.wrapperClassName, others = _objectWithoutProperties(_props, ['animation', 'cache', 'container', 'className', 'style', 'hasMask', 'shouldUpdatePosition', 'target', 'offset', 'align', 'onPosition', 'beforePosition', 'needAdjust', 'children', 'safeId', 'canCloseByOutSideClick', 'canCloseByEsc', 'visible', 'beforeOpen', 'beforeClose', 'afterOpen', 'afterClose', 'onOpen', 'onClose', 'onRequestClose', 'wrapperClassName']), prefix = this.getPrefix(), animationCls = void 0, cls = void 0, child = void 0, wrapperClassName = void 0; children = this.state.visible || cache && this._isMounted ? children : null; onPosition = makeChain(this._onPosition, onPosition); if (animation && _nextUtil.support.animation) { animationCls = this.getAnimationCls(animation); } else { animationCls = false; } if (children) { var _classnames, _classnames2; child = Children.only(children); // eslint-disable-next-line cls = (0, _classnames4['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'overlay-inner', true), _defineProperty(_classnames, animationCls, animationCls), _defineProperty(_classnames, child.props.className, child.props.className), _defineProperty(_classnames, className, className), _classnames)), wrapperClassName = (0, _classnames4['default'])((_classnames2 = {}, _defineProperty(_classnames2, prefix + 'overlay-wrapper', true), _defineProperty(_classnames2, wrapperCls, wrapperCls), _classnames2)); var ref = void 0; if (child.ref) { if (typeof child.ref === 'function') { ref = function ref(_ref) { _this3.content = _ref; child.ref(_ref); }; } else { ref = this.contentRef = child.ref; } } else { ref = this.contentRef = 'content'; } children = _react2['default'].cloneElement(child, { className: cls, ref: ref, id: child.props.id ? child.props.id : safeId, style: _extends({}, style || {}, child.props.style || {}) }); if (this.state.animationType === 'out') { shouldUpdatePosition = false; } if (this.props.align) { children = _react2['default'].createElement( _position2['default'], { target: target, offset: offset, align: align, beforePosition: beforePosition, onPosition: onPosition, needAdjust: needAdjust, shouldUpdatePosition: shouldUpdatePosition }, children ); } children = _react2['default'].createElement( 'div', { className: wrapperClassName, style: { display: this.state.visible ? '' : 'none' } }, hasMask ? _react2['default'].createElement('div', { className: prefix + 'overlay-backdrop', onClick: this._onMaskClick }) : null, children ); } return _react2['default'].createElement( _gateway2['default'], { container: container, ref: 'gateway', target: target }, children ); }; Overlay.prototype.beforeOpen = function beforeOpen() { if (this.props.disableScroll) { if (modals.length === 0) { var value = { overflowY: 'hidden' }; var body = document.body; bodyOverflowY = body.style.overflowY; if (hasScroll()) { bodyPaddingRight = body.style.paddingRight; value.paddingRight = _nextDom.style.get(body, 'paddingRight') + (0, _nextUtil.scrollbar)().width + 'px'; } _nextDom.style.set(body, value); } modals.push(this); } }; Overlay.prototype.beforeClose = function beforeClose() { if (this.props.disableScroll) { var index = modals.indexOf(this); if (index > -1) { if (modals.length === 1) { var value = { overflowY: bodyOverflowY }; if (hasScroll()) { value.paddingRight = bodyPaddingRight; } _nextDom.style.set(document.body, value); bodyOverflowY = undefined; bodyPaddingRight = undefined; } modals.splice(index, 1); } } }; Overlay.prototype.componentDidMount = function componentDidMount() { //如果设置了动画,需要等到动画执行完毕再设置焦点 //使用onEntered方法 this.componentDidUpdate(); }; Overlay.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) { var _this4 = this; if (this.props.animation && _nextUtil.support.animation) { this._initAnimationEvents(); } else { var callback = function callback() { var wrapperNode = _this4.getWrapperNode(); _this4._setFocusNode(prevProps, prevState); if (_this4.state.visible) { _this4.props.onOpen(); _this4.props.afterOpen(); wrapperNode && _nextDom.classList.addClass(wrapperNode, 'opened'); _manager2['default'].addOverlay(_this4); } else if (prevState && prevState.visible === true) { _this4.props.onClose(); _this4.props.afterClose(); wrapperNode && _nextDom.classList.removeClass(wrapperNode, 'opened'); _manager2['default'].removeOverlay(_this4); } }; if (REACT_VERSION > 15) { setTimeout(callback); } else { callback(); } } this.prevProps = prevProps; this.prevState = prevState; this.handleDocumentEvents(); }; Overlay.prototype.handleDocumentEvents = function handleDocumentEvents() { if (this.state.visible) { if (this.props.canCloseByEsc && !this._keydownEvents) { this._keydownEvents = _nextDom.events.on(document, 'keydown', this._onDocumentKeyDown); } if (this.props.canCloseByOutSideClick && !this._documentEvents) { this._documentEvents = _nextDom.events.on(document, 'click', this._onDocumentClick); } return; } this.clearHandleDocumentEvents(); }; Overlay.prototype.clearHandleDocumentEvents = function clearHandleDocumentEvents() { if (this._keydownEvents) { this._keydownEvents.off(); this._keydownEvents = null; } if (this._documentEvents) { this._documentEvents.off(); this._documentEvents = null; } }; Overlay.prototype.onEntering = function onEntering() { var wrapperNode = this.getWrapperNode(); this.props.onOpen(); wrapperNode && _nextDom.classList.addClass(wrapperNode, 'opened'); }; Overlay.prototype.onLeaving = function onLeaving() { var wrapperNode = this.getWrapperNode(); this.props.onClose(); wrapperNode && _nextDom.classList.removeClass(wrapperNode, 'opened'); }; Overlay.prototype.onEntered = function onEntered() { this._setFocusNode(this.prevProps, this.prevState); this.props.afterOpen(); _manager2['default'].addOverlay(this); }; Overlay.prototype.onLeaved = function onLeaved() { this._setFocusNode(this.prevProps, this.prevState); this.props.afterClose(); _manager2['default'].removeOverlay(this); }; //保留弹出层之前的焦点 //当弹层消失的时候返回之前的焦点 Overlay.prototype._setFocusNode = function _setFocusNode(prevProps, prevState) { var _this5 = this; var oldState = prevState || {}; if (this.props.autoFocus) { if (this.state.visible && !this._hasFocused) { saveLastFocusNode(); //这个时候很可能上一个弹层的关闭事件还未触发,导致焦点已经back触发的元素 //这里延时处理一下,延时的时间为document.click捕获触发的延时时间 this.focusTimeout = setTimeout(function () { var node = _this5.getContentNode(); if (node) { var focusNodeList = getFocusNodeList(node); if (focusNodeList.length) { focusNodeList[0].focus(); } _this5._hasFocused = true; } }, 100); } else if (!this.state.visible && this._hasFocused) { backLastFocusNode(); this._hasFocused = false; } } }; Overlay.prototype.componentWillUnmount = function componentWillUnmount() { this.isDestroyed = true; _manager2['default'].removeOverlay(this); this._isMounted = false; this.clearHandleDocumentEvents(); if (this.focusTimeout) { clearTimeout(this.focusTimeout); } if (this._animation) { if (this._animation.off) { this._animation.off(); } this._animation = null; } this.beforeClose(); }; Overlay.prototype._onMaskClick = function _onMaskClick(e) { if (this.props.canCloseByMask) { this.props.onRequestClose('maskClick', e); } }; Overlay.prototype._getSafeNode = function _getSafeNode(safeNode) { if (typeof safeNode === 'function') { safeNode = safeNode(this.props); } if (typeof safeNode === 'string') { safeNode = document.getElementById(safeNode); } else { try { safeNode = _reactDom2['default'].findDOMNode(safeNode); } catch (e) { // regardless of error } } return safeNode; }; Overlay.prototype._onDocumentKeyDown = function _onDocumentKeyDown(e) { if (e.keyCode === 27) { if (this.Manager && this.Manager.isCurrentOverlay(this) || !this.Manager) { this.props.onRequestClose('keyboard', e); } } }; Overlay.prototype._onDocumentClick = function _onDocumentClick(e) { this.initSafeNode(); for (var i = 0; i < this._safeClickNode.length; i++) { var node = this._safeClickNode[i], nodeGroup = node.getAttribute('data-overlay-group'), _target = e.target, targetGroup = _target.getAttribute && _target.getAttribute('data-overlay-group') || ''; if (node.contains(_target) || nodeGroup === targetGroup || node === _target || !document.documentElement.contains(e.target)) { return; } } this.props.onRequestClose('docClick', e); }; Overlay.prototype.initSafeNode = function initSafeNode() { var node = this.getWrapperNode && this.getWrapperNode() || _reactDom2['default'].findDOMNode(this), safeNode = this.props.safeNode; if (Array.isArray(safeNode)) { safeNode.push(node); } else { safeNode = [node, safeNode]; } this.addNodeForSafeClick(safeNode); }; Overlay.prototype.addNodeForSafeClick = function addNodeForSafeClick(node) { var _this6 = this; if (Array.isArray(node)) { node.forEach(function (n) { _this6.addNodeForSafeClick(n); }); } else { var safeNode = this._getSafeNode(node); if (safeNode && this._safeClickNode.indexOf(safeNode) === -1) { this._safeClickNode.push(safeNode); } } }; Overlay.prototype._onPosition = function _onPosition(res) { if (this.state.visible) { // 很可能我们访问不到contentNode节点,尤其当contentNode的ref为函数的时候 var contentNode = this.getContentNode(); if (contentNode) { var align = res.align[0]; var className = contentNode.className.split(' '); className.forEach(function (cls) { if (cls.indexOf('position') > -1) { _nextDom.classList.removeClass(contentNode, cls); } }); _nextDom.classList.addClass(contentNode, this.props.prefix + 'position-' + align); } } }; return Overlay; }(_react2['default'].Component), _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义样式对象 */ style: _propTypes2['default'].object, /** * 浮层内容 */ children: _propTypes2['default'].any, /** * 是否显示浮层, 如果此属性为false,浮层不会被渲染 */ visible: _propTypes2['default'].bool, /** * 是否支持esc按键关闭浮层 */ canCloseByEsc: _propTypes2['default'].bool, /** * 点击浮层外的区域是否关闭浮层 */ canCloseByOutSideClick: _propTypes2['default'].bool, /** * 点击遮罩区域是否关闭浮层 */ canCloseByMask: _propTypes2['default'].bool, /** * 配置动画的播放方式 * @param {String} in 进场动画 * @param {String} out 出场动画 */ animation: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].bool]), /** * 配置浮层定位的参照元素 */ target: _propTypes2['default'].any, /** * 浮层相对于target的定位, 详见开发指南的[定位部分](#定位) */ align: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].bool]), /** * 浮层相对于target定位的微调 */ offset: _propTypes2['default'].array, /** * 浮层关闭前触发的事件 */ beforeClose: _propTypes2['default'].func, /** * 浮层关闭后触发的事件 */ onClose: _propTypes2['default'].func, /** * 浮层关闭后触发的事件, 如果有动画,则在动画结束后触发 */ afterClose: _propTypes2['default'].func, /** * 浮层打开前触发的事件 */ beforeOpen: _propTypes2['default'].func, /** * 浮层打开后触发的事件 */ onOpen: _propTypes2['default'].func, /** * 浮层打开后触发的事件, 如果有动画,则在动画结束后触发 */ afterOpen: _propTypes2['default'].func, /** * 浮层请求关闭触发的事件 * @param {String} reason 浮层关闭的来源 * @param {Event} e DOM事件 */ onRequestClose: _propTypes2['default'].func, /** * 浮层定位完成前触发的事件 */ beforePosition: _propTypes2['default'].func, /** * 浮层定位完成后触发的事件 * @param {Object} config 定位的参数 * @param {Object} node 定位的元素 */ onPosition: _propTypes2['default'].func, /** * 浮层打开的时候是否让里面的元素自动获取焦点 */ autoFocus: _propTypes2['default'].bool, /** * 是否显示遮罩 */ hasMask: _propTypes2['default'].bool, /** * 隐藏时是否保留子节点 */ cache: _propTypes2['default'].bool, safeId: _propTypes2['default'].string, /** * 安全节点,当点击document的时候, 如果包含该节点则不会关闭浮层, 如果是函数需要返回ref, 如果是字符串则是该DOM的id, 也可以直接传入DOM节点 */ safeNode: _propTypes2['default'].any, /** * 浮层的根节点的样式类 */ wrapperClassName: _propTypes2['default'].string, /** * 指定渲染组件的容器 */ container: _propTypes2['default'].any, /** * 强制更新定位信息 */ shouldUpdatePosition: _propTypes2['default'].bool, /** * 是否自动调整定位的位置 */ needAdjust: _propTypes2['default'].bool, /** * 是否禁用页面滚动 */ disableScroll: _propTypes2['default'].bool }, _class.defaultProps = { align: 'tl bl', offset: [0, 0], visible: false, canCloseByEsc: true, canCloseByOutSideClick: true, canCloseByMask: true, target: _position2['default'].VIEWPORT, animation: { 'in': 'expandInDown', out: 'expandOutUp' }, afterClose: noop, beforeClose: noop, afterOpen: noop, beforeOpen: noop, onRequestClose: noop, onOpen: noop, onClose: noop, onPosition: noop, autoFocus: false, hasMask: false, prefix: 'next-', cache: false, safeId: null, disableScroll: false }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Overlay.displayName = 'Overlay'; exports['default'] = Overlay; module.exports = exports['default']; /***/ }), /***/ 1799: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; //将DOM元素渲染到指定的容器 var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Children = _react2['default'].Children; // [containerNode] //
// [contentNode] //
[wrapperNode] // /** Overlay.Gateway */ var Gateway = (_temp = _class = function (_React$Component) { _inherits(Gateway, _React$Component); function Gateway() { _classCallCheck(this, Gateway); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Gateway.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if (this.wrapper) { var currentContainer = this.getContainerNode(this.props); var newContainer = this.getContainerNode(newProps); if (newContainer !== currentContainer) { newContainer.appendChild(this.wrapper); } } }; Gateway.prototype.componentDidMount = function componentDidMount() { this._renderOverlay(); }; Gateway.prototype.componentDidUpdate = function componentDidUpdate() { this._renderOverlay(); }; Gateway.prototype.componentWillUnmount = function componentWillUnmount() { this._unRenderWrapper(); }; Gateway.prototype._renderOverlay = function _renderOverlay() { var _this2 = this; var children = this.props.children ? Children.only(this.props.children) : null; if (children) { this._renderWrapper(); // add refs of overlay var originRef = typeof children.ref === 'function' ? children.ref : null; children = _react2['default'].cloneElement(children, { ref: function ref(node) { originRef && originRef(node); _this2._overlay = node; } }); _reactDom2['default'].unstable_renderSubtreeIntoContainer(this, children, this.wrapper); } else { this._unRenderWrapper(); } }; Gateway.prototype._renderWrapper = function _renderWrapper() { if (!this.wrapper) { this.wrapper = document.createElement('div'); this.wrapper.setAttribute('data-tag', 'gateway-wrapper'); this.getContainerNode().appendChild(this.wrapper); } }; Gateway.prototype._unRenderWrapper = function _unRenderWrapper() { if (this.wrapper) { _reactDom2['default'].unmountComponentAtNode(this.wrapper); var containerNode = this.getContainerNode(); containerNode && containerNode.removeChild(this.wrapper); this._overlay = null; this.wrapper = null; } }; Gateway.prototype.getNode = function getNode(props, name, node) { var container = (props || this.props)[name]; if (typeof container === 'function') { container = container(node); } if (typeof container === 'string') { container = document.getElementById(container); } else { try { container = _reactDom2['default'].findDOMNode(container); } catch (err) { // regardless of error } } return container; }; Gateway.prototype.getContainerNode = function getContainerNode(props) { return this.getNode(props, 'container', this.getTargetNode()); }; Gateway.prototype.getTargetNode = function getTargetNode(props) { return this.getNode(props, 'target'); }; Gateway.prototype.getContentNode = function getContentNode() { if (this._overlay) { return _reactDom2['default'].findDOMNode(this._overlay); } }; Gateway.prototype.getWrapperNode = function getWrapperNode() { return this.wrapper; }; Gateway.prototype.render = function render() { return null; }; return Gateway; }(_react2['default'].Component), _class.propTypes = { children: _propTypes2['default'].any, /** * 指定渲染children的容器 */ container: _propTypes2['default'].any }, _class.defaultProps = { container: function container() { return document.body; } }, _temp); Gateway.displayName = 'Gateway'; exports['default'] = Gateway; module.exports = exports['default']; /***/ }), /***/ 1800: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextDom = __webpack_require__(1124); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Children = _react2['default'].Children, place = _nextDom.position.place, noop = function noop() {}; /** Overlay.Position */ var Position = (_temp = _class = function (_React$Component) { _inherits(Position, _React$Component); function Position(props) { _classCallCheck(this, Position); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); ['resize', 'setPosition'].forEach(function (method) { _this[method] = _this[method].bind(_this); }); return _this; } Position.prototype.resize = function resize() { var _this2 = this; if (this.resizeTimeout) { clearTimeout(this.resizeTimeout); } this.resizeTimeout = setTimeout(function () { _this2.setPosition(); }, 200); }; Position.prototype.render = function render() { var _classnames; var child = Children.only(this.props.children), propClassName = this.props.className, childClassName = child.props.className, className = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, propClassName, propClassName), _defineProperty(_classnames, childClassName, childClassName), _classnames)); return _react2['default'].cloneElement(child, { className: className }); }; Position.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('align' in nextProps && nextProps.align !== this.props.align || nextProps.shouldUpdatePosition) { this.shouldUpdatePosition = true; } }; Position.prototype.componentDidMount = function componentDidMount() { this.setPosition(); if (this.props.needListenResize) { _nextDom.events.on(window, 'resize', this.resize); } }; Position.prototype.componentWillUnmount = function componentWillUnmount() { if (this.props.needListenResize) { _nextDom.events.off(window, 'resize', this.resize); } if (this.resizeTimeout) { clearTimeout(this.resizeTimeout); } }; Position.prototype.componentDidUpdate = function componentDidUpdate() { if (this.shouldUpdatePosition) { this.setPosition(); this.shouldUpdatePosition = false; } }; Position.prototype.setPosition = function setPosition() { var align = this.props.align, offset = this.props.offset, contentNode = this.getContentNode(), target = this.getTarget(); this.props.beforePosition(); if (target && contentNode) { var resultAlign = place(contentNode, target, align, offset, this.props.needAdjust, this.props.isRtl); var left = _nextDom.style.get(contentNode, 'left'), top = _nextDom.style.get(contentNode, 'top'); this.props.onPosition({ left: left, top: top, align: resultAlign.split(' ') }, contentNode); } }; Position.prototype.getContentNode = function getContentNode() { return _reactDom2['default'].findDOMNode(this); }; Position.prototype.getTarget = function getTarget() { var target = this.props.target; if (!target) { return null; } if (typeof target === 'function') { target = target(this.props); } if (typeof target === 'string' && target !== _nextDom.position.VIEWPORT) { target = document.getElementById(target); } else { try { target = _reactDom2['default'].findDOMNode(target); } catch (err) { // continue regardless of error } } return target; }; return Position; }(_react2['default'].Component), _class.propTypes = { /** * 自定义类名 */ className: _propTypes2['default'].string, children: _propTypes2['default'].any, /** * 定位参照的元素 */ target: _propTypes2['default'].any, /** * 定位的目标元素 */ contentNode: _propTypes2['default'].any, /** * 定位的方式, 详见开发指南的[定位部分](#定位) */ align: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].bool]), /** * 相对于target定位的微调 */ offset: _propTypes2['default'].array, /** * 定位完成前触发的事件 */ beforePosition: _propTypes2['default'].func, /** * 定位完成后触发的事件 * @param {Object} config 定位的参数 * @param {Object} node 定位的元素 */ onPosition: _propTypes2['default'].func, /** * 是否自动调整定位的位置 */ needAdjust: _propTypes2['default'].bool, /** * 是否监听Resize事件 */ needListenResize: _propTypes2['default'].bool, /** * 强制更新定位信息 */ shouldUpdatePosition: _propTypes2['default'].bool, /** * 对齐方式 */ isRtl: _propTypes2['default'].bool }, _class.defaultProps = { align: 'tl bl', offset: [0, 0], isRtl: false, beforePosition: noop, onPosition: noop, needAdjust: true, needListenResize: true, shouldUpdatePosition: false }, _temp); Position.displayName = 'Position'; exports['default'] = Position; Position.VIEWPORT = _nextDom.position.VIEWPORT; module.exports = exports['default']; /***/ }), /***/ 1801: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Button */ var Button = (_temp = _class = function (_Component) { _inherits(Button, _Component); function Button() { _classCallCheck(this, Button); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Button.prototype.onMouseUp = function onMouseUp(e) { _reactDom2['default'].findDOMNode(this).blur(); if (this.props.onMouseUp) { this.props.onMouseUp(e); } }; Button.prototype.getType = function getType() { var shape = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'normal'; var type = arguments[1]; var typeMap = { ghost: { primary: 'dark', secondary: 'dark', normal: 'light', dark: 'dark', light: 'light' }, warning: { primary: 'primary', secondary: 'normal', normal: 'normal', dark: 'primary', light: 'normal' }, normal: { primary: 'primary', secondary: 'secondary', normal: 'normal', dark: 'primary', light: 'normal' } }; var shapeMap = typeMap[shape] || typeMap.normal; return shapeMap[type]; }; Button.prototype.render = function render() { var _classNames; var _props = this.props, className = _props.className, type = _props.type, size = _props.size, htmlType = _props.htmlType, loading = _props.loading, children = _props.children, shape = _props.shape, component = _props.component, others = _objectWithoutProperties(_props, ['className', 'type', 'size', 'htmlType', 'loading', 'children', 'shape', 'component']); var prefix = this.context.prefix || this.props.prefix; var pickProps = (0, _nextUtil.pickAttrs)(others); var realType = this.getType(shape, type); // 样式 var btnCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'btn', true), _defineProperty(_classNames, prefix + 'btn-' + shape, shape), _defineProperty(_classNames, prefix + 'btn-' + realType, realType), _defineProperty(_classNames, prefix + 'btn-' + size, size), _defineProperty(_classNames, prefix + 'btn-loading', loading), _defineProperty(_classNames, className, className), _classNames)); var count = _react.Children.count(children); var cloneChildren = _react.Children.map(children, function (child, index) { if (child && typeof child.type === 'function' && child.type._typeMark === 'icon') { var _classNames2; var iconCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'icon-first', count > 1 && index === 0), _defineProperty(_classNames2, prefix + 'icon-last', count > 1 && index === count - 1), _defineProperty(_classNames2, prefix + 'icon-alone', count === 1), _defineProperty(_classNames2, child.props.className, !!child.props.className), _classNames2)); var iconSize = { large: 'small', medium: 'xs', small: 'xs' }[size]; return _react2['default'].cloneElement(child, { className: iconCls, size: child.props.size || iconSize }); } return child; }); // 自定义属性 var TagName = component; var finalAttrs = { type: htmlType, className: btnCls }; if (TagName === 'a') { delete finalAttrs.type; // a 标签在禁用状态下无跳转 if (pickProps.disabled && pickProps.href) { delete pickProps.href; } } // 设置特殊tag name没有浏览器默认禁用行为 if (pickProps.disabled) { delete pickProps.onClick; } return _react2['default'].createElement( TagName, _extends({}, pickProps, finalAttrs, { onMouseUp: this.onMouseUp.bind(this) }), cloneChildren ); }; return Button; }(_react.Component), _class.propTypes = { /** * 组件样式的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 按钮的类型 */ type: _propTypes2['default'].oneOf(['primary', 'secondary', 'normal', 'dark', 'light']), /** * 按钮的尺寸 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 按钮的形态 */ shape: _propTypes2['default'].oneOf(['ghost', 'text', 'warning']), /** * 设置 `button` 标签的原生 `type` 值 */ htmlType: _propTypes2['default'].string, /** * 设置标签类型 */ component: _propTypes2['default'].oneOf(['button', 'span', 'a', 'div']), /** * 设置按钮的载入状态 */ loading: _propTypes2['default'].bool, /** * 是否禁用 */ disabled: _propTypes2['default'].bool, /** * 点击按钮的回调 * @param {Object} e Event Object */ onClick: _propTypes2['default'].func, /** * 自定义样式 */ className: _propTypes2['default'].string }, _class.defaultProps = { prefix: 'next-', type: 'normal', size: 'medium', htmlType: 'button', component: 'button', loading: false, onClick: function onClick() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Button.displayName = 'Button'; exports['default'] = Button; module.exports = exports['default']; /***/ }), /***/ 1802: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Button.Group */ var ButtonGroup = (_temp = _class = function (_Component) { _inherits(ButtonGroup, _Component); function ButtonGroup() { _classCallCheck(this, ButtonGroup); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } ButtonGroup.prototype.render = function render() { var _classNames; var _props = this.props, className = _props.className, children = _props.children, size = _props.size, others = _objectWithoutProperties(_props, ['className', 'children', 'size']); var prefix = this.context.prefix || this.props.prefix; var groupCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'btn-group', true), _defineProperty(_classNames, className, className), _classNames)); var cloneChildren = _react.Children.map(children, function (child) { if (child) { return _react2['default'].cloneElement(child, { size: size }); } }); return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: groupCls }), cloneChildren ); }; return ButtonGroup; }(_react.Component), _class.propTypes = { prefix: _propTypes2['default'].string, /** * 统一设置 Button 组件的按钮大小 */ size: _propTypes2['default'].string }, _class.defaultProps = { prefix: 'next-', size: 'medium' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); ButtonGroup.displayName = 'ButtonGroup'; exports['default'] = ButtonGroup; module.exports = exports['default']; /***/ }), /***/ 1803: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames5 = __webpack_require__(3); var _classnames6 = _interopRequireDefault(_classnames5); var _nextMixinUiState = __webpack_require__(1804); var _nextMixinUiState2 = _interopRequireDefault(_nextMixinUiState); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Radio * @order 1 */ var Radio = (_temp = _class = function (_UIState) { _inherits(Radio, _UIState); function Radio(props, context) { _classCallCheck(this, Radio); var _this = _possibleConstructorReturn(this, _UIState.call(this, props)); var checked = void 0, disabled = void 0; if (context.__group__) { checked = context.selectedValue === props.value; disabled = context.disabled; } else if ('checked' in props) { checked = props.checked; } else { checked = props.defaultChecked; } _this.state = { checked: checked, disabled: disabled, isMouseDown: false }; _this.onChange = _this.onChange.bind(_this); return _this; } Radio.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) { if (nextContext.__group__) { var selectedValue = nextContext.selectedValue, disabled = nextContext.disabled; if ('selectedValue' in nextContext && 'disabled' in nextContext) { this.setState({ checked: selectedValue === nextProps.value, disabled: disabled }); } } else if ('checked' in nextProps) { this.setState({ checked: nextProps.checked }); } }; Radio.prototype.onChange = function onChange(e) { var checked = e.target.checked; var value = this.props.value; if (this.context.__group__) { this.context.onChange(value, e); } else if (this.state.checked !== checked) { if (!('checked' in this.props)) { this.setState({ checked: checked }); } this.props.onChange(checked, e); } }; Radio.prototype.render = function render() { var _classnames, _classnames2, _classnames3; var _props = this.props, className = _props.className, children = _props.children, style = _props.style, other = _objectWithoutProperties(_props, ['className', 'children', 'style']); var checked = !!this.state.checked; var disabled = this.state.disabled || this.props.disabled; var isButton = this.context.isButton; var newOther = (0, _nextUtil.pickAttrs)(other); var prefix = this.context.prefix || this.props.prefix; var input = _react2['default'].createElement('input', _extends({ type: 'radio' }, newOther, { disabled: disabled, checked: checked, onChange: this.onChange, 'aria-checked': checked })); var child = this.getStateElement(input); var cls = (0, _classnames6['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'radio', true), _defineProperty(_classnames, className, !!className), _defineProperty(_classnames, 'checked', checked), _defineProperty(_classnames, 'disabled', disabled), _defineProperty(_classnames, this.getStateClassName(), true), _classnames)); var clsInner = (0, _classnames6['default'])((_classnames2 = {}, _defineProperty(_classnames2, prefix + 'radio-inner', true), _defineProperty(_classnames2, 'press', checked), _defineProperty(_classnames2, 'unpress', !checked), _classnames2)); var clsWrapper = (0, _classnames6['default'])((_classnames3 = {}, _defineProperty(_classnames3, prefix + 'radio-wrapper', true), _defineProperty(_classnames3, className, !!className), _defineProperty(_classnames3, 'checked', checked), _defineProperty(_classnames3, 'disabled', disabled), _defineProperty(_classnames3, this.getStateClassName(), true), _classnames3)); var childrenCls = (0, _classnames6['default'])(_defineProperty({}, prefix + 'radio-label', !!children)); var radioComp = !isButton ? _react2['default'].createElement( 'span', { className: cls, style: style }, _react2['default'].createElement('span', { className: clsInner }), child ) : _react2['default'].createElement( 'span', { className: prefix + 'radio-single-input' }, child ); return children ? _react2['default'].createElement( 'label', { className: isButton ? clsWrapper : '', style: isButton ? style : {} }, radioComp, _react2['default'].createElement( 'span', { htmlFor: this.props.id, className: childrenCls }, children ) ) : _react2['default'].createElement( 'label', { className: isButton ? clsWrapper : '', style: isButton ? style : {} }, radioComp ); }; return Radio; }(_nextMixinUiState2['default']), _class.displayName = 'Radio', _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内敛样式 */ style: _propTypes2['default'].object, /** * 设置radio是否选中 */ checked: _propTypes2['default'].bool, /** * radio的默认选中 */ defaultChecked: _propTypes2['default'].bool, /** * 状态变化时触发的事件 * @param {Boolean} checked 是否选中 * @param {Event} e Dom 事件对象 */ onChange: _propTypes2['default'].func, /** * 表示radio被禁用 */ disabled: _propTypes2['default'].bool }, _class.defaultProps = { onChange: function onChange() {}, prefix: 'next-' }, _class.contextTypes = { onChange: _propTypes2['default'].func, __group__: _propTypes2['default'].bool, isButton: _propTypes2['default'].bool, selectedValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number, _propTypes2['default'].bool]), disabled: _propTypes2['default'].bool, prefix: _propTypes2['default'].string }, _temp); exports['default'] = Radio; module.exports = exports['default']; /***/ }), /***/ 1804: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}, makeChain = _nextUtil.func.makeChain; //UIState 为一些特殊元素的状态响应提供了标准的方式, //尤其适合CSS无法完全定制的控件,比如checkbox,radio等。 var UIState = function (_Component) { _inherits(UIState, _Component); function UIState(props) { _classCallCheck(this, UIState); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.state = {}; ['_onUIMouseEnter', '_onUIMouseLeave', '_onUIFocus', '_onUIBlur'].forEach(function (item) { _this[item] = _this[item].bind(_this); }); return _this; } // base 事件绑定的元素 UIState.prototype.getStateElement = function getStateElement(base) { var _props = this.props, onMouseEnter = _props.onMouseEnter, onMouseLeave = _props.onMouseLeave, onFocus = _props.onFocus, onBlur = _props.onBlur; return _react2['default'].cloneElement(base, { onMouseEnter: makeChain(this._onUIMouseEnter, onMouseEnter), onMouseLeave: makeChain(this._onUIMouseLeave, onMouseLeave), onFocus: makeChain(this._onUIFocus, onFocus), onBlur: makeChain(this._onUIBlur, onBlur) }); }; UIState.prototype.getStateClassName = function getStateClassName() { var _state = this.state, hovered = _state.hovered, focused = _state.focused; return (0, _classnames2['default'])({ hovered: hovered, focused: focused }); }; UIState.prototype._onUIMouseEnter = function _onUIMouseEnter() { if (!this.props.disabled && !this.state.disabled) { this.setState({ hovered: true }); } }; UIState.prototype._onUIMouseLeave = function _onUIMouseLeave() { this.setState({ hovered: false }); }; UIState.prototype._onUIFocus = function _onUIFocus() { if (!this.props.disabled && !this.state.disabled) { this.setState({ focused: true }); } }; UIState.prototype._onUIBlur = function _onUIBlur() { this.setState({ focused: false }); }; return UIState; }(_react.Component); UIState.displayName = 'UIState'; exports['default'] = UIState; module.exports = exports['default']; /***/ }), /***/ 1805: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; /* eslint-disable react/prop-types, no-unused-vars, eqeqeq, prefer-const */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactDom = __webpack_require__(4); var _nextMenu = __webpack_require__(1453); var _nextMenu2 = _interopRequireDefault(_nextMenu); var _nextInput = __webpack_require__(1448); var _nextInput2 = _interopRequireDefault(_nextInput); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextDom = __webpack_require__(1124); var _nextUtil = __webpack_require__(889); var _optionGroup = __webpack_require__(1808); var _optionGroup2 = _interopRequireDefault(_optionGroup); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var stopPropagation = function stopPropagation(e) { e.stopPropagation(); }; var escape = function escape(s) { return s.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&'); }; var Base = (_temp = _class = function (_Component) { _inherits(Base, _Component); function Base(props, context) { _classCallCheck(this, Base); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); var value = 'value' in props ? props.value : props.defaultValue; _this.state = { value: _this.normalizeValue(value), visible: props.visible || props.defaultVisible }; _this._cache = {}; ['onOpen', 'afterOpen', 'onSelect', 'onInputSearch', 'onSearch'].forEach(function (method) { _this[method] = _this[method].bind(_this); }); _this.cacheDataByValue(_this.state.value); _this.oldValue = value; return _this; } Base.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var value = void 0; if ('value' in nextProps) { value = this.normalizeValue(nextProps.value); this.setState({ value: value }); this.oldValue = nextProps.value; } if ('visible' in nextProps) { this.setState({ visible: nextProps.visible }); } }; Base.prototype.componentDidUpdate = function componentDidUpdate() { if (!this.state.visible && this.props.filterLocal) { this.filterValue = ''; } }; Base.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; Base.prototype._syncWidth = function _syncWidth(menu) { var autoWidth = this.props.autoWidth; if (autoWidth) { var select = (0, _reactDom.findDOMNode)(this); menu = (0, _reactDom.findDOMNode)(menu); if (menu) { var width = select.offsetWidth; _nextDom.style.set(menu, 'width', width + 'px'); //We need reposition menu after sync width. this.forceUpdate(); } } }; Base.prototype._enableScroll = function _enableScroll(menu) { var _props = this.props, prefix = _props.prefix, showSearch = _props.showSearch; if (showSearch) { menu = (0, _reactDom.findDOMNode)(menu); if (menu) { // 出现搜索框 + mac + chrome + 高分辨率屏幕(mac pro)+ 出现滚动条 + 有动画播放 // 下拉弹层在第一次展开时,会发生展示错位问题 // http://gitlab.alibaba-inc.com/next/select/issues/244 // 所以 .next-menu-content 默认设置 overflow: hidden; // 打开弹层后,重新设置为 overflow: auto; var menuContent = menu.querySelector('.' + prefix + 'menu-content'); _nextDom.classList.addClass(menuContent, 'overflow-auto'); } } }; Base.prototype.normalizeValue = function normalizeValue(value) { if (!Array.isArray(value)) { value = [value]; } value = value.filter(function (v) { return v != null; }).map(function (v) { if (_nextUtil.obj.isPlainObject(v)) { return v; } return v.toString ? v.toString() : v; }); return value; }; Base.prototype.renderMenu = function renderMenu() { var _this2 = this; var dataSource = this.getFilteredDataSource(), flatternDataSource = this.getFlatternDataSource(dataSource), children = this.renderMenuContent(dataSource), showSearch = this.props.showSearch, header = void 0, currentKeys = this.state.value, focusedKeys = flatternDataSource.filter(function (item) { return _this2.state.value.indexOf(item.__key) > -1; }).map(function (item) { return item.__key; }), focusedKey = void 0; if (showSearch) { header = _react2['default'].createElement( 'div', { className: this.getPrefix() + 'select-search' }, _react2['default'].createElement(_nextInput2['default'], { onFocus: stopPropagation, defaultValue: this.filterValue, onChange: this.onInputSearch, onSelect: stopPropagation, onKeyDown: stopPropagation }), _react2['default'].createElement(_nextIcon2['default'], { type: 'search', size: 'small' }) ); } focusedKey = this.lastFocusedKey; if (!focusedKey) { focusedKey = focusedKeys[focusedKeys.length - 1]; } if (!focusedKey && flatternDataSource.length) { focusedKey = flatternDataSource[0].value; } return _react2['default'].createElement( _nextMenu2['default'], { selectedKeys: currentKeys, focusedKey: focusedKey, header: header, selectMode: this.props.multiple ? 'multiple' : 'single', onSelect: this.onSelect, autoFocus: !showSearch, className: this.getPrefix() + 'select-menu ' + (showSearch ? 'has-search' : ''), ref: 'menu' }, children ); }; Base.prototype.renderMenuContent = function renderMenuContent(dataSource) { var _this3 = this; return dataSource.map(function (option, index) { return _this3.renderMenuItem(option, index); }); }; Base.prototype.renderMenuItem = function renderMenuItem(option, i) { var label = option.label, children = option.children, __key = option.__key, index = option.index, others = _objectWithoutProperties(option, ['label', 'children', '__key', 'index']); if (children) { return _react2['default'].createElement( _nextMenu2['default'].Group, _extends({}, others, { label: label, key: i }), this.renderMenuContent(children) ); } else { return _react2['default'].createElement( _nextMenu2['default'].Item, _extends({}, others, { key: __key }), label ); } }; // 获取的是结构化数据源 Base.prototype.getDataSource = function getDataSource(props) { var dataSource = void 0; props = props || this.props; if (props.children) { dataSource = this.structorChildren(props.children); } else { dataSource = this.normalizeDataSource(props.dataSource); } return dataSource; }; Base.prototype.structorChildren = function structorChildren(content) { var loop = function loop(children) { var result = []; _react.Children.map(children, function (child, index) { var props = _extends({}, child.props), children = []; if (child && typeof child.type === 'function' && child.type._typeMark === 'select_option_group') { children = loop(props.children); props.children = children; } else { props.label = props.children; delete props.children; } props.__key = props.value != null ? props.value.toString() : props.value; result.push(props); }); return result; }; return loop(content); }; // 抹平结构化数据源 Base.prototype.getFlatternDataSource = function getFlatternDataSource(dataSource) { var flatternDataSource = []; loop(dataSource, function (option) { flatternDataSource.push(option); }); return flatternDataSource; }; // 使用抹平后的数据源进行过滤 // 但是依然要返回结构化数据 Base.prototype.getFilteredDataSource = function getFilteredDataSource() { var _this4 = this; var dataSource = this.getDataSource(), filterLocal = this.props.filterLocal, result = []; if (this.filterValue && filterLocal) { loop(dataSource, function (option, index, parentIndex) { var filterBy = _this4.props.filterBy; if (!filterBy) { filterBy = _this4.filterBy; } if (filterBy(_this4.filterValue, option)) { if (typeof parentIndex !== 'undefined') { if (!result[parentIndex]) { var _dataSource$parentInd = dataSource[parentIndex], children = _dataSource$parentInd.children, others = _objectWithoutProperties(_dataSource$parentInd, ['children']); result[parentIndex] = others; } result[parentIndex].children = result[parentIndex].children || []; result[parentIndex].children.push(option); } else { result.push(option); } } }); } else { result = dataSource; } return result; }; Base.prototype.normalizeDataSource = function normalizeDataSource(dataSource) { dataSource = dataSource || []; return dataSource.map(function (option, index) { if (!_nextUtil.obj.isPlainObject(option)) { return { label: option, value: option, __key: option }; } else { /* eslint-disable eqeqeq */ option.__key = option.value != null ? option.value.toString() : option.value; if (option.children) { option.children.forEach(function (item, j) { item.__key = item.value.toString(); }); } return option; } }); }; Base.prototype.cacheDataByValue = function cacheDataByValue(value, props) { var _this5 = this; var dataSource = this.getFlatternDataSource(this.getDataSource(props)); value.forEach(function (v) { dataSource.forEach(function (option) { if (option.__key == v) { _this5._cache[v] = option; } }); }); }; Base.prototype.getDataByValue = function getDataByValue(value) { var cache = this._cache; return value.map(function (v) { return cache[v] || v; }); }; Base.prototype.getDisplayByValue = function getDisplayByValue(value) { var _this6 = this; var fillProps = this.props.fillProps; if (!fillProps) { fillProps = 'label'; } var label = value.map(function (val, i) { if (_this6._cache[val]) { return _this6._cache[val][fillProps]; } else { if (_nextUtil.obj.isPlainObject(val)) { return val[fillProps]; } return val; } }); return label; }; Base.prototype.onSelect = function onSelect(value, context) { var _props2 = this.props, multiple = _props2.multiple, hiddenSelected = _props2.hiddenSelected, labelInValue = _props2.labelInValue, data = void 0, changeValue = void 0; this.cacheDataByValue(value); data = this.getDataByValue(value).map(function (item) { var option = item; if (option) { delete option.__key; } return option; }); changeValue = data.map(function (item) { return item.value != null ? item.value : item; }); if (!('value' in this.props)) { this.setState({ value: value, inputValue: this.getDisplayByValue(value) }); } if (!multiple || hiddenSelected) { this.onVisibleChange(false); } if (!multiple) { changeValue = changeValue[0]; data = data[0]; } if (this.oldValue !== changeValue || this.isCombobox) { if (labelInValue) { this.props.onChange(data, data); } else { this.props.onChange(changeValue, data); } this.oldValue = changeValue; } if (this.clearValue) { this.clearValue(); } if (context) { this.lastFocusedKey = 'index' in context ? context.index : context.props.index; } }; Base.prototype.onInputSearch = function onInputSearch(value) { this.onSearch(value); }; Base.prototype.onSearch = function onSearch(value) { this.filterValue = value; this.forceUpdate(); this.props.onSearch(value); }; Base.prototype.filterBy = function filterBy(value, item) { var v = escape(value), regExp = new RegExp('(' + v + ')', 'ig'); return regExp.test(item.value) || regExp.test(item.label); }; Base.prototype.renderLabel = function renderLabel(label, value) { var _this7 = this; var multiple = this.props.multiple; return label.map(function (l, i) { if (multiple) { return _react2['default'].createElement( 'span', { className: _this7.getPrefix() + 'select-inner-item', key: value[i].value || value[i] }, _react2['default'].createElement( 'label', { className: _this7.getPrefix() + 'select-inner-item-label', title: typeof l === 'string' ? l : null }, l ), _react2['default'].createElement( 'a', { href: 'javascript:;', onClick: _this7.onRemoveClick.bind(_this7, value[i]) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'close', size: 'xxs' }) ) ); } else { return l; } }); }; Base.prototype.onRemoveClick = function onRemoveClick(val, e) { var value = [].concat(_toConsumableArray(this.state.value)), index = value.indexOf(val), disabled = this.props.disabled; if (!disabled) { value.splice(index, 1); this.onSelect(value); e.stopPropagation(); } }; Base.prototype.getIconSize = function getIconSize() { var size = this.props.size, map = { large: 'medium', medium: 'small', small: 'xs' }; return map[size]; }; Base.prototype.getArrowType = function getArrowType(visible) { var arrowType = void 0; if (visible == null) { visible = this.state.visible; } if (visible) { arrowType = 'arrow-up'; } else { arrowType = 'arrow-down'; } return arrowType; }; Base.prototype.onVisibleChange = function onVisibleChange(visible) { if (!('visible' in this.props)) { this.setState({ visible: visible }); } this.props.onVisibleChange(visible); }; Base.prototype.hasClear = function hasClear() { return this.props.hasClear && this.state.value.length && !this.props.multiple && !this.props.disabled; }; Base.prototype.clear = function clear(e) { this.setState({ value: [], inputValue: '' }); this.props.onChange(null, {}); this.oldValue = null; e.stopPropagation(); }; return Base; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Base.displayName = 'Base'; function loop(dataSource, callback, parentIndex) { dataSource.forEach(function (option, index) { if (option.children) { loop(option.children, callback, index); } else { callback(option, index, parentIndex); } }); } exports['default'] = Base; module.exports = exports['default']; /***/ }), /***/ 1806: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; /* eslint-disable react/prop-types */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextAnimate = __webpack_require__(1503); var _nextAnimate2 = _interopRequireDefault(_nextAnimate); var _container = __webpack_require__(1486); var _container2 = _interopRequireDefault(_container); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Component = _container2['default']; /** * Menu.SubMenu * @order 2 **/ var SubMenu = (_temp = _class = function (_Component) { _inherits(SubMenu, _Component); SubMenu.prototype.getChildContext = function getChildContext() { var parentIndex = normalizeInfo(this.context, 'parentIndex', this.props.index), parentLabel = normalizeInfo(this.context, 'parentLabel', this.props.label || this.props.children); return { parentIndex: parentIndex, parentLabel: parentLabel }; }; function SubMenu(props) { _classCallCheck(this, SubMenu); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); ['onDocumentClick', 'onSubMenuClick', 'onSubMenuMouseEnter', 'onSubMenuMouseLeave', 'onContentMouseEnter', 'onContentMouseLeave', 'onKeyDown'].forEach(function (method) { _this[method] = _this[method].bind(_this); }); var root = _this.getRoot(); if (!root) { throw new Error('SubMenu should use under Menu.'); } _this.root = root; _this.Menu = root.constructor; _this.MenuItem = root.constructor.Item; return _this; } SubMenu.prototype.normalizeVisible = function normalizeVisible() { return 'visible' in this.props ? this.props.visible : this.props.openKeys.indexOf(this.props.index) > -1; }; SubMenu.prototype.render = function render() { var _classnames, _this2 = this; var _props = this.props, className = _props.className, label = _props.label, animation = _props.animation, disabled = _props.disabled, children = _props.children, indentSize = _props.indentSize, mode = _props.mode, triggerType = _props.triggerType, selectable = _props.selectable, align = _props.align, index = _props.index, hasSelectedIcon = _props.hasSelectedIcon, selected = _props.selected, others = _objectWithoutProperties(_props, ['className', 'label', 'animation', 'disabled', 'children', 'indentSize', 'mode', 'triggerType', 'selectable', 'align', 'index', 'hasSelectedIcon', 'selected']), prefix = this.getPrefix(), visible = this.normalizeVisible(), cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'menu-submenu-item', mode === 'inline'), _defineProperty(_classnames, prefix + 'menu-submenu-item-popup', mode === 'popup'), _defineProperty(_classnames, 'opened', visible), _defineProperty(_classnames, align, align), _defineProperty(_classnames, 'disabled', disabled), _defineProperty(_classnames, className, className), _classnames)), Menu = this.Menu, MenuItem = this.MenuItem, child = _react2['default'].createElement(Menu, null), icon = void 0, events = void 0, contentEvents = void 0; if (mode === 'inline') { icon = _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-down', className: visible ? 'opened' : '', size: 'xs' }); } else { icon = _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-right', size: 'xs' }); } if (triggerType === 'click') { events = { onClick: function onClick(e) { _this2.onSubMenuClick(e); _this2.props.onClick(e); } }; } else { events = { onMouseEnter: this.onSubMenuMouseEnter, onMouseLeave: this.onSubMenuMouseLeave, onClick: function onClick(e) { e && e.stopPropagation(); if (selectable) { _this2.root.onItemClick(e, index, 'click', _this2); } _this2.props.onClick(e); } }; contentEvents = { onMouseEnter: this.onContentMouseEnter, onMouseLeave: this.onContentMouseLeave }; } child = _react2['default'].cloneElement(child, _extends({ mode: mode }, others, contentEvents, { indentSize: mode === 'inline' ? indentSize + child.props.indentSize : indentSize, ref: 'content', children: children, hasSubMenu: true, parent: this })); if (animation) { var oneTransitionEnd = function oneTransitionEnd(node, done) { var timeout = void 0; var handler = function handler() { [animation['in'], animation['in'] + '-active', animation.out, animation.out + '-active'].forEach(function (className) { _nextDom.classList.removeClass(node, className); }); _nextDom.style.set(node, 'height', null); clearTimeout(timeout); done(); }; timeout = setTimeout(handler, 250); }; var enterHook = function enterHook(node, done) { _nextDom.classList.addClass(node, 'out-screen'); _nextDom.classList.removeClass(node, 'hide'); var height = node.offsetHeight + 'px'; _nextDom.classList.addClass(node, animation['in']); _nextDom.classList.removeClass(node, 'out-screen'); setTimeout(function () { _nextDom.classList.addClass(node, animation['in'] + '-active'); _nextDom.style.set(node, 'height', height); }, 1); oneTransitionEnd(node, done); }; var leaveHook = function leaveHook(node, done) { var height = node.offsetHeight + 'px'; _nextDom.style.set(node, 'height', height); _nextDom.classList.addClass(node, animation.out); setTimeout(function () { _nextDom.classList.addClass(node, animation.out + '-active'); _nextDom.style.set(node, 'height', 0); }, 1); oneTransitionEnd(node, done); }; var animationConfig = void 0; if (mode === 'inline') { animationConfig = { enter: enterHook, leave: leaveHook, appear: enterHook }; } else { animationConfig = { enter: animation['in'], leave: animation.out, appear: animation['in'] }; } if (mode === 'popup') { child = _react2['default'].createElement( 'div', { className: prefix + 'menu-wrapper' }, child ); } child = _react2['default'].createElement( _nextAnimate2['default'], { animationAppear: false, animation: animationConfig, useTransition: true }, visible ? child : null ); } else { child = _react2['default'].cloneElement(child, { style: { display: visible ? '' : 'none' } }); } if (selectable && triggerType === 'click') { icon = _react2['default'].cloneElement(icon, events); return ( // 设置needIndent为false // 使用subMenu的title来控制 _react2['default'].createElement( MenuItem, _extends({}, others, { index: index, hasSelectedIcon: hasSelectedIcon, selected: selected, className: cls, 'aria-haspopup': true, parent: this, onKeyDown: this.onKeyDown, indentSize: indentSize, needIndent: false, label: label }), _react2['default'].createElement( 'div', { className: prefix + 'menu-submenu-title', style: { paddingLeft: indentSize } }, label, icon ), child ) ); } else { if (typeof selected === 'undefined') { selected = this.root.state.selectedKeys.indexOf(index) > -1; } var selectedIcon = hasSelectedIcon && selectable ? _react2['default'].createElement( _nextAnimate2['default'], { animation: { appear: 'zoomIn', enter: 'zoomIn', leave: 'zoomOut' } }, selected ? _react2['default'].createElement(_nextIcon2['default'], { type: 'select', className: prefix + 'menu-icon-select', size: 'xs', style: { left: (indentSize || 20) - 16 + 'px' } }) : null ) : null; return _react2['default'].createElement( 'li', { className: cls, 'aria-haspopup': true, onKeyDown: this.onKeyDown }, _react2['default'].createElement( 'div', _extends({ className: prefix + 'menu-submenu-title' }, events, { style: { paddingLeft: indentSize } }), label, icon ), selectedIcon, child ); } }; SubMenu.prototype.componentDidMount = function componentDidMount() { if (this.props.mode === 'popup') { _nextDom.events.on(document, 'click', this.onDocumentClick); } }; SubMenu.prototype.componentWillUnmount = function componentWillUnmount() { if (this.props.mode === 'popup') { _nextDom.events.off(document, 'click', this.onDocumentClick); } }; SubMenu.prototype.onDocumentClick = function onDocumentClick(e) { var node = (0, _reactDom.findDOMNode)(this.root), target = e.target; if (!(node && node.contains(target))) { this.onVisibleChange(false, 'fromDoc'); } }; SubMenu.prototype.onSubMenuClick = function onSubMenuClick(index, e) { var visible = !this.normalizeVisible(); this.onVisibleChange(visible); if (e && e.stopPropagation) { e.stopPropagation(); } else { index.stopPropagation(); } }; SubMenu.prototype.onSubMenuMouseEnter = function onSubMenuMouseEnter(e, type) { var _this3 = this; this.onContentMouseEnter(); this._subMenuEnterTimeout = setTimeout(function () { _this3.onVisibleChange(true, type); }, 150); }; SubMenu.prototype.onSubMenuMouseLeave = function onSubMenuMouseLeave(e, type) { var _this4 = this; this._subMenuEnterTimeout && clearTimeout(this._subMenuEnterTimeout); this._subMenuTimeout = setTimeout(function () { _this4.onVisibleChange(false, type); }, 150); }; SubMenu.prototype.onContentMouseEnter = function onContentMouseEnter() { this._subMenuTimeout && clearTimeout(this._subMenuTimeout); }; SubMenu.prototype.onContentMouseLeave = function onContentMouseLeave(e) { this._subMenuEnterTimeout && clearTimeout(this._subMenuEnterTimeout); this.onSubMenuMouseLeave(e, 'fromContent'); }; SubMenu.prototype.onVisibleChange = function onVisibleChange(visible, type) { var _this5 = this; if (type === 'fromDoc') { this.root.onOpen(this.props.index, visible); } else { var parentIndexes = this.getParentByType(SubMenu).map(function (parent) { return parent.props.index || parent.key; }); var indexes = [this.props.index]; if (!visible && !this._openByKeyBoard && type === 'fromContent') { indexes = indexes.concat(parentIndexes); } indexes.forEach(function (index) { _this5.root.onOpen(index, visible); }); this._openByKeyBoard = false; } }; SubMenu.prototype.onKeyDown = function onKeyDown(e) { if (e.keyCode === _nextUtil.keyCode.ENTER || e.keyCode === _nextUtil.keyCode.SPACE) { this.onSubMenuClick(e); } }; SubMenu.prototype.getContentNode = function getContentNode() { return _reactDom2['default'].findDOMNode(this.refs.content); }; return SubMenu; }(Component), _class._menuItem = true, _class._subMenu = true, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 子菜单的标签 */ label: _propTypes2['default'].any, visible: _propTypes2['default'].bool, /** * 设置子菜单表现的形式 */ mode: _propTypes2['default'].oneOf(['inline', 'popup']), /** * 设置子菜单显示触发的类型 */ triggerType: _propTypes2['default'].oneOf(['click', 'hover']), /** * 设置子菜单的label是否可以被选中 */ selectable: _propTypes2['default'].bool, /** * 设置子菜单的跟随类型 */ align: _propTypes2['default'].oneOf(['outside', 'follow']), onClick: _propTypes2['default'].func, hasSelectedIcon: _propTypes2['default'].bool }, _class.defaultProps = { label: 'sub-item', animation: { 'in': 'slide-down', out: 'slide-up' }, mode: 'inline', triggerType: 'click', selectable: false, align: 'follow', prefix: 'next-', onClick: function onClick() {}, hasSelectedIcon: true }, _class.contextTypes = { parentIndex: _propTypes2['default'].array, parentLabel: _propTypes2['default'].array, prefix: _propTypes2['default'].string }, _class.childContextTypes = { parentIndex: _propTypes2['default'].array, parentLabel: _propTypes2['default'].array }, _temp); SubMenu.displayName = 'SubMenu'; exports['default'] = SubMenu; function normalizeInfo(context, name, value) { var meta = void 0; if (context[name]) { meta = [].concat(_toConsumableArray(context[name])); meta.push(value); } else { meta = [value]; } return meta; } module.exports = exports['default']; /***/ }), /***/ 1807: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames3 = __webpack_require__(3); var _classnames4 = _interopRequireDefault(_classnames3); var _nextMixinUiState = __webpack_require__(1804); var _nextMixinUiState2 = _interopRequireDefault(_nextMixinUiState); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } function isChecked(selectedValue, value) { return selectedValue.indexOf(value) > -1; } /** Checkbox */ var Checkbox = (_temp = _class = function (_UIState) { _inherits(Checkbox, _UIState); function Checkbox(props, context) { _classCallCheck(this, Checkbox); var _this = _possibleConstructorReturn(this, _UIState.call(this, props)); var checked = void 0, indeterminate = void 0, disabled = void 0; if (context.__group__) { indeterminate = false; checked = isChecked(context.selectedValue, props.value); disabled = context.disabled; } else { if ('checked' in props) { checked = props.checked; } else { checked = props.defaultChecked; } if ('indeterminate' in props) { indeterminate = props.indeterminate; } else { indeterminate = props.defaultIndeterminate; } } _this.state = { checked: checked, indeterminate: indeterminate, disabled: disabled }; _this.onChange = _this.onChange.bind(_this); return _this; } Checkbox.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) { if (nextContext.__group__) { var selectedValue = nextContext.selectedValue, disabled = nextContext.disabled; if ('selectedValue' in nextContext && 'disabled' in nextContext) { this.setState({ checked: isChecked(selectedValue, nextProps.value), disabled: disabled }); } else if ('selectedValue' in nextContext) { this.setState({ checked: isChecked(selectedValue, nextProps.value) }); } else if ('disabled' in nextContext) { this.setState({ disabled: disabled }); } } else { if ('checked' in nextProps) { this.setState({ checked: nextProps.checked }); } if ('indeterminate' in nextProps) { this.setState({ indeterminate: nextProps.indeterminate }); } } }; Checkbox.prototype.onChange = function onChange(e) { var checked = e.target.checked; var value = this.props.value; if (this.state.disabled || this.props.disabled) { return; } if (this.context.__group__) { this.context.onChange(value, e); } else { if (!('checked' in this.props)) { this.setState({ checked: checked }); } if (!('indeterminate' in this.props)) { this.setState({ indeterminate: false }); } this.props.onChange(checked, e); } }; Checkbox.prototype.render = function render() { var _classnames; var _props = this.props, className = _props.className, children = _props.children, defaultChecked = _props.defaultChecked, style = _props.style, others = _objectWithoutProperties(_props, ['className', 'children', 'defaultChecked', 'style']); var checked = this.state.checked; var disabled = this.state.disabled || this.props.disabled; var indeterminate = this.state.indeterminate; var newOthers = (0, _nextUtil.pickAttrs)(others); var prefix = this.context.prefix || this.props.prefix; var checkedAttr = {}; if ('checked' in this.props) { checkedAttr = { checked: checked }; } else if ('defaultChecked' in this.props) { checkedAttr = { defaultChecked: defaultChecked }; } var input = _react2['default'].createElement('input', _extends({ type: 'checkbox' }, newOthers, checkedAttr, { onChange: this.onChange, 'aria-checked': checked })); var child = this.getStateElement(input); var cls = (0, _classnames4['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'checkbox', true), _defineProperty(_classnames, className, !!className), _defineProperty(_classnames, 'checked', checked), _defineProperty(_classnames, 'disabled', disabled), _defineProperty(_classnames, 'indeterminate', indeterminate), _defineProperty(_classnames, this.getStateClassName(), true), _classnames)); var childrenCls = (0, _classnames4['default'])(_defineProperty({}, prefix + 'checkbox-label', !!children)); var type = indeterminate ? 'semi-select' : 'select'; return children ? _react2['default'].createElement( 'label', { htmlFor: this.props.id }, _react2['default'].createElement( 'span', { className: cls, style: style }, _react2['default'].createElement( 'span', { className: prefix + 'checkbox-inner' }, _react2['default'].createElement(_nextIcon2['default'], { type: type, size: 'xs', className: indeterminate ? 'zoomIn' : '' }) ), child ), _react2['default'].createElement( 'span', { className: childrenCls }, children ) ) : _react2['default'].createElement( 'label', { className: cls, style: style }, _react2['default'].createElement( 'span', { className: prefix + 'checkbox-inner' }, _react2['default'].createElement(_nextIcon2['default'], { type: type, size: 'xs', className: indeterminate ? 'zoomIn' : '' }) ), child ); }; return Checkbox; }(_nextMixinUiState2['default']), _class.displayName = 'Checkbox', _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内敛样式 */ style: _propTypes2['default'].object, /** * 选中状态 */ checked: _propTypes2['default'].bool, /** * 默认选中状态 */ defaultChecked: _propTypes2['default'].bool, /** * 禁用 */ disabled: _propTypes2['default'].bool, /** * Checkbox 的中间状态,只会影响到 Checkbox 的样式,并不影响其 checked 属性 */ indeterminate: _propTypes2['default'].bool, /** * Checkbox 的默认中间态,只会影响到 Checkbox 的样式,并不影响其 checked 属性 */ defaultIndeterminate: _propTypes2['default'].bool, /** * 状态变化时触发的事件 * @param {Boolean} checked 是否选中 * @param {Event} e Dom 事件对象 */ onChange: _propTypes2['default'].func }, _class.defaultProps = { defaultChecked: false, defaultIndeterminate: false, onChange: function onChange() {}, prefix: 'next-' }, _class.contextTypes = { onChange: _propTypes2['default'].func, __group__: _propTypes2['default'].bool, selectedValue: _propTypes2['default'].array, disabled: _propTypes2['default'].bool, prefix: _propTypes2['default'].string }, _temp); exports['default'] = Checkbox; module.exports = exports['default']; /***/ }), /***/ 1808: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; /* eslint-disable react/prop-types */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Select.OptionGroup */ var OptionGroup = (_temp = _class = function (_React$Component) { _inherits(OptionGroup, _React$Component); function OptionGroup() { _classCallCheck(this, OptionGroup); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } OptionGroup.prototype.render = function render() { return this.props.children; }; return OptionGroup; }(_react2['default'].Component), _class.propTypes = { /** * 设置分组的文案 */ label: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].node]) }, _class._typeMark = 'select_option_group', _temp); OptionGroup.displayName = 'OptionGroup'; exports['default'] = OptionGroup; module.exports = exports['default']; /***/ }), /***/ 1809: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextMenu = __webpack_require__(1453); var _nextMenu2 = _interopRequireDefault(_nextMenu); var _helper = __webpack_require__(1914); var _helper2 = _interopRequireDefault(_helper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Item = (_temp = _class = function (_React$Component) { _inherits(Item, _React$Component); function Item(props, context) { _classCallCheck(this, Item); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); var prefix = context.prefix + 'navigation-item'; _this.itemClassName = '' + prefix; _this.selectedClassName = prefix + '-selected'; _this.leafClassName = prefix + '-leaf-icon'; _this.iconClassName = prefix + '-icon'; _this.customClassName = prefix + '-custom-icon'; _this.textClassName = prefix + '-text'; _this.contentClassName = prefix + '-content'; _this.childClassName = prefix + '-children'; _this.innerClassName = prefix + '-content-inner'; _this.menuClassName = prefix + '-children-menu'; if (context.nestingPath) { _this.nestingPath = context.nestingPath.concat(_this); } else { _this.nestingPath = [_this]; } _this.createMouseEvent(); return _this; } Item.prototype.getChildContext = function getChildContext() { var context = this; return { nestingPath: context.nestingPath ? context.nestingPath.slice() : [] }; }; /** * 绑定鼠标相关事件;事件类型:click,mouseleave,mousemove,mouseenter * @method createMouseEvent * @return {Object} */ Item.prototype.createMouseEvent = function createMouseEvent() { var _this2 = this; if (this.mouseEvent) { return this.mouseEvent; } this.mouseEvent = {}; ['onClick', 'onMouseLeave', 'onMouseEnter', 'onMouseMove'].forEach(function (e) { var evt = _this2[e], mouseEvent = _this2.mouseEvent || (_this2.mouseEvent = {}); if (evt) { mouseEvent[e] = evt.bind(_this2); } }); return this.mouseEvent; }; /** * click默认处理函数;调用顶层navigation onItemClick 方法 * @method onClick */ Item.prototype.onClick = function onClick() { var _props = this.props, onClick = _props.onClick, itemid = _props.itemid; var argv = [].slice.call(arguments), context = this.context; argv = [itemid, this].concat(argv); onClick.apply(this, argv); context.onItemClick.apply(context.rootNavigation, argv); }; // onMouseEnter默认处理函数 // 调用顶层navigation onItemMouseEnter 方法 Item.prototype.onMouseEnter = function onMouseEnter() { var _props2 = this.props, onMouseEnter = _props2.onMouseEnter, itemid = _props2.itemid; var argv = [].slice.call(arguments), context = this.context; argv = [itemid, this].concat(argv); onMouseEnter.apply(this, [itemid, this].concat(argv)); context.onItemMouseEnter.apply(context.rootNavigation, argv); }; /** * onMouseMove默认处理函数;调用顶层navigation onItemMouseMove 方法 * @method onMouseMove */ Item.prototype.onMouseMove = function onMouseMove() { var _props3 = this.props, onMouseMove = _props3.onMouseMove, itemid = _props3.itemid; var argv = [].slice.call(arguments), context = this.context; argv = [itemid, this].concat(argv); onMouseMove.apply(this, [itemid, this].concat(argv)); context.onItemMouseMove.apply(context.rootNavigation, argv); }; /** * onMouseLeave默认处理函数;调用顶层navigation onItemMouseLeave 方法 * @method onMouseLeave */ Item.prototype.onMouseLeave = function onMouseLeave() { var _props4 = this.props, onMouseLeave = _props4.onMouseLeave, itemid = _props4.itemid; var argv = [].slice.call(arguments), context = this.context; argv = [itemid, this].concat(argv); onMouseLeave.apply(this, [itemid, this].concat(argv)); context.onItemMouseLeave.apply(context.rootNavigation, argv); }; /** * 如果图片是使用对象传进,则克隆图标 * @method onMouseLcloneIconeave * @return {Object} */ Item.prototype.cloneIcon = function cloneIcon(icon, className) { var attr = void 0; attr = { className: className }; return _react2['default'].cloneElement(icon, attr); }; /** * 渲染自定义图标 * @method renderCustomIcon * @return {Object} */ Item.prototype.renderCustomIcon = function renderCustomIcon() { var _classNames; var icon = this.props.icon; var classes = void 0, attr = void 0; if (icon === undefined) { return undefined; } classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, this.iconClassName, true), _defineProperty(_classNames, this.customClassName, true), _classNames)); attr = { type: icon, ref: 'custom', className: classes }; return (typeof icon === 'undefined' ? 'undefined' : _typeof(icon)) === 'object' ? this.cloneIcon(icon, classes) : _react2['default'].createElement(_nextIcon2['default'], attr); }; /** * 渲染text文字 * @method renderText * @return {Object} */ Item.prototype.renderText = function renderText() { var text = this.props.text; if (text === undefined) { return undefined; } return _react2['default'].createElement( 'span', { ref: 'text', className: this.textClassName }, text ); }; /** * 渲染菜单branch图标 * @method renderLeafIcon * @return {Object} */ Item.prototype.renderLeafIcon = function renderLeafIcon() { var _classNames2; var _props5 = this.props, hasLeaf = _props5.hasLeaf, leaf = _props5.leaf, context = this.context; hasLeaf = hasLeaf === undefined ? context.hasLeaf : hasLeaf; leaf = leaf || context.leaf; var classes = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, this.iconClassName, true), _defineProperty(_classNames2, this.leafClassName, true), _classNames2)), cmp = _react2['default'].createElement(_nextIcon2['default'], { ref: 'leaf', type: leaf, className: classes }); if (hasLeaf) { return cmp; } }; /** * 判断DOM是否在Item内 * @method inItem * @return {Boolean} */ Item.prototype.inItem = function inItem(dom) { var content = this.refs.item, hasCmp = content.compareDocumentPosition, contain = content[hasCmp ? 'compareDocumentPosition' : 'contains'], value = hasCmp ? 20 : true; return dom === content || contain.call(content, dom) === value; }; /** * 判断DOM是否在Item Content内 * @method inItemContent * @return {Boolean} */ Item.prototype.inItemContent = function inItemContent(dom) { var content = this.refs.itemContent, hasCmp = content.compareDocumentPosition, contain = content[hasCmp ? 'compareDocumentPosition' : 'contains'], value = hasCmp ? 20 : true; return dom === content || contain.call(content, dom) === value; }; /** * 渲染主要内容:icon,text,leaf * @method renderLeafIcon * @return {Object} */ Item.prototype.renderContent = function renderContent() { var _props6 = this.props, link = _props6.link, target = _props6.target, title = _props6.title, branchLevel = _props6.branchLevel, container = _props6.container; var Tag = link ? 'a' : 'div', branchPadding = this.context.branchPadding, content = this.props.content, attr = { className: this.innerClassName, href: link }, style = void 0; style = { paddingLeft: branchPadding * (branchLevel - 1) + 'px' }; if (target) { attr.target = target; } if (title) { attr.title = title; } if (!content) { content = _react2['default'].createElement( Tag, _extends({}, attr, { ref: 'itemContent' }), this.renderCustomIcon(), this.renderText(), this.renderLeafIcon() ); } else { content = _react2['default'].createElement( Tag, attr, content ); } if ((typeof container === 'undefined' ? 'undefined' : _typeof(container)) === 'object') { content = _react2['default'].cloneElement(container, null, content); } return _react2['default'].createElement( 'div', { className: this.contentClassName, style: style }, content ); }; /** * 渲染子组件;跟进不同标识选择不同组件处理;使用不同类名控制 * @method renderLeafIcon * @return {Object} */ Item.prototype.renderChildren = function renderChildren() { var _this3 = this; var _props7 = this.props, hasChildren = _props7.hasChildren, children = _props7.children; var isStopPropagation = this.props.isStopPropagation, content = []; isStopPropagation = isStopPropagation || this.context.isStopPropagation; if (!hasChildren) { return undefined; } _react2['default'].Children.forEach(children, function (child, i) { if (child.type === _nextMenu2['default']) { if (isStopPropagation) { child = _this3.handleMenuComponent(child, i); } return content.push(child); } if (typeof child.type === 'function') { if (child.type.componentMark) { child = _this3.handleNavigationComponent(child, i); return content.push(child); } } child = _this3.handleUnknownComponent(child, i); content.push(child); }); return content; }; // 未知组件类型处理方法 // 直接返回 Item.prototype.handleUnknownComponent = function handleUnknownComponent(child, i) { return _react2['default'].createElement( 'div', { className: this.unknowsClassName, key: i }, child ); }; // 嵌套组件类型 Item.prototype.handleNavigationComponent = function handleNavigationComponent(child, i) { return _react2['default'].createElement( 'div', { className: this.childClassName, key: i }, child ); }; // 针对菜单组件处理方法 // 根据是否有事件冒泡阻止,注入onClick处理 Item.prototype.handleMenuComponent = function handleMenuComponent(child, i) { var _this4 = this; var handlers = {}, some = [].some; ['onClick'].forEach(function (type) { var refsHandler = child.props[type]; var handler = void 0; handler = function handler(key, item, e, r) { var argv = getEventTarget(key, item, e, r); if (argv) { if (_this4.inItem(argv.target)) { _this4[type](argv); } argv.stopPropagation(); } }; if (refsHandler) { handler = function (key, item, e, r) { var argv = getEventTarget(key, item, e, r); refsHandler.apply(child.props, arguments); if (argv) { if (this.inItem(argv.target)) { this[type](argv); } argv.stopPropagation(); } }.bind(_this4); } handlers[type] = handler; }); function getEventTarget() { var ret = void 0; if (some.call(arguments, function (argv) { if ((typeof argv === 'undefined' ? 'undefined' : _typeof(argv)) === 'object') { if (argv.target) { return argv.target.nodeType === undefined ? false : ret = argv; } } })) { return ret; } } return _react2['default'].createElement( 'div', { className: this.menuClassName, key: i }, _react2['default'].cloneElement(child, handlers) ); }; Item.prototype.render = function render(clsName) { var _classNames3; var _props8 = this.props, className = _props8.className, style = _props8.style; var classes = void 0; classes = (0, _classnames2['default'])((_classNames3 = {}, _defineProperty(_classNames3, this.itemClassName, true), _defineProperty(_classNames3, clsName, !!clsName), _defineProperty(_classNames3, className, !!className), _classNames3)); return _react2['default'].createElement( 'li', _extends({ ref: 'item' }, this.mouseEvent, { className: classes, style: style }), this.renderContent(), this.renderChildren() ); }; return Item; }(_react2['default'].Component), _class.contextTypes = _helper2['default'].propTypes, _class.propTypes = _helper2['default'].propTypes, _class.childContextTypes = {}, _class.componentMark = 'item', _temp); Item.displayName = 'Item'; exports['default'] = Item; Item.propTypes.nestingPath = _propTypes2['default'].array; Item.contextTypes.nestingPath = _propTypes2['default'].array; Item.childContextTypes.nestingPath = _propTypes2['default'].array; Item.defaultProps = { selectedStyle: true, hasLeaf: true, isStopPropagation: true }; ['onClick', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onSelect', 'onFold', 'onUnFold'].forEach(function (name) { var defaultProps = Item.defaultProps || (Item.defaultProps = {}); defaultProps[name] = _helper2['default'].empty; }); module.exports = exports['default']; /***/ }), /***/ 1810: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _helper = __webpack_require__(1914); var _helper2 = _interopRequireDefault(_helper); var _index = __webpack_require__(2287); var _index2 = _interopRequireDefault(_index); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Navigation = (_temp = _class = function (_React$Component) { _inherits(Navigation, _React$Component); Navigation.prototype.getChildContext = function getChildContext() { var props = this.props, context = this.context; return { // 最顶层navigation对象 rootNavigation: context.rootNavigation || this, // 顶层已经初始化 rootMount: context.rootMount || true, // 最近navigation对象 navigation: this, // Tree分支缩进 branchPadding: context.branchPadding || props.branchPadding, // 类名前缀 prefix: context.prefix || props.prefix, // navigation 类型 type: context.type || props.type, // Tree 分支图标 leaf: context.leaf || props.leaf, // 是否显示分支图标 hasLeaf: context.hasLeaf || props.hasLeaf, // 是否暴露选择样式 selectedStyle: context.selectedStyle || props.selectedStyle, // 激活条位置 activeDirection: context.activeDirection || props.activeDirection, // navigation失去焦点收起菜单 isBlurDispear: context.isBlurDispear || props.isBlurDispear || props.blurHide, // 子组件是否阻止事件冒泡 isStopPropagation: context.isStopPropagation || props.isStopPropagation, // 子组件内容排版 contentAlign: context.contentAlign || props.contentAlign || props.menuAlign, // navigation 标题 title: context.title || props.title, // 触发类型 trigger: context.trigger || props.trigger, // 点击处理函数 onItemClick: context.onItemClick || this.onItemClick, // 鼠标进入处理函数 onItemMouseEnter: context.onItemMouseEnter || this.onItemMouseEnter, // 鼠标移动处理函数 onItemMouseMove: context.onItemMouseMove || this.onItemMouseMove, // 鼠标离开处理函数 onItemMouseLeave: context.onItemMouseLeave || this.onItemMouseLeave, // Item选中处理函数 onItemSelect: context.onItemSelect || this.onItemSelect, // Tree折叠处理函数 onItemFold: context.onItemFold || this.onItemFold, // Tree展开处理函数 onItemUnFold: context.onItemUnFold || this.onItemUnFold, // 或者、设置顶级state函数 getRootState: context.getRootState || this.keepState, // 默认选中 selectedKey: context.selectedKey || this.props.selectedKey, // 默认打开 openedKeys: context.openedKeys || this.props.openedKeys, // 手风琴展开 accordion: context.accordion || this.props.accordion || false, // 嵌套层级 branchLevel: context.branchLevel || this.props.branchLevel || 1, // 更多菜单 morePositionKey: context.morePositionKey || this.props.morePositionKey || null, // 更多 moreText: context.moreText || this.props.moreText }; }; function Navigation(props, context) { _classCallCheck(this, Navigation); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); var prefix = context.prefix, type = context.type; prefix = (prefix || props.prefix) + 'navigation'; type = type || props.type; _this.navigationClassName = prefix; _this.directionClassName = prefix + '-' + _this.getDirectionClassName(); _this.typeClassName = prefix + '-' + type; _this.rootClassName = prefix + '-root'; _this.subClassName = prefix + '-sub'; _this.state = { selectedKey: _this.props.selectedKey || null }; _this.getRootState = _this.getRootState.bind(_this); return _this; } Navigation.prototype.componentDidMount = function componentDidMount() { this.isMount = true; }; Navigation.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var state = {}; if (nextProps.selectedKey) { state.selectedKey = nextProps.selectedKey; } this.setState(state); }; /** * 判断DOM对象是否在navigation内 * @method inNavigation * @return {Boolean} 返回true 或者 false */ Navigation.prototype.inNavigation = function inNavigation(dom) { var content = this.refs.navigation, hasCmp = content.compareDocumentPosition, contain = content[hasCmp ? 'compareDocumentPosition' : 'contains'], value = hasCmp ? 20 : true; return dom === content || contain.call(content, dom) === value; }; /** * 判断DOM对象是否在navigation内 * @method keepState * @return {*} * 1、当value === undefined,如果有key,则返回key状态;如果没有则返回state对象 * 2、如果value !== undefined,则设置值 */ Navigation.prototype.getRootState = function getRootState() { return this.state; }; /** * 获取组件direction值,根据type修正direction值 * @method getDirectionClassName * @return {String} */ Navigation.prototype.getDirectionClassName = function getDirectionClassName() { var _props = this.props, direction = _props.direction, type = _props.type; type = this.context.type || this.props.type; if (direction) { return direction === 'hoz' ? 'horizontal' : 'vertical'; } if (type === 'text' || type === 'line' || type === 'filling' || type === undefined) { return 'horizontal'; } return 'vertical'; }; /** * 处理Item点击事件 * @method onItemClick */ Navigation.prototype.onItemClick = function onItemClick() { var argv = [].slice.call(arguments); argv.splice(2, 0, this); this.props.onClick.apply(this, argv); }; /** * 调用属性传递的onSelect事件 * @method onItemSelect */ Navigation.prototype.onItemSelect = function onItemSelect() { var argv = [].slice.call(arguments); argv.splice(2, 0, this); this.props.onSelect.apply(this, argv); }; /** * 调用属性传递的onMouseEnter事件 * @method onItemMouseEnter */ Navigation.prototype.onItemMouseEnter = function onItemMouseEnter() { var argv = [].slice.call(arguments); argv.splice(2, 0, this); this.props.onMouseEnter.apply(this, argv); }; /** * 调用属性传递的onMouseLeave事件 * @method onItemMouseLeave */ Navigation.prototype.onItemMouseLeave = function onItemMouseLeave() { var argv = [].slice.call(arguments); argv.splice(2, 0, this); this.props.onMouseLeave.apply(this, argv); }; /** * 调用属性传递的onMouseMove事件 * @method onItemMouseMove */ Navigation.prototype.onItemMouseMove = function onItemMouseMove() { var argv = [].slice.call(arguments); argv.splice(2, 0, this); this.props.onMouseMove.apply(this, argv); }; /** * 克隆子组件函数;过滤掉undefined,null情况 * @method cloneChildElement * @return {Array} */ Navigation.prototype.cloneChildElement = function cloneChildElement(groupChildren) { var _this2 = this; var children = this.props.children; return _react2['default'].Children.map(groupChildren || children, function (child, index) { var key = void 0, type = void 0, props = void 0; if (child === undefined || child === null) { return child; } key = child.props.itemid || child.key || index; type = child.type; if (type === _index2['default']) { return _react2['default'].createElement( _index2['default'], child.props, _this2.cloneChildElement(child.props.children) ); } props = type.componentMark ? _this2.cloneChildProperty(child, key) : child.props; return _react2['default'].cloneElement(child, props); }); }; /** * 克隆item属性数据;根据状态处理props对应的值 * @method cloneChildProperty * @return {Object} */ Navigation.prototype.cloneChildProperty = function cloneChildProperty(child, key) { var state = void 0, context = this.context, isMount = this.isMount, navigation = context.rootNavigation || this, hasChildren = !!child.props.children, hasSelectedKey = context.selectedKey || this.props.selectedKey, selected = void 0; state = navigation.getRootState ? navigation.getRootState() : this.state; if (!isMount) { if (!hasSelectedKey) { if (typeof child.props.selected === 'string') { if (child.props.selected === 'true') { state.selectedKey = key; } } else { if (child.props.selected) { state.selectedKey = key; } } } } if (state.selectedKey === key) { selected = true; } return { key: key, itemid: key, selected: selected, hasChildren: hasChildren ? this.context.type || this.props.type : undefined, hasLeaf: hasChildren }; }; /** * navigation传递title;自动嵌套 * @method renderGroup * @return {Object} */ Navigation.prototype.renderGroup = function renderGroup() { var title = this.props.title; var children = this.cloneChildElement(); if (title) { return _react2['default'].createElement( _index2['default'], { title: title }, children ); } return children; }; Navigation.prototype.render = function render() { var _classNames; var _props2 = this.props, className = _props2.className, style = _props2.style; var rootNavigation = this.context.rootNavigation; var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, this.navigationClassName, true), _defineProperty(_classNames, this.directionClassName, true), _defineProperty(_classNames, this.typeClassName, true), _defineProperty(_classNames, undefined === rootNavigation ? this.rootClassName : this.subClassName, true), _defineProperty(_classNames, className, !!className), _classNames)); return _react2['default'].createElement( 'ul', { style: style, className: classes, ref: 'navigation' }, this.renderGroup() ); }; return Navigation; }(_react2['default'].Component), _class.childContextTypes = _helper2['default'].propTypes, _class.contextTypes = _helper2['default'].propTypes, _class.propTypes = _helper2['default'].propTypes, _class.componentMark = 'navigation', _temp); Navigation.displayName = 'Navigation'; Navigation.defaultProps = { prefix: 'next-', type: 'text', leaf: 'arrow-down', contentAlign: 'center', trigger: 'hover', title: null, activeDirection: null, selectedStyle: true, hasLeaf: true, isStopPropagation: true, isBlurDispear: true, branchPadding: 20, branchLevel: 0, morePositionKey: null, moreText: '更多' }; ['onClick', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onSelect', 'onFold', 'onUnFold'].forEach(function (name) { return Navigation.defaultProps[name] = _helper2['default'].empty; }); exports['default'] = Navigation; module.exports = exports['default']; /***/ }), /***/ 1909: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _balloon = __webpack_require__(2257); var _balloon2 = _interopRequireDefault(_balloon); var _tooltip = __webpack_require__(2556); var _tooltip2 = _interopRequireDefault(_tooltip); var _inner = __webpack_require__(2258); var _inner2 = _interopRequireDefault(_inner); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _balloon2['default'].Tooltip = _tooltip2['default']; /** * Created by xiachi on 16/5/29. */ _balloon2['default'].Inner = _inner2['default']; exports['default'] = _balloon2['default']; module.exports = exports['default']; /***/ }), /***/ 1910: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _calendarThead = __webpack_require__(2566); var _calendarThead2 = _interopRequireDefault(_calendarThead); var _calendarTbody = __webpack_require__(2567); var _calendarTbody2 = _interopRequireDefault(_calendarTbody); var _calendarMixin = __webpack_require__(1519); var _calendarMixin2 = _interopRequireDefault(_calendarMixin); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var CalendarTable = (_temp = _class = function (_Component) { _inherits(CalendarTable, _Component); function CalendarTable(props) { _classCallCheck(this, CalendarTable); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.state = { value: props.value, base: props.base, mode: props.mode }; return _this; } CalendarTable.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if ('value' in newProps) { this.setState({ value: newProps.value }); } if ('base' in newProps) { this.setState({ base: newProps.base }); } if ('mode' in newProps) { this.setState({ mode: newProps.mode }); } }; CalendarTable.prototype.render = function render() { var _classNames; var _props = this.props, prefix = _props.prefix, onChange = _props.onChange, others = _objectWithoutProperties(_props, ['prefix', 'onChange']); var type = others.type; var _state = this.state, value = _state.value, base = _state.base, mode = _state.mode; var tableCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'calendar-table', true), _defineProperty(_classNames, prefix + 'calendar-' + mode + '-table', mode), _defineProperty(_classNames, prefix + 'calendar-' + type + '-table', type), _classNames)); return _react2['default'].createElement( 'table', { className: tableCls, ref: 'calendar-table' }, mode === 'month' ? _react2['default'].createElement(_calendarThead2['default'], _extends({}, this.props, { value: value })) : null, _react2['default'].createElement(_calendarTbody2['default'], _extends({}, others, { base: base, value: value, mode: mode, onChange: onChange })) ); }; return CalendarTable; }(_react.Component), _class.propTypes = { type: _propTypes2['default'].oneOf(['fullscreen', 'card']), onChange: _propTypes2['default'].func }, _temp); CalendarTable.displayName = 'CalendarTable'; (0, _calendarMixin2['default'])(CalendarTable); exports['default'] = CalendarTable; module.exports = exports['default']; /***/ }), /***/ 1911: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _timePicker = __webpack_require__(2580); var _timePicker2 = _interopRequireDefault(_timePicker); var _timePickerPanel = __webpack_require__(2276); var _timePickerPanel2 = _interopRequireDefault(_timePickerPanel); var _locale = __webpack_require__(2581); var _locale2 = _interopRequireDefault(_locale); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var TimePickerLocale = (0, _nextLocaleProvider2['default'])(_timePicker2['default']); var TimePickerPanelLocale = (0, _nextLocaleProvider2['default'])(_timePickerPanel2['default']); TimePickerLocale.LOCALE = _locale2['default']; TimePickerPanelLocale.LOCALE = _locale2['default']; TimePickerLocale.Panel = TimePickerPanelLocale; exports['default'] = TimePickerLocale; module.exports = exports['default']; /***/ }), /***/ 1912: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextOverlay = __webpack_require__(1401); var _nextOverlay2 = _interopRequireDefault(_nextOverlay); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _inner = __webpack_require__(2279); var _inner2 = _interopRequireDefault(_inner); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}, limitTabRange = _nextUtil.focus.limitTabRange, parseComboOption = function parseComboOption(option) { if (option === true || option === false) { return option; } var res = {}; option.split(',').forEach(function (o) { var key = o.replace(/^\s*|\s*$/g, ''); res[key] = true; }); return res; }; // // // // // var Dialog = (_temp = _class = function (_React$Component) { _inherits(Dialog, _React$Component); Dialog.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; function Dialog(props, context) { _classCallCheck(this, Dialog); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this.onKeyDown = _this.onKeyDown.bind(_this); _this.adjustPosition = _this.adjustPosition.bind(_this); _this.onClose = _this.onClose.bind(_this); _this.onCloseButtonClick = _this.onCloseButtonClick.bind(_this); _this.beforePosition = _this.beforePosition.bind(_this); _this.onWindowResize = _this.onWindowResize.bind(_this); return _this; } Dialog.prototype.componentDidMount = function componentDidMount() { _nextDom.events.on(document, 'keydown', this.onKeyDown); /*eslint-disable react/prop-types */ if (!this.props.isFullScreen) { _nextDom.events.on(window, 'resize', this.onWindowResize); this.adjustPosition(); } }; Dialog.prototype.componentDidUpdate = function componentDidUpdate() { if (!this.props.isFullScreen) { this.adjustPosition(); } }; Dialog.prototype.componentWillUnmount = function componentWillUnmount() { _nextDom.events.off(document, 'keydown', this.onKeyDown); _nextDom.events.off(window, 'resize', this.onWindowResize); }; Dialog.prototype.onWindowResize = function onWindowResize() { this._hasWindowResize = true; }; Dialog.prototype.render = function render() { var _classnames; /* eslint-disable no-unused-vars, react/prop-types */ var _props = this.props, prefix = _props.prefix, closable = _props.closable, children = _props.children, className = _props.className, footerAlign = _props.footerAlign, onClose = _props.onClose, style = _props.style, role = _props.role, wrapperClassName = _props.wrapperClassName, align = _props.align, isFullScreen = _props.isFullScreen, others = _objectWithoutProperties(_props, ['prefix', 'closable', 'children', 'className', 'footerAlign', 'onClose', 'style', 'role', 'wrapperClassName', 'align', 'isFullScreen']), props = _extends({}, others, this.mapClosableToConfig(closable)); delete props.closable; var prefixCls = this.getPrefix(); var wrapperClassNameMix = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefixCls + 'dialog-wrapper', true), _defineProperty(_classnames, wrapperClassName, wrapperClassName), _classnames)); props.wrapperClassName = wrapperClassNameMix; others = (0, _nextUtil.pickAttrs)(others); var dialogInner = _react2['default'].createElement( _inner2['default'], _extends({}, others, { prefix: prefix, onClose: this.onCloseButtonClick, className: className, footerAlign: footerAlign, closable: closable, style: style, role: role, ref: 'inner', 'aria-hidden': !this.props.visible }), children ); var useCss = align === 'cc cc' && isFullScreen; var positionAttrs = {}; if (!useCss) { positionAttrs = { onPosition: this.adjustPosition, beforePosition: this.beforePosition }; } return _react2['default'].createElement( _nextOverlay2['default'], _extends({}, props, { prefix: prefix, align: useCss ? false : align, onRequestClose: this.onClose, canCloseByOutSideClick: false, needAdjust: false, disableScroll: true }, positionAttrs, { ref: 'overlay' }), useCss ? _react2['default'].createElement( 'div', { className: prefixCls + 'dialog-container' }, dialogInner ) : dialogInner ); }; Dialog.prototype.onClose = function onClose() { this.props.onClose('fromKeyboard'); }; Dialog.prototype.onCloseButtonClick = function onCloseButtonClick() { var res = this.mapClosableToConfig(this.props.closable); if (res.canCloseByCloseClick) { this.props.onClose('fromCloseBtn'); } }; Dialog.prototype.onKeyDown = function onKeyDown(e) { var node = this.refs.overlay.getContentNode(); if (node) { limitTabRange(node, e); } }; Dialog.prototype.beforePosition = function beforePosition() { if (this.props.visible) { var content = this.refs.overlay ? this.refs.overlay.getContent() : ''; if (content) { var body = content.getBody(); var node = this.refs.overlay.getContentNode(); if (this._lastDialogHeight !== node.clientHeight || this._hasWindowResize) { this.revertSize(node, body); this._hasWindowResize = false; } } } }; Dialog.prototype.adjustPosition = function adjustPosition() { var minMargin = this.props.minMargin; if (this.props.visible) { var content = this.refs.overlay ? this.refs.overlay.getContent() : '', dialogHeight = void 0; if (content) { var body = content.getBody(); var node = this.refs.overlay.getContentNode(); var top = _nextDom.style.get(node, 'top'); var height = _nextDom.style.get(node, 'height'), clientHeight = window.innerHeight || document.documentElement.clientHeight; if (top <= minMargin) { _nextDom.style.set(node, 'top', minMargin + 'px'); if (clientHeight <= height + minMargin) { dialogHeight = clientHeight - minMargin * 2; this.adjustSize(node, dialogHeight); } else if (body.scrollHeight === body.clientHeight) { this.revertSize(node, body); } } else if (clientHeight <= height + top) { dialogHeight = clientHeight - top; this.adjustSize(node, dialogHeight); } this._lastDialogHeight = node.clientHeight; } } }; Dialog.prototype.adjustSize = function adjustSize(node, dialogHeight) { var content = this.refs.overlay.getContent(), body = content.getBody(), header = content.getHeader(), footer = content.getFooter(); var headerHeight = 0, footerHeight = 0; if (header) { headerHeight = _nextDom.style.get(header, 'height'); } if (footer) { footerHeight = _nextDom.style.get(footer, 'height'); } var dialogPadding = _nextDom.style.get(node, 'padding-top') + _nextDom.style.get(node, 'padding-bottom'), maxBodyHeight = dialogHeight - headerHeight - footerHeight - dialogPadding; if (maxBodyHeight < 0) { maxBodyHeight = 1; } _nextDom.style.set(body, { 'max-height': maxBodyHeight + 'px', 'overflow-y': 'auto' }); }; Dialog.prototype.revertSize = function revertSize(node, body) { _nextDom.style.set(node, 'height', 'auto'); _nextDom.style.set(body, { 'max-height': 'none' }); }; Dialog.prototype.mapClosableToConfig = function mapClosableToConfig(closable) { var res = {}, map = ['esc', 'outSide', 'close', 'mask']; closable = parseComboOption(closable); map.forEach(function (o) { var value = closable === true ? true : closable[o] || false; var key = o.charAt(0).toUpperCase() + o.substr(1); if (o === 'esc' || o === 'mask') { res['canCloseBy' + key] = value; } else { res['canCloseBy' + key + 'Click'] = value; } }); return res; }; return Dialog; }(_react2['default'].Component), _class.propTypes = { prefix: _propTypes2['default'].string, hasMask: _propTypes2['default'].bool, onClose: _propTypes2['default'].func, closable: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].bool]), minMargin: _propTypes2['default'].number }, _class.defaultProps = { prefix: 'next-', hasMask: true, animation: { 'in': 'fadeInDown', out: 'fadeOutUp' }, onClose: noop, closable: 'esc,close', align: 'cc cc', autoFocus: true, minMargin: 40 }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Dialog.displayName = 'Dialog'; exports['default'] = Dialog; module.exports = exports['default']; /***/ }), /***/ 1913: /***/ (function(module, exports, __webpack_require__) { "use strict"; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var toUpperCase = function toUpperCase(str) { return str.charAt(0).toUpperCase() + str.substr(1); }; ['header', 'footer', 'body'].forEach(function (cls) { var _class, _temp; exports[toUpperCase(cls)] = (_temp = _class = function (_Component) { _inherits(_class, _Component); function _class() { _classCallCheck(this, _class); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } _class.prototype.render = function render() { var _props = this.props, propsPrefix = _props.prefix, children = _props.children, others = _objectWithoutProperties(_props, ['prefix', 'children']); var prefix = this.context.prefix || propsPrefix; return _react2['default'].createElement( 'div', _extends({}, others, { className: prefix + 'dialog-' + cls }), children ); }; return _class; }(_react.Component), _class.propTypes = { prefix: _propTypes2['default'].string, children: _propTypes2['default'].any }, _class.defaultProps = { prefix: 'next-' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.dialogMark = cls, _temp); }); /***/ }), /***/ 1914: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var navigationPropTypes = { rootNavigation: _propTypes2['default'].any, rootMount: _propTypes2['default'].bool, navigation: _propTypes2['default'].any, branchPadding: _propTypes2['default'].any, prefix: _propTypes2['default'].string, type: _propTypes2['default'].string, leaf: _propTypes2['default'].string, activeDirection: _propTypes2['default'].string, contentAlign: _propTypes2['default'].string, trigger: _propTypes2['default'].string, title: _propTypes2['default'].string, hasLeaf: _propTypes2['default'].bool, selectedStyle: _propTypes2['default'].bool, isStopPropagation: _propTypes2['default'].bool, isBlurDispear: _propTypes2['default'].bool, onItemClick: _propTypes2['default'].func, onItemMouseEnter: _propTypes2['default'].func, onItemMouseLeave: _propTypes2['default'].func, onItemMouseMove: _propTypes2['default'].func, onItemSelect: _propTypes2['default'].func, onItemFold: _propTypes2['default'].func, onItemUnFold: _propTypes2['default'].func, getRootState: _propTypes2['default'].func, selectedKey: _propTypes2['default'].any, openedKeys: _propTypes2['default'].array, accordion: _propTypes2['default'].bool, branchLevel: _propTypes2['default'].number, morePositionKey: _propTypes2['default'].any, moreText: _propTypes2['default'].string }; var helper = { propTypes: navigationPropTypes, empty: function empty() {} }; exports['default'] = helper; module.exports = exports['default']; /***/ }), /***/ 1915: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _item = __webpack_require__(1809); var _item2 = _interopRequireDefault(_item); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Common = function (_Item) { _inherits(Common, _Item); function Common(props, context) { _classCallCheck(this, Common); var _this = _possibleConstructorReturn(this, _Item.call(this, props, context)); _this.textAlignCenterClassName = context.prefix + 'navigation-item-align'; _this.activeDirectionClassName = context.prefix + 'navigation-item-selected'; return _this; } // click默认处理函数 // 调用顶层navigation onItemClick 方法 // 转化click事件为select事件 Common.prototype.onClick = function onClick(e) { var _props = this.props, onClick = _props.onClick, onSelect = _props.onSelect, selected = _props.selected, focused = _props.focused, selectedStyle = _props.selectedStyle, itemid = _props.itemid, hasChildren = _props.hasChildren; var context = this.context, argv = [itemid, this].concat([].slice.call(arguments)); argv.splice(2, 0, this); onClick.apply(this, argv); context.onItemClick.apply(context.rootNavigation, argv); if (hasChildren && (selected || !focused)) { return this; } if (hasChildren) { if (this.inItemContent(e.target)) { return this; } } onSelect.apply(this, argv); if (selectedStyle) { context.onItemSelect.apply(context.rootNavigation, argv); } }; Common.prototype.render = function render(className) { var _classNames; var _props2 = this.props, selected = _props2.selected, activeDirection = _props2.activeDirection, contentAlign = _props2.contentAlign, menuAlign = _props2.menuAlign, context = this.context; contentAlign = menuAlign || contentAlign || context.contentAlign; activeDirection = activeDirection || context.activeDirection; var classes = void 0, alignClassName = this.textAlignCenterClassName + '-' + contentAlign, activeClassName = this.activeDirectionClassName + '-' + activeDirection; classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, this.selectedClassName, selected), _defineProperty(_classNames, activeClassName, activeDirection && selected), _defineProperty(_classNames, className, !!className), _defineProperty(_classNames, alignClassName, true), _classNames)); return _Item.prototype.render.call(this, classes); }; return Common; }(_item2['default']); exports['default'] = Common; module.exports = exports['default']; /***/ }), /***/ 1916: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _nextMenu = __webpack_require__(1453); var _nextMenu2 = _interopRequireDefault(_nextMenu); var _navigation = __webpack_require__(1810); var _navigation2 = _interopRequireDefault(_navigation); var _item = __webpack_require__(2285); var _item2 = _interopRequireDefault(_item); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Vertical = (_temp = _class = function (_Navigation) { _inherits(Vertical, _Navigation); function Vertical(props, context) { _classCallCheck(this, Vertical); var _this = _possibleConstructorReturn(this, _Navigation.call(this, props, context)); var prefix = context.prefix; prefix = (prefix || props.prefix) + 'navigation'; _this.childrenShowClassName = prefix + '-children-show'; _this.onMenuBlur = _this.onMenuBlur.bind(_this); _this.state.focusedKey = null; return _this; } Vertical.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var state = {}; _Navigation.prototype.componentWillReceiveProps.call(this, nextProps); if (nextProps.focusedKey) { state.focusedKey = nextProps.focusedKey; } this.setState(state); }; /** * 注册失去焦点,收起菜单操作 * @method componentDidMount */ Vertical.prototype.componentDidMount = function componentDidMount() { _Navigation.prototype.componentDidMount.call(this); var dispear = this.context.isBlurDispear || this.props.isBlurDispear; dispear = this.props.blurHide === undefined ? dispear : this.props.blurHide; if (dispear) { document.body.addEventListener('click', this.onMenuBlur, false); } }; /** * 移除失去焦点,收起菜单操作 * @method componentWillUnMount */ Vertical.prototype.componentWillUnmount = function componentWillUnmount() { var dispear = this.context.isBlurDispear || this.props.isBlurDispear; if (dispear) { document.body.removeEventListener('click', this.onMenuBlur, false); } }; /** * 在导航外触发click,收起菜单处理函数 * @method onMenuBlur */ Vertical.prototype.onMenuBlur = function onMenuBlur(e) { var dispear = this.context.isBlurDispear || this.props.isBlurDispear, refs = this.refs; if (dispear && refs.navigation) { if (!this.inNavigation(e.target)) { if (this.state.focusedKey) { this.setState({ focusedKey: null }); } } } }; /** * 由item子组件mouseLeave触发处理函数;该函数处理focusedKey状态;如果trigger为hover才会处理 * @method onMenuBlur */ Vertical.prototype.onItemMouseEnter = function onItemMouseEnter(itemid) { var trigger = this.context.trigger; trigger = trigger || this.props.trigger; if (trigger === 'hover') { if (itemid === this.state.focusedKey) { return this; } _Navigation.prototype.onItemMouseEnter.apply(this, arguments); if (this.props.selectedStyle) { this.setState({ focusedKey: itemid }); } } }; Vertical.prototype.onItemMouseLeave = function onItemMouseLeave() { var trigger = this.context.trigger; trigger = trigger || this.props.trigger; if (trigger === 'hover') { _Navigation.prototype.onItemMouseLeave.apply(this, arguments); if (this.props.selectedStyle) { this.setState({ focusedKey: null }); } } }; Vertical.prototype.onItemClick = function onItemClick(itemid, item) { var focused = item.props.focused; var trigger = this.context.trigger; trigger = trigger || this.props.trigger; if (trigger === 'hover') { if (itemid === Vertical.navigationMoreKey) { return this; } } if (focused) { if (itemid === Vertical.navigationMoreKey) { return this; } } if (trigger === 'click') { if (itemid === this.state.focusedKey) { if (focused) { this.setState({ focusedKey: null }); } } else { this.setState({ focusedKey: itemid }); } } _Navigation.prototype.onItemClick.apply(this, arguments); }; Vertical.prototype.onItemSelect = function onItemSelect(itemid) { if (itemid === Vertical.navigationMoreKey) { return this; } if (itemid === this.state.selectedKey) { return this; } _Navigation.prototype.onItemSelect.apply(this, arguments); if (this.props.selectedStyle) { this.setState({ selectedKey: itemid }); } }; /** * 克隆子组件函数;过滤掉undefined,null情况 * @method cloneChildElement * @return {Array} */ Vertical.prototype.cloneChildElement = function cloneChildElement() { var _this2 = this; var _props = this.props, morePositionKey = _props.morePositionKey, moreText = _props.moreText; var element = _Navigation.prototype.cloneChildElement.call(this); var moreMenus = []; var menus = []; var isMore = false; var refs = menus; if (morePositionKey) { _react2['default'].Children.forEach(element, function (child, index) { var key = void 0; if (child === undefined || child === null) { return child; } key = child.props.itemid || child.key || index; if (!isMore) { if (key === morePositionKey) { isMore = true; refs = moreMenus; } } refs.push(child); }); if (moreMenus.length > 0) { var moreKey = Vertical.navigationMoreKey; var moreChild = _react2['default'].createElement( _item2['default'], { text: moreText, key: moreKey, itemid: moreKey }, _react2['default'].createElement( _nextMenu2['default'], null, moreMenus.map(function (child) { var key = child.props.itemid || child.key; var children = void 0; if (child === null || child === undefined) { return child; } if (child && child.props) { if (child.props.link) { children = _react2['default'].createElement( 'a', { href: child.props.link, target: child.props.target }, child.props.text ); } else { children = child.props.text; } } return _react2['default'].createElement( _nextMenu2['default'].Item, { key: key, onClick: function onClick() { _this2.onItemClick(key, child); _this2.onItemSelect(key, child); } }, children ); }) ) ); menus.push(_react2['default'].cloneElement(moreChild, this.cloneChildProperty(moreChild, moreKey))); } return menus; } return element; }; Vertical.prototype.cloneChildProperty = function cloneChildProperty(child, key) { var props = _Navigation.prototype.cloneChildProperty.call(this, child, key), context = this.context, navigation = context.rootNavigation || this, isMount = this.isMount, state = void 0; state = navigation.getRootState ? navigation.getRootState() : this.state; if (!isMount) { if (child.props.focused) { state.focusedKey = key; } } props.focused = !isMount ? child.props.focused : key === state.focusedKey; return props; }; return Vertical; }(_navigation2['default']), _class.navigationMoreKey = 'navigation.item.more.' + +new Date(), _temp); exports['default'] = Vertical; module.exports = exports['default']; /***/ }), /***/ 1917: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _progressLine = __webpack_require__(2643); var _progressLine2 = _interopRequireDefault(_progressLine); var _progressCircle = __webpack_require__(2644); var _progressCircle2 = _interopRequireDefault(_progressCircle); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Progress */ var Progress = (_temp = _class = function (_Component) { _inherits(Progress, _Component); function Progress() { _classCallCheck(this, Progress); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Progress.prototype.render = function render() { var _props = this.props, prefix = _props.prefix, shape = _props.shape, suffix = _props.suffix, percent = _props.percent, others = _objectWithoutProperties(_props, ['prefix', 'shape', 'suffix', 'percent']); var newSuffix = suffix ? suffix : percent + '%'; var newPrefix = this.context.prefix || prefix; var props = _extends({}, others, { percent: percent, suffix: newSuffix, prefix: newPrefix }); return shape === 'circle' ? _react2['default'].createElement(_progressCircle2['default'], props) : _react2['default'].createElement(_progressLine2['default'], props); }; return Progress; }(_react.Component), _class.propTypes = { /** * 样式的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 形态 */ shape: _propTypes2['default'].oneOf(['circle', 'line']), /** * 类型 */ type: _propTypes2['default'].oneOf(['normal', 'progressive']), /** * 尺寸 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 所占百分比 */ percent: _propTypes2['default'].number, /** * 进度条上的说明内容 */ suffix: _propTypes2['default'].node, /** * 是否展示内容 */ showInfo: _propTypes2['default'].bool, /** * 状态 */ state: _propTypes2['default'].oneOf(['success', 'error']), /** * 自定义样式名 */ className: _propTypes2['default'].string, /** * 是否开启动效 */ animation: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-', shape: 'line', type: 'normal', size: 'medium', percent: 0, showInfo: true, animation: true }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Progress.displayName = 'Progress'; exports['default'] = Progress; module.exports = exports['default']; /***/ }), /***/ 1918: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.browser = browser; exports.getOffset = getOffset; exports.loopAllChildren = loopAllChildren; exports.isInclude = isInclude; exports.filterParentPosition = filterParentPosition; exports.handleCheckState = handleCheckState; exports.getCheck = getCheck; exports.getStrictlyValue = getStrictlyValue; exports.arraysEqual = arraysEqual; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function browser(navigator) { var tem = void 0; var ua = navigator.userAgent; var M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; if (/trident/i.test(M[1])) { tem = /\brv[ :]+(\d+)/g.exec(ua) || []; // eslint-disable-next-line return 'IE ' + (tem[1] || ''); } if (M[1] === 'Chrome') { tem = ua.match(/\b(OPR|Edge)\/(\d+)/); if (tem) { return tem.slice(1).join(' ').replace('OPR', 'Opera'); } } M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?']; tem = ua.match(/version\/(\d+)/i); if (tem) { M.splice(1, 1, tem[1]); } return M.join(' '); } function getOffset(elem) { var rect = elem.getBoundingClientRect(); var win = elem.ownerDocument.defaultView; return { top: rect.top + win.pageYOffset, left: rect.left + win.pageXOffset }; } function getChildrenlength(children) { var len = 1; if (Array.isArray(children)) { len = children.length; } return len; } function getSiblingPosition(index, len, siblingPosition) { if (len === 1) { siblingPosition.first = true; siblingPosition.last = true; } else { siblingPosition.first = index === 0; siblingPosition.last = index === len - 1; } return siblingPosition; } function loopAllChildren(childs, callback, parent) { var loop = function loop(children, level, _parent) { var len = getChildrenlength(children); _react2['default'].Children.forEach(children, function (item, index) { var pos = level + '-' + index; if (item.props && item.props.children && item.type && typeof item.type === 'function' && item.type.isTreeNode) { loop(item.props.children, pos, { node: item, pos: pos }); } callback(item, index, pos, item.key || pos, getSiblingPosition(index, len, {}), _parent); }); }; loop(childs, 0, parent); } function isInclude(smallArray, bigArray) { return smallArray.every(function (ii, i) { return ii === bigArray[i]; }); } function filterParentPosition(arr) { var levelObj = {}; arr.forEach(function (item) { var posLen = item.split('-').length; if (!levelObj[posLen]) { levelObj[posLen] = []; } levelObj[posLen].push(item); }); var levelArr = Object.keys(levelObj).sort(function (a, b) { return Number(a) - Number(b); }); var _loop = function _loop(i) { if (levelArr[i + 1]) { levelObj[levelArr[i]].forEach(function (ii) { var _loop2 = function _loop2(j) { levelObj[levelArr[j]].forEach(function (_i, index) { if (isInclude(ii.split('-'), _i.split('-'))) { levelObj[levelArr[j]][index] = null; } }); levelObj[levelArr[j]] = levelObj[levelArr[j]].filter(function (p) { return p; }); }; for (var j = i + 1; j < levelArr.length; j++) { _loop2(j); } }); } }; for (var i = 0; i < levelArr.length; i++) { _loop(i); } var nArr = []; levelArr.forEach(function (i) { nArr = nArr.concat(levelObj[i]); }); return nArr; } function stripTail(str) { var arr = str.match(/(.+)(-[^-]+)$/); var st = ''; if (arr && arr.length === 3) { st = arr[1]; } return st; } function splitPosition(pos) { return pos.split('-'); } function handleCheckState(obj, checkedPositionArr, checkIt) { var objKeys = Object.keys(obj); objKeys.forEach(function (i, index) { var iArr = splitPosition(i); var saved = false; checkedPositionArr.forEach(function (_pos) { var _posArr = splitPosition(_pos); if (iArr.length > _posArr.length && isInclude(_posArr, iArr)) { obj[i].halfChecked = false; obj[i].checked = checkIt; objKeys[index] = null; } if (iArr[0] === _posArr[0] && iArr[1] === _posArr[1]) { saved = true; } }); if (!saved) { objKeys[index] = null; } }); objKeys = objKeys.filter(function (i) { return i; }); var _loop3 = function _loop3(_pIndex) { var loop = function loop(__pos) { var _posLen = splitPosition(__pos).length; if (_posLen <= 2) { return; } var sibling = 0; var siblingChecked = 0; var parentPosition = stripTail(__pos); objKeys.forEach(function (i) { var iArr = splitPosition(i); if (iArr.length === _posLen && isInclude(splitPosition(parentPosition), iArr)) { sibling++; if (obj[i].checked) { siblingChecked++; var _i = checkedPositionArr.indexOf(i); if (_i > -1) { checkedPositionArr.splice(_i, 1); if (_i <= _pIndex) { _pIndex--; } } } else if (obj[i].halfChecked) { siblingChecked += 0.5; } } }); var parent = obj[parentPosition]; if (siblingChecked === 0) { parent.checked = false; parent.halfChecked = false; } else if (siblingChecked === sibling) { parent.checked = true; parent.halfChecked = false; } else { parent.halfChecked = true; parent.checked = false; } loop(parentPosition); }; loop(checkedPositionArr[_pIndex], _pIndex); pIndex = _pIndex; }; for (var pIndex = 0; pIndex < checkedPositionArr.length; pIndex++) { _loop3(pIndex); } } function getCheck(treeNodesStates) { var halfCheckedKeys = []; var checkedKeys = []; var checkedNodes = []; var checkedNodesPositions = []; Object.keys(treeNodesStates).forEach(function (item) { var itemObj = treeNodesStates[item]; if (itemObj.checked) { checkedKeys.push(itemObj.key); checkedNodes.push(itemObj.node); checkedNodesPositions.push({ node: itemObj.node, pos: item }); } else if (itemObj.halfChecked) { halfCheckedKeys.push(itemObj.key); } }); return { halfCheckedKeys: halfCheckedKeys, checkedKeys: checkedKeys, checkedNodes: checkedNodes, checkedNodesPositions: checkedNodesPositions, treeNodesStates: treeNodesStates }; } function getStrictlyValue(checkedKeys, halfChecked) { if (halfChecked) { return { checked: checkedKeys, halfChecked: halfChecked }; } return checkedKeys; } function arraysEqual(a, b) { if (a === b) { return true; } if (a === null || typeof a === 'undefined' || b === null || typeof b === 'undefined') { return false; } if (a.length !== b.length) { return false; } for (var i = 0; i < a.length; ++i) { if (a[i] !== b[i]) { return false; } } return true; } /***/ }), /***/ 1919: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _objectAssign = __webpack_require__(76); var _objectAssign2 = _interopRequireDefault(_objectAssign); var _nextButton = __webpack_require__(1472); var _nextButton2 = _interopRequireDefault(_nextButton); var _nextUtil = __webpack_require__(889); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _upload = __webpack_require__(2293); var _upload2 = _interopRequireDefault(_upload); var _uploadList = __webpack_require__(2296); var _uploadList2 = _interopRequireDefault(_uploadList); var _getFileItem = __webpack_require__(2702); var _getFileItem2 = _interopRequireDefault(_getFileItem); var _normalizeFileItem = __webpack_require__(2703); var _normalizeFileItem2 = _interopRequireDefault(_normalizeFileItem); var _fileserverUrl = __webpack_require__(2704); var Fileserver = _interopRequireWildcard(_fileserverUrl); var _fileFilter = __webpack_require__(2705); var _fileFilter2 = _interopRequireDefault(_fileFilter); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var empty = function empty() {}; var errorMap = { 1: 'IO_ERROR_SERVER', 2: 'FORMAT_ERROR', 3: 'FILE_SIZE_ERROR_SERVER', 4: 'FILE_TYPE_ERROR_SERVER' }; /** * Upload */ var FileUpload = (_temp = _class = function (_Component) { _inherits(FileUpload, _Component); function FileUpload(props, context) { _classCallCheck(this, FileUpload); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); var fileList = props.fileList || props.defaultFileList || []; _this.state = { fileList: fileList.map(function (f) { return (0, _normalizeFileItem2['default'])(f); }), dragState: 'drop' }; /* eslint-disable */ ['onFileDrop', 'onStart', 'onSuccess', 'onProgress', 'onError', 'removeFile', 'cancelFile'].map(function (fn) { _this[fn] = _this[fn].bind(_this); }); /* eslint-enable */ return _this; } FileUpload.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('fileList' in nextProps) { var fileList = nextProps.fileList; if (fileList === undefined) { fileList = []; } this.setState({ fileList: fileList.map(function (f) { return (0, _normalizeFileItem2['default'])(f); }) }); } }; /** * 文件拖拽处理函数 * @param {Event} e - 拖拽事件 * @return {void} */ FileUpload.prototype.onFileDrop = function onFileDrop(e) { if (!this.props.dragable) { return false; } this.setState({ dragState: e.type }); }; /** * 上传开始 * @param {FileList} files - 文件列表 * @return {void} */ FileUpload.prototype.onStart = function onStart(files) { var fileObject = (0, _normalizeFileItem2['default'])(files[0]); fileObject.status = 'uploading'; var newFileList = this.state.fileList; newFileList.push(fileObject); this.onChange({ file: fileObject, fileList: newFileList }); }; /** * 上传成功回调 * @param {Object} response - 服务器响应 * @param {File} file - 文件对象 * @return {void} */ FileUpload.prototype.onSuccess = function onSuccess(response, file) { var locale = this.props.locale; var fileList = this.state.fileList; /* eslint-disable */ var targetItem = (0, _getFileItem2['default'])(file, fileList); /* eslint-disable */ var _props = this.props, fileSite = _props.fileSite, previewImgSize = _props.previewImgSize, formatter = _props.formatter, maxSize = _props.maxSize, multipart = _props.multipart, checkMaxSizeBeforeUpload = _props.checkMaxSizeBeforeUpload; if (!checkMaxSizeBeforeUpload && file.size > maxSize) { return this.onError(new Error(locale.error.maxSize), response, file); } var data = this.props.data || multipart; // 为了兼容自定义服务器返回的数据格式 // 向外提供一个自定义格式化数据的 API if (formatter) { response = formatter(response); } if (typeof data === 'function') { data = data(file); } try { if (typeof response === 'string') { response = JSON.parse(response); } } catch (e) { this.onError(new Error(locale.error.parseJson), response, file); return; } if (!response || response.code != '0') { this.onError(new Error(errorMap[response && response.code || '1']), response, file); return; } var imgURL = response.imgUrl || response.imgURL; var downloadURL = response.downloadUrl || response.downloadURL; // 如果是走默认的 fileserver 上传 if (data && data.scene) { imgURL = imgURL || Fileserver.buildUrl({ site: fileSite, fileName: response.fs_url, resize: previewImgSize, // 预览图片大小设置为200x200 fileProtocol: 'empty', asAttachment: null }); // 下载图片地址 downloadURL = downloadURL || Fileserver.buildUrl({ site: fileSite, fileName: response.fs_url, asAttachment: file.name, fileProtocol: 'empty', resize: null }); // 图片在 `onStart` 已经加入到 `fileList` 中, // 这里需要在成功后用服务器返回的数据改变图片的信息, // 所以需要判断是否已经存在图片元素 if (targetItem) { (0, _objectAssign2['default'])(targetItem, { fileSavePath: response.fs_url, fileURL: response.url, downloadURL: downloadURL, // 下载地址 imgURL: imgURL, // 缩略图地址 size: response.size, fileHeight: response.height, fileWidth: response.width, fileMd5: response.hash, status: 'done', response: response }); this.onChange({ file: targetItem, fileList: fileList }); } } else if (targetItem) { // 走自定义服务器上传 (0, _objectAssign2['default'])(targetItem, { imgURL: imgURL, // 缩略图地址 downloadURL: downloadURL, // 下载地址(可选) size: response.size || targetItem.size, // (可选) 没有的话以 File对象上的为准 fileHeight: response.height, // (可选) fileWidth: response.width, // (可选) fileMd5: response.hash, // (可选) status: 'done', response: response }); this.onChange({ file: targetItem, fileList: fileList }); } // 向外暴露的成功回调函数 this.props.onSuccess(response, targetItem); }; FileUpload.prototype.onProgress = function onProgress(e, file) { var fileList = this.state.fileList; var targetItem = (0, _getFileItem2['default'])(file, fileList); if (!targetItem) { return; } targetItem.percent = e.percent; this.onChange({ event: e, file: targetItem, fileList: fileList }); }; FileUpload.prototype.onError = function onError(error, response, file) { if (!file) { return; } var fileList = this.state.fileList; var targetItem = (0, _getFileItem2['default'])(file, fileList); if (!targetItem) { // 上传前校验的时候 targetItem = (0, _normalizeFileItem2['default'])(file); fileList.push(targetItem); } (0, _objectAssign2['default'])(targetItem, { error: error, status: 'error', response: response }); this.props.onError(targetItem); this.onChange({ file: targetItem, fileList: fileList }); }; FileUpload.prototype.onChange = function onChange(info) { this.setState({ fileList: info.fileList }); // 在执行回调时不把 `status = error` 的文件输出 var infoTemp = (0, _objectAssign2['default'])({}, _extends({}, info, { fileList: (0, _fileFilter2['default'])(info.fileList) })); this.props.onChange(infoTemp); // 通知拖拽组件把dataTransfer清理掉 this.props.dropEnd(); // 通知拖拽组件最新的图片列表 this.props.onListChange(info.fileList); }; /** * 删除文件 * @param {File} file * @return {void} */ FileUpload.prototype.removeFile = function removeFile(file) { file.status = 'removed'; this.refs.inner.abort(file); // 删除组件时调用组件的 `abort` 方法中断上传 var fileList = this.state.fileList; var targetItem = (0, _getFileItem2['default'])(file, fileList); var index = fileList.indexOf(targetItem); if (index !== -1) { fileList.splice(index, 1); this.onChange({ file: targetItem, fileList: fileList }); this.props.onRemove(file, fileList); } }; /** * 取消上传 * @param {File} file * @return {void} */ FileUpload.prototype.cancelFile = function cancelFile(file) { this.refs.inner.abort(file); // 取消上传时调用组件的 `abort` 方法中断上传 var fileList = this.state.fileList; var targetItem = (0, _getFileItem2['default'])(file, fileList); var index = fileList.indexOf(targetItem); if (index !== -1) { fileList.splice(index, 1); this.onChange({ file: targetItem, fileList: fileList }); } }; FileUpload.prototype.render = function render() { var _classNames, _classNames2; var _props2 = this.props, listType = _props2.listType, className = _props2.className, locale = _props2.locale, children = _props2.children, style = _props2.style, onChange = _props2.onChange, showUploadList = _props2.showUploadList, checkMaxSizeBeforeUpload = _props2.checkMaxSizeBeforeUpload, disabled = _props2.disabled, others = _objectWithoutProperties(_props2, ['listType', 'className', 'locale', 'children', 'style', 'onChange', 'showUploadList', 'checkMaxSizeBeforeUpload', 'disabled']); var cleanOthers = (0, _nextUtil.pickAttrs)(others); var prefix = this.context.prefix || this.props.prefix; var prefixCls = prefix + 'upload'; var classnames = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, className, !!className), _classNames)); // 是否达到最大文件上传数 var isExceedLimit = this.state.fileList.length >= this.props.limit; var uploadButtonCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefixCls + '-select', true), _defineProperty(_classNames2, prefixCls + '-drop', true), _defineProperty(_classNames2, prefixCls + '-drop-hover', this.state.dragState === 'dragover'), _defineProperty(_classNames2, prefixCls + '-select-' + listType, true), _defineProperty(_classNames2, prefixCls + '-select-' + listType + '-hovered', !!this.props.triggerHovered), _defineProperty(_classNames2, prefixCls + '-select-' + listType + '-disable', !!disabled), _defineProperty(_classNames2, prefixCls + '-select-hide', isExceedLimit), _classNames2)); // API `resize` 废弃提醒 this.props.resize && _nextUtil.log.warning('`resize` is deprecated, don\'t use it anymore.'); this.props.multipart && _nextUtil.log.deprecated('multipart', 'data', 'Upload'); if (this.props.id) { cleanOthers.id = 'upload_' + this.props.id; } // 手动设置disable 或者上传超出数量限制都是 disable状态 var triggerDisabled = disabled || isExceedLimit; var trigger = _react2['default'].createElement( 'div', { onDrop: this.onFileDrop, onDragOver: this.onFileDrop, onDragLeave: this.onFileDrop, className: uploadButtonCls }, _react2['default'].createElement( _upload2['default'], _extends({}, others, { disabled: triggerDisabled, className: prefixCls + '-select-inner', fileList: this.state.fileList, onStart: this.onStart, onSuccess: this.onSuccess, onProgress: this.onProgress, onError: this.onError, locale: locale, checkMaxSizeBeforeUpload: checkMaxSizeBeforeUpload, ref: 'inner' }), children ? children : _react2['default'].createElement( _nextButton2['default'], { type: 'normal', disabled: triggerDisabled }, locale.file.addPhoto ) ) ); if (listType === 'picture-card') { return _react2['default'].createElement( 'div', _extends({}, cleanOthers, { className: classnames, style: style }), showUploadList ? _react2['default'].createElement( _uploadList2['default'], { prefix: prefix, locale: locale, listType: listType, fileList: this.state.fileList, onRemove: this.removeFile, onCancel: this.cancelFile, closable: !disabled }, trigger ) : trigger ); } return _react2['default'].createElement( 'div', _extends({}, cleanOthers, { className: classnames, style: style }), trigger, showUploadList ? _react2['default'].createElement(_uploadList2['default'], { prefix: prefix, locale: locale, listType: listType, fileList: this.state.fileList, closable: !disabled, onRemove: this.removeFile, onCancel: this.cancelFile }) : null ); }; return FileUpload; }(_react.Component), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string.isRequired, /** * 必选参数,上传的地址 */ action: _propTypes2['default'].string, /** * 上传文件列表,数据格式请参考 */ fileList: _propTypes2['default'].array, /** * 默认上传文件列表,数据格式请参考 */ defaultFileList: _propTypes2['default'].array, /** * 上传列表的样式 * @enumdesc 文字, 图文, 卡片 */ listType: _propTypes2['default'].oneOf(['text', 'text-image', 'picture-card']), /** * 上传额外传参(如果使用 `fileserver` 上传,参数格式为 { scene: '场景名' }) */ data: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].func]), multipart: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].func]), /** * 数据格式化函数,配合自定义 action 使用,参数为服务器的响应数据,详见 [formatter](#formater) */ formatter: _propTypes2['default'].func, /** * 选择上传的文件的最大尺寸(单位:Byte) */ maxSize: _propTypes2['default'].number, /** * 是否在上传前校验maxsize */ checkMaxSizeBeforeUpload: _propTypes2['default'].bool, /** * 语言种类,支持 `en-us`、`zh-cn`、`zh-tw` */ language: _propTypes2['default'].string, /** * 自定义语言包,会与默认提供的语言包做合并操作,[详细参考](http://gitlab.alibaba-inc.com/next/upload/blob/master/src/locale/index.js) */ locale: _propTypes2['default'].object, /** * 最大文件上传个数 */ limit: _propTypes2['default'].number, /** * 可选参数,是否支持拖拽上传,`ie10+` 支持。 */ dragable: _propTypes2['default'].bool, /** * 可选参数,是否禁用上传功能 */ disabled: _propTypes2['default'].bool, /** * 是否显示上传列表 */ showUploadList: _propTypes2['default'].bool, /** * 上传文件改变时的状态 * @param {Object} info 文件事件对象 */ onChange: _propTypes2['default'].func, /** * 可选参数,上传成功回调函数,参数为请求下响应信息以及文件 */ onSuccess: _propTypes2['default'].func, /** * 移除文件回调函数,详见 [onRemove](#onRemove) */ onRemove: _propTypes2['default'].func, /** * 可选参数,上传失败回调函数,参数为上传失败的信息、响应信息以及文件 */ onError: _propTypes2['default'].func, dropEnd: _propTypes2['default'].func, onListChange: _propTypes2['default'].func, triggerHovered: _propTypes2['default'].bool, fileSite: _propTypes2['default'].oneOf(['alibaba', 'alibaba_v2', 'aliexpress', 'itao', 'taobao']), previewImgSize: _propTypes2['default'].string, /** * 自定义class */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 子元素 */ children: _propTypes2['default'].node, //======= 以下props完全透传 =====// /** * 可选参数,接受上传的文件类型,详见 [input accept attribute](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input#attr-accept), [兼容性见](http://caniuse.com/#feat=input-file-accept) */ accept: _propTypes2['default'].string, /** * 可选参数,设置上传的请求头部 */ headers: _propTypes2['default'].object, /** * 传递给服务器的文件参数 */ name: _propTypes2['default'].string, /** * 可选参数,是否允许请求携带 cookie */ withCredentials: _propTypes2['default'].bool, /** * 可选参数,上传文件之前的钩子,参数为上传的文件,若返回 `false` 则停止上传 */ beforeUpload: _propTypes2['default'].func }, _class.defaultProps = { prefix: 'next-', action: '//kfupload.alibaba.com/mupload', listType: 'text', fileSite: 'alibaba_v2', previewImgSize: '_200x200', dragable: true, maxSize: Infinity, checkMaxSizeBeforeUpload: false, showUploadList: true, defaultFileList: [], onChange: empty, onSuccess: empty, onRemove: empty, onError: empty, dropEnd: empty, onListChange: empty }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); FileUpload.displayName = 'FileUpload'; exports['default'] = (0, _nextLocaleProvider2['default'])(FileUpload); module.exports = exports['default']; /***/ }), /***/ 1990: /***/ (function(module, exports, __webpack_require__) { "use strict"; function hidden(node) { return node.style.display == 'none'; } function visible(node) { while (node) { if (node === document.body) { break; } if (hidden(node)) { return false; } node = node.parentNode; } return true; } function focusable(node) { var nodeName = node.nodeName.toLowerCase(), tabIndex = parseInt(node.getAttribute('tabindex'), 10), hasTabIndex = !isNaN(tabIndex) && tabIndex > -1; if (visible(node)) { if (['input', 'select', 'textarea', 'button'].indexOf(nodeName) > -1) { return !node.disabled; } else if (nodeName == 'a') { return node.getAttribute('href') || hasTabIndex; } else { return hasTabIndex; } } } function getFocusNodeList(node) { var res = [], nodeList = node.querySelectorAll('*'), length = nodeList.length; for (var i = 0; i < length; i++) { var item = nodeList[i]; if (focusable(item)) { var method = item.getAttribute('data-auto-focus') ? 'unshift' : 'push'; res[method](item); } } if (focusable(node)) { res.unshift(node); } return res; } var lastFocusElement = null; function saveLastFocusNode() { lastFocusElement = document.activeElement; } function clearLastFocusNode() { lastFocusElement = null; } function backLastFocusNode() { if (lastFocusElement) { try { // 元素可能已经被移动了 lastFocusElement.focus(); } catch (e) {} } } function limitTabRange(node, e) { if (e.keyCode == 9) { var tabNodeList = getFocusNodeList(node), lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1], leavingTab = lastTabNode === document.activeElement || node === document.activeElement; if (leavingTab) { var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0]; target.focus(); e.preventDefault(); } } } exports.saveLastFocusNode = saveLastFocusNode; exports.clearLastFocusNode = clearLastFocusNode; exports.backLastFocusNode = backLastFocusNode; exports.getFocusNodeList = getFocusNodeList; exports.limitTabRange = limitTabRange; /***/ }), /***/ 1991: /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, ESCAPE: 27, SPACE: 32, END: 35, HOME: 36, LEFT_ARROW: 37, UP_ARROW: 38, RIGHT_ARROW: 39, DOWN_ARROW: 40 }; /***/ }), /***/ 1992: /***/ (function(module, exports, __webpack_require__) { "use strict"; var 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(' '); var 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(' '); var attrsPrefix = ['data-', 'aria-']; module.exports = function (props) { var attrs = {}; for (var key in props) { if (attributes.indexOf(key) > -1 || eventsName.indexOf(key) > -1) { attrs[key] = props[key]; } else if (attrsPrefix.map(function (prefix) { return new RegExp('^' + prefix); }).some(function (reg) { return key.replace(reg, '') != key; })) { attrs[key] = props[key]; } } return attrs; }; /***/ }), /***/ 1993: /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function () { var scrollDiv = document.createElement('div'), scrollbarWidth, scrollbarHeight; scrollDiv.style.position = 'absolute'; scrollDiv.style.width = '100px'; scrollDiv.style.height = '100px'; scrollDiv.style.overflow = 'scroll'; scrollDiv.style.top = '-9999px'; document.body.appendChild(scrollDiv); scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; document.body.removeChild(scrollDiv); //TODO: adapter old verison. return { width: scrollbarWidth, height: scrollbarWidth }; }; /***/ }), /***/ 1994: /***/ (function(module, exports, __webpack_require__) { "use strict"; var canUseDOM = __webpack_require__(1995); var animationEndEventNames = { 'WebkitAnimation': 'webkitAnimationEnd', 'OAnimation': 'oAnimationEnd', 'animation': 'animationend' }; var transitionEventNames = { 'WebkitTransition': 'webkitTransitionEnd', 'OTransition': 'oTransitionEnd', 'transition': 'transitionend' }; function supportEnd(names) { var el = document.createElement('div'); for (var name in names) { if (names.hasOwnProperty(name) && el.style[name] !== undefined) { return { end: names[name] }; } } return false; } function supportCss(names) { var el = document.createElement('div'); var ret = false; for (var key in names) { names[key].forEach(function (item) { // It will be throw error when set unknown property under IE8. try { el.style[key] = item; ret = ret || el.style[key] == item; } catch (e) {} }); } return ret; } var support = exports; if (canUseDOM()) { support.animation = supportEnd(animationEndEventNames); support.transition = supportEnd(transitionEventNames); support.flex = supportCss({ 'display': ['flex', '-webkit-flex', '-moz-flex', '-ms-flexbox'] }); } else { support.animation = false; support.transition = false; support.flex = false; } /***/ }), /***/ 1995: /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function () { return !!(typeof window !== 'undefined' && window.document && window.document.createElement); }; /***/ }), /***/ 1996: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.deprecated = function (props, instead, component) { if (window && window.console && window.console.error) { window.console.error('Warning: ' + props + ' is deprecated at [ ' + component + ' ], use [ ' + instead + ' ] instead of it.'); } }; exports.warning = function (msg) { if (window && window.console && window.console.error) { window.console.error('Warning: ' + msg); } }; /***/ }), /***/ 1997: /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function (Class, props) { var propTypes = Class.propTypes; var others = {}; for (var key in props) { if (!(key in propTypes)) { others[key] = props[key]; } } return others; }; /***/ }), /***/ 1998: /***/ (function(module, exports, __webpack_require__) { "use strict"; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function getPrototype(value) { if (Object.getPrototypeOf) { return Object.getPrototypeOf(value); } if (_typeof('test'.__proto__) === 'object') { return value.__proto__; } return false; } var toString = Object.prototype.toString; var hasOwn = Object.prototype.hasOwnProperty; function isPlainObject(o) { if (!o || toString.call(o) !== '[object Object]' || o.nodeType || o === o.window) { return false; } var proto = getPrototype(o), funcToString = Function.prototype.toString, objectCtorString = funcToString.call(Object), constructor = void 0; if (proto === null) { return true; } var Ctor = hasOwn.call(proto, 'constructor') && proto.constructor; return typeof Ctor === 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; } exports.isPlainObject = isPlainObject; function equal(objA, objB, compare, compareContext, deep) { var ret = compare ? compare.call(compareContext, objA, objB) : void 0; if (ret !== void 0) { return !!ret; } if (objA === objB) { return true; } if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) { return false; } var keysA = Object.keys(objA); var keysB = Object.keys(objB); var len = keysA.length; if (len !== keysB.length) { return false; } compareContext = compareContext || null; // Test for A's keys different from B. var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); for (var i = 0; i < len; i++) { var key = keysA[i]; if (!bHasOwnProperty(key)) { return false; } var valueA = objA[key]; var valueB = objB[key]; var _ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0; if (deep) { if (_ret === false || _ret === void 0 && equal(valueA, valueB, compare, compareContext, deep)) { return false; } } else { if (_ret === false || _ret === void 0 && valueA !== valueB) { return false; } } } return true; } exports.shallowEqual = function (objA, objB, compare, compareContext) { return equal(objA, objB, compare, compareContext, false); }; exports.deepEqual = function (objA, objB, compare, compareContext) { return equal(objA, objB, compare, compareContext, true); }; /***/ }), /***/ 1999: /***/ (function(module, exports, __webpack_require__) { "use strict"; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports.toArray = function (children) { var ret = []; _react2['default'].Children.forEach(children, function (child) { ret.push(child); }); return ret; }; /***/ }), /***/ 2000: /***/ (function(module, exports, __webpack_require__) { "use strict"; function addClass(node, className) { if (node.classList) { node.classList.add(className); } else if (!hasClass(node, className)) { node.className = node.className + ' ' + className; } } function hasClass(node, className) { if (node.classList) { return node.classList.contains(className); } else { return node.className.indexOf(className) > -1; } } function removeClass(node, className) { if (node.classList) { node.classList.remove(className); } else if (hasClass(node, className)) { node.className = node.className.replace(className, '').replace(/\s+/g, ' ').trim(); } } module.exports = { hasClass: hasClass, addClass: addClass, removeClass: removeClass }; /***/ }), /***/ 2001: /***/ (function(module, exports, __webpack_require__) { "use strict"; var EVENT_PREFIX = 'next-'; function on(node, eventName, handler, useCapture) { if (node.addEventListener) { node.addEventListener(eventName, handler, useCapture); } else if (node.attachEvent) { var nextEvent = getNextEventName(eventName); if (Array.isArray(node[nextEvent])) { if (node[nextEvent].indexOf(handler) === -1) { node[nextEvent].push(handler); } } else { node[nextEvent] = [handler]; node.attachEvent('on' + eventName, function () { node[nextEvent].forEach(function (handler) { handler && handler.call(node, shimEvent(window.event, node)); }); }); } } return { off: function off() { _off(node, eventName, handler, useCapture); } }; } function _off(node, eventName, handler, useCapture) { if (node.removeEventListener) { node.removeEventListener(eventName, handler, useCapture); } else { var nextEvent = getNextEventName(eventName); if (Array.isArray(node[nextEvent])) { var index = node[nextEvent].indexOf(handler); if (index > -1) { node[nextEvent].splice(index, 1); } } } } function shimEvent(e, currentTarget) { if (!e.target) { e.target = e.srcElement; e.currentTarget = currentTarget; e.relatedTarge = e.type === 'mouseover' ? e.fromElement : e.toElement; e.stopPropagation = function () { e.cancelBubble = true; }; e.preventDefault = function () { e.returnValue = false; }; } return e; } function getNextEventName(eventName) { return '' + EVENT_PREFIX + eventName; } module.exports = { on: on, off: _off }; /***/ }), /***/ 2002: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _class, _temp; var _css = __webpack_require__(1797); var _css2 = _interopRequireDefault(_css); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var VIEWPORT = 'viewport'; // IE8 not support pageXOffset var getPageX = function getPageX() { return window.pageXOffset || document.documentElement.scrollLeft; }; var getPageY = function getPageY() { return window.pageYOffset || document.documentElement.scrollTop; }; var getElementRect = function getElementRect(elem) { var offsetTop = 0, offsetLeft = 0, offsetHeight = elem.offsetHeight, offsetWidth = elem.offsetWidth; do { if (!isNaN(elem.offsetTop)) { offsetTop += elem.offsetTop; } if (!isNaN(elem.offsetLeft)) { offsetLeft += elem.offsetLeft; } } while ((elem = elem.offsetParent) !== null); return { top: offsetTop - (document.documentElement.scrollTop || document.body.scrollTop), left: offsetLeft - (document.documentElement.scrollLeft || document.body.scrollLeft), height: offsetHeight, width: offsetWidth }; }; var Position = (_temp = _class = function () { function Position(config) { _classCallCheck(this, Position); this.pinElement = config.pinElement; this.baseElement = config.baseElement; this.align = config.align || 'tl tl'; this.offset = config.offset || [0, 0]; this.needAdjust = config.needAdjust || false; this.isRtl = config.isRtl || false; } Position.prototype.setPosition = function setPosition() { var pinElement = this.pinElement; var baseElement = this.baseElement; var expectedAlign = this._getExpectedAlign(); var isPinFixed = void 0, isBaseFixed = void 0, firstPositionResult = void 0; if (pinElement === VIEWPORT) { return; } if (_css2['default'].get(pinElement, 'position') !== 'fixed') { _css2['default'].set(pinElement, 'position', 'absolute'); isPinFixed = false; } else { isPinFixed = true; } if (baseElement === VIEWPORT || _css2['default'].get(baseElement, 'position') !== 'fixed') { isBaseFixed = false; } else { isBaseFixed = true; } // 根据期望的定位 for (var i = 0; i < expectedAlign.length; i++) { var align = expectedAlign[i]; var pinElementPoints = this._normalizePosition(pinElement, align.split(' ')[0], isPinFixed); var baseElementPoints = this._normalizePosition(baseElement, align.split(' ')[1], isPinFixed); var pinElementParentOffset = this._getParentOffset(pinElement); var baseElementOffset = isPinFixed && isBaseFixed ? this._getLeftTop(baseElement) : baseElementPoints.offset(); var top = baseElementOffset.top + baseElementPoints.y - pinElementParentOffset.top - pinElementPoints.y + this.offset[1]; var left = baseElementOffset.left + baseElementPoints.x - pinElementParentOffset.left - pinElementPoints.x + this.offset[0]; _css2['default'].set(pinElement, { left: left + 'px', top: top + 'px' }); if (!firstPositionResult) { firstPositionResult = { left: left, top: top }; } if (this._isInViewport(pinElement)) { return align; } } var inViewportLeft = this._makeElementInViewport(pinElement, firstPositionResult.left, 'Left', isPinFixed); var inViewportTop = this._makeElementInViewport(pinElement, firstPositionResult.top, 'Top', isPinFixed); _css2['default'].set(pinElement, { left: inViewportLeft + 'px', top: inViewportTop + 'px' }); return expectedAlign[0]; }; Position.prototype._getParentOffset = function _getParentOffset(element) { var parent = element.offsetParent || document.documentElement; var offset = void 0; if (parent === document.body && _css2['default'].get(parent, 'position') === 'static') { offset = { top: 0, left: 0 }; } else { offset = this._getElementOffset(parent); } offset.top += parseFloat(_css2['default'].get(parent, 'border-top-width'), 10); offset.left += parseFloat(_css2['default'].get(parent, 'border-left-width'), 10); return offset; }; Position.prototype._makeElementInViewport = function _makeElementInViewport(pinElement, number, type, isPinFixed) { var result = number, docElement = document.documentElement, offsetParent = pinElement.offsetParent || document.documentElement; if (result < 0) { if (isPinFixed) { result = 0; } else if (offsetParent === document.body && _css2['default'].get(offsetParent, 'position') === 'static') { //Only when div's offsetParent is document.body, we set new position result. result = Math.max(docElement['scroll' + type], document.body['scroll' + type]); } } return result; }; Position.prototype._normalizePosition = function _normalizePosition(element, align, isPinFixed) { var points = this._normalizeElement(element, isPinFixed); this._normalizeXY(points, align); return points; }; Position.prototype._normalizeXY = function _normalizeXY(points, align) { var x = align.split('')[1]; var y = align.split('')[0]; points.x = this._xyConverter(x, points, 'width'); points.y = this._xyConverter(y, points, 'height'); return points; }; Position.prototype._xyConverter = function _xyConverter(align, points, type) { var res = align.replace(/t|l/gi, '0%').replace(/c/gi, '50%').replace(/b|r/gi, '100%').replace(/(\d+)%/gi, function (m, d) { return points.size()[type] * (d / 100); }); return parseFloat(res, 10) || 0; }; Position.prototype._getLeftTop = function _getLeftTop(element) { return { left: parseFloat(_css2['default'].get(element, 'left')) || 0, top: parseFloat(_css2['default'].get(element, 'top')) || 0 }; }; Position.prototype._normalizeElement = function _normalizeElement(element, isPinFixed) { var _this = this; var result = { element: element, x: 0, y: 0 }, isViewport = element === VIEWPORT, docElement = document.documentElement; result.offset = function () { if (isPinFixed) { return { left: 0, top: 0 }; } else if (isViewport) { return { left: getPageX(), top: getPageY() }; } else { return _this._getElementOffset(element); } }; result.size = function () { if (isViewport) { return { width: docElement.clientWidth, height: docElement.clientHeight }; } else { return { width: element.offsetWidth, height: element.offsetHeight }; } }; return result; }; Position.prototype._getElementOffset = function _getElementOffset(element) { var rect = element.getBoundingClientRect(); var docElement = document.documentElement; var body = document.body; var docClientLeft = docElement.clientLeft || body.clientLeft || 0; var docClientTop = docElement.clientTop || body.clientTop || 0; return { left: rect.left + (getPageX() - docClientLeft), top: rect.top + (getPageY() - docClientTop) }; }; // According to the location of the overflow to calculate the desired positioning Position.prototype._getExpectedAlign = function _getExpectedAlign() { var align = this.isRtl ? this._replaceAlignDir(this.align, /l|r/g, { l: 'r', r: 'l' }) : this.align; var expectedAlign = [align]; if (this.needAdjust) { if (/t|b/g.test(align)) { expectedAlign.push(this._replaceAlignDir(align, /t|b/g, { t: 'b', b: 't' })); } if (/l|r/g.test(align)) { expectedAlign.push(this._replaceAlignDir(align, /l|r/g, { l: 'r', r: 'l' })); } if (/c/g.test(align)) { expectedAlign.push(this._replaceAlignDir(align, /c(?= |$)/g, { c: 'l' })); expectedAlign.push(this._replaceAlignDir(align, /c(?= |$)/g, { c: 'r' })); } expectedAlign.push(this._replaceAlignDir(align, /l|r|t|b/g, { l: 'r', r: 'l', t: 'b', b: 't' })); } return expectedAlign; }; // Transform align order. Position.prototype._replaceAlignDir = function _replaceAlignDir(align, regExp, map) { return align.replace(regExp, function (res) { return map[res]; }); }; // Detecting element is in the window, we want to adjust position later. Position.prototype._isInViewport = function _isInViewport(element) { var viewportSize = { width: document.documentElement.clientWidth, height: document.documentElement.clientHeight }; //Avoid animate problem that use offsetWidth instead of getBoundingClientRect. var elementRect = getElementRect(element); return elementRect.left >= 0 && elementRect.left + element.offsetWidth <= viewportSize.width && elementRect.top >= 0 && elementRect.top + element.offsetHeight <= viewportSize.height; }; return Position; }(), _class.VIEWPORT = VIEWPORT, _temp); Position.place = function (pinElement, baseElement, align, offset, needAdjust, isRtl) { return new Position({ pinElement: pinElement, baseElement: baseElement, align: align, offset: offset, needAdjust: needAdjust, isRtl: isRtl }).setPosition(); }; exports['default'] = Position; module.exports = exports['default']; /***/ }), /***/ 2003: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _chainFunction = __webpack_require__(2004); var _chainFunction2 = _interopRequireDefault(_chainFunction); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _warning = __webpack_require__(13); var _warning2 = _interopRequireDefault(_warning); var _ChildMapping = __webpack_require__(2005); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var propTypes = { component: _propTypes2.default.any, childFactory: _propTypes2.default.func, children: _propTypes2.default.node }; var defaultProps = { component: 'span', childFactory: function childFactory(child) { return child; } }; var TransitionGroup = function (_React$Component) { _inherits(TransitionGroup, _React$Component); function TransitionGroup(props, context) { _classCallCheck(this, TransitionGroup); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this.performAppear = function (key, component) { _this.currentlyTransitioningKeys[key] = true; if (component.componentWillAppear) { component.componentWillAppear(_this._handleDoneAppearing.bind(_this, key, component)); } else { _this._handleDoneAppearing(key, component); } }; _this._handleDoneAppearing = function (key, component) { if (component.componentDidAppear) { component.componentDidAppear(); } delete _this.currentlyTransitioningKeys[key]; var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children); if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) { // This was removed before it had fully appeared. Remove it. _this.performLeave(key, component); } }; _this.performEnter = function (key, component) { _this.currentlyTransitioningKeys[key] = true; if (component.componentWillEnter) { component.componentWillEnter(_this._handleDoneEntering.bind(_this, key, component)); } else { _this._handleDoneEntering(key, component); } }; _this._handleDoneEntering = function (key, component) { if (component.componentDidEnter) { component.componentDidEnter(); } delete _this.currentlyTransitioningKeys[key]; var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children); if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) { // This was removed before it had fully entered. Remove it. _this.performLeave(key, component); } }; _this.performLeave = function (key, component) { _this.currentlyTransitioningKeys[key] = true; if (component.componentWillLeave) { component.componentWillLeave(_this._handleDoneLeaving.bind(_this, key, component)); } else { // Note that this is somewhat dangerous b/c it calls setState() // again, effectively mutating the component before all the work // is done. _this._handleDoneLeaving(key, component); } }; _this._handleDoneLeaving = function (key, component) { if (component.componentDidLeave) { component.componentDidLeave(); } delete _this.currentlyTransitioningKeys[key]; var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children); if (currentChildMapping && currentChildMapping.hasOwnProperty(key)) { // This entered again before it fully left. Add it again. _this.keysToEnter.push(key); } else { _this.setState(function (state) { var newChildren = _extends({}, state.children); delete newChildren[key]; return { children: newChildren }; }); } }; _this.childRefs = Object.create(null); _this.state = { children: (0, _ChildMapping.getChildMapping)(props.children) }; return _this; } TransitionGroup.prototype.componentWillMount = function componentWillMount() { this.currentlyTransitioningKeys = {}; this.keysToEnter = []; this.keysToLeave = []; }; TransitionGroup.prototype.componentDidMount = function componentDidMount() { var initialChildMapping = this.state.children; for (var key in initialChildMapping) { if (initialChildMapping[key]) { this.performAppear(key, this.childRefs[key]); } } }; TransitionGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var nextChildMapping = (0, _ChildMapping.getChildMapping)(nextProps.children); var prevChildMapping = this.state.children; this.setState({ children: (0, _ChildMapping.mergeChildMappings)(prevChildMapping, nextChildMapping) }); for (var key in nextChildMapping) { var hasPrev = prevChildMapping && prevChildMapping.hasOwnProperty(key); if (nextChildMapping[key] && !hasPrev && !this.currentlyTransitioningKeys[key]) { this.keysToEnter.push(key); } } for (var _key in prevChildMapping) { var hasNext = nextChildMapping && nextChildMapping.hasOwnProperty(_key); if (prevChildMapping[_key] && !hasNext && !this.currentlyTransitioningKeys[_key]) { this.keysToLeave.push(_key); } } // If we want to someday check for reordering, we could do it here. }; TransitionGroup.prototype.componentDidUpdate = function componentDidUpdate() { var _this2 = this; var keysToEnter = this.keysToEnter; this.keysToEnter = []; keysToEnter.forEach(function (key) { return _this2.performEnter(key, _this2.childRefs[key]); }); var keysToLeave = this.keysToLeave; this.keysToLeave = []; keysToLeave.forEach(function (key) { return _this2.performLeave(key, _this2.childRefs[key]); }); }; TransitionGroup.prototype.render = function render() { var _this3 = this; // TODO: we could get rid of the need for the wrapper node // by cloning a single child var childrenToRender = []; var _loop = function _loop(key) { var child = _this3.state.children[key]; if (child) { var isCallbackRef = typeof child.ref !== 'string'; var factoryChild = _this3.props.childFactory(child); var ref = function ref(r) { _this3.childRefs[key] = r; }; false ? (0, _warning2.default)(isCallbackRef, 'string refs are not supported on children of TransitionGroup and will be ignored. ' + 'Please use a callback ref instead: https://facebook.github.io/react/docs/refs-and-the-dom.html#the-ref-callback-attribute') : void 0; // Always chaining the refs leads to problems when the childFactory // wraps the child. The child ref callback gets called twice with the // wrapper and the child. So we only need to chain the ref if the // factoryChild is not different from child. if (factoryChild === child && isCallbackRef) { ref = (0, _chainFunction2.default)(child.ref, ref); } // You may need to apply reactive updates to a child as it is leaving. // The normal React way to do it won't work since the child will have // already been removed. In case you need this behavior you can provide // a childFactory function to wrap every child, even the ones that are // leaving. childrenToRender.push(_react2.default.cloneElement(factoryChild, { key: key, ref: ref })); } }; for (var key in this.state.children) { _loop(key); } // Do not forward TransitionGroup props to primitive DOM nodes var props = _extends({}, this.props); delete props.transitionLeave; delete props.transitionName; delete props.transitionAppear; delete props.transitionEnter; delete props.childFactory; delete props.transitionLeaveTimeout; delete props.transitionEnterTimeout; delete props.transitionAppearTimeout; delete props.component; return _react2.default.createElement(this.props.component, props, childrenToRender); }; return TransitionGroup; }(_react2.default.Component); TransitionGroup.displayName = 'TransitionGroup'; TransitionGroup.propTypes = false ? propTypes : {}; TransitionGroup.defaultProps = defaultProps; exports.default = TransitionGroup; module.exports = exports['default']; /***/ }), /***/ 2004: /***/ (function(module, exports) { module.exports = function chain(){ var len = arguments.length var args = []; for (var i = 0; i < len; i++) args[i] = arguments[i] args = args.filter(function(fn){ return fn != null }) if (args.length === 0) return undefined if (args.length === 1) return args[0] return args.reduce(function(current, next){ return function chainedFunction() { current.apply(this, arguments); next.apply(this, arguments); }; }) } /***/ }), /***/ 2005: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.getChildMapping = getChildMapping; exports.mergeChildMappings = mergeChildMappings; var _react = __webpack_require__(0); /** * Given `this.props.children`, return an object mapping key to child. * * @param {*} children `this.props.children` * @return {object} Mapping of key to child */ function getChildMapping(children) { if (!children) { return children; } var result = {}; _react.Children.map(children, function (child) { return child; }).forEach(function (child) { result[child.key] = child; }); return result; } /** * When you're adding or removing children some may be added or removed in the * same render pass. We want to show *both* since we want to simultaneously * animate elements in and out. This function takes a previous set of keys * and a new set of keys and merges them with its best guess of the correct * ordering. In the future we may expose some of the utilities in * ReactMultiChild to make this easy, but for now React itself does not * directly have this concept of the union of prevChildren and nextChildren * so we implement it here. * * @param {object} prev prev children as returned from * `ReactTransitionChildMapping.getChildMapping()`. * @param {object} next next children as returned from * `ReactTransitionChildMapping.getChildMapping()`. * @return {object} a key set that contains all keys in `prev` and all keys * in `next` in a reasonable order. */ function mergeChildMappings(prev, next) { prev = prev || {}; next = next || {}; function getValueForKey(key) { if (next.hasOwnProperty(key)) { return next[key]; } return prev[key]; } // For each key of `next`, the list of keys to insert before that key in // the combined list var nextKeysPending = {}; var pendingKeys = []; for (var prevKey in prev) { if (next.hasOwnProperty(prevKey)) { if (pendingKeys.length) { nextKeysPending[prevKey] = pendingKeys; pendingKeys = []; } } else { pendingKeys.push(prevKey); } } var i = void 0; var childMapping = {}; for (var nextKey in next) { if (nextKeysPending.hasOwnProperty(nextKey)) { for (i = 0; i < nextKeysPending[nextKey].length; i++) { var pendingNextKey = nextKeysPending[nextKey][i]; childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey); } } childMapping[nextKey] = getValueForKey(nextKey); } // Finally, add the keys which didn't appear before any key in `next` for (i = 0; i < pendingKeys.length; i++) { childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]); } return childMapping; } /***/ }), /***/ 2006: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var enter = ['pulse', 'shake', 'press', 'buttonClick', 'expandInDown', 'bounceIn', 'fadeIn', 'fadeInDown', 'fadeInDownBig', 'fadeInLeft', 'fadeInLeftBig', 'fadeInRight', 'fadeInRightBig', 'fadeInUp', 'fadeInUpBig', 'slideInDown', 'slideInLeft', 'slideInRight', 'slideInUp', 'zoomIn', 'zoomInQuick', 'zoomInPulse', 'zoomInDown', 'zoomInLeft', 'zoomInRight', 'zoomInUp']; var leave = ['pulse', 'shake', 'press', 'buttonClick', 'expandOutUp', 'bounceOut', 'fadeOut', 'fadeOutDown', 'fadeOutDownBig', 'fadeOutLeft', 'fadeOutLeftBig', 'fadeOutRight', 'fadeOutRightBig', 'fadeOutUp', 'fadeOutUpBig', 'slideOutDown', 'slideOutLeft', 'slideOutRight', 'slideOutUp', 'zoomOut', 'zoomOutQuick', 'zoomOutPulse', 'zoomOutDown', 'zoomOutLeft', 'zoomOutRight', 'zoomOutUp']; exports['default'] = { enter: enter, leave: leave }; module.exports = exports['default']; /***/ }), /***/ 2007: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Manager = { allOverlays: [], addOverlay: function addOverlay(overlay) { this.removeOverlay(overlay); this.allOverlays.push(overlay); }, isCurrentOverlay: function isCurrentOverlay(overlay) { return !!this.allOverlays.length && this.allOverlays[this.allOverlays.length - 1] === overlay; }, removeOverlay: function removeOverlay(overlay) { var i = this.allOverlays.indexOf(overlay); if (i > -1) { this.allOverlays.splice(i, 1); } } }; exports["default"] = Manager; module.exports = exports["default"]; /***/ }), /***/ 2008: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextUtil = __webpack_require__(889); var _overlay = __webpack_require__(1798); var _overlay2 = _interopRequireDefault(_overlay); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Children = _react2['default'].Children, noop = function noop() {}, makeChain = _nextUtil.func.makeChain; // // // // // {menu} // /** Overlay.Popup */ var Popup = (_temp = _class = function (_React$Component) { _inherits(Popup, _React$Component); function Popup(props) { _classCallCheck(this, Popup); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); _this.state = { visible: props.visible || props.defaultVisible }; ['_onTriggerClick', '_onTriggerFocus', '_onTriggerBlur', '_onContentMouseDown', '_onTriggerMouseEnter', '_onTriggerMouseLeave', '_onContentMouseEnter', '_onContentMouseLeave', '_onTriggerKeyDown'].forEach(function (method) { _this[method] = _this[method].bind(_this); }); return _this; } Popup.prototype.handleVisibleChange = function handleVisibleChange(visible, type, e) { if (!('visible' in this.props)) { this.setState({ visible: visible }); } this.props.onVisibleChange(visible, type, e); }; Popup.prototype.render = function render() { return this.getTrigger(); }; Popup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('visible' in nextProps) { this.setState({ visible: nextProps.visible }); } }; Popup.prototype.componentWillMount = function componentWillMount() { this.uniqueOverlayKey = getUniqueKey(); }; Popup.prototype.addNodeForSafeClick = function addNodeForSafeClick(node) { if (!this.overlay) { return; } this.overlay.addNodeForSafeClick(node); }; Popup.prototype.getContent = function getContent() { var content = Children.only(this.props.children), props = {}; switch (this.props.triggerType) { case 'focus': props = { onMouseDown: makeChain(this._onContentMouseDown, content.props.onMouseDown) }; break; case 'click': props = {}; break; case 'hover': props = { onMouseEnter: makeChain(this._onContentMouseEnter, content.props.onMouseEnter), onMouseLeave: makeChain(this._onContentMouseLeave, content.props.onMouseLeave) }; } return _react2['default'].cloneElement(content, props); }; Popup.prototype.getTriggerNode = function getTriggerNode() { return this.triggerNode || this.refs.trigger; }; Popup.prototype.getTrigger = function getTrigger() { var _this2 = this; var _props = this.props, trigger = _props.trigger, disabled = _props.disabled, props = {}; if (!disabled) { var originRef = trigger.ref; var ref = typeof originRef === 'function' ? function (node) { originRef(node); _this2.triggerNode = node; } : 'trigger'; switch (this.props.triggerType) { case 'click': props = { onClick: makeChain(this._onTriggerClick, trigger.props.onClick), onKeyDown: makeChain(this._onTriggerKeyDown, trigger.props.onKeyDown), ref: ref }; break; case 'focus': props = { onFocus: makeChain(this._onTriggerFocus, trigger.props.onFocus), onBlur: makeChain(this._onTriggerBlur, trigger.props.onBlur), ref: ref }; break; case 'hover': props = { onMouseEnter: makeChain(this._onTriggerMouseEnter, trigger.props.onMouseEnter), onMouseLeave: makeChain(this._onTriggerMouseLeave, trigger.props.onMouseLeave), onClick: makeChain(this.clearDocumentTimeout, trigger.props.onClick), ref: ref }; break; default: props = { ref: ref }; } } return _react2['default'].cloneElement(trigger, props); }; Popup.prototype.componentDidMount = function componentDidMount() { this._renderOverlay(); this.addNodeForSafeClick(_reactDom2['default'].findDOMNode(this.getTriggerNode())); }; Popup.prototype.componentDidUpdate = function componentDidUpdate() { this._renderOverlay(); this.addNodeForSafeClick(_reactDom2['default'].findDOMNode(this.getTriggerNode())); }; Popup.prototype.componentWillUnmount = function componentWillUnmount() { var _this3 = this; ['_timer', '_hideTimer', '_showTimer'].forEach(function (time) { _this3[time] && clearTimeout(_this3[time]); }); this._unRenderOverlay(); }; Popup.prototype._renderOverlay = function _renderOverlay() { var _this4 = this; if (!this.wrapper) { this.wrapper = document.createElement('div'); } var _props2 = this.props, autoFocus = _props2.autoFocus, target = _props2.target, others = _objectWithoutProperties(_props2, ['autoFocus', 'target']); if (typeof target === 'undefined') { target = function target() { return _this4.getTriggerNode(); }; } var overlay = _react2['default'].createElement( _overlay2['default'], _extends({}, others, { ref: function ref(overlay) { return _this4.overlay = overlay; }, visible: this.state.visible, target: target, key: this.uniqueOverlayKey, autoFocus: autoFocus, onRequestClose: function onRequestClose(reason, e) { return _this4.handleVisibleChange(false, reason, e); } }), this.getContent() ); _reactDom2['default'].unstable_renderSubtreeIntoContainer(this, overlay, this.wrapper); }; Popup.prototype._unRenderOverlay = function _unRenderOverlay() { if (this.wrapper) { _reactDom2['default'].unmountComponentAtNode(this.wrapper); this.wrapper = null; this.overlay = null; } }; Popup.prototype._onTriggerClick = function _onTriggerClick(event, other) { // Hack menu item problem // Will be remove at 2.x var e = event; if (other && other.stopPropagation) { e = other; } e.stopPropagation(); var target = e.target; if (target.tagName.toLowerCase() === 'a') { e.preventDefault(); } this.handleVisibleChange(!this.state.visible, 'fromTrigger', e); }; Popup.prototype._onTriggerFocus = function _onTriggerFocus(e) { if (this._timer) { clearTimeout(this._timer); this._timer = null; } this.handleVisibleChange(true, 'fromTrigger', e); e.stopPropagation(); }; Popup.prototype._onTriggerBlur = function _onTriggerBlur(e) { var _this5 = this; if (this._timer) { clearTimeout(this._timer); } this._timer = setTimeout(function () { if (!_this5._isForwardContent) { _this5.handleVisibleChange(false, 'fromTrigger', e); } _this5._isForwardContent = false; }, this.props.delay); }; Popup.prototype._onContentMouseDown = function _onContentMouseDown() { this._isForwardContent = true; }; Popup.prototype._onTriggerMouseEnter = function _onTriggerMouseEnter(e) { var _this6 = this; if (this._hideTimer) { clearTimeout(this._hideTimer); this._hideTimer = null; } if (this._showTimer) { clearTimeout(this._showTimer); this._showTimer = null; } this._showTimer = setTimeout(function () { _this6.handleVisibleChange(true, 'fromTrigger', e); }, this.props.delay); }; Popup.prototype._onTriggerMouseLeave = function _onTriggerMouseLeave(e, type) { var _this7 = this; if (this._showTimer) { clearTimeout(this._showTimer); this._showTimer = null; } if (this.state.visible) { this._hideTimer = setTimeout(function () { _this7.handleVisibleChange(false, type || 'fromTrigger', e); }, this.props.delay); } }; Popup.prototype._onTriggerKeyDown = function _onTriggerKeyDown(e) { // space // enter if (e.keyCode === 32 || e.keyCode === 13) { this._onTriggerClick(e); } }; Popup.prototype._onContentMouseEnter = function _onContentMouseEnter() { clearTimeout(this._hideTimer); }; Popup.prototype._onContentMouseLeave = function _onContentMouseLeave(e) { this._onTriggerMouseLeave(e, 'fromContent'); }; return Popup; }(_react2['default'].Component), _class.propTypes = { children: _propTypes2['default'].any, /** * 弹层相对于target的定位, 详见开发指南的[定位部分](#定位) */ align: _propTypes2['default'].string, /** * 弹层相对于target定位的微调 */ offset: _propTypes2['default'].array, /** * 触发弹层显示或者隐藏的元素 */ trigger: _propTypes2['default'].any, /** * 触发弹层显示的类型 */ triggerType: _propTypes2['default'].string, /** * 弹层当前显示的状态 */ visible: _propTypes2['default'].bool, /** * 弹层默认显示的状态 */ defaultVisible: _propTypes2['default'].bool, /** * 设置此属性,弹层无法打开 */ disabled: _propTypes2['default'].bool, /** * 弹层在触发以后的延时显示 */ delay: _propTypes2['default'].number, /** * 点击浮层外的区域是否关闭浮层 */ canCloseByOutSideClick: _propTypes2['default'].bool, /** * 弹层在显示和隐藏触发的事件 * @param {Boolean} visible 弹层是否隐藏和显示 * @param {String} type 触发弹层显示和隐藏的来源 * @param {Event} e DOM事件 */ onVisibleChange: _propTypes2['default'].func, /** * 浮层打开的时候是否让里面的元素自动获取焦点 */ autoFocus: _propTypes2['default'].bool, /** * 配置动画的播放方式 * @param {String} in 进场动画 * @param {String} out 出场动画 */ animation: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].bool]), /** * 配置弹层定位的参照元素 */ target: _propTypes2['default'].any }, _class.defaultProps = { triggerType: 'hover', trigger: _react2['default'].createElement('div', null), align: 'tl bl', offset: [0, 0], disabled: false, delay: 200, canCloseByOutSideClick: true, onVisibleChange: noop, animation: { 'in': 'expandInDown', out: 'expandOutUp' } }, _temp); Popup.displayName = 'Popup'; exports['default'] = Popup; var uuid = 0; function getUniqueKey() { return 'overlay-' + uuid++; } module.exports = exports['default']; /***/ }), /***/ 2009: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Icon */ var Icon = (_temp = _class = function (_Component) { _inherits(Icon, _Component); function Icon() { _classCallCheck(this, Icon); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Icon.prototype.render = function render() { var _cx; var prefix = this.context.prefix || this.props.prefix; // eslint-disable-next-line var _props = this.props, propsPrefix = _props.prefix, type = _props.type, size = _props.size, className = _props.className, other = _objectWithoutProperties(_props, ['prefix', 'type', 'size', 'className']); var sizeCls = { xxs: 'xxs', xs: 'xs', small: 'small', medium: 'medium', large: 'large', xl: 'xl', xxl: 'xxl', xxxl: 'xxxl' }[size]; var classes = (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, prefix + 'icon', true), _defineProperty(_cx, prefix + 'icon-' + type, !!type), _defineProperty(_cx, prefix + 'icon-' + sizeCls, !!size), _defineProperty(_cx, className, !!className), _cx)); return _react2['default'].createElement('i', _extends({}, other, { className: classes })); }; return Icon; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 指定显示哪种图标 */ type: _propTypes2['default'].string, /** * 指定图标大小 */ size: _propTypes2['default'].oneOf(['xxs', 'xs', 'small', 'medium', 'large', 'xl', 'xxl', 'xxxl']) }, _class.defaultProps = { prefix: 'next-', size: 'medium' }, _class._typeMark = 'icon', _temp); Icon.displayName = 'Icon'; exports['default'] = Icon; module.exports = exports['default']; /***/ }), /***/ 2010: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextDropdown = __webpack_require__(1741); var _nextDropdown2 = _interopRequireDefault(_nextDropdown); var _button = __webpack_require__(1801); var _button2 = _interopRequireDefault(_button); var _group = __webpack_require__(1802); var _group2 = _interopRequireDefault(_group); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Button.Split */ var SplitButton = (_temp = _class = function (_Component) { _inherits(SplitButton, _Component); function SplitButton() { _classCallCheck(this, SplitButton); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } SplitButton.prototype.render = function render() { var _classNames; var _props = this.props, className = _props.className, type = _props.type, shape = _props.shape, menu = _props.menu, size = _props.size, disabled = _props.disabled, trigger = _props.trigger, align = _props.align, offset = _props.offset, children = _props.children, onClick = _props.onClick, style = _props.style, container = _props.container, popupProps = _props.popupProps, others = _objectWithoutProperties(_props, ['className', 'type', 'shape', 'menu', 'size', 'disabled', 'trigger', 'align', 'offset', 'children', 'onClick', 'style', 'container', 'popupProps']); var prefix = this.context.prefix || this.props.prefix; var splitCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'btn-split', true), _defineProperty(_classNames, className, className), _classNames)); var iconSize = { large: 'small', medium: 'xs', small: 'xs' }[size]; var splitTrigger = _react2['default'].createElement( _button2['default'], { type: type, disabled: disabled, size: size, shape: shape }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-down', size: iconSize, className: prefix + 'icon-split' }) ); return _react2['default'].createElement( _group2['default'], _extends({}, others, { size: size, className: splitCls, style: style }), _react2['default'].createElement( _button2['default'], _extends({ type: type, disabled: disabled, shape: shape, onClick: onClick.bind(this) }, others), children ), _react2['default'].createElement( _nextDropdown2['default'], _extends({}, popupProps, { align: align, offset: offset, triggerType: trigger, trigger: splitTrigger, container: container }), menu ) ); }; return SplitButton; }(_react.Component), _class.propTypes = { /** * 样式品牌前缀 */ prefix: _propTypes2['default'].string, /** * Dropdown 的对齐方式,参考 [Dropdown](http://gitlab.alibaba-inc.com/next/dropdown) */ align: _propTypes2['default'].string, /** * Dropdown 的位置偏移,参考 [Dropdown](http://gitlab.alibaba-inc.com/next/dropdown) */ offset: _propTypes2['default'].array, /** * 类型,同 Button */ type: _propTypes2['default'].oneOf(['primary', 'secondary', 'normal', 'dark', 'light']), /** * 外观,同 Button */ shape: _propTypes2['default'].oneOf(['ghost', 'text', 'warning']), /** * 尺寸,同 Button */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * Dropdown 触发方式,参考 [Dropdown](http://gitlab.alibaba-inc.com/next/dropdown) */ trigger: _propTypes2['default'].oneOf(['click', 'hover']), /** * 弹层挂载的容器节点 */ container: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]), /** * 弹层属性 */ popupProps: _propTypes2['default'].object, /** * 弹出的内容,参考 [Dropdown](http://gitlab.alibaba-inc.com/next/dropdown) */ menu: _propTypes2['default'].node, /** * 点击按钮的回调 * @param {Object} e Event Object */ onClick: _propTypes2['default'].func, style: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', align: 'tr br', offset: [0, 4], type: 'normal', size: 'medium', trigger: 'click', onClick: function onClick() {}, style: null }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); SplitButton.displayName = 'SplitButton'; exports['default'] = SplitButton; module.exports = exports['default']; /***/ }), /***/ 2011: /***/ (function(module, exports, __webpack_require__) { "use strict"; /* eslint-disable */ /** * Recursive cloning array. */ Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function deepCloneArray(arr) { var clone = []; arr.forEach(function (item, index) { if ((typeof item === 'undefined' ? 'undefined' : _typeof(item)) === 'object' && item !== null) { if (Array.isArray(item)) { clone[index] = deepCloneArray(item); } else { clone[index] = deepExtend({}, item); } } else { clone[index] = item; } }); return clone; } /** * Extening object that entered in first argument. * * Returns extended object or false if have no target object or incorrect type. * * If you wish to clone source object (without modify it), just use empty new * object as first argument, like this: * deepExtend({}, yourObj_1, [yourObj_N]); */ var deepExtend = function deepExtend() /*obj_1, [obj_2], [obj_N]*/{ if (arguments.length < 1 || _typeof(arguments[0]) !== 'object') { return false; } if (arguments.length < 2) { return arguments[0]; } var target = arguments[0]; // convert arguments to array and cut off target object var args = Array.prototype.slice.call(arguments, 1); var val, src, clone; args.forEach(function (obj) { // skip argument if isn't an object, is null, or is an array if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' || obj === null || Array.isArray(obj)) { return; } Object.keys(obj).forEach(function (key) { src = target[key]; // source value val = obj[key]; // new value // recursion prevention if (val === target) { return; /** * if new value isn't object then just overwrite by new value * instead of extending. */ } else if ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) !== 'object' || val === null) { target[key] = val; return; // just clone arrays (and recursive clone objects inside) } else if (Array.isArray(val)) { target[key] = deepCloneArray(val); return; } else if ((typeof src === 'undefined' ? 'undefined' : _typeof(src)) !== 'object' || src === null || Array.isArray(src)) { target[key] = deepExtend({}, val); return; // source value and new value is objects both, extending... } else { target[key] = deepExtend(src, val); return; } }); }); return target; }; exports['default'] = deepExtend; module.exports = exports['default']; /***/ }), /***/ 2012: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _radio = __webpack_require__(1803); var _radio2 = _interopRequireDefault(_radio); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Radio.Group * @order 2 */ var RadioGroup = (_temp = _class = function (_Component) { _inherits(RadioGroup, _Component); function RadioGroup(props) { _classCallCheck(this, RadioGroup); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); var value = ''; if ('value' in props) { value = props.value; } else if ('defaultValue' in props) { value = props.defaultValue; } _this.state = { value: value, disabled: props.disabled //TODO:disabled 没有必要放在state里,后面要改掉 }; _this.onChange = _this.onChange.bind(_this); return _this; } RadioGroup.prototype.getChildContext = function getChildContext() { return { __group__: true, isButton: this.props.shape === 'button', onChange: this.onChange, selectedValue: this.state.value, disabled: this.state.disabled }; }; RadioGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var value = nextProps.value, disabled = nextProps.disabled; if ('value' in nextProps && 'disabled' in nextProps) { if (value === undefined) { value = ''; } this.setState({ value: value, disabled: disabled }); } else if ('value' in nextProps) { if (value === undefined) { value = ''; } this.setState({ value: value }); } else if ('disabled' in nextProps) { this.setState({ disabled: disabled }); } }; RadioGroup.prototype.onChange = function onChange(currentValue, e) { if (!('value' in this.props)) { this.setState({ value: currentValue }); } this.props.onChange(currentValue, e); }; RadioGroup.prototype.render = function render() { var _this2 = this, _classnames; var _props = this.props, className = _props.className, shape = _props.shape, size = _props.size, id = _props.id, style = _props.style; var disabled = this.state.disabled; var prefix = this.context.prefix || this.props.prefix; var children = void 0; if (this.props.children) { children = this.props.children; } else { children = this.props.dataSource.map(function (item, index) { var option = item; if ((typeof item === 'undefined' ? 'undefined' : _typeof(item)) !== 'object') { option = { label: item, value: item, disabled: disabled }; } var checked = _this2.state.value === option.value; return _react2['default'].createElement( _radio2['default'], { key: index, value: option.value, checked: checked, disabled: disabled || option.disabled }, option.label ); }); } var cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'radio-group', true), _defineProperty(_classnames, prefix + 'radio-button', shape === 'button'), _defineProperty(_classnames, prefix + 'radio-button-' + size, shape === 'button'), _defineProperty(_classnames, className, !!className), _defineProperty(_classnames, 'disabled', disabled), _classnames)); return _react2['default'].createElement( 'div', { id: id, className: cls, style: style }, children ); }; return RadioGroup; }(_react.Component), _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内敛样式 */ style: _propTypes2['default'].object, /** * radio group的选中项的值 */ value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number, _propTypes2['default'].bool]), /** * radio group的默认值 */ defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number, _propTypes2['default'].bool]), /** * 选中值改变时的事件 * @param {String/Number} value 选中项的值 * @param {Event} e Dom 事件对象 */ onChange: _propTypes2['default'].func, /** * 表示radio被禁用 */ disabled: _propTypes2['default'].bool, /** * 可以设置成 button 展示形状 * @enumdesc 按钮状 */ shape: _propTypes2['default'].oneOf(['button']), /** * 与 `shape` 属性配套使用,shape设为button时有效 * @enumdesc 大, 中, 小 */ size: _propTypes2['default'].oneOf(['large', 'medium', 'small']), /** * 可选项列表, 数据项可为 String 或者 Object, 如 `['apple', 'pear', 'orange']` */ dataSource: _propTypes2['default'].arrayOf(_propTypes2['default'].any), id: _propTypes2['default'].string, /** * 通过子元素方式设置内部radio */ children: _propTypes2['default'].oneOfType([_propTypes2['default'].arrayOf(_propTypes2['default'].element), _propTypes2['default'].element]) }, _class.defaultProps = { dataSource: [], size: 'medium', onChange: function onChange() {}, prefix: 'next-' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.childContextTypes = { onChange: _propTypes2['default'].func, __group__: _propTypes2['default'].bool, isButton: _propTypes2['default'].bool, selectedValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number, _propTypes2['default'].bool]), disabled: _propTypes2['default'].bool }, _temp); RadioGroup.displayName = 'RadioGroup'; exports['default'] = RadioGroup; module.exports = exports['default']; /***/ }), /***/ 2013: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _nextOverlay = __webpack_require__(1401); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _base = __webpack_require__(1805); var _base2 = _interopRequireDefault(_base); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; /** * Select */ var Select = (_temp = _class = function (_Base) { _inherits(Select, _Base); function Select() { _classCallCheck(this, Select); return _possibleConstructorReturn(this, _Base.apply(this, arguments)); } Select.prototype.render = function render() { var _classnames; /* eslint-disable no-unused-vars */ var _props = this.props, placeholder = _props.placeholder, children = _props.children, className = _props.className, locale = _props.locale, overlay = _props.overlay, popupProps = _props.popupProps, size = _props.size, disabled = _props.disabled, shape = _props.shape, hasArrow = _props.hasArrow, safeNode = _props.safeNode, multiple = _props.multiple, animation = _props.animation, dataSource = _props.dataSource, container = _props.container, hasClear = _props.hasClear, popupClassName = _props.popupClassName, others = _objectWithoutProperties(_props, ['placeholder', 'children', 'className', 'locale', 'overlay', 'popupProps', 'size', 'disabled', 'shape', 'hasArrow', 'safeNode', 'multiple', 'animation', 'dataSource', 'container', 'hasClear', 'popupClassName']), prefix = this.getPrefix(), menu = overlay || this.renderMenu(), _state = this.state, value = _state.value, visible = _state.visible; placeholder = placeholder || locale.selectPlaceHolder; this.cacheDataByValue(value); var records = this.getDataByValue(value), label = this.getDisplayByValue(value, records), cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'select', true), _defineProperty(_classnames, 'opened', visible), _defineProperty(_classnames, 'disabled', disabled), _defineProperty(_classnames, size, size), _defineProperty(_classnames, 'multiple', multiple), _defineProperty(_classnames, 'no-border', shape === 'arrow-only'), _defineProperty(_classnames, 'no-arrow', !hasArrow), _defineProperty(_classnames, 'has-clear', this.hasClear()), _defineProperty(_classnames, className, className), _classnames)), arrowType = this.getArrowType(), iconSize = this.getIconSize(), hiddenValue = this.normalizeHiddenValue(this.state.value), labelContent = label.length ? this.renderLabel(label, value) : _react2['default'].createElement( 'span', { className: prefix + 'select-placeholder' }, placeholder ), arrowContent = hasArrow ? _react2['default'].createElement(_nextIcon2['default'], { type: arrowType, size: iconSize, className: prefix + 'select-arrow' }) : null, closeIcon = this.hasClear() ? _react2['default'].createElement(_nextIcon2['default'], { type: 'delete-filling', size: iconSize, className: prefix + 'select-clear', onClick: this.clear.bind(this) }) : null; others = (0, _nextUtil.pickAttrs)(others); var trigger = _react2['default'].createElement( 'span', _extends({}, others, { className: cls, tabIndex: disabled ? null : 0 }), _react2['default'].createElement('input', { type: 'hidden', name: others.name || 'select-faker', value: hiddenValue }), _react2['default'].createElement( 'span', { ref: 'target', className: prefix + 'select-inner' }, labelContent, closeIcon ), arrowContent ); return _react2['default'].createElement( _nextOverlay.Popup, _extends({}, popupProps, { className: popupClassName, trigger: trigger, ref: 'popup', container: container, triggerType: 'click', disabled: disabled, visible: visible, animation: animation, autoFocus: true, safeNode: safeNode, shouldUpdatePosition: true, onOpen: this.onOpen, afterOpen: this.afterOpen, onClose: this.props.onClose, onVisibleChange: this.onVisibleChange.bind(this) }), menu ); }; Select.prototype.onOpen = function onOpen() { var menu = this.refs.popup.overlay.refs.menu; this._syncWidth(menu); this.props.onOpen(); }; Select.prototype.afterOpen = function afterOpen() { var menu = this.refs.popup.overlay.refs.menu; this._enableScroll(menu); this.props.afterOpen(); }; Select.prototype.normalizeHiddenValue = function normalizeHiddenValue(value) { return value.map(function (v) { if (_nextUtil.obj.isPlainObject(v)) { return v.value; } else { return v; } }); }; return Select; }(_base2['default']), _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 弹层挂载容器节点 */ container: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]), /** * 选择器的尺寸 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 选择器的形状 */ shape: _propTypes2['default'].oneOf(['normal', 'arrow-only']), /** * 没有值的时候的占位符 */ placeholder: _propTypes2['default'].string, /** * 当前值 */ value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number, _propTypes2['default'].array, _propTypes2['default'].object]), /** * 初始默认值 */ defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].array, _propTypes2['default'].object]), /** * 当前弹层是否显示 */ visible: _propTypes2['default'].bool, /** * 弹层初始是否显示 */ defaultVisible: _propTypes2['default'].bool, /** * 是否禁用 */ disabled: _propTypes2['default'].bool, /** * 传入的数据,可以动态渲染子项,详见[dataSource的使用](#dataSource的使用) */ dataSource: _propTypes2['default'].array, /** * 是否是多选 */ multiple: _propTypes2['default'].bool, // TODO: Remove API at next version. /** * 填充到选择框里面的值 */ fillProps: _propTypes2['default'].string, /** * 是否显示顶部的搜索框 */ showSearch: _propTypes2['default'].bool, /** * 在输入的时候过滤的函数,仅在filterLocal为true时候有效 * @param {String} filterValue 筛选值 * @param {Object} option 选项 * @return {Boolean} 是否保留当前选项 */ filterBy: _propTypes2['default'].func, /** * 是否使用本地过滤,在数据源为远程的时候需要关闭此选项 */ filterLocal: _propTypes2['default'].bool, /** * 是否显示右侧的箭头 */ hasArrow: _propTypes2['default'].bool, /** * 下拉菜单是否与选择器对齐 */ autoWidth: _propTypes2['default'].bool, /** * Select发生改变的时候触发的回调 * @param {String} value 数据 * @param {Object} option 选项 */ onChange: _propTypes2['default'].func, /** * 在搜索框中输入触发的事件,仅在showSearch为true时候有效 * @param {String} value 搜索值 */ onSearch: _propTypes2['default'].func, /** * 是否显示清空按钮,该按钮可以清空select的value, 该属性仅在单选模式下有效 */ hasClear: _propTypes2['default'].bool, /** * 弹出层的样式类 */ popupClassName: _propTypes2['default'].string, /** * 弹出层的属性 */ popupProps: _propTypes2['default'].object, /** * 弹层显示或隐藏的时候触发的事件 * @param {Boolean} visible 弹层是否隐藏和显示 */ onVisibleChange: _propTypes2['default'].func, /** * 弹层显示时触发的事件 */ onOpen: _propTypes2['default'].func, /** * 弹层隐藏时触发的事件 */ onClose: _propTypes2['default'].func, /** * 自定义国际化文案对象 * @property {String} selectPlaceHolder 请选择的提示文案 * @property {String} comboboxPlaceHolder 请输入的提示文案 */ locale: _propTypes2['default'].object, /** * 自定义国际化语言 */ language: _propTypes2['default'].oneOf(['en-us', 'zh-cn', 'zh-tw']), afterOpen: _propTypes2['default'].func }, _class.defaultProps = { prefix: 'next-', size: 'medium', shape: 'normal', placeholder: '', disabled: false, multiple: false, showSearch: false, hasArrow: true, autoWidth: true, onVisibleChange: noop, onChange: noop, fillProps: 'label', filterLocal: true, onMouseDown: noop, onMouseUp: noop, onSearch: noop, onOpen: noop, onClose: noop, hasClear: false, animation: { 'in': 'expandInDown', out: 'expandOutUp' }, locale: { selectPlaceHolder: '请选择', comboboxPlaceHolder: '请输入' }, afterOpen: noop }, _temp); Select.displayName = 'Select'; exports['default'] = (0, _nextLocaleProvider2['default'])(Select); module.exports = exports['default']; /***/ }), /***/ 2014: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; /* eslint-disable eqeqeq */ /* eslint-disable react/prop-types */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _container = __webpack_require__(1486); var _container2 = _interopRequireDefault(_container); var _subMenu = __webpack_require__(1806); var _subMenu2 = _interopRequireDefault(_subMenu); var _menuItem = __webpack_require__(1518); var _menuItem2 = _interopRequireDefault(_menuItem); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Component = _container2['default']; var Children = _react2['default'].Children, noop = function noop() {}, makeChain = _nextUtil.func.makeChain, getOffset = _nextDom.style.getOffset; var KEY_CODE_MAPS = {}; for (var key in _nextUtil.keyCode) { var lowerCaseKey = key.toLowerCase().replace('_arrow', ''); KEY_CODE_MAPS[_nextUtil.keyCode[key]] = lowerCaseKey.charAt(0).toUpperCase() + lowerCaseKey.substr(1); } /** Menu */ var Menu = (_temp = _class = function (_Component) { _inherits(Menu, _Component); function Menu(props, context) { _classCallCheck(this, Menu); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.children = []; _this.state = { selectedKeys: _this.normalizeKeys(props.selectedKeys || props.defaultSelectedKeys), openKeys: _this.normalizeKeys(props.openKeys || props.defaultOpenKeys), focusedKey: props.focusedKey }; ['onMouseLeave', 'onItemClick', 'onSelect', 'onFocus', 'onOpen', 'onKeyNavNodeKeyDown', 'onKeyNavNodeFocus'].forEach(function (method) { _this[method] = _this[method].bind(_this); }); return _this; } Menu.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('selectedKeys' in nextProps) { this.setState({ selectedKeys: this.normalizeKeys(nextProps.selectedKeys) }); } if ('openKeys' in nextProps) { this.setState({ openKeys: this.normalizeKeys(nextProps.openKeys) }); } if ('focusedKey' in nextProps) { this.setState({ focusedKey: nextProps.focusedKey }); } }; Menu.prototype.normalizeKeys = function normalizeKeys(keys) { if (!Array.isArray(keys)) { if (keys != null) { keys = [keys]; } else { keys = []; } } else { keys = [].concat(_toConsumableArray(keys)); } return keys; }; Menu.prototype.render = function render() { var _classnames, _this2 = this; var _props = this.props, className = _props.className, hasIcon = _props.hasIcon, children = _props.children, header = _props.header, footer = _props.footer, indentSize = _props.indentSize, multipleCol = _props.multipleCol, direction = _props.direction, others = _objectWithoutProperties(_props, ['className', 'hasIcon', 'children', 'header', 'footer', 'indentSize', 'multipleCol', 'direction']), _state = this.state, selectedKeys = _state.selectedKeys, openKeys = _state.openKeys, focusedKey = _state.focusedKey, prefix = this.getPrefix(), cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'menu', true), _defineProperty(_classnames, 'multiple-col', multipleCol), _defineProperty(_classnames, prefix + 'menu-has-icon', hasIcon), _defineProperty(_classnames, direction, direction), _defineProperty(_classnames, className, className), _classnames)), hasSubMenu = (Children.toArray(children).some(function (child) { var type = child.type; return type._subMenu; }) || this.props.hasSubMenu) && direction !== 'hoz'; this.childrenMeta = []; var contentChildren = Children.map(children, function (child, index) { if (child) { var _key = child.props.index || child.key; if (typeof _key === 'undefined' || _key === null) { _key = index.toString(); } if (child.type.name === 'MenuDivider') { return child; } return _react2['default'].cloneElement(child, { ref: _key, index: _key, parent: _this2, indentSize: hasSubMenu && indentSize ? indentSize : null, hasIcon: hasIcon, selectedKeys: selectedKeys, focusedKey: focusedKey, openKeys: openKeys, direction: direction }); } }); others = (0, _nextUtil.pickAttrs)(others); var root = _react2['default'].createElement( 'div', _extends({ tabIndex: 0 }, others, { className: cls, onMouseLeave: this.onMouseLeave }), header ? _react2['default'].createElement( 'div', { className: prefix + 'menu-header' }, header ) : null, _react2['default'].createElement( 'ul', { className: prefix + 'menu-content' }, contentChildren ), footer ? _react2['default'].createElement( 'div', { className: prefix + 'menu-footer' }, footer ) : null ); return this.getKeyNavNode(root); }; Menu.prototype.onMouseLeave = function onMouseLeave(e) { this.setState({ focusedKey: null }); if (this.props.onMouseLeave) { this.props.onMouseLeave(e); } }; Menu.prototype.onItemClick = function onItemClick(e, index, type, menuInc) { var selectedKeys = this.state.selectedKeys, selectMode = this.props.selectMode, keyIndex = void 0, stateSelectKeys = void 0; selectedKeys = [].concat(_toConsumableArray(selectedKeys)); if (menuInc.props.__radioItem) { type = 'single'; } if (menuInc.props.__checkboxItem) { type = 'multiple'; } //使用Menu的selectMode if (typeof selectMode !== 'undefined') { type = selectMode; } if (type === 'multiple') { keyIndex = selectedKeys.indexOf(index); if (keyIndex === -1) { selectedKeys.push(index); } else { selectedKeys.splice(keyIndex, 1); this.props.onDeselect(index); } stateSelectKeys = selectedKeys; } else { selectedKeys = index; stateSelectKeys = [selectedKeys]; } if (!('focusedKey' in this.props)) { this.setState({ focusedKey: index }); } this.props.onFocus(e, index); if (type !== 'click') { if (this.props.shallowSelect && menuInc.context.parentIndex) { stateSelectKeys = [menuInc.context.parentIndex[0]]; } if (!('selectedKeys' in this.props)) { this.setState({ selectedKeys: stateSelectKeys }); } this.props.onSelect(stateSelectKeys, menuInc, { keyPath: menuInc.context.parentIndex, label: menuInc.context.parentLabel }); } else { this.props.onClick(selectedKeys, menuInc, { keyPath: menuInc.context.parentIndex, label: menuInc.context.parentLabel }, e); } }; Menu.prototype.onSelect = function onSelect(selectedKeys) { var _props2; this.setState({ selectedKeys: selectedKeys }); for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key2 = 1; _key2 < _len; _key2++) { args[_key2 - 1] = arguments[_key2]; } (_props2 = this.props).onSelect.apply(_props2, [selectedKeys].concat(args)); }; Menu.prototype.onFocus = function onFocus(index) { this.setState({ focusedKey: index }); this.props.onFocus(index); }; Menu.prototype.onOpen = function onOpen(openKeys, visible) { var _this3 = this; var stateOpenKeys = this.state.openKeys, openMode = this.props.openMode; stateOpenKeys = [].concat(_toConsumableArray(stateOpenKeys)); if (Array.isArray(openKeys)) { stateOpenKeys = [].concat(_toConsumableArray(openKeys)); } else { if (openMode === 'single') { stateOpenKeys = stateOpenKeys.filter(function (key) { // 首先找到跟当前key匹配到的subMenu // 在寻找subMenu下面的子节点的key // 如果当前key是子节点的父节点,则不需要隐藏 var subMenu = _this3.getChildrenIncByType(_subMenu2['default']).filter(function (child) { return (child.props.index || child.key) == key; })[0]; if (subMenu) { var childKeys = subMenu.getChildrenIncByType(_subMenu2['default']).map(function (child) { return child.props.index || child.key; }); return childKeys.indexOf(openKeys) > -1; } else { return false; } }); } var index = stateOpenKeys.indexOf(openKeys); if (index === -1 && visible) { stateOpenKeys.push(openKeys); } else if (index !== -1 && !visible) { stateOpenKeys.splice(index, 1); } if (!('openKeys' in this.props)) { this.setState({ openKeys: stateOpenKeys }); } this.props.onOpen(stateOpenKeys); } }; Menu.prototype.componentDidMount = function componentDidMount() { _nextDom.events.on(window, 'blur', this.onKeyNavNodeBlur); this.focusChildAddTimeout(); }; Menu.prototype.focusChildAddTimeout = function focusChildAddTimeout() { var _this4 = this; // 让focusKey对应的focusNode获取焦点 // 在Overlay中由于节点可能设置了autoFocus,所以要设置比Overlay的autoFocus的功能延时 // 要长 // 在didMount的时候获取焦点的功能应该放置到使用者去主动调用 // 1.0的时候移除该功能,放置到Select或者Dropdown中手动调用 setTimeout(function () { _this4._focusChild(); }, 200); }; Menu.prototype._focusChild = function _focusChild() { var child = this.getCurrentChild(); if (child) { if (this.props.autoFocus) { var node = child.node; node && node.focus(); } else { // Scroll dom to viewport. this.scrollTo(child.node); } } }; Menu.prototype.componentWillUnmount = function componentWillUnmount() { _nextDom.events.off(window, 'blur', this.onKeyNavNodeBlur); if (this._keyNodeBlurTimeout) { clearTimeout(this._keyNodeBlurTimeout); } }; Menu.prototype.getKeyNavNode = function getKeyNavNode(node) { return _react2['default'].cloneElement(node, { onKeyDown: makeChain(this.onKeyNavNodeKeyDown, node.props.onKeyDown), onFocus: makeChain(this.onKeyNavNodeFocus, node.props.onFocus) }); }; Menu.prototype.onKeyNavNodeKeyDown = function onKeyNavNodeKeyDown(e) { var key = KEY_CODE_MAPS[e.keyCode]; var method = this['_on' + key + 'Key']; if (method) { method.call(this, e); } else { this._onKeyBoardSearch(e); } e.stopPropagation(); }; Menu.prototype.addChildMeta = function addChildMeta(meta) { if (this.childrenMeta.indexOf(meta) === -1) { this.childrenMeta.push(meta); } }; Menu.prototype.removeChildMeta = function removeChildMeta(meta) { var index = this.childrenMeta.indexOf(meta); if (index > -1) { this.childrenMeta.splice(index, 1); } }; Menu.prototype._onKeyBoardSearch = function _onKeyBoardSearch(e) { var key = String.fromCharCode(e.keyCode).toLowerCase(), children = this.getChildrenMeta(), currentChild = void 0; children.forEach(function (child) { if (typeof child.children === 'string' && child.children.charAt(0).toLowerCase() === key) { if (!currentChild) { currentChild = child; } } }); this.focusChild(currentChild); }; Menu.prototype.onKeyNavNodeFocus = function onKeyNavNodeFocus(e) { if (this.state.focusedKey == null && this.props.autoFocusFirstItem) { this._onDownKey(e); } }; Menu.prototype._onUpKey = function _onUpKey(e) { var child = void 0; if (this.state.focusedKey == null) { child = this._getLastChild(); } else { child = this._getPrevChild(); } this.focusChild(child); e.preventDefault(); }; Menu.prototype._onEnterKey = function _onEnterKey(e) { if (this.props.onKeyNavNodeEnter) { this.props.onKeyNavNodeEnter(e, this.getCurrentChild()); } }; Menu.prototype._onDownKey = function _onDownKey(e) { var child = void 0; if (this.state.focusedKey == null) { child = this._getFirstChild(); } else { child = this._getNextChild(); } this.focusChild(child); e.preventDefault(); }; Menu.prototype._onHomeKey = function _onHomeKey() { var child = this._getFirstChild(); this.focusChild(child); }; Menu.prototype._onEndKey = function _onEndKey() { var child = this._getLastChild(); this.focusChild(child); }; Menu.prototype.focusChild = function focusChild(child) { var _this5 = this; if (child) { this.setState({ focusedKey: child.index }, function () { _this5._focusChild(); }); } }; Menu.prototype.unFocusChild = function unFocusChild(child) { this.setState({ focusedKey: null }); if (child) { var node = child.node; node && node.blur(); } }; Menu.prototype.scrollTo = function scrollTo(node) { if (node) { var rootNode = _reactDom2['default'].findDOMNode(this), rootNodeOffsetTop = getOffset(rootNode).top, scrollTop = rootNode.scrollTop, nodeOffsetTop = getOffset(node).top, rootNodeHeight = rootNode.clientHeight; if (nodeOffsetTop + node.clientHeight > rootNodeHeight + rootNodeOffsetTop) { rootNode.scrollTop = scrollTop + (nodeOffsetTop + node.clientHeight) - (rootNodeHeight + rootNodeOffsetTop); } else if (nodeOffsetTop < rootNodeOffsetTop) { rootNode.scrollTop = node.offsetTop; } } }; Menu.prototype.getChildrenMeta = function getChildrenMeta() { var result = [], children = this.childrenMeta; children.forEach(function (child) { if (!child.disabled) { result.push(child); } }); return result; }; Menu.prototype.getCurrentChild = function getCurrentChild() { var _this6 = this; var children = this.getChildrenMeta(), currentChild = void 0; children.forEach(function (child) { if (child.index === _this6.state.focusedKey) { currentChild = child; } }); return currentChild; }; Menu.prototype._getFirstChild = function _getFirstChild() { var children = this.getChildrenMeta(); return children[0]; }; /** * 获取最后一个直系子级 * @returns {*} * @private */ Menu.prototype._getLastChild = function _getLastChild() { var children = this.getChildrenMeta(); return children[children.length - 1]; }; Menu.prototype._getChildByStep = function _getChildByStep(step) { if (this.state.focusedKey != null) { var children = this.getChildrenMeta(), _key3 = this.state.focusedKey, index = void 0; children.forEach(function (child, i) { if (child.index === _key3) { index = i; } }); if (index == null) { return children[0]; } if (step == 1 && index + 1 === children.length) { index = -1; } if (step == -1 && index - 1 < 0) { index = children.length; } return children[index + step]; } }; /** * 获取当前子级的下一个子级 * @returns {*} * @private */ Menu.prototype._getNextChild = function _getNextChild() { return this._getChildByStep(1); }; /** * 获取当前子级的上一个子级 * @returns {*} * @private */ Menu.prototype._getPrevChild = function _getPrevChild() { return this._getChildByStep(-1); }; return Menu; }(Component), _class.Item = _menuItem2['default'], _class.SubMenu = _subMenu2['default'], _class._menu = true, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 点击菜单项触发的事件 * @param {Array} selectedKeys 点击的菜单项的key * @param {MenuItem} menuItem 当前点击的菜单项的实例 * @param {Object} meta 选中菜单项的上下级关系 */ onClick: _propTypes2['default'].func, /** * 当前选中的菜单项, 设置此属性,组件的选中变为受控状态 */ selectedKeys: _propTypes2['default'].array, /** * 初始化选中的菜单项,只在组件初次render的时候生效 */ defaultSelectedKeys: _propTypes2['default'].array, /** * 菜单选择的模式,支持单选和多选 */ selectMode: _propTypes2['default'].oneOf(['single', 'multiple']), /** * 选中/取消选中了任意MenuItem * @param {Array} selectedKeys 选中的菜单的key * @param {MenuItem} menuItem 当前点击的菜单项的实例 * @param {Object} meta 选中菜单项的上下级关系 */ onSelect: _propTypes2['default'].func, /** * 取消选中的菜单项 * @param {String} selectedKey 取消选中的菜单项的key */ onDeselect: _propTypes2['default'].func, /** * 如果此属性为true,表明只会选中第一级的菜单 */ shallowSelect: _propTypes2['default'].bool, /** * 当前打开的菜单项,设置此属性,组件的打开变为受控状态 */ openKeys: _propTypes2['default'].array, /** * 初始化打开的菜单项,只在组件初次render的时候生效 */ defaultOpenKeys: _propTypes2['default'].array, /** * 子菜单同时打开模式,是多个还是一个 */ openMode: _propTypes2['default'].oneOf(['single', 'multiple']), /** * 打开子菜单的时候触发的事件 * @param {Array} openKeys 打开的子菜单的key */ onOpen: _propTypes2['default'].func, /** * 级联菜单下面缩进的尺寸 */ indentSize: _propTypes2['default'].number, /** * 配置菜单的头部 */ header: _propTypes2['default'].any, /** * 配置菜单的底部 */ footer: _propTypes2['default'].any, /** * 是否启用多列模式 */ multipleCol: _propTypes2['default'].bool, /** * 是否启用设置焦点功能 */ autoFocus: _propTypes2['default'].bool, /** * 菜单的方向 */ direction: _propTypes2['default'].oneOf(['ver', 'hoz']), hasIcon: _propTypes2['default'].bool, autoFocusFirstItem: _propTypes2['default'].bool, focusedKey: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]) }, _class.defaultProps = { prefix: 'next-', onSelect: noop, onDeselect: noop, onOpen: noop, onClick: noop, onFocus: noop, hasIcon: false, defaultSelectedKeys: [], defaultOpenKeys: [], indentSize: 20, openMode: 'multiple', multipleCol: false, autoFocusFirstItem: false, direction: 'ver', autoFocus: true }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Menu.displayName = 'Menu'; exports['default'] = Menu; module.exports = exports['default']; /***/ }), /***/ 2015: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp2; /* eslint-disable react/prop-types */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactDom = __webpack_require__(4); var _nextOverlay = __webpack_require__(1401); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _menuItem = __webpack_require__(1518); var _menuItem2 = _interopRequireDefault(_menuItem); var _container = __webpack_require__(1486); var _container2 = _interopRequireDefault(_container); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var makeChain = _nextUtil.func.makeChain; var Component = _container2['default']; /** * Menu.PopupItem * @order 5 **/ var PopupMenuItem = (_temp2 = _class = function (_Component) { _inherits(PopupMenuItem, _Component); function PopupMenuItem() { var _temp, _this, _ret; _classCallCheck(this, PopupMenuItem); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.onVisibleChange = function (visible, type) { var childrenIndexes = _this.getChildrenByType(PopupMenuItem).map(function (child) { return child.props.index || child.key; }), parentIndexes = _this.getParentByType(PopupMenuItem).map(function (parent) { return parent.props.index || parent.key; }), openKeys = _this.getRoot().state.openKeys, childVisible = childrenIndexes.some(function (index) { return openKeys.indexOf(index) > -1; }); var indexes = [_this.props.index]; // 如果是隐藏该弹出菜单 // 且这个隐藏是因为鼠标移出了其弹出内容区域或者点击了document // 需要将其父菜单一并隐藏 if (!visible && !_this._openByKeyBoard && ['fromContent', 'docClick'].indexOf(type) > -1) { indexes = indexes.concat(parentIndexes); } if (!(!visible && childVisible)) { indexes.forEach(function (index) { _this.getRoot().onOpen(index, visible); }); _this._openByKeyBoard = false; } }, _this.onKeyDown = function (e) { if (e.keyCode === _nextUtil.keyCode.RIGHT_ARROW) { _this.getRoot().onOpen(_this.props.index, true); _this._openByKeyBoard = true; } }, _this.syncWidth = function () { var autoWidth = _this.props.autoWidth; if (autoWidth) { var menuItemNode = _this.getMenuItemNode(); var contentNode = _this.getContentNode(); var menuItemWidth = menuItemNode.clientWidth; var contentNodeWidth = contentNode.clientWidth; if (menuItemWidth > contentNodeWidth) { _nextDom.style.set(contentNode, 'width', menuItemWidth + 'px'); } } }, _temp), _possibleConstructorReturn(_this, _ret); } PopupMenuItem.prototype.getChildContext = function getChildContext() { var parentIndex = normalizeInfo(this.context, 'parentIndex', this.props.index), parentLabel = normalizeInfo(this.context, 'parentLabel', this.props.label || this.props.children); return { parentIndex: parentIndex, parentLabel: parentLabel }; }; PopupMenuItem.prototype.render = function render() { var _classnames; var _props = this.props, className = _props.className, label = _props.label, animation = _props.animation, children = _props.children, openKeys = _props.openKeys, selectedKeys = _props.selectedKeys, index = _props.index, focusedKey = _props.focusedKey, direction = _props.direction, hasSelectedIcon = _props.hasSelectedIcon, others = _objectWithoutProperties(_props, ['className', 'label', 'animation', 'children', 'openKeys', 'selectedKeys', 'index', 'focusedKey', 'direction', 'hasSelectedIcon']), prefix = this.getPrefix(), visible = 'visible' in this.props ? this.props.visible : openKeys.indexOf(index) > -1, cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'menu-popup-item', true), _defineProperty(_classnames, 'opened', visible), _defineProperty(_classnames, className, className), _classnames)), child = _react2['default'].Children.only(children), hasPopup = child ? true : null, item = _react2['default'].createElement( _menuItem2['default'], { openKeys: openKeys, selectedKeys: selectedKeys, focusedKey: focusedKey, index: index, hasSelectedIcon: hasSelectedIcon, className: cls, 'aria-haspopup': hasPopup, parent: this, onKeyDown: this.onKeyDown, onBlur: this.onBlur }, label, direction === 'hoz' ? _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-down', size: 'xs' }) : _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-right', size: 'xs' }) ), cloneChild = _react2['default'].cloneElement(child, { onKeyDown: makeChain(this._onChildKeyDown.bind(this), child.props.onKeyDown), parent: this, openKeys: openKeys, selectedKeys: selectedKeys }); var alignAndOffset = this.getAlignAndOffset(); return _react2['default'].createElement( _nextOverlay.Popup, _extends({}, others, alignAndOffset, { trigger: item, visible: visible, animation: animation, onOpen: this.syncWidth, autoFocus: false, ref: 'popup', onVisibleChange: this.onVisibleChange }), cloneChild ); }; PopupMenuItem.prototype._onChildKeyDown = function _onChildKeyDown(e) { if (e.keyCode === _nextUtil.keyCode.LEFT_ARROW) { this.getRoot().onOpen(this.props.index, false); } }; PopupMenuItem.prototype.getAlignAndOffset = function getAlignAndOffset() { var _props2 = this.props, align = _props2.align, offset = _props2.offset, direction = _props2.direction, result = { hoz: { align: 'tl bl', offset: [0, 0] }, ver: { align: 'tl tr', offset: [2, 0] } }; if (typeof align !== 'undefined') { result[direction].align = align; } if (typeof offset !== 'undefined') { result[direction].offset = offset; } return result[direction]; }; PopupMenuItem.prototype.getContentNode = function getContentNode() { return this.refs.popup.overlay.getContentNode(); }; PopupMenuItem.prototype.getMenuItemNode = function getMenuItemNode() { return (0, _reactDom.findDOMNode)(this.refs.popup.refs.trigger); }; return PopupMenuItem; }(Component), _class._menuItem = true, _class._popupMenuItem = true, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 禁用当前菜单项, 被禁用不会触发事件 */ disabled: _propTypes2['default'].bool, /** * 菜单项的标签 */ label: _propTypes2['default'].any, /** * 是否自动让弹出层的宽度和菜单项保持一致,逻辑是如果弹出层的宽度比菜单项小的话和菜单项保持一致,如果宽度大于菜单项则不做处理 */ autoWidth: _propTypes2['default'].bool }, _class.defaultProps = { disabled: false, label: 'popup-item', autoWidth: false, prefix: 'next-' }, _class.contextTypes = { parentIndex: _propTypes2['default'].array, parentLabel: _propTypes2['default'].array, prefix: _propTypes2['default'].string }, _class.childContextTypes = { parentIndex: _propTypes2['default'].array, parentLabel: _propTypes2['default'].array }, _temp2); PopupMenuItem.displayName = 'PopupMenuItem'; exports['default'] = PopupMenuItem; function normalizeInfo(context, name, value) { var meta = void 0; if (context[name]) { meta = [].concat(_toConsumableArray(context[name])); meta.push(value); } else { meta = [value]; } return meta; } module.exports = exports['default']; /***/ }), /***/ 2016: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Menu.Divider * @order 4 **/ var MenuDivider = (_temp = _class = function (_React$Component) { _inherits(MenuDivider, _React$Component); function MenuDivider() { _classCallCheck(this, MenuDivider); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } MenuDivider.prototype.render = function render() { var _cx; var _props = this.props, prefix = _props.prefix, className = _props.className, others = _objectWithoutProperties(_props, ['prefix', 'className']); var newPrefix = this.context.prefix || prefix; var newClassName = (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, newPrefix + 'menu-divider', true), _defineProperty(_cx, className, !!className), _cx)); return _react2['default'].createElement('li', _extends({ className: newClassName }, others)); }; return MenuDivider; }(_react2['default'].Component), _class._menuItem = true, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); MenuDivider.displayName = 'MenuDivider'; exports['default'] = MenuDivider; module.exports = exports['default']; /***/ }), /***/ 2017: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; /* eslint-disable react/prop-types */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextCheckbox = __webpack_require__(1559); var _nextCheckbox2 = _interopRequireDefault(_nextCheckbox); var _menuItem = __webpack_require__(1518); var _menuItem2 = _interopRequireDefault(_menuItem); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; /** * Menu.CheckboxItem * @order 7 **/ var CheckedMenuItem = (_temp = _class = function (_React$Component) { _inherits(CheckedMenuItem, _React$Component); function CheckedMenuItem(props) { _classCallCheck(this, CheckedMenuItem); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); _this.onClick = _this.onClick.bind(_this); return _this; } CheckedMenuItem.prototype.render = function render() { var _props = this.props, disabled = _props.disabled, checked = _props.checked, index = _props.index, selectedKeys = _props.selectedKeys, onChange = _props.onChange; if (typeof checked === 'undefined') { checked = selectedKeys.indexOf(index) > -1; } this.checked = checked; return _react2['default'].createElement( _menuItem2['default'], _extends({}, this.props, { hasSelectedIcon: false, onClick: this.onClick, role: 'menuitemcheckbox' }), _react2['default'].createElement(_nextCheckbox2['default'], { checked: checked, onChange: onChange, disabled: disabled, tabIndex: '-1' }), ' ', this.props.children ); }; CheckedMenuItem.prototype.onClick = function onClick(e) { if (!this.props.disabled) { this.props.onChange(!this.checked, e); } }; return CheckedMenuItem; }(_react2['default'].Component), _class._menuItem = true, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 显示在菜单右侧的帮助文本,通常用于一些附加信息 */ helper: _propTypes2['default'].string, /** * 禁用当前菜单项, 被禁用不会触发事件, 也无法选中Checkbox/Radio */ disabled: _propTypes2['default'].bool, focused: _propTypes2['default'].bool, /** * 点击了菜单项触发的事件 * @param {String} key 当前菜单项的key值 * @param {Event} e DOM事件 */ onClick: _propTypes2['default'].func, onKeyDown: _propTypes2['default'].func, parent: _propTypes2['default'].any, /** * 是否显示缩进 */ needIndent: _propTypes2['default'].bool, /** * 当前的菜单项是否被选中, 优先级比Menu传入的selectedKeys要高 */ checked: _propTypes2['default'].bool, /** * 选择被改变的时候触发的事件 * @param {Boolean} checked 是否选中 */ onChange: _propTypes2['default'].func }, _class.defaultProps = { helper: null, disabled: false, prefix: 'next-', hasSelectedIcon: true, needIndent: true, onClick: noop, onKeyDown: noop, onMouseEnter: noop, onMouseLeave: noop, onChange: noop, __checkboxItem: true }, _temp); CheckedMenuItem.displayName = 'CheckedMenuItem'; exports['default'] = CheckedMenuItem; module.exports = exports['default']; /***/ }), /***/ 2018: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _checkbox = __webpack_require__(1807); var _checkbox2 = _interopRequireDefault(_checkbox); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Checkbox.Group */ var CheckboxGroup = (_temp = _class = function (_Component) { _inherits(CheckboxGroup, _Component); function CheckboxGroup(props) { _classCallCheck(this, CheckboxGroup); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); var value = []; if ('value' in props) { value = props.value; } else if ('defaultValue' in props) { value = props.defaultValue; } if (!Array.isArray(value)) { if (value === null || value === undefined) { value = []; } else { value = [value]; } } _this.state = { value: [].concat(_toConsumableArray(value)), disabled: props.disabled }; _this.onChange = _this.onChange.bind(_this); return _this; } CheckboxGroup.prototype.getChildContext = function getChildContext() { return { __group__: true, onChange: this.onChange, selectedValue: this.state.value, disabled: this.state.disabled }; }; CheckboxGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { var value = nextProps.value; if (!Array.isArray(value)) { if (value === null || value === undefined) { value = []; } else { value = [value]; } } this.setState({ value: value }); } if ('disabled' in nextProps) { this.setState({ disabled: nextProps.disabled }); } }; CheckboxGroup.prototype.onChange = function onChange(currentValue, e) { var value = this.state.value; var index = value.indexOf(currentValue); var valTemp = [].concat(_toConsumableArray(value)); if (index === -1) { valTemp.push(currentValue); } else { valTemp.splice(index, 1); } if (!('value' in this.props)) { this.setState({ value: valTemp }); } this.props.onChange(valTemp, e); }; CheckboxGroup.prototype.render = function render() { var _this2 = this, _classnames; var _props = this.props, className = _props.className, style = _props.style; var disabled = this.state.disabled; var prefix = this.context.prefix || this.props.prefix; // 如果内嵌标签跟dataSource同时存在,以内嵌标签为主 var children = void 0; if (this.props.children) { children = this.props.children; } else { children = this.props.dataSource.map(function (item, index) { var option = item; if ((typeof item === 'undefined' ? 'undefined' : _typeof(item)) !== 'object') { option = { label: item, value: item, disabled: disabled }; } var checked = _this2.state.value && _this2.state.value.indexOf(option.value) > -1; return _react2['default'].createElement( 'label', { key: index }, _react2['default'].createElement(_checkbox2['default'], { value: option.value, checked: checked, disabled: disabled || option.disabled }), _react2['default'].createElement( 'span', { className: prefix + 'checkbox-label' }, option.label ) ); }); } var cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'checkbox-group', true), _defineProperty(_classnames, className, !!className), _defineProperty(_classnames, 'disabled', disabled), _classnames)); return _react2['default'].createElement( 'span', { className: cls, style: style }, children ); }; return CheckboxGroup; }(_react.Component), _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内敛样式 */ style: _propTypes2['default'].object, /** * 整体禁用 */ disabled: _propTypes2['default'].bool, /** * 可选项列表, 数据项可为 String 或者 Object, 如 `['apple', 'pear', 'orange']` 或者 `[{value: 'apple', label: '苹果',}, {value: 'pear', label: '梨'}, {value: 'orange', label: '橙子'}]` */ dataSource: _propTypes2['default'].arrayOf(_propTypes2['default'].any), /** * 被选中的值列表 */ value: _propTypes2['default'].array, /** * 默认被选中的值列表 */ defaultValue: _propTypes2['default'].array, /** * 通过子元素方式设置内部 checkbox */ children: _propTypes2['default'].arrayOf(_propTypes2['default'].element), /** * 选中值改变时的事件 * @param {Array} value 选中项列表 * @param {Event} e Dom 事件对象 */ onChange: _propTypes2['default'].func }, _class.defaultProps = { dataSource: [], onChange: function onChange() {}, prefix: 'next-' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.childContextTypes = { onChange: _propTypes2['default'].func, __group__: _propTypes2['default'].bool, selectedValue: _propTypes2['default'].array, disabled: _propTypes2['default'].bool }, _temp); CheckboxGroup.displayName = 'CheckboxGroup'; exports['default'] = CheckboxGroup; module.exports = exports['default']; /***/ }), /***/ 2019: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; /* eslint-disable react/prop-types */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextRadio = __webpack_require__(1742); var _nextRadio2 = _interopRequireDefault(_nextRadio); var _menuItem = __webpack_require__(1518); var _menuItem2 = _interopRequireDefault(_menuItem); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; /** * Menu.RadioItem * @order 6 **/ var RadioMenuItem = (_temp = _class = function (_React$Component) { _inherits(RadioMenuItem, _React$Component); function RadioMenuItem(props) { _classCallCheck(this, RadioMenuItem); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); _this.onClick = _this.onClick.bind(_this); return _this; } RadioMenuItem.prototype.render = function render() { var _props = this.props, disabled = _props.disabled, checked = _props.checked, index = _props.index, selectedKeys = _props.selectedKeys, onChange = _props.onChange; if (typeof checked === 'undefined') { checked = selectedKeys.indexOf(index) > -1; } return _react2['default'].createElement( _menuItem2['default'], _extends({}, this.props, { hasSelectedIcon: false, onClick: this.onClick, role: 'menuitemradiobutton' }), _react2['default'].createElement(_nextRadio2['default'], { checked: checked, onChange: onChange, disabled: disabled, tabIndex: '-1' }), this.props.children ); }; RadioMenuItem.prototype.onClick = function onClick(e) { if (!this.props.disabled) { this.props.onChange(true, e); } }; return RadioMenuItem; }(_react2['default'].Component), _class._menuItem = true, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 显示在菜单右侧的帮助文本,通常用于一些附加信息 */ helper: _propTypes2['default'].string, /** * 禁用当前菜单项, 被禁用不会触发事件, 也无法选中Checkbox/Radio */ disabled: _propTypes2['default'].bool, focused: _propTypes2['default'].bool, /** * 点击了菜单项触发的事件 * @param {String} key 当前菜单项的key值 * @param {Event} e DOM事件 */ onClick: _propTypes2['default'].func, onKeyDown: _propTypes2['default'].func, parent: _propTypes2['default'].any, /** * 是否显示缩进 */ needIndent: _propTypes2['default'].bool, /** * 当前的菜单项是否被选中, 优先级比Menu传入的selectedKeys要高 */ checked: _propTypes2['default'].bool, group: _propTypes2['default'].string, /** * 选择被改变的时候触发的事件 * @param {Boolean} checked 是否选中 */ onChange: _propTypes2['default'].func }, _class.defaultProps = { helper: null, disabled: false, prefix: 'next-', hasSelectedIcon: true, needIndent: true, onClick: noop, onKeyDown: noop, onMouseEnter: noop, onMouseLeave: noop, group: 'group', onChange: noop, __radioItem: true }, _temp); RadioMenuItem.displayName = 'RadioMenuItem'; exports['default'] = RadioMenuItem; module.exports = exports['default']; /***/ }), /***/ 2020: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _nextUtil = __webpack_require__(889); var _container = __webpack_require__(1486); var _container2 = _interopRequireDefault(_container); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Menu.Group * @order 3 **/ var MenuGroup = (_temp = _class = function (_Container) { _inherits(MenuGroup, _Container); function MenuGroup() { _classCallCheck(this, MenuGroup); return _possibleConstructorReturn(this, _Container.apply(this, arguments)); } MenuGroup.prototype.render = function render() { var _classnames, _this2 = this; var _props = this.props, className = _props.className, label = _props.label, children = _props.children, focusedKey = _props.focusedKey, selectedKeys = _props.selectedKeys, openKeys = _props.openKeys, direction = _props.direction, others = _objectWithoutProperties(_props, ['className', 'label', 'children', 'focusedKey', 'selectedKeys', 'openKeys', 'direction']), prefix = this.getPrefix(); var cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'menu-group', true), _defineProperty(_classnames, className, className), _classnames)); children = _react2['default'].Children.map(children, function (child, index) { if (child) { var key = child.props.index || child.key; if (typeof key === 'undefined' || key === null) { key = index.toString(); } return _react2['default'].cloneElement(child, { ref: key, index: key, parent: _this2, indentSize: _this2.props.indentSize + 20, selectedKeys: selectedKeys, focusedKey: focusedKey, openKeys: openKeys, direction: direction }); } }); others = (0, _nextUtil.pickAttrs)(others); return _react2['default'].createElement( 'li', { className: cls }, _react2['default'].createElement( 'div', { className: prefix + 'menu-group-title' }, label ), _react2['default'].createElement( 'ul', others, children ) ); }; return MenuGroup; }(_container2['default']), _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 分组的标签 */ label: _propTypes2['default'].any }, _class.defaultProps = { label: 'menu-group', prefix: 'next-' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); exports['default'] = MenuGroup; module.exports = exports['default']; /***/ }), /***/ 2021: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; /* eslint-disable react/prop-types, no-unused-vars, eqeqeq, prefer-const */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _nextOverlay = __webpack_require__(1401); var _nextOverlay2 = _interopRequireDefault(_nextOverlay); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextDom = __webpack_require__(1124); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _nextUtil = __webpack_require__(889); var _base = __webpack_require__(1805); var _base2 = _interopRequireDefault(_base); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var findDOMNode = _reactDom2['default'].findDOMNode, noop = function noop() {}; var isObject = function isObject(object) { return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1] === 'Object'; }; /** * Select.Combobox */ var Combobox = (_temp = _class = function (_Base) { _inherits(Combobox, _Base); function Combobox(props, context) { _classCallCheck(this, Combobox); var _this = _possibleConstructorReturn(this, _Base.call(this, props, context)); _this.state = _this.state || {}; _this.state.inputValue = _this.props.multiple ? '' : _this.getInputValueFromValue(_this.state.value); _this.state.placeholder = _this.getPlaceHolder(); ['onInputChange', 'onInputFocus', 'onInputBlur', 'onInputKeyDown', 'onSelectInnerClick', 'onArrowClick', 'onMouseDown', 'onMouseUp'].forEach(function (method) { _this[method] = _this[method].bind(_this); }); _this.isCombobox = true; return _this; } Combobox.prototype.getPlaceHolder = function getPlaceHolder(props) { props = props || this.props; return props.placeholder || props.locale.comboboxPlaceHolder; }; Combobox.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { _Base.prototype.componentWillReceiveProps.call(this, nextProps); if ('value' in nextProps) { var value = this.normalizeValue(nextProps.value); this.cacheDataByValue(value, nextProps); if (!nextProps.multiple) { this.setState({ inputValue: this.getInputValueFromValue(nextProps.value) }); } else if (!this.props.multiple && nextProps.multiple) { this.setState({ inputValue: '' }); } } if ('placeholder' in nextProps) { this.setState({ placeholder: this.getPlaceHolder(nextProps) }); } }; Combobox.prototype.getInputValueFromValue = function getInputValueFromValue(value) { var _props = this.props, fillProps = _props.fillProps, multiple = _props.multiple; if (this._isUserInput && !isObject(value)) { return value; } value = this.normalizeValue(value); if (value.length && !multiple) { value = this.getDataByValue(value); return typeof value[0][fillProps] !== 'undefined' ? value[0][fillProps] : value[0]; } else { return ''; } }; Combobox.prototype.renderComboboxLabel = function renderComboboxLabel() { var multiple = this.props.multiple, _state = this.state, value = _state.value, placeholder = _state.placeholder, inputValue = _state.inputValue, records = this.getDataByValue(value), label = this.getDisplayByValue(value, records), placeHolderClassName = this.getPrefix() + 'select-placeholder'; if (multiple) { return label.length || inputValue ? this.renderLabel(label, value) : this.state.focused ? null : _react2['default'].createElement( 'span', { className: placeHolderClassName }, placeholder ); } else { return null; } }; Combobox.prototype.render = function render() { var _classnames, _this2 = this; var _props2 = this.props, overlay = _props2.overlay, className = _props2.className, disabled = _props2.disabled, size = _props2.size, multiple = _props2.multiple, hasArrow = _props2.hasArrow, animation = _props2.animation, safeNode = _props2.safeNode, container = _props2.container, dataSource = _props2.dataSource, onChange = _props2.onChange, name = _props2.name, popupClassName = _props2.popupClassName, popupProps = _props2.popupProps, showSearch = _props2.showSearch, others = _objectWithoutProperties(_props2, ['overlay', 'className', 'disabled', 'size', 'multiple', 'hasArrow', 'animation', 'safeNode', 'container', 'dataSource', 'onChange', 'name', 'popupClassName', 'popupProps', 'showSearch']), prefix = this.getPrefix(), menu = overlay || _react2['default'].cloneElement(this.renderMenu(), { onKeyNavNodeEnter: this.onNodeEnter.bind(this), autoFocus: false }), visible = this.state.visible && (showSearch || !!_react2['default'].Children.toArray(menu.props.children).length || overlay), _state2 = this.state, value = _state2.value, inputValue = _state2.inputValue, focused = _state2.focused; this.cacheDataByValue(value); var cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'select', true), _defineProperty(_classnames, prefix + 'comobobox', true), _defineProperty(_classnames, 'focused', focused), _defineProperty(_classnames, 'opened', visible), _defineProperty(_classnames, 'disabled', disabled), _defineProperty(_classnames, size, size), _defineProperty(_classnames, 'multiple', multiple), _defineProperty(_classnames, 'no-arrow', !hasArrow), _defineProperty(_classnames, 'has-clear', this.hasClear()), _defineProperty(_classnames, className, className), _classnames)), arrowType = this.getArrowType(visible), iconSize = this.getIconSize(), arrowContent = hasArrow ? _react2['default'].createElement( 'span', { className: prefix + 'comobobox-arrow-wrapper', onClick: this.onArrowClick }, _react2['default'].createElement(_nextIcon2['default'], { type: arrowType, size: iconSize, className: prefix + 'select-arrow' }) ) : null, closeIcon = this.hasClear() ? _react2['default'].createElement(_nextIcon2['default'], { type: 'delete-filling', size: iconSize, className: prefix + 'select-clear', onClick: this.clear.bind(this) }) : null; others = (0, _nextUtil.pickAttrs)(others); var id = others.id; var focusNodeId = id ? 'focus-' + id : null; return _react2['default'].createElement( 'span', _extends({}, others, { className: cls, onMouseDown: this.onMouseDown, onMouseUp: this.onMouseUp }), _react2['default'].createElement( 'div', { className: prefix + 'select-inner-wrapper', ref: 'innerWrapper' }, _react2['default'].createElement( 'div', { className: prefix + 'select-inner', onClick: this.onSelectInnerClick }, this.renderComboboxLabel(), _react2['default'].createElement('input', { id: focusNodeId, ref: 'target', tabIndex: disabled ? null : 0, value: inputValue, size: size, disabled: disabled, onKeyDown: this.onInputKeyDown, onChange: this.onInputChange, onFocus: this.onInputFocus, onBlur: this.onInputBlur, name: name, autoComplete: 'off', placeholder: multiple ? null : this.getPlaceHolder() }), closeIcon ), arrowContent ), _react2['default'].createElement( _nextOverlay2['default'], _extends({}, popupProps, { visible: visible, animation: animation, className: popupClassName, container: container, safeNode: [function () { return _this2.refs.innerWrapper; }, safeNode], autoFocus: false, ref: 'overlay', shouldUpdatePosition: true, target: function target() { return _this2; }, onOpen: this.onOpen, afterOpen: this.afterOpen, onClose: this.props.onClose, onRequestClose: this.onRequestClose.bind(this) }), menu ) ); }; Combobox.prototype.onMouseDown = function onMouseDown(e) { this.clickByUser = true; }; Combobox.prototype.onMouseUp = function onMouseUp(e) { this.clickByUser = false; }; Combobox.prototype.onNodeEnter = function onNodeEnter(e, child) { var _props3 = this.props, multiple = _props3.multiple, tags = _props3.tags, selectedValue = []; if (child) { var value = (child.value || '').toString(); if (multiple) { selectedValue = this.getMultipleStateValue(value); } else { selectedValue = [value]; } this.onSelect(selectedValue, child); } else if (multiple && tags) { var _value = e.target.value; selectedValue = this.getMultipleStateValue(_value, tags); this.onSelect(selectedValue); } else { this.props.onInputEnter(e); } this.clearValue(); }; Combobox.prototype.getMultipleStateValue = function getMultipleStateValue(value, tags) { var stateValue = this.state.value, index = stateValue.indexOf(value); if (index > -1) { if (!tags) { stateValue.splice(index, 1); } } else { stateValue.push(value); } return stateValue; }; Combobox.prototype.onInputChange = function onInputChange(e) { var value = e.target.value; if (this.filterValueFromLocal !== false) { this.filterValue = value; } this._isUserInput = true; var stateValue = this.normalizeValue(value); if (!('value' in this.props) && !this.props.multiple) { this.setState({ value: stateValue }); } var dataSource = this.getFilteredDataSource(); var flatternDataSource = this.getFlatternDataSource(dataSource); if (flatternDataSource.length || !this.props.filterLocal) { this.onVisibleChange(true); } this.setInputValue(value); this.props.onInputUpdate(value); }; Combobox.prototype.fakeInputWidth = function fakeInputWidth(value) { if (!this._fakeInputElement) { this._fakeInputElement = document.createElement('div'); _nextDom.style.set(this._fakeInputElement, { position: 'absolute', top: '-9999px', left: 0, visibility: 'hidden' }); document.body.appendChild(this._fakeInputElement); } this._fakeInputElement.textContent = value; }; Combobox.prototype.componentDidMount = function componentDidMount() { this.setInputWidth(); }; Combobox.prototype.componentDidUpdate = function componentDidUpdate() { _Base.prototype.componentDidUpdate.apply(this, arguments); this.resizeInput(); this._isUserInput = false; }; Combobox.prototype.setInputWidth = function setInputWidth() { var input = findDOMNode(this.refs.target); this._oldInputWidth = input.clientWidth; }; Combobox.prototype.resizeInput = function resizeInput() { var input = findDOMNode(this.refs.target), multiple = this.props.multiple, width = void 0; if (multiple) { if (!this._fakeInputElement) { this.fakeInputWidth(''); } width = this._fakeInputElement.clientWidth; _nextDom.style.set(input, 'width', width + 10 + 'px'); } else { _nextDom.style.set(input, 'width', this._oldInputWidth + 'px'); } }; Combobox.prototype.onInputFocus = function onInputFocus(e) { this.setState({ focused: true }); if (this._blurTimeout) { clearTimeout(this._blurTimeout); } if (this.state.placeholder !== '') { this.setState({ placeholder: '' }); } this.props.onInputFocus(e, this.clickByUser); }; Combobox.prototype.onInputBlur = function onInputBlur(e) { var _this3 = this; this.setState({ focused: false }); this._blurTimeout = setTimeout(function () { if (!_this3.state.value.length) { _this3.setState({ placeholder: _this3.getPlaceHolder() }); } _this3.props.onInputBlur(e, _this3.state.inputValue); }, 100); }; Combobox.prototype.onInputKeyDown = function onInputKeyDown(e) { if (this.refs.overlay.refs.menu && this.refs.overlay.refs.menu.onKeyNavNodeKeyDown) { this.refs.overlay.refs.menu.onKeyNavNodeKeyDown(e); } else if (e.keyCode === 13) { this.onNodeEnter(e); } if (e.keyCode === 40 || e.keyCode === 38) { e.preventDefault(); } }; Combobox.prototype.onSelectInnerClick = function onSelectInnerClick() { this.clickByUser = true; this.focusInput(); this.clickByUser = false; }; Combobox.prototype.focusInput = function focusInput() { findDOMNode(this.refs.target).focus(); }; Combobox.prototype.setInputValue = function setInputValue(value) { this.setState({ inputValue: value }); this.fakeInputWidth(value); this._inputValue = value; }; Combobox.prototype.clearValue = function clearValue() { if (this.props.multiple) { this.setInputValue(''); } this.focusInput(); }; Combobox.prototype.onRequestClose = function onRequestClose() { this.onVisibleChange(false); }; Combobox.prototype.onArrowClick = function onArrowClick() { if (!this.props.disabled) { this.onVisibleChange(!this.state.visible); this.focusInput(); } }; Combobox.prototype.onOpen = function onOpen() { var menu = this.refs.overlay.refs.menu; this._syncWidth(menu); this.props.onOpen(); }; Combobox.prototype.afterOpen = function afterOpen() { var menu = this.refs.overlay.refs.menu; this._enableScroll(menu); this.props.afterOpen(); }; Combobox.prototype.hasClear = function hasClear() { return this.props.hasClear && this.state.inputValue && !this.props.multiple && !this.props.disabled; }; return Combobox; }(_base2['default']), _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 弹层挂载容器节点 */ container: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]), /** * 选择器的尺寸 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 选择器的形状 */ shape: _propTypes2['default'].oneOf(['normal', 'arrow-only']), /** * 没有值的时候的占位符 */ placeholder: _propTypes2['default'].string, /** * 当前值 */ value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].array, _propTypes2['default'].node, _propTypes2['default'].object]), /** * 初始默认值 */ defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].array, _propTypes2['default'].node, _propTypes2['default'].object]), /** * 当前弹层是否显示 */ visible: _propTypes2['default'].bool, /** * 弹层初始是否显示 */ defaultVisible: _propTypes2['default'].bool, /** * 是否禁用 */ disabled: _propTypes2['default'].bool, /** * 传入的数据,可以动态渲染子项,详见[dataSource的使用](#dataSource的使用) */ dataSource: _propTypes2['default'].array, /** * 是否是多选 */ multiple: _propTypes2['default'].bool, /** * 是否启用标签模式, 仅在多选时有效,效果是除了自动提示外的选项, 也可以使用输入的文字作为标签 */ tags: _propTypes2['default'].bool, // TODO: Remove API at next version. /** * 填充到选择框里面的值 */ fillProps: _propTypes2['default'].string, /** * 是否显示顶部的搜索框 */ showSearch: _propTypes2['default'].bool, /** * 在输入的时候过滤的函数,仅在filterLocal为true时候有效 * @param {String} filterValue 筛选值 * @param {Object} option 选项 * @return {Boolean} 是否保留当前选项 */ filterBy: _propTypes2['default'].func, /** * 是否使用本地过滤,在数据源为远程的时候需要关闭此选项 */ filterLocal: _propTypes2['default'].bool, /** * 是否显示右侧的箭头 */ hasArrow: _propTypes2['default'].bool, /** * 下拉菜单是否与选择器对齐 */ autoWidth: _propTypes2['default'].bool, /** * 选择后是否立即隐藏菜单,单选是默认隐藏的,因此该选项只在多选的时候有效 */ hiddenSelected: _propTypes2['default'].bool, /** * Combobox在用户输入的时候触发的回调 * @param {String} value 输入值 */ onInputUpdate: _propTypes2['default'].func, /** * Combobox获取焦点的时候触发的回调 * @param {Event} e DOM事件对象 * @param {Boolean} clickByUser 是否用户点击 */ onInputFocus: _propTypes2['default'].func, /** * Combobox失去焦点的时候触发的回调 * @param {Event} e DOM事件对象 * @param {String} inputValue 输入值 */ onInputBlur: _propTypes2['default'].func, /** * Combobox回车的时候触发的回调 * @param {Event} e DOM事件对象 */ onInputEnter: _propTypes2['default'].func, /** * Combobox发生改变的时候触发的回调, 注意在输入的时候该事件不会被触发,如果需要监听输入的事件请使用onInputUpdate * @param {String} value 数据 * @param {Object} option 选项 */ onChange: _propTypes2['default'].func, /** * 在搜索框中输入触发的事件,仅在showSearch为true时候有效 * @param {String} value 搜索值 */ onSearch: _propTypes2['default'].func, /** * 是否显示清空按钮,该按钮可以清空select的value, 该属性仅在单选模式下有效 */ hasClear: _propTypes2['default'].bool, /** * 弹出层的样式类 */ popupClassName: _propTypes2['default'].string, /** * 弹出层的属性 */ popupProps: _propTypes2['default'].object, /** * 弹层显示或隐藏的时候触发的事件 * @param {Boolean} visible 弹层是否隐藏和显示 */ onVisibleChange: _propTypes2['default'].func, /** * 弹层显示时触发的事件 */ onOpen: _propTypes2['default'].func, /** * 弹层隐藏时触发的事件 */ onClose: _propTypes2['default'].func, /** * 自定义国际化文案对象 * @property {String} selectPlaceHolder 请选择的提示文案 * @property {String} comboboxPlaceHolder 请输入的提示文案 */ locale: _propTypes2['default'].object, /** * 自定义国际化语言 */ language: _propTypes2['default'].oneOf(['en-us', 'zh-cn', 'zh-tw']), afterOpen: _propTypes2['default'].func }, _class.defaultProps = { prefix: 'next-', size: 'medium', shape: 'normal', placeholder: '', disabled: false, multiple: false, showSearch: false, hasArrow: true, autoWidth: true, onVisibleChange: noop, onChange: noop, fillProps: 'value', filterLocal: true, onMouseDown: noop, onMouseUp: noop, onSearch: noop, onOpen: noop, onClose: noop, hasClear: false, animation: { 'in': 'expandInDown', out: 'expandOutUp' }, onInputUpdate: noop, onInputFocus: noop, onInputBlur: noop, onInputEnter: noop, hiddenSelected: false, labelInValue: false, locale: { selectPlaceHolder: '请选择', comboboxPlaceHolder: '请输入' }, afterOpen: noop }, _temp); Combobox.displayName = 'Combobox'; exports['default'] = (0, _nextLocaleProvider2['default'])(Combobox); module.exports = exports['default']; /***/ }), /***/ 2022: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; /* eslint-disable react/prop-types */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Select.Option */ var Option = (_temp = _class = function (_React$Component) { _inherits(Option, _React$Component); function Option() { _classCallCheck(this, Option); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Option.prototype.render = function render() { return this.props.children; }; return Option; }(_react2['default'].Component), _class.propTypes = { /** * 选项值 */ value: _propTypes2['default'].any, /** * 是否禁用 */ disabled: _propTypes2['default'].bool }, _temp); Option.displayName = 'Option'; exports['default'] = Option; module.exports = exports['default']; /***/ }), /***/ 2023: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = { 'en-us': { selectPlaceHolder: 'Please select', comboboxPlaceHolder: 'Please input' }, 'zh-cn': { selectPlaceHolder: '请选择', comboboxPlaceHolder: '请输入' }, 'zh-tw': { selectPlaceHolder: '請選擇', comboboxPlaceHolder: '請輸入' } }; module.exports = exports['default']; /***/ }), /***/ 2024: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _pagination = __webpack_require__(2025); var _pagination2 = _interopRequireDefault(_pagination); var _locale = __webpack_require__(2027); var _locale2 = _interopRequireDefault(_locale); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _pagination2['default'].LOCALE = _locale2['default']; exports['default'] = _pagination2['default']; module.exports = exports['default']; /***/ }), /***/ 2025: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextButton = __webpack_require__(1472); var _nextButton2 = _interopRequireDefault(_nextButton); var _nextInput = __webpack_require__(1448); var _nextInput2 = _interopRequireDefault(_nextInput); var _nextSelect = __webpack_require__(1567); var _nextSelect2 = _interopRequireDefault(_nextSelect); var _nextMixinKeyBinder = __webpack_require__(2026); var _nextMixinKeyBinder2 = _interopRequireDefault(_nextMixinKeyBinder); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; /** * Pagination */ var Pagination = (_temp = _class = function (_Component) { _inherits(Pagination, _Component); function Pagination(props, context) { _classCallCheck(this, Pagination); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); var current = props.current, defaultCurrent = props.defaultCurrent, total = props.total, pageSize = props.pageSize; _this.state = { current: _this.correctCurrent(current || defaultCurrent, total, pageSize), currentPageSize: pageSize }; _this.onJump = _this.onJump.bind(_this); _this.keyBinders = { enter: _this.onJump }; return _this; } Pagination.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var current = nextProps.current, total = nextProps.total, pageSize = nextProps.pageSize; var st = {}; var newCurrent = this.correctCurrent(current || this.state.current, total, pageSize); if (this.state.current !== newCurrent) { st.current = newCurrent; } if (this.state.currentPageSize !== pageSize) { st.currentPageSize = pageSize; } if (Object.keys(st).length) { this.setState(st); } }; Pagination.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; Pagination.prototype.correctCurrent = function correctCurrent(currentPage, total, currentPageSize) { var totalPage = this.getTotalPage(total, currentPageSize); return currentPage > totalPage ? totalPage : currentPage; }; Pagination.prototype.getTotalPage = function getTotalPage(total, currentPageSize) { var totalPage = Math.ceil(total / currentPageSize); return totalPage <= 0 ? 1 : totalPage; }; Pagination.prototype.onJump = function onJump(e) { var total = this.props.total; var _state = this.state, current = _state.current, currentPageSize = _state.currentPageSize; var totalPage = this.getTotalPage(total, currentPageSize); var value = parseInt(this.inputValue, 10); if (typeof value === 'number' && value >= 1 && value <= totalPage && value !== current) { this.onPageItemClick(value, e); } }; Pagination.prototype.onPageItemClick = function onPageItemClick(page, e) { var _this2 = this; if (!('current' in this.props)) { this.setState({ current: page }, function () { _this2.props.onChange(page, e); }); } else { this.props.onChange(page, e); } }; Pagination.prototype.onInputChange = function onInputChange(value) { this.inputValue = value; }; Pagination.prototype.onSelectSize = function onSelectSize(pageSize) { var newState = { currentPageSize: pageSize }; var totalPage = this.getTotalPage(this.props.total, pageSize); if (this.state.current > totalPage) { newState.current = totalPage; } this.setState(newState); this.props.onPageSizeChange(pageSize); }; Pagination.prototype.renderPageItem = function renderPageItem(index) { var _cx; var prefix = this.getPrefix(); var _props = this.props, size = _props.size, link = _props.link, pageNumberRender = _props.pageNumberRender; var current = this.state.current; var isCurrent = parseInt(index, 10) === current; var props = { size: size, className: (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, prefix + 'pagination-item', true), _defineProperty(_cx, 'current', isCurrent), _cx)), onClick: isCurrent ? noop : this.onPageItemClick.bind(this, index) }; if (link) { props.component = 'a'; props.href = link.replace('{page}', index); } return _react2['default'].createElement( _nextButton2['default'], _extends({}, props, { key: index }), pageNumberRender(index) ); }; Pagination.prototype.renderPageFirst = function renderPageFirst(current) { var _cx2; var prefix = this.getPrefix(); var _props2 = this.props, size = _props2.size, shape = _props2.shape, locale = _props2.locale; var isFirst = current <= 1; var props = { disabled: isFirst, size: size, className: (0, _classnames2['default'])((_cx2 = {}, _defineProperty(_cx2, prefix + 'pagination-item', true), _defineProperty(_cx2, 'prev', true), _cx2)), onClick: this.onPageItemClick.bind(this, current - 1) }; return _react2['default'].createElement( _nextButton2['default'], props, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-left' }), shape === 'arrow-only' || shape === 'arrow-prev-only' || shape === 'no-border' ? '' : locale.prev ); }; Pagination.prototype.renderPageLast = function renderPageLast(current, totalPage) { var _cx3; var prefix = this.getPrefix(); var _props3 = this.props, size = _props3.size, shape = _props3.shape, locale = _props3.locale; var isLast = current >= totalPage; var props = { disabled: isLast, size: size, className: (0, _classnames2['default'])((_cx3 = {}, _defineProperty(_cx3, prefix + 'pagination-item', true), _defineProperty(_cx3, 'next', true), _cx3)), onClick: this.onPageItemClick.bind(this, current + 1) }; return _react2['default'].createElement( _nextButton2['default'], props, shape === 'arrow-only' || shape === 'no-border' ? '' : locale.next, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-right' }) ); }; Pagination.prototype.renderPageEllipsis = function renderPageEllipsis(idx) { var prefix = this.getPrefix(); return _react2['default'].createElement( 'span', { className: prefix + 'pagination-ellipsis', key: 'ellipsis-' + idx }, '...' ); }; Pagination.prototype.renderPageJump = function renderPageJump() { var prefix = this.getPrefix(); var _props4 = this.props, size = _props4.size, locale = _props4.locale; var boundInput = this.getKeyBinderElement(_react2['default'].createElement(_nextInput2['default'], { type: 'text', size: size, onChange: this.onInputChange.bind(this) })); return _react2['default'].createElement( 'div', { className: prefix + 'pagination-jump' }, _react2['default'].createElement( 'span', null, locale.goTo ), boundInput, _react2['default'].createElement( 'span', null, locale.page ), _react2['default'].createElement( _nextButton2['default'], { size: size, className: prefix + 'pagination-go', onClick: this.onJump }, locale.go ) ); }; Pagination.prototype.renderPageDisplay = function renderPageDisplay(current, totalPage) { var prefix = this.getPrefix(); var pageNumberRender = this.props.pageNumberRender; return _react2['default'].createElement( 'span', { className: prefix + 'pagination-display' }, _react2['default'].createElement( 'em', null, pageNumberRender(current) ), '/', pageNumberRender(totalPage) ); }; Pagination.prototype.renderPageList = function renderPageList(current, totalPage) { var prefix = this.getPrefix(); var pageShowCount = this.props.pageShowCount; var pages = []; if (totalPage <= pageShowCount) { for (var i = 1; i <= totalPage; i++) { pages.push(this.renderPageItem(i)); } } else { // 除去第一页,最后一页以及当前页,剩下的页数 var othersCount = pageShowCount - 3; var halfCount = parseInt(othersCount / 2, 10); var start = void 0, end = void 0; pages.push(this.renderPageItem(1)); start = current - halfCount; end = current + halfCount; if (start <= 1) { start = 2; end = start + othersCount; } if (start > 2) { pages.push(this.renderPageEllipsis(1)); } if (end >= totalPage - 1) { end = totalPage - 1; start = totalPage - 1 - othersCount; } for (var j = start; j <= end; j++) { pages.push(this.renderPageItem(j)); } if (end < totalPage - 1) { pages.push(this.renderPageEllipsis(2)); } pages.push(this.renderPageItem(totalPage)); } return _react2['default'].createElement( 'div', { className: prefix + 'pagination-list' }, pages ); }; Pagination.prototype.renderPageSizeSelector = function renderPageSizeSelector() { var prefix = this.getPrefix(); var _props5 = this.props, pageSizeSelector = _props5.pageSizeSelector, locale = _props5.locale; var pageSizeSpan = _react2['default'].createElement( 'span', { className: prefix + 'pagination-size-selector-title' }, locale.pageSize ); switch (pageSizeSelector) { case 'filter': return _react2['default'].createElement( 'div', { className: prefix + 'pagination-size-selector' }, pageSizeSpan, this.renderPageSizeFilter() ); case 'dropdown': return _react2['default'].createElement( 'div', { className: prefix + 'pagination-size-selector' }, pageSizeSpan, this.renderPageSizeDropdown() ); default: return null; } }; Pagination.prototype.renderPageSizeFilter = function renderPageSizeFilter() { var _this3 = this; var prefix = this.getPrefix(); var _props6 = this.props, size = _props6.size, pageSizeList = _props6.pageSizeList; var currentPageSize = this.state.currentPageSize; return _react2['default'].createElement( 'div', { className: prefix + 'pagination-size-selector-filter' }, pageSizeList.map(function (pageSize, index) { var _cx4; var classes = (0, _classnames2['default'])((_cx4 = {}, _defineProperty(_cx4, prefix + 'pagination-size-selector-btn', true), _defineProperty(_cx4, 'current', pageSize === currentPageSize), _cx4)); return _react2['default'].createElement( _nextButton2['default'], { key: index, shape: 'text', size: size, className: classes, onClick: pageSize !== currentPageSize ? _this3.onSelectSize.bind(_this3, pageSize) : null }, pageSize ); }) ); }; Pagination.prototype.renderPageSizeDropdown = function renderPageSizeDropdown() { var prefix = this.getPrefix(); var _props7 = this.props, size = _props7.size, pageSizeList = _props7.pageSizeList; var currentPageSize = this.state.currentPageSize; return _react2['default'].createElement( _nextSelect2['default'], { className: prefix + 'pagination-size-selector-dropdown', size: size, value: currentPageSize, onChange: this.onSelectSize.bind(this) }, pageSizeList.map(function (pageSize, index) { return _react2['default'].createElement( _nextSelect.Option, { key: index, value: pageSize }, pageSize ); }) ); }; Pagination.prototype.render = function render() { var _cx5; /* eslint-disable no-unused-vars */ var prefix = this.getPrefix(); var _props8 = this.props, propsPrefix = _props8.prefix, type = _props8.type, size = _props8.size, shape = _props8.shape, className = _props8.className, total = _props8.total, pageSize = _props8.pageSize, pageSizeSelector = _props8.pageSizeSelector, pageSizeList = _props8.pageSizeList, pageSizePosition = _props8.pageSizePosition, onPageSizeChange = _props8.onPageSizeChange, hideOnlyOnePage = _props8.hideOnlyOnePage, showJump = _props8.showJump, locale = _props8.locale, current = _props8.current, defaultCurrent = _props8.defaultCurrent, pageShowCount = _props8.pageShowCount, link = _props8.link, language = _props8.language, pageNumberRender = _props8.pageNumberRender, onChange = _props8.onChange, others = _objectWithoutProperties(_props8, ['prefix', 'type', 'size', 'shape', 'className', 'total', 'pageSize', 'pageSizeSelector', 'pageSizeList', 'pageSizePosition', 'onPageSizeChange', 'hideOnlyOnePage', 'showJump', 'locale', 'current', 'defaultCurrent', 'pageShowCount', 'link', 'language', 'pageNumberRender', 'onChange']); /* eslint-enable */ var _state2 = this.state, currentPage = _state2.current, currentPageSize = _state2.currentPageSize; var totalPage = this.getTotalPage(total, currentPageSize); var pageFirst = this.renderPageFirst(currentPage); var pageLast = this.renderPageLast(currentPage, totalPage); var sizeSelector = this.renderPageSizeSelector(); var isStart = pageSizePosition === 'start'; var classes = (0, _classnames2['default'])((_cx5 = {}, _defineProperty(_cx5, prefix + 'pagination', true), _defineProperty(_cx5, prefix + 'pagination-' + type, type), _defineProperty(_cx5, prefix + 'pagination-' + shape, shape), _defineProperty(_cx5, prefix + 'pagination-' + size, size), _defineProperty(_cx5, size, size), _defineProperty(_cx5, 'start', !!pageSizeSelector && isStart), _defineProperty(_cx5, 'end', !!pageSizeSelector && !isStart), _defineProperty(_cx5, 'hide', totalPage <= 1 && hideOnlyOnePage), _defineProperty(_cx5, className, !!className), _cx5)); var buildComponent = function buildComponent() { for (var _len = arguments.length, coms = Array(_len), _key = 0; _key < _len; _key++) { coms[_key] = arguments[_key]; } return _react2['default'].createElement( 'div', _extends({ className: classes }, others), isStart && sizeSelector, _react2['default'].createElement( 'div', { className: prefix + 'pagination-pages' }, coms.map(function (com, index) { return com && _react2['default'].cloneElement(com, { key: index }); }) ), !isStart && sizeSelector ); }; switch (type) { case 'mini': return buildComponent(pageFirst, pageLast); case 'simple': { var pageDisplay = this.renderPageDisplay(currentPage, totalPage); return buildComponent(pageFirst, pageDisplay, pageLast); } case 'normal': { var pageList = this.renderPageList(currentPage, totalPage); var _pageDisplay = showJump && totalPage > 5 ? this.renderPageDisplay(currentPage, totalPage) : null; var pageJump = showJump && totalPage > 5 ? this.renderPageJump(currentPage, totalPage) : null; return buildComponent(pageFirst, pageList, pageLast, _pageDisplay, pageJump); } default: return null; } }; return Pagination; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 分页组件类型 */ type: _propTypes2['default'].oneOf(['normal', 'simple', 'mini']), /** * 前进后退按钮样式 */ shape: _propTypes2['default'].oneOf(['normal', 'arrow-only', 'arrow-prev-only', 'no-border']), /** * 分页组件大小 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * (受控)当前页码 */ current: _propTypes2['default'].number, /** * (非受控)初始页码 */ defaultCurrent: _propTypes2['default'].number, /** * 页码发生改变时的回调函数 * @param {Number} current 改变后的页码数 * @param {Object} e 点击事件对象 */ onChange: _propTypes2['default'].func, /** * 总记录数 */ total: _propTypes2['default'].number, /** * 页码显示的数量,更多的使用...代替 */ pageShowCount: _propTypes2['default'].number, /** * 一页中的记录数 */ pageSize: _propTypes2['default'].number, /** * 每页显示记录数量选择器类型 */ pageSizeSelector: _propTypes2['default'].oneOf([false, 'filter', 'dropdown']), /** * 每页显示记录数量选择器可选值 */ pageSizeList: _propTypes2['default'].arrayOf(_propTypes2['default'].number), /** * 自定义页码渲染函数,函数作用于页码button以及当前页/总页数的数字渲染 * @param {Number} index 分页的页码,从1开始 * @return {ReactNode} 返回渲染结果 */ pageNumberRender: _propTypes2['default'].func, /** * 每页显示记录数量选择器在组件中的位置 */ pageSizePosition: _propTypes2['default'].oneOf(['start', 'end']), /** * 每页显示记录数量改变时的回调函数 * @param {Number} pageSize 改变后的每页显示记录数 */ onPageSizeChange: _propTypes2['default'].func, /** * 当分页数为1时,是否隐藏分页器 */ hideOnlyOnePage: _propTypes2['default'].bool, /** * type 设置为 normal 时,在页码数超过5页后,会显示跳转输入框与按钮,当设置 showJump 为 false 时,不再显示该跳转区域 */ showJump: _propTypes2['default'].bool, /** * 设置页码按钮的跳转链接,它的值为一个包含 {page} 的模版字符串,如:http://xxx.com/{page} */ link: _propTypes2['default'].string, /** * 自定义国际化文案对象 */ locale: _propTypes2['default'].object, /** * 自定义国际化语言 */ language: _propTypes2['default'].oneOf(['zh-cn', 'en-us', 'zh-tw']) }, _class.defaultProps = { prefix: 'next-', type: 'normal', shape: 'normal', size: 'medium', defaultCurrent: 1, onChange: noop, pageSize: 10, pageSizeSelector: false, pageSizeList: [5, 10, 20], pageSizePosition: 'start', onPageSizeChange: noop, total: 100, pageShowCount: 5, hideOnlyOnePage: false, showJump: true, pageNumberRender: function pageNumberRender(index) { return index; } }, _temp); Pagination.displayName = 'Pagination'; Object.keys(_nextMixinKeyBinder2['default']).forEach(function (key) { Pagination.prototype[key] = _nextMixinKeyBinder2['default'][key]; }); exports['default'] = (0, _nextLocaleProvider2['default'])(Pagination); module.exports = exports['default']; /***/ }), /***/ 2026: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var makeChain = _nextUtil.func.makeChain; var lastCode = void 0; var getCode = function getCode(keyCode) { return Object.keys(_nextUtil.keyCode).find(function (name) { return _nextUtil.keyCode[name] === keyCode; }); }; exports['default'] = { getKeyBinderElement: function getKeyBinderElement(element) { return _react2['default'].cloneElement(element, { onKeyDown: makeChain(this._onKeyBinderKeyDown.bind(this), element.props.onKeyDown), ref: 'keybinderNode' }); }, _onKeyBinderKeyDown: function _onKeyBinderKeyDown(e) { var code = void 0, match = void 0; var currentCode = getCode(e.keyCode); if (currentCode) { code = currentCode.toLowerCase(); } else { code = String.fromCharCode(e.keyCode).toLowerCase(); } var keyBinders = this.keyBinders; if (e.ctrlKey) { match = keyBinders['ctrl+' + code]; } else if (e.shiftKey) { match = keyBinders['shift+' + code]; } else if (e.altKey) { match = keyBinders['alt+' + code]; } else { match = keyBinders[code]; } if (!match) { if (lastCode) { match = keyBinders[lastCode + ' ' + code]; } } if (typeof match === 'string') { match = this[match].bind(this); } else if (typeof match === 'function') { match = match.bind(this); } if (typeof match === 'function') { match(e); } lastCode = code; } }; module.exports = exports['default']; /***/ }), /***/ 2027: /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { 'en-us': { prev: 'Previous', next: 'Next', goTo: 'Go to', page: 'Page', go: 'Go', pageSize: 'Items per page:' }, 'zh-cn': { prev: '上一页', next: '下一页', goTo: '到第', page: '页', go: '确定', pageSize: '每页显示:' }, 'zh-tw': { prev: '上一頁', next: '下一頁', goTo: '到第', page: '頁', go: '確定', pageSize: '每頁顯示:' } }; /***/ }), /***/ 2233: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_antd_lib_modal_style_css__ = __webpack_require__(32); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_antd_lib_modal_style_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_antd_lib_modal_style_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_antd_lib_modal__ = __webpack_require__(33); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_antd_lib_modal___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_antd_lib_modal__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_educoder__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_moment__ = __webpack_require__(86); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_moment__); var _createClass=function(){function defineProperties(target,props){for(var i=0;i {/**/}{/**/}var system_updates=this.state.system_updates;var updata=this.props.updata;return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_antd_lib_modal___default.a,{keyboard:false,title:updata&&updata.subject,visible:system_updates// visible={this.props.modalsType===undefined?false:this.props.modalsType} ,closable:false,footer:null,destroyOnClose:true,centered:true,width:'530px'},__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement('div',{className:'task-popup-content'},__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement('pre',{className:'break-word break-word-firefox'},updata&&updata.system_score),__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement('div',{className:'clearfix edu-txt-center mt20'},__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement('a',{className:'task-btn task-btn-orange pop_close',onClick:function onClick(){return _this2.setmodalSave();}},'\u77E5\u9053\u5566'))));}}]);return UpgradeModals;}(__WEBPACK_IMPORTED_MODULE_2_react__["Component"]);/* harmony default export */ __webpack_exports__["a"] = (UpgradeModals); /***/ }), /***/ 2257: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextOverlay = __webpack_require__(1401); var _nextUtil = __webpack_require__(889); var _inner = __webpack_require__(2258); var _inner2 = _interopRequireDefault(_inner); var _alignMap = __webpack_require__(2259); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; var alignMap = _alignMap.normalMap; /** Balloon */ var Balloon = (_temp = _class = function (_React$Component) { _inherits(Balloon, _React$Component); function Balloon(props, context) { _classCallCheck(this, Balloon); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this.state = { align: props.align, visible: 'visible' in props ? props.visible : props.defaultVisible }; return _this; } Balloon.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('visible' in nextProps) { this.setState({ visible: nextProps.visible }); } }; Balloon.prototype._onVisibleChange = function _onVisibleChange(visible) { // Not Controlled if (!('visible' in this.props)) { this.setState({ visible: visible }); } var onVisibleChange = this.props.onVisibleChange; if (this.props.onChange) { // 存在onChange即提示 _nextUtil.log.deprecated('onChange', 'onVisibleChange', 'balloon'); // 如果没有onVisibleChange, 用老的onChange api if (onVisibleChange === undefined) { onVisibleChange = this.props.onChange; } } //既没有onChange,也没有onVisibleChange if (onVisibleChange === undefined) { onVisibleChange = noop; } onVisibleChange(visible); }; Balloon.prototype._onClose = function _onClose(e) { //this.props.onClose(); this._onVisibleChange(false); this.props.onCloseClick(); //必须加上preventDefault,否则单测IE下报错,出现full page reload 异常 e.preventDefault(); }; Balloon.prototype._onPosition = function _onPosition(res) { alignMap = this.props.alignment === 'normal' ? _alignMap.normalMap : _alignMap.edgeMap; var newAlign = res.align.join(' '); var resAlign = void 0; for (var key in alignMap) { if (alignMap[key].align === newAlign) { resAlign = key; break; } } resAlign = resAlign || this.state.align; if (resAlign !== this.state.align) { this.setState({ align: resAlign }); } }; Balloon.prototype.render = function render() { var _props = this.props, type = _props.type, _prefix = _props.prefix, className = _props.className, alignment = _props.alignment, trigger = _props.trigger, triggerType = _props.triggerType, children = _props.children, closable = _props.closable, shouldUpdatePosition = _props.shouldUpdatePosition, delay = _props.delay, needAdjust = _props.needAdjust, safeId = _props.safeId, autoFocus = _props.autoFocus, safeNode = _props.safeNode, onClick = _props.onClick, onHover = _props.onHover, animation = _props.animation, _offset = _props.offset, _style = _props.style, __isTooltip = _props.__isTooltip, container = _props.container, cache = _props.cache, others = _objectWithoutProperties(_props, ['type', 'prefix', 'className', 'alignment', 'trigger', 'triggerType', 'children', 'closable', 'shouldUpdatePosition', 'delay', 'needAdjust', 'safeId', 'autoFocus', 'safeNode', 'onClick', 'onHover', 'animation', 'offset', 'style', '__isTooltip', 'container', 'cache']), align = this.state.align; alignMap = alignment === 'normal' ? _alignMap.normalMap : _alignMap.edgeMap; var prefix = this.context.prefix || _prefix; var offset = [alignMap[align].offset[0] + _offset[0], alignMap[align].offset[1] + _offset[1]]; var transformOrigin = alignMap[align].trOrigin; var style = _extends({ transformOrigin: transformOrigin }, _style); var content = _react2['default'].createElement( _inner2['default'], _extends({ prefix: prefix, closable: closable, onClose: this._onClose.bind(this), __isTooltip: __isTooltip, className: className, style: style, align: align, type: type, alignment: alignment }, (0, _nextUtil.pickAttrs)(others)), children ); return _react2['default'].createElement( _nextOverlay.Popup, { trigger: trigger, cache: cache, safeId: safeId, triggerType: triggerType, align: alignMap[align].align, offset: offset, visible: this.state.visible, onPosition: this._onPosition.bind(this), onClick: onClick, onHover: onHover, onClose: this.props.onClose, afterClose: this.props.afterClose, onVisibleChange: this._onVisibleChange.bind(this), shouldUpdatePosition: shouldUpdatePosition, needAdjust: needAdjust, animation: animation, delay: delay, autoFocus: autoFocus, safeNode: safeNode, container: container }, content ); }; return Balloon; }(_react2['default'].Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内敛样式 */ style: _propTypes2['default'].object, /** * 浮层的内容 */ children: _propTypes2['default'].any, size: _propTypes2['default'].string, /** * 样式类型 */ type: _propTypes2['default'].oneOf(['normal', 'primary']), /** * 弹层当前显示的状态 */ visible: _propTypes2['default'].bool, /** * 弹层默认显示的状态 */ defaultVisible: _propTypes2['default'].bool, /** * 弹层在显示和隐藏触发的事件 * @param {Boolean} visible 弹层是否隐藏和显示 */ onVisibleChange: _propTypes2['default'].func, /** * 弹出层对齐方式 * @enumdesc 普通对齐 箭头居中, 边缘对齐 箭头可在trigger的边缘 */ alignment: _propTypes2['default'].oneOf(['normal', 'edge']), /** * 是否显示关闭按钮 */ closable: _propTypes2['default'].bool, /** * 弹出层位置 * @enumdesc 上, 右, 下, 左, 上左, 上右, 下左, 下右, 左上, 左下, 右上, 右下 */ align: _propTypes2['default'].oneOf(['t', 'r', 'b', 'l', 'tl', 'tr', 'bl', 'br', 'lt', 'lb', 'rt', 'rb']), /** * 弹层相对于trigger的定位的微调 */ offset: _propTypes2['default'].array, /** * 触发元素 */ trigger: _propTypes2['default'].any, /** * 触发行为 * @enumdesc 鼠标悬浮, 获取到焦点, 鼠标点击 */ triggerType: _propTypes2['default'].oneOf(['hover', 'focus', 'click']), onChange: _propTypes2['default'].func, onClick: _propTypes2['default'].func, /** * 任何visible为false时会触发的事件 */ onClose: _propTypes2['default'].func, /** * 点击关闭按钮的click事件 */ onCloseClick: _propTypes2['default'].func, onHover: _propTypes2['default'].func, /** * 是否进行自动位置调整 */ needAdjust: _propTypes2['default'].bool, /** * 弹层在触发以后的延时显示 */ delay: _propTypes2['default'].number, /** * 浮层关闭后触发的事件, 如果有动画,则在动画结束后触发 */ afterClose: _propTypes2['default'].func, /** * 强制更新定位信息 */ shouldUpdatePosition: _propTypes2['default'].bool, /** * 弹层出现后是否自动focus到内部第一个元素 */ autoFocus: _propTypes2['default'].bool, /** * 安全节点:对于triggetType为click的浮层,会在点击除了浮层外的其它区域时关闭浮层.safeNode用于添加不触发关闭的节点, 值可以是dom节点的id或者是节点的dom对象 */ safeNode: _propTypes2['default'].string, /** * 用来指定safeNode节点的id,和safeNode配合使用 */ safeId: _propTypes2['default'].string, /** * 配置动画的播放方式 * @param {String} in 进场动画 * @param {String} out 出场动画 */ animation: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].bool]), /** * 弹层的dom节点关闭时是否删除 */ cache: _propTypes2['default'].bool, /** * 指定浮层渲染的父节点, 可以为节点id的字符串,也可以返回节点的函数。 */ container: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]), __isTooltip: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-', type: 'normal', closable: true, defaultVisible: false, size: 'medium', alignment: 'normal', align: 'b', offset: [0, 0], trigger: _react2['default'].createElement('span', null), onClose: noop, onCloseClick: noop, afterClose: noop, needAdjust: false, triggerType: 'hover', safeNode: undefined, safeId: null, autoFocus: false, animation: { 'in': 'zoomIn', out: 'zoomOut' }, cache: false, __isTooltip: false }, _temp); Balloon.displayName = 'Balloon'; exports['default'] = Balloon; module.exports = exports['default']; /***/ }), /***/ 2258: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; /** * Created by xiachi on 17/2/10. */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _alignMap = __webpack_require__(2259); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var alignMap = _alignMap.normalMap; var noop = function noop() {}; var BalloonInner = (_temp = _class = function (_React$Component) { _inherits(BalloonInner, _React$Component); function BalloonInner() { _classCallCheck(this, BalloonInner); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } BalloonInner.prototype.render = function render() { var _classNames; var _props = this.props, _prefix = _props.prefix, closable = _props.closable, className = _props.className, style = _props.style, __isTooltip = _props.__isTooltip, align = _props.align, type = _props.type, onClose = _props.onClose, alignment = _props.alignment, children = _props.children, others = _objectWithoutProperties(_props, ['prefix', 'closable', 'className', 'style', '__isTooltip', 'align', 'type', 'onClose', 'alignment', 'children']); alignMap = alignment === 'normal' ? _alignMap.normalMap : _alignMap.edgeMap; var prefix = this.context.prefix || _prefix; prefix = prefix + 'balloon'; if (__isTooltip) { prefix = prefix + '-tooltip'; } var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, '' + prefix, true), _defineProperty(_classNames, prefix + '-' + type, type), _defineProperty(_classNames, prefix + '-medium', true), _defineProperty(_classNames, prefix + '-' + alignMap[align].arrow, alignMap[align]), _defineProperty(_classNames, prefix + '-closable', closable), _defineProperty(_classNames, className, className), _classNames)); return _react2['default'].createElement( 'div', _extends({ className: classes, style: style }, others), closable ? _react2['default'].createElement( 'a', { href: 'javascript:void(0);', className: prefix + '-close', onClick: onClose }, _react2['default'].createElement(_nextIcon2['default'], { type: 'close', size: 'small' }) ) : null, children ); }; return BalloonInner; }(_react2['default'].Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { prefix: _propTypes2['default'].string, closable: _propTypes2['default'].bool, children: _propTypes2['default'].any, className: _propTypes2['default'].string, alignment: _propTypes2['default'].string, onClose: _propTypes2['default'].func, style: _propTypes2['default'].any, align: _propTypes2['default'].oneOf(['t', 'r', 'b', 'l', 'tl', 'tr', 'bl', 'br', 'lt', 'lb', 'rt', 'rb']), type: _propTypes2['default'].string, __isTooltip: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-', closable: true, onClose: noop, align: 'b', type: 'normal', alignment: 'normal' }, _temp); BalloonInner.displayName = 'BalloonInner'; exports['default'] = BalloonInner; module.exports = exports['default']; /***/ }), /***/ 2259: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Created by xiachi on 17/1/17. */ var alignMap = { normalMap: { t: { align: 'bc tc', arrow: 'bottom', trOrigin: 'bottom', offset: [0, -12] }, r: { align: 'cl cr', arrow: 'left', trOrigin: 'left', offset: [12, 0] }, b: { align: 'tc bc', arrow: 'top', trOrigin: 'top', offset: [0, 12] }, l: { align: 'cr cl', arrow: 'right', trOrigin: 'right', offset: [-12, 0] }, tl: { align: 'br tc', arrow: 'bottom-right', trOrigin: 'bottom right', offset: [20, -12] }, tr: { align: 'bl tc', arrow: 'bottom-left', trOrigin: 'bottom left', offset: [-20, -12] }, rt: { align: 'bl cr', arrow: 'left-bottom', trOrigin: 'bottom left', offset: [12, 20] }, rb: { align: 'tl cr', arrow: 'left-top', trOrigin: 'top left', offset: [12, -20] }, bl: { align: 'tr bc', arrow: 'top-right', trOrigin: 'top right', offset: [20, 12] }, br: { align: 'tl bc', arrow: 'top-left', trOrigin: 'top left', offset: [-20, 12] }, lt: { align: 'br cl', arrow: 'right-bottom', trOrigin: 'bottom right', offset: [-12, 20] }, lb: { align: 'tr cl', arrow: 'right-top', trOrigin: 'top right', offset: [-12, -20] } }, edgeMap: { t: { align: 'bc tc', arrow: 'bottom', trOrigin: 'bottom', offset: [0, -12] }, r: { align: 'cl cr', arrow: 'left', trOrigin: 'left', offset: [12, 0] }, b: { align: 'tc bc', arrow: 'top', trOrigin: 'top', offset: [0, 12] }, l: { align: 'cr cl', arrow: 'right', trOrigin: 'right', offset: [-12, 0] }, tl: { align: 'bl tl', arrow: 'bottom-left', trOrigin: 'bottom left', offset: [0, -12] }, tr: { align: 'br tr', arrow: 'bottom-right', trOrigin: 'bottom right', offset: [0, -12] }, rt: { align: 'tl tr', arrow: 'left-top', trOrigin: 'top left', offset: [12, 0] }, rb: { align: 'bl br', arrow: 'left-bottom', trOrigin: 'bottom left', offset: [12, 0] }, bl: { align: 'tl bl', arrow: 'top-left', trOrigin: 'top left', offset: [0, 12] }, br: { align: 'tr br', arrow: 'top-right', trOrigin: 'top right', offset: [0, 12] }, lt: { align: 'tr tl', arrow: 'right-top', trOrigin: 'top right', offset: [-12, 0] }, lb: { align: 'br bl', arrow: 'right-bottom', trOrigin: 'bottom right', offset: [-12, 0] } } }; exports['default'] = alignMap; module.exports = exports['default']; /***/ }), /***/ 2260: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { var b = { 1: "١", 2: "٢", 3: "٣", 4: "٤", 5: "٥", 6: "٦", 7: "٧", 8: "٨", 9: "٩", 0: "٠" }, c = { "١": "1", "٢": "2", "٣": "3", "٤": "4", "٥": "5", "٦": "6", "٧": "7", "٨": "8", "٩": "9", "٠": "0" }, d = function d(a) { return 0 === a ? 0 : 1 === a ? 1 : 2 === a ? 2 : a % 100 >= 3 && 10 >= a % 100 ? 3 : a % 100 >= 11 ? 4 : 5; }, e = { s: ["أقل من ثانية", "ثانية واحدة", ["ثانيتان", "ثانيتين"], "%d ثوان", "%d ثانية", "%d ثانية"], m: ["أقل من دقيقة", "دقيقة واحدة", ["دقيقتان", "دقيقتين"], "%d دقائق", "%d دقيقة", "%d دقيقة"], h: ["أقل من ساعة", "ساعة واحدة", ["ساعتان", "ساعتين"], "%d ساعات", "%d ساعة", "%d ساعة"], d: ["أقل من يوم", "يوم واحد", ["يومان", "يومين"], "%d أيام", "%d يومًا", "%d يوم"], M: ["أقل من شهر", "شهر واحد", ["شهران", "شهرين"], "%d أشهر", "%d شهرا", "%d شهر"], y: ["أقل من عام", "عام واحد", ["عامان", "عامين"], "%d أعوام", "%d عامًا", "%d عام"] }, f = function f(a) { return function (b, c) { var h = d(b), i = e[a][d(b)];return 2 === h && (i = i[c ? 0 : 1]), i.replace(/%d/i, b); }; }, g = ["كانون الثاني يناير", "شباط فبراير", "آذار مارس", "نيسان أبريل", "أيار مايو", "حزيران يونيو", "تموز يوليو", "آب أغسطس", "أيلول سبتمبر", "تشرين الأول أكتوبر", "تشرين الثاني نوفمبر", "كانون الأول ديسمبر"], h = a.defineLocale("ar", { months: g, monthsShort: g, weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"), weekdaysShort: "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"), weekdaysMin: "ح_ن_ث_ر_خ_ج_س".split("_"), weekdaysParseExact: !0, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "D/‏M/‏YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, meridiemParse: /ص|م/, isPM: function isPM(a) { return "م" === a; }, meridiem: function meridiem(a) { return 12 > a ? "ص" : "م"; }, calendar: { sameDay: "[اليوم عند الساعة] LT", nextDay: "[غدًا عند الساعة] LT", nextWeek: "dddd [عند الساعة] LT", lastDay: "[أمس عند الساعة] LT", lastWeek: "dddd [عند الساعة] LT", sameElse: "L" }, relativeTime: { future: "بعد %s", past: "منذ %s", s: f("s"), m: f("m"), mm: f("m"), h: f("h"), hh: f("h"), d: f("d"), dd: f("d"), M: f("M"), MM: f("M"), y: f("y"), yy: f("y") }, preparse: function preparse(a) { return a.replace(/\u200f/g, "").replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (a) { return c[a]; }).replace(/،/g, ","); }, postformat: function postformat(a) { return a.replace(/\d/g, function (a) { return b[a]; }).replace(/,/g, "،"); }, week: { dow: 6, doy: 12 } });return h; }); /***/ }), /***/ 2261: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { function b(a, b, c) { var e = { m: ["eine Minute", "einer Minute"], h: ["eine Stunde", "einer Stunde"], d: ["ein Tag", "einem Tag"], dd: [a + " Tage", a + " Tagen"], M: ["ein Monat", "einem Monat"], MM: [a + " Monate", a + " Monaten"], y: ["ein Jahr", "einem Jahr"], yy: [a + " Jahre", a + " Jahren"] };return b ? e[c][0] : e[c][1]; }var c = a.defineLocale("de", { months: "Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"), monthsShort: "Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"), monthsParseExact: !0, weekdays: "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"), weekdaysShort: "So._Mo._Di._Mi._Do._Fr._Sa.".split("_"), weekdaysMin: "So_Mo_Di_Mi_Do_Fr_Sa".split("_"), weekdaysParseExact: !0, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY HH:mm", LLLL: "dddd, D. MMMM YYYY HH:mm" }, calendar: { sameDay: "[heute um] LT [Uhr]", sameElse: "L", nextDay: "[morgen um] LT [Uhr]", nextWeek: "dddd [um] LT [Uhr]", lastDay: "[gestern um] LT [Uhr]", lastWeek: "[letzten] dddd [um] LT [Uhr]" }, relativeTime: { future: "in %s", past: "vor %s", s: "ein paar Sekunden", m: b, mm: "%d Minuten", h: b, hh: "%d Stunden", d: b, dd: b, M: b, MM: b, y: b, yy: b }, ordinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } });return c; }); /***/ }), /***/ 2262: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { var b = "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"), c = "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"), d = a.defineLocale("es", { months: "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"), monthsShort: function monthsShort(a, d) { return (/-MMM-/.test(d) ? c[a.month()] : b[a.month()] ); }, monthsParseExact: !0, weekdays: "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"), weekdaysShort: "dom._lun._mar._mié._jue._vie._sáb.".split("_"), weekdaysMin: "do_lu_ma_mi_ju_vi_sá".split("_"), weekdaysParseExact: !0, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD/MM/YYYY", LL: "D [de] MMMM [de] YYYY", LLL: "D [de] MMMM [de] YYYY H:mm", LLLL: "dddd, D [de] MMMM [de] YYYY H:mm" }, calendar: { sameDay: function sameDay() { return "[hoy a la" + (1 !== this.hours() ? "s" : "") + "] LT"; }, nextDay: function nextDay() { return "[mañana a la" + (1 !== this.hours() ? "s" : "") + "] LT"; }, nextWeek: function nextWeek() { return "dddd [a la" + (1 !== this.hours() ? "s" : "") + "] LT"; }, lastDay: function lastDay() { return "[ayer a la" + (1 !== this.hours() ? "s" : "") + "] LT"; }, lastWeek: function lastWeek() { return "[el] dddd [pasado a la" + (1 !== this.hours() ? "s" : "") + "] LT"; }, sameElse: "L" }, relativeTime: { future: "en %s", past: "hace %s", s: "unos segundos", m: "un minuto", mm: "%d minutos", h: "una hora", hh: "%d horas", d: "un día", dd: "%d días", M: "un mes", MM: "%d meses", y: "un año", yy: "%d años" }, ordinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 1, doy: 4 } });return d; }); /***/ }), /***/ 2263: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { var b = a.defineLocale("fr", { months: "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"), monthsShort: "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"), monthsParseExact: !0, weekdays: "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"), weekdaysShort: "dim._lun._mar._mer._jeu._ven._sam.".split("_"), weekdaysMin: "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"), weekdaysParseExact: !0, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Aujourd'hui à] LT", nextDay: "[Demain à] LT", nextWeek: "dddd [à] LT", lastDay: "[Hier à] LT", lastWeek: "dddd [dernier à] LT", sameElse: "L" }, relativeTime: { future: "dans %s", past: "il y a %s", s: "quelques secondes", m: "une minute", mm: "%d minutes", h: "une heure", hh: "%d heures", d: "un jour", dd: "%d jours", M: "un mois", MM: "%d mois", y: "un an", yy: "%d ans" }, ordinalParse: /\d{1,2}(er|)/, ordinal: function ordinal(a) { return a + (1 === a ? "er" : ""); }, week: { dow: 1, doy: 4 } });return b; }); /***/ }), /***/ 2264: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { var b = { 1: "१", 2: "२", 3: "३", 4: "४", 5: "५", 6: "६", 7: "७", 8: "८", 9: "९", 0: "०" }, c = { "१": "1", "२": "2", "३": "3", "४": "4", "५": "5", "६": "6", "७": "7", "८": "8", "९": "9", "०": "0" }, d = a.defineLocale("hi", { months: "जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"), monthsShort: "जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"), monthsParseExact: !0, weekdays: "रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"), weekdaysShort: "रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"), weekdaysMin: "र_सो_मं_बु_गु_शु_श".split("_"), longDateFormat: { LT: "A h:mm बजे", LTS: "A h:mm:ss बजे", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, A h:mm बजे", LLLL: "dddd, D MMMM YYYY, A h:mm बजे" }, calendar: { sameDay: "[आज] LT", nextDay: "[कल] LT", nextWeek: "dddd, LT", lastDay: "[कल] LT", lastWeek: "[पिछले] dddd, LT", sameElse: "L" }, relativeTime: { future: "%s में", past: "%s पहले", s: "कुछ ही क्षण", m: "एक मिनट", mm: "%d मिनट", h: "एक घंटा", hh: "%d घंटे", d: "एक दिन", dd: "%d दिन", M: "एक महीने", MM: "%d महीने", y: "एक वर्ष", yy: "%d वर्ष" }, preparse: function preparse(a) { return a.replace(/[१२३४५६७८९०]/g, function (a) { return c[a]; }); }, postformat: function postformat(a) { return a.replace(/\d/g, function (a) { return b[a]; }); }, meridiemParse: /रात|सुबह|दोपहर|शाम/, meridiemHour: function meridiemHour(a, b) { return 12 === a && (a = 0), "रात" === b ? 4 > a ? a : a + 12 : "सुबह" === b ? a : "दोपहर" === b ? a >= 10 ? a : a + 12 : "शाम" === b ? a + 12 : void 0; }, meridiem: function meridiem(a) { return 4 > a ? "रात" : 10 > a ? "सुबह" : 17 > a ? "दोपहर" : 20 > a ? "शाम" : "रात"; }, week: { dow: 0, doy: 6 } });return d; }); /***/ }), /***/ 2265: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { var b = a.defineLocale("it", { months: "gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"), monthsShort: "gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"), weekdays: "Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"), weekdaysShort: "Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"), weekdaysMin: "Do_Lu_Ma_Me_Gi_Ve_Sa".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Oggi alle] LT", nextDay: "[Domani alle] LT", nextWeek: "dddd [alle] LT", lastDay: "[Ieri alle] LT", lastWeek: function lastWeek() { switch (this.day()) {case 0: return "[la scorsa] dddd [alle] LT";default: return "[lo scorso] dddd [alle] LT";} }, sameElse: "L" }, relativeTime: { future: function future(a) { return (/^[0-9].+$/.test(a) ? "tra" : "in") + " " + a; }, past: "%s fa", s: "alcuni secondi", m: "un minuto", mm: "%d minuti", h: "un'ora", hh: "%d ore", d: "un giorno", dd: "%d giorni", M: "un mese", MM: "%d mesi", y: "un anno", yy: "%d anni" }, ordinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 1, doy: 4 } });return b; }); /***/ }), /***/ 2266: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { var b = a.defineLocale("ja", { months: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), weekdays: "日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"), weekdaysShort: "日_月_火_水_木_金_土".split("_"), weekdaysMin: "日_月_火_水_木_金_土".split("_"), longDateFormat: { LT: "Ah時m分", LTS: "Ah時m分s秒", L: "YYYY/MM/DD", LL: "YYYY年M月D日", LLL: "YYYY年M月D日Ah時m分", LLLL: "YYYY年M月D日Ah時m分 dddd" }, meridiemParse: /午前|午後/i, isPM: function isPM(a) { return "午後" === a; }, meridiem: function meridiem(a) { return 12 > a ? "午前" : "午後"; }, calendar: { sameDay: "[今日] LT", nextDay: "[明日] LT", nextWeek: "[来週]dddd LT", lastDay: "[昨日] LT", lastWeek: "[前週]dddd LT", sameElse: "L" }, ordinalParse: /\d{1,2}日/, ordinal: function ordinal(a, b) { switch (b) {case "d":case "D":case "DDD": return a + "日";default: return a;} }, 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年" } });return b; }); /***/ }), /***/ 2267: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { var b = a.defineLocale("ko", { months: "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"), monthsShort: "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"), weekdays: "일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"), weekdaysShort: "일_월_화_수_목_금_토".split("_"), weekdaysMin: "일_월_화_수_목_금_토".split("_"), longDateFormat: { LT: "A h시 m분", LTS: "A h시 m분 s초", L: "YYYY.MM.DD", LL: "YYYY년 MMMM D일", LLL: "YYYY년 MMMM D일 A h시 m분", LLLL: "YYYY년 MMMM D일 dddd A h시 m분" }, calendar: { sameDay: "오늘 LT", nextDay: "내일 LT", nextWeek: "dddd LT", lastDay: "어제 LT", lastWeek: "지난주 dddd LT", sameElse: "L" }, relativeTime: { future: "%s 후", past: "%s 전", s: "몇 초", ss: "%d초", m: "일분", mm: "%d분", h: "한 시간", hh: "%d시간", d: "하루", dd: "%d일", M: "한 달", MM: "%d달", y: "일 년", yy: "%d년" }, ordinalParse: /\d{1,2}일/, ordinal: "%d일", meridiemParse: /오전|오후/, isPM: function isPM(a) { return "오후" === a; }, meridiem: function meridiem(a) { return 12 > a ? "오전" : "오후"; } });return b; }); /***/ }), /***/ 2268: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { var b = a.defineLocale("pt", { months: "Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"), monthsShort: "Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"), weekdays: "Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"), weekdaysShort: "Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"), weekdaysMin: "Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"), weekdaysParseExact: !0, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D [de] MMMM [de] YYYY", LLL: "D [de] MMMM [de] YYYY HH:mm", LLLL: "dddd, D [de] MMMM [de] YYYY HH:mm" }, calendar: { sameDay: "[Hoje às] LT", nextDay: "[Amanhã às] LT", nextWeek: "dddd [às] LT", lastDay: "[Ontem às] LT", lastWeek: function lastWeek() { return 0 === this.day() || 6 === this.day() ? "[Último] dddd [às] LT" : "[Última] dddd [às] LT"; }, sameElse: "L" }, relativeTime: { future: "em %s", past: "há %s", s: "segundos", m: "um minuto", mm: "%d minutos", h: "uma hora", hh: "%d horas", d: "um dia", dd: "%d dias", M: "um mês", MM: "%d meses", y: "um ano", yy: "%d anos" }, ordinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 1, doy: 4 } });return b; }); /***/ }), /***/ 2269: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { function b(a, b) { var c = a.split("_");return 1 === b % 10 && 11 !== b % 100 ? c[0] : b % 10 >= 2 && 4 >= b % 10 && (10 > b % 100 || b % 100 >= 20) ? c[1] : c[2]; }function c(a, c, d) { var e = { mm: c ? "минута_минуты_минут" : "минуту_минуты_минут", hh: "час_часа_часов", dd: "день_дня_дней", MM: "месяц_месяца_месяцев", yy: "год_года_лет" };return "m" === d ? c ? "минута" : "минуту" : a + " " + b(e[d], +a); }var d = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i], e = a.defineLocale("ru", { months: { format: "января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"), standalone: "январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_") }, monthsShort: { format: "янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"), standalone: "янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_") }, weekdays: { standalone: "воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"), format: "воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"), isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/ }, weekdaysShort: "вс_пн_вт_ср_чт_пт_сб".split("_"), weekdaysMin: "вс_пн_вт_ср_чт_пт_сб".split("_"), monthsParse: d, longMonthsParse: d, shortMonthsParse: d, monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY г.", LLL: "D MMMM YYYY г., HH:mm", LLLL: "dddd, D MMMM YYYY г., HH:mm" }, calendar: { sameDay: "[Сегодня в] LT", nextDay: "[Завтра в] LT", lastDay: "[Вчера в] LT", nextWeek: function nextWeek(a) { if (a.week() === this.week()) return 2 === this.day() ? "[Во] dddd [в] LT" : "[В] dddd [в] LT";switch (this.day()) {case 0: return "[В следующее] dddd [в] LT";case 1:case 2:case 4: return "[В следующий] dddd [в] LT";case 3:case 5:case 6: return "[В следующую] dddd [в] LT";} }, lastWeek: function lastWeek(a) { if (a.week() === this.week()) return 2 === this.day() ? "[Во] dddd [в] LT" : "[В] dddd [в] LT";switch (this.day()) {case 0: return "[В прошлое] dddd [в] LT";case 1:case 2:case 4: return "[В прошлый] dddd [в] LT";case 3:case 5:case 6: return "[В прошлую] dddd [в] LT";} }, sameElse: "L" }, relativeTime: { future: "через %s", past: "%s назад", s: "несколько секунд", m: c, mm: c, h: "час", hh: c, d: "день", dd: c, M: "месяц", MM: c, y: "год", yy: c }, meridiemParse: /ночи|утра|дня|вечера/i, isPM: function isPM(a) { return (/^(дня|вечера)$/.test(a) ); }, meridiem: function meridiem(a) { return 4 > a ? "ночи" : 12 > a ? "утра" : 17 > a ? "дня" : "вечера"; }, ordinalParse: /\d{1,2}-(й|го|я)/, ordinal: function ordinal(a, b) { switch (b) {case "M":case "d":case "DDD": return a + "-й";case "D": return a + "-го";case "w":case "W": return a + "-я";default: return a;} }, week: { dow: 1, doy: 7 } });return e; }); /***/ }), /***/ 2270: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { var b = a.defineLocale("zh-cn", { months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"), monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"), weekdaysShort: "周日_周一_周二_周三_周四_周五_周六".split("_"), weekdaysMin: "日_一_二_三_四_五_六".split("_"), longDateFormat: { LT: "Ah点mm分", LTS: "Ah点m分s秒", L: "YYYY-MM-DD", LL: "YYYY年MMMD日", LLL: "YYYY年MMMD日Ah点mm分", LLLL: "YYYY年MMMD日ddddAh点mm分", l: "YYYY-MM-DD", ll: "YYYY年MMMD日", lll: "YYYY年MMMD日Ah点mm分", llll: "YYYY年MMMD日ddddAh点mm分" }, meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function meridiemHour(a, b) { return 12 === a && (a = 0), "凌晨" === b || "早上" === b || "上午" === b ? a : "下午" === b || "晚上" === b ? a + 12 : a >= 11 ? a : a + 12; }, meridiem: function meridiem(a, b) { var d = 100 * a + b;return 600 > d ? "凌晨" : 900 > d ? "早上" : 1130 > d ? "上午" : 1230 > d ? "中午" : 1800 > d ? "下午" : "晚上"; }, calendar: { sameDay: function sameDay() { return 0 === this.minutes() ? "[今天]Ah[点整]" : "[今天]LT"; }, nextDay: function nextDay() { return 0 === this.minutes() ? "[明天]Ah[点整]" : "[明天]LT"; }, lastDay: function lastDay() { return 0 === this.minutes() ? "[昨天]Ah[点整]" : "[昨天]LT"; }, nextWeek: function nextWeek() { var b, c;return b = a().startOf("week"), c = this.diff(b, "days") >= 7 ? "[下]" : "[本]", 0 === this.minutes() ? c + "dddAh点整" : c + "dddAh点mm"; }, lastWeek: function lastWeek() { var b, c;return b = a().startOf("week"), c = this.unix() < b.unix() ? "[上]" : "[本]", 0 === this.minutes() ? c + "dddAh点整" : c + "dddAh点mm"; }, sameElse: "LL" }, ordinalParse: /\d{1,2}(日|月|周)/, ordinal: function ordinal(a, b) { switch (b) {case "d":case "D":case "DDD": return a + "日";case "M": return a + "月";case "w":case "W": return a + "周";default: return a;} }, 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 年" }, week: { dow: 1, doy: 4 } });return b; }); /***/ }), /***/ 2271: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { var b = a.defineLocale("zh-hk", { months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"), monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"), weekdaysShort: "週日_週一_週二_週三_週四_週五_週六".split("_"), weekdaysMin: "日_一_二_三_四_五_六".split("_"), longDateFormat: { LT: "Ah點mm分", LTS: "Ah點m分s秒", L: "YYYY年MMMD日", LL: "YYYY年MMMD日", LLL: "YYYY年MMMD日Ah點mm分", LLLL: "YYYY年MMMD日ddddAh點mm分", l: "YYYY年MMMD日", ll: "YYYY年MMMD日", lll: "YYYY年MMMD日Ah點mm分", llll: "YYYY年MMMD日ddddAh點mm分" }, meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function meridiemHour(a, b) { return 12 === a && (a = 0), "凌晨" === b || "早上" === b || "上午" === b ? a : "中午" === b ? a >= 11 ? a : a + 12 : "下午" === b || "晚上" === b ? a + 12 : void 0; }, meridiem: function meridiem(a, b) { var d = 100 * a + b;return 600 > d ? "凌晨" : 900 > d ? "早上" : 1130 > d ? "上午" : 1230 > d ? "中午" : 1800 > d ? "下午" : "晚上"; }, calendar: { sameDay: "[今天]LT", nextDay: "[明天]LT", nextWeek: "[下]ddddLT", lastDay: "[昨天]LT", lastWeek: "[上]ddddLT", sameElse: "L" }, ordinalParse: /\d{1,2}(日|月|週)/, ordinal: function ordinal(a, b) { switch (b) {case "d":case "D":case "DDD": return a + "日";case "M": return a + "月";case "w":case "W": return a + "週";default: return a;} }, 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 年" } });return b; }); /***/ }), /***/ 2272: /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; !function (a, b) { "object" == ( false ? "undefined" : _typeof(exports)) && "undefined" != typeof module && "function" == "function" ? b(__webpack_require__(980)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(980)], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : b(a.moment); }(undefined, function (a) { var b = a.defineLocale("zh-tw", { months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"), monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"), weekdaysShort: "週日_週一_週二_週三_週四_週五_週六".split("_"), weekdaysMin: "日_一_二_三_四_五_六".split("_"), longDateFormat: { LT: "Ah點mm分", LTS: "Ah點m分s秒", L: "YYYY年MMMD日", LL: "YYYY年MMMD日", LLL: "YYYY年MMMD日Ah點mm分", LLLL: "YYYY年MMMD日ddddAh點mm分", l: "YYYY年MMMD日", ll: "YYYY年MMMD日", lll: "YYYY年MMMD日Ah點mm分", llll: "YYYY年MMMD日ddddAh點mm分" }, meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function meridiemHour(a, b) { return 12 === a && (a = 0), "凌晨" === b || "早上" === b || "上午" === b ? a : "中午" === b ? a >= 11 ? a : a + 12 : "下午" === b || "晚上" === b ? a + 12 : void 0; }, meridiem: function meridiem(a, b) { var d = 100 * a + b;return 600 > d ? "凌晨" : 900 > d ? "早上" : 1130 > d ? "上午" : 1230 > d ? "中午" : 1800 > d ? "下午" : "晚上"; }, calendar: { sameDay: "[今天]LT", nextDay: "[明天]LT", nextWeek: "[下]ddddLT", lastDay: "[昨天]LT", lastWeek: "[上]ddddLT", sameElse: "L" }, ordinalParse: /\d{1,2}(日|月|週)/, ordinal: function ordinal(a, b) { switch (b) {case "d":case "D":case "DDD": return a + "日";case "M": return a + "月";case "w":case "W": return a + "週";default: return a;} }, 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 年" } });return b; }); /***/ }), /***/ 2273: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // eslint-disable-next-line import/prefer-default-export var isWeekdayIndex = exports.isWeekdayIndex = function isWeekdayIndex(value) { return [0, 1, 2, 3, 4, 5, 6].indexOf(value) > -1; }; /***/ }), /***/ 2274: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); var _menu = __webpack_require__(2575); var _menu2 = _interopRequireDefault(_menu); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Cascader */ var Cascader = (_temp = _class = function (_Component) { _inherits(Cascader, _Component); function Cascader(props, context) { _classCallCheck(this, Cascader); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); var defaultValue = props.defaultValue, value = props.value, defaultExpandedValue = props.defaultExpandedValue, expandedValue = props.expandedValue, dataSource = props.dataSource, multiple = props.multiple, checkStrictly = props.checkStrictly, canOnlyCheckLeaf = props.canOnlyCheckLeaf, loadData = props.loadData; _this.updateCache(dataSource); var normalizedValue = _this.normalizeValue(typeof value === 'undefined' ? defaultValue : value); if (!loadData) { normalizedValue = normalizedValue.filter(function (v) { return _this._v2n[v]; }); } var realExpandedValue = typeof expandedValue === 'undefined' ? typeof defaultExpandedValue === 'undefined' ? _this.getExpandedValue(normalizedValue[0]) : _this.normalizeValue(defaultExpandedValue) : _this.normalizeValue(expandedValue); var st = { value: normalizedValue, expandedValue: realExpandedValue }; if (multiple && !checkStrictly && !canOnlyCheckLeaf) { st.value = _this.completeValue(props.dataSource, st.value); } _this.state = st; _this.lastExpandedValue = [].concat(_toConsumableArray(_this.state.expandedValue)); _this.handleMouseLeave = _this.handleMouseLeave.bind(_this); _this.getCascaderNode = _this.getCascaderNode.bind(_this); return _this; } Cascader.prototype.componentDidMount = function componentDidMount() { this.setCascaderInnerWidth(); }; Cascader.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var _this2 = this; this.updateCache(nextProps.dataSource); var state = {}; if ('value' in nextProps) { state.value = this.normalizeValue(nextProps.value); if (!nextProps.loadData) { state.value = state.value.filter(function (v) { return _this2._v2n[v]; }); } var multiple = nextProps.multiple, checkStrictly = nextProps.checkStrictly, canOnlyCheckLeaf = nextProps.canOnlyCheckLeaf; if (multiple && !checkStrictly && !canOnlyCheckLeaf) { state.value = this.completeValue(nextProps.dataSource, state.value); } if (!this.state.expandedValue.length && !('expandedValue' in nextProps)) { state.expandedValue = this.getExpandedValue(state.value[0]); } } if ('expandedValue' in nextProps) { state.expandedValue = this.normalizeValue(nextProps.expandedValue); } if (Object.keys(state).length) { this.setState(state); } }; Cascader.prototype.componentDidUpdate = function componentDidUpdate() { this.setCascaderInnerWidth(); }; Cascader.prototype.getCascaderNode = function getCascaderNode(ref) { this.cascader = ref; if (this.cascader) { this.cascaderInner = this.cascader.querySelector('.' + this.props.prefix + 'cascader-inner'); } }; Cascader.prototype.setCascaderInnerWidth = function setCascaderInnerWidth() { if (!this.props.setCascaderInnerWidth) { return; } var menuWrappers = [].concat(_toConsumableArray(this.cascaderInner.querySelectorAll('.' + this.props.prefix + 'cascader-menu-wrapper'))); if (menuWrappers.length === 0) { return; } _nextDom.style.set(this.cascaderInner, 'width', null); var cascaderClientWidth = this.cascader.clientWidth; var cascaderInnerWidth = _nextDom.style.get(this.cascaderInner, 'width'); var allMenusWidth = Math.ceil(menuWrappers.reduce(function (ret, menuWrapper) { return ret + _nextDom.style.get(menuWrapper, 'width'); }, 0)); var hasRightBorderClass = 'has-right-border'; var hasRightBorder = _nextDom.classList.hasClass(this.cascaderInner, hasRightBorderClass); if (cascaderClientWidth > allMenusWidth) { var borderWidth = _nextDom.style.get(this.cascader, 'borderRightWidth'); if (cascaderInnerWidth !== allMenusWidth + borderWidth) { _nextDom.style.set(this.cascaderInner, 'width', allMenusWidth + borderWidth); } if (!hasRightBorder) { _nextDom.classList.addClass(this.cascaderInner, hasRightBorderClass); } } else { if (cascaderInnerWidth !== allMenusWidth) { _nextDom.style.set(this.cascaderInner, 'width', allMenusWidth); } if (hasRightBorder) { _nextDom.classList.removeClass(this.cascaderInner, hasRightBorderClass); } } }; Cascader.prototype.updateCache = function updateCache(dataSource) { var _this3 = this; this._v2n = {}; this._p2n = {}; var loop = function loop(data) { var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0'; return data.forEach(function (item, index) { var value = item.value, children = item.children; var pos = prefix + '-' + index; _this3._v2n[value] = _this3._p2n[pos] = _extends({}, item, { pos: pos }); if (children && children.length) { loop(children, pos); } }); }; loop(dataSource); }; Cascader.prototype.normalizeValue = function normalizeValue(value) { if (value) { if (Array.isArray(value)) { return value; } return [value]; } return []; }; Cascader.prototype.getExpandedValue = function getExpandedValue(v) { var _this4 = this; if (!v || !this._v2n[v]) { return []; } var pos = this._v2n[v].pos; if (pos.split('-').length === 2) { return []; } var expandedMap = {}; Object.keys(this._p2n).forEach(function (p) { if (_this4.isDescendantOrSelf(p, pos) && p !== pos) { expandedMap[_this4._p2n[p].value] = p; } }); return Object.keys(expandedMap).sort(function (prev, next) { return expandedMap[prev].split('-').length - expandedMap[next].split('-').length; }); }; Cascader.prototype.completeValue = function completeValue(dataSource, value) { var _this5 = this; var filterValue = value.filter(function (v) { return typeof _this5._v2n[v] !== 'undefined'; }); var flatValue = this.flatValue(filterValue); var childChecked = function childChecked(child) { return flatValue.indexOf(child.value) > -1; }; var removeValue = function removeValue(child) { return flatValue.splice(flatValue.indexOf(child.value), 1); }; var addParentValue = function addParentValue(i, parent) { return flatValue.splice(i, 0, parent.value); }; for (var i = 0; i < flatValue.length; i++) { var pos = this.getPos(flatValue[i]); var nums = pos.split('-'); if (nums.length === 2) { break; } for (var j = nums.length - 2; j > 0; j--) { var parent = nums.slice(1, j + 1).reduce(function (ret, num) { return ret.children[num]; }, { children: dataSource }); var parentChecked = parent.children.every(childChecked); if (parentChecked) { parent.children.forEach(removeValue); addParentValue(i, parent); } else { break; } } } var newValue = []; flatValue = flatValue.reverse(); var ps = Object.keys(this._p2n); if (flatValue.length) { for (var _i = 0; _i < ps.length; _i++) { for (var _j = 0; _j < flatValue.length; _j++) { var v = flatValue[_j]; if (this.isDescendantOrSelf(this.getPos(v), ps[_i])) { newValue.push(this.getValue(ps[_i])); ps.splice(_i, 1); _i--; break; } } } } return newValue; }; Cascader.prototype.flatValue = function flatValue(value) { var _this6 = this; var getDepth = function getDepth(v) { return _this6.getPos(v).split('-').length; }; var newValue = value.slice(0).sort(function (prev, next) { return getDepth(prev) - getDepth(next); }); for (var i = 0; i < newValue.length; i++) { for (var j = 0; j < newValue.length; j++) { if (i !== j && this.isDescendantOrSelf(this.getPos(newValue[i]), this.getPos(newValue[j]))) { newValue.splice(j, 1); j--; } } } return newValue; }; Cascader.prototype.getValue = function getValue(pos) { return this._p2n[pos] ? this._p2n[pos].value : null; }; Cascader.prototype.getPos = function getPos(value) { return this._v2n[value] ? this._v2n[value].pos : null; }; Cascader.prototype.getData = function getData(value) { var _this7 = this; return value.map(function (v) { return _this7._v2n[v]; }); }; Cascader.prototype.isDescendantOrSelf = function isDescendantOrSelf(currentPos, targetPos) { if (!currentPos || !targetPos) { return false; } var currentNums = currentPos.split('-'); var targetNums = targetPos.split('-'); return currentNums.length <= targetNums.length && currentNums.every(function (num, index) { return num === targetNums[index]; }); }; Cascader.prototype.isSiblingOrSelf = function isSiblingOrSelf(currentPos, targetPos) { var currentNums = currentPos.split('-').slice(0, -1); var targetNums = targetPos.split('-').slice(0, -1); return currentNums.length === targetNums.length && currentNums.every(function (num, index) { return num === targetNums[index]; }); }; Cascader.prototype.processValue = function processValue(value, v, checked) { var index = value.indexOf(v); if (checked && index === -1) { value.push(v); } else if (!checked && index > -1) { value.splice(index, 1); } }; Cascader.prototype.handleSelect = function handleSelect(v, level, canExpand) { var _this8 = this; if (!(this.props.canOnlySelectLeaf && canExpand) && this.state.value[0] !== v) { if (!('value' in this.props)) { this.setState({ value: [v] }); } if ('onChange' in this.props) { var data = this._v2n[v]; var nums = data.pos.split('-'); var selectedPath = nums.slice(1).reduce(function (ret, num, index) { var p = nums.slice(0, index + 2).join('-'); ret.push(_this8._p2n[p]); return ret; }, []); this.props.onChange(v, data, { selectedPath: selectedPath }); } } if (this.props.expandTrigger === 'click') { return this.handleExpand(v, level, canExpand); } if (canExpand) { if (!this.props.canOnlySelectLeaf) { this.lastExpandedValue = [].concat(_toConsumableArray(this.state.expandedValue.slice(0, -1))); } } else { this.lastExpandedValue = [].concat(_toConsumableArray(this.state.expandedValue)); } }; Cascader.prototype.handleCheck = function handleCheck(v, checked) { var _this9 = this; this.lastExpandedValue = [].concat(_toConsumableArray(this.state.expandedValue)); var _props = this.props, checkStrictly = _props.checkStrictly, canOnlyCheckLeaf = _props.canOnlyCheckLeaf; var value = this.state.value; if (checkStrictly || canOnlyCheckLeaf) { this.processValue(value, v, checked); } else { var pos = this.getPos(v); var ps = Object.keys(this._p2n); ps.forEach(function (p) { if (_this9.isDescendantOrSelf(pos, p)) { _this9.processValue(value, _this9.getValue(p), checked); } }); var currentPos = pos; var nums = pos.split('-'); for (var i = nums.length; i > 2; i--) { var parentChecked = true; for (var j = 0; j < ps.length; j++) { var p = ps[j]; if (this.isSiblingOrSelf(currentPos, p)) { var _v = this.getValue(p); if (value.indexOf(_v) === -1) { parentChecked = false; break; } } } var parentPos = nums.slice(0, i - 1).join('-'); this.processValue(value, this.getValue(parentPos), parentChecked); currentPos = parentPos; } } if (!('value' in this.props)) { this.setState({ value: value }); } if ('onChange' in this.props) { if (checkStrictly || canOnlyCheckLeaf) { var data = this.getData(value); this.props.onChange(value, data, { checked: checked, currentData: this._v2n[v], checkedData: data }); } else { var flatValue = this.flatValue(value); var flatData = this.getData(flatValue); var checkedData = this.getData(value); var indeterminateValue = this.getIndeterminate(value); var indeterminateData = this.getData(indeterminateValue); this.props.onChange(flatValue, flatData, { checked: checked, currentData: this._v2n[v], checkedData: checkedData, indeterminateData: indeterminateData }); } } }; Cascader.prototype.handleExpand = function handleExpand(value, level, canExpand) { var _this10 = this; var loadData = this.props.loadData; var expandedValue = this.state.expandedValue; if (canExpand || expandedValue.length > level) { if (canExpand) { expandedValue.splice(level, expandedValue.length - level, value); } else { expandedValue.splice(level); } if (canExpand && loadData) { return loadData(this._v2n[value]).then(function () { _this10.setExpandValue(expandedValue); }); } else { this.setExpandValue(expandedValue); } } }; Cascader.prototype.handleMouseLeave = function handleMouseLeave() { this.setExpandValue([].concat(_toConsumableArray(this.lastExpandedValue))); }; Cascader.prototype.setExpandValue = function setExpandValue(expandedValue) { if (!('expandedValue' in this.props)) { this.setState({ expandedValue: expandedValue }); } if ('onExpand' in this.props) { this.props.onExpand(expandedValue); } }; Cascader.prototype.getIndeterminate = function getIndeterminate(value) { var _this11 = this; var indeterminate = []; var positions = this.flatValue(value).map(this.getPos.bind(this)); positions.forEach(function (pos) { var nums = pos.split('-'); for (var i = nums.length; i > 2; i--) { var parentPos = nums.slice(0, i - 1).join('-'); var parentValue = _this11.getValue(parentPos); if (indeterminate.indexOf(parentValue) === -1) { indeterminate.push(parentValue); } } }); return indeterminate; }; Cascader.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; Cascader.prototype.renderMenu = function renderMenu(data, level) { var _this12 = this; var _props2 = this.props, multiple = _props2.multiple, checkStrictly = _props2.checkStrictly, expandTrigger = _props2.expandTrigger, labelWidth = _props2.labelWidth, showItemCount = _props2.showItemCount, loadData = _props2.loadData, canOnlyCheckLeaf = _props2.canOnlyCheckLeaf; var _state = this.state, value = _state.value, expandedValue = _state.expandedValue; var prefix = this.getPrefix(); var MenuItem = multiple ? _menu2['default'].CheckboxItem : _menu2['default'].Item; return _react2['default'].createElement( _menu2['default'], { prefix: prefix, showItemCount: showItemCount, key: level }, data.map(function (item) { var _cx; var disabled = !!item.disabled; var canExpand = item.children && item.children.length || !!loadData && !item.isLeaf; var expanded = expandedValue[level] === item.value; var props = { prefix: prefix, disabled: disabled, canExpand: canExpand, expanded: expanded }; if (multiple) { props.checkable = !(canOnlyCheckLeaf && canExpand); props.checked = value.indexOf(item.value) > -1; props.checkboxDisabled = !!item.checkboxDisabled; props.className = props.checked ? 'js-selected' : null; props.indeterminate = checkStrictly || canOnlyCheckLeaf ? false : _this12.indeterminate.indexOf(item.value) > -1; if (!disabled) { props.onCheck = _this12.handleCheck.bind(_this12, item.value); var callbackName = expandTrigger === 'click' ? 'onClick' : 'onMouseEnter'; props[callbackName] = _this12.handleExpand.bind(_this12, item.value, level, canExpand); } } else { props.selected = value[0] === item.value; props.className = props.selected ? 'js-selected' : null; if (!disabled) { props.onClick = _this12.handleSelect.bind(_this12, item.value, level, canExpand); if (expandTrigger !== 'click') { props.onMouseEnter = _this12.handleExpand.bind(_this12, item.value, level, canExpand); } } } var setLabelWidth = typeof labelWidth !== 'undefined'; var spanProps = { className: (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, prefix + 'cascader-menu-item-label', true), _defineProperty(_cx, 'ellipsis', setLabelWidth), _cx)), title: item.label }; if (setLabelWidth) { spanProps.style = { width: Number(labelWidth) + 'px' }; } return _react2['default'].createElement( MenuItem, _extends({ key: item.value }, props), _react2['default'].createElement( 'span', spanProps, item.label ) ); }) ); }; Cascader.prototype.renderMenus = function renderMenus() { var _props3 = this.props, dataSource = _props3.dataSource, multiple = _props3.multiple, checkStrictly = _props3.checkStrictly, canOnlyCheckLeaf = _props3.canOnlyCheckLeaf; var _state2 = this.state, value = _state2.value, expandedValue = _state2.expandedValue; if (multiple && !checkStrictly && !canOnlyCheckLeaf) { this.indeterminate = this.getIndeterminate(value); } var menus = []; var data = dataSource; for (var i = 0; i <= expandedValue.length; i++) { if (!data) { break; } menus.push(this.renderMenu(data, i)); var expandedItem = void 0; for (var j = 0; j < data.length; j++) { if (data[j].value === expandedValue[i]) { expandedItem = data[j]; break; } } data = expandedItem ? expandedItem.children : null; } return menus; }; Cascader.prototype.render = function render() { var _cx2; var _props4 = this.props, className = _props4.className, expandTrigger = _props4.expandTrigger, multiple = _props4.multiple, dataSource = _props4.dataSource, style = _props4.style; var others = (0, _nextUtil.pickOthers)(Cascader, this.props); var prefix = this.getPrefix(); var props = _extends({ className: (0, _classnames2['default'])((_cx2 = {}, _defineProperty(_cx2, prefix + 'cascader', true), _defineProperty(_cx2, 'multiple', multiple), _defineProperty(_cx2, className, !!className), _cx2)), style: style, ref: 'cascader' }, others); if (expandTrigger === 'hover') { props.onMouseLeave = this.handleMouseLeave; } return _react2['default'].createElement( 'div', _extends({}, props, { ref: this.getCascaderNode }), _react2['default'].createElement( 'div', { className: prefix + 'cascader-inner' }, dataSource && dataSource.length ? this.renderMenus() : null ) ); }; return Cascader; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 数据源,结构可参考下方说明 */ dataSource: _propTypes2['default'].arrayOf(_propTypes2['default'].object), /** * (非受控)默认值 */ defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].arrayOf(_propTypes2['default'].string)]), /** * (受控)当前值 */ value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].arrayOf(_propTypes2['default'].string)]), /** * 选中值改变时触发的回调函数 * @param {String|Array} value 选中的值,单选时返回单个值,多选时返回数组 * @param {Object|Array} data 选中的数据,包括 value 和 label,单选时返回单个值,多选时返回数组,父子节点选中关联时,同时选中,只返回父节点 * @param {Object} extra 额外参数 * @param {Array} extra.selectedPath 单选时选中的数据的路径 * @param {Boolean} extra.checked 多选时当前的操作是选中还是取消选中 * @param {Object} extra.currentData 多选时当前操作的数据 * @param {Array} extra.checkedData 多选时所有被选中的数据 * @param {Array} extra.indeterminateData 多选时半选的数据 */ onChange: _propTypes2['default'].func, /** * (非受控)默认展开值,如果不设置,组件内部会根据 defaultValue/value 进行自动设置 */ defaultExpandedValue: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * (受控)当前展开值 */ expandedValue: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * 展开触发的方式 */ expandTrigger: _propTypes2['default'].oneOf(['click', 'hover']), /** * 展开时触发的回调函数 * @param {Array} expandedValue 各列展开值的数组 */ onExpand: _propTypes2['default'].func, /** * 是否多选 */ multiple: _propTypes2['default'].bool, /** * 单选时是否只能选中叶子节点 */ canOnlySelectLeaf: _propTypes2['default'].bool, /** * 多选时是否只能选中叶子节点 */ canOnlyCheckLeaf: _propTypes2['default'].bool, /** * 父子节点是否选中不关联 */ checkStrictly: _propTypes2['default'].bool, /** * 文字区域宽度,当文字超过宽度时,结尾会以省略号显示,默认值为文字实际宽度 */ labelWidth: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), /** * 每一列展示的个数 */ showItemCount: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), /** * 异步加载数据函数 * @param {Object} data 当前点击异步加载的数据 */ loadData: _propTypes2['default'].func, setCascaderInnerWidth: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-', dataSource: [], defaultValue: null, canOnlySelectLeaf: false, canOnlyCheckLeaf: false, expandTrigger: 'click', multiple: false, checkStrictly: false, showItemCount: 6, setCascaderInnerWidth: true }, _temp); Cascader.displayName = 'Cascader'; exports['default'] = Cascader; module.exports = exports['default']; /***/ }), /***/ 2275: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var CommonMixin = { normalizeValue: function normalizeValue(value) { var format = this.props.format; var resultValue = value && (0, _nextMoment2['default'])(value, [format]).isValid() ? (0, _nextMoment2['default'])(value, [format]) : ''; if (resultValue) { resultValue = this.isValid(resultValue) ? resultValue : ''; } return resultValue; }, isValid: function isValid(nextValue) { var _props = this.props, disabledHours = _props.disabledHours, disabledMinutes = _props.disabledMinutes, disabledSeconds = _props.disabledSeconds; var ret = true; disabledHours = disabledHours && disabledHours instanceof Function ? disabledHours() : []; disabledMinutes = disabledMinutes && disabledMinutes instanceof Function ? disabledMinutes() : []; disabledSeconds = disabledSeconds && disabledSeconds instanceof Function ? disabledSeconds() : []; if (disabledHours.indexOf(nextValue.hour()) >= 0) { ret = false; } if (disabledMinutes.indexOf(nextValue.minute()) >= 0) { ret = false; } if (disabledSeconds.indexOf(nextValue.second()) >= 0) { ret = false; } return ret; }, scrollTo: function scrollTo(element, to, duration) { var _this = this; var requestAnimationFrame = window.requestAnimationFrame || function requestAnimationFrameTimeout(callback) { return setTimeout(callback, 10); }; if (duration <= 0) { element.scrollTop = to; return; } var difference = to - element.scrollTop; var perTick = difference / duration * 10; requestAnimationFrame(function () { element.scrollTop = element.scrollTop + perTick; if (element.scrollTop === to) { return; } _this.scrollTo(element, to, duration - 10); }); }, isInArray: function isInArray(value, array) { var ret = false; if (!array instanceof Array) { return ret; } array.forEach(function (item) { if (value === item) { ret = true; } }); return ret; } }; function extend(a, b) { for (var key in b) { if (b.hasOwnProperty(key)) { a[key] = b[key]; } } } function CommonMixinTo(Component) { ['defaultProps', 'propTypes'].forEach(function (prop) { Component[prop] = Component[prop] || {}; }); extend(Component.prototype, CommonMixin); } exports['default'] = CommonMixinTo; module.exports = exports['default']; /***/ }), /***/ 2276: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _nextUtil = __webpack_require__(889); var _commonMixin = __webpack_require__(2275); var _commonMixin2 = _interopRequireDefault(_commonMixin); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var TimePickerPanel = (_temp = _class = function (_Component) { _inherits(TimePickerPanel, _Component); function TimePickerPanel(props, context) { _classCallCheck(this, TimePickerPanel); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { value: props.value ? (0, _nextMoment2['default'])(props.value) : (0, _nextMoment2['default'])() }; return _this; } TimePickerPanel.prototype.componentDidMount = function componentDidMount() { this.scrollToSelected(0); }; TimePickerPanel.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if ('value' in newProps) { this.setState({ value: newProps.value ? (0, _nextMoment2['default'])(newProps.value) : (0, _nextMoment2['default'])() }); } }; TimePickerPanel.prototype.componentDidUpdate = function componentDidUpdate() { this.scrollToSelected(120); }; TimePickerPanel.prototype.scrollToSelected = function scrollToSelected(duration) { var value = this.state.value; var hourDuration = 0, minuteDuration = 0, secondDuration = 0; if (this.currentSelectType === 'hour') { hourDuration = duration; } else if (this.currentSelectType === 'minute') { minuteDuration = duration; } else { secondDuration = duration; } if (this.hourSelect && this.hourList) { this.scrollTo(this.hourSelect, this.hourList.children[value.hour()].offsetTop, hourDuration); } if (this.minuteSelect && this.minuteList) { this.scrollTo(this.minuteSelect, this.minuteList.children[value.minute()].offsetTop, minuteDuration); } if (this.secondSelect && this.secondList) { this.scrollTo(this.secondSelect, this.secondList.children[value.second()].offsetTop, secondDuration); } }; TimePickerPanel.prototype.onChange = function onChange(key, nextValue) { var value = this.state.value; switch (key) { case 'hour': value = (0, _nextMoment2['default'])(value).hour(nextValue); break; case 'minute': value = (0, _nextMoment2['default'])(value).minute(nextValue); break; case 'second': value = (0, _nextMoment2['default'])(value).second(nextValue); break; default: break; } this.currentSelectType = key; this.props.onChange(value); }; TimePickerPanel.prototype.normalizeDisabledOptions = function normalizeDisabledOptions(options) { options = options && options instanceof Function ? options() : []; return options; }; TimePickerPanel.prototype.renderPanel = function renderPanel(type, show) { var prefix = this.context.prefix || this.props.prefix; var value = this.state.value; var disabledOptions = this.normalizeDisabledOptions(this.props['disabled' + type.charAt(0).toUpperCase() + type.substr(1) + 's']); var count = type === 'hour' ? 24 : 60; var html = []; if (!show) { disabledOptions = []; for (var i = 0; i < count; i++) { disabledOptions.push(i); } } for (var _i = 0; _i < count; _i++) { var _classNames; var cls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'time-picker-cell-' + type, true), _defineProperty(_classNames, prefix + 'time-picker-cell-selected', value[type]() === _i), _defineProperty(_classNames, prefix + 'time-picker-cell-disabled', this.isInArray(_i, disabledOptions)), _classNames)); var attrs = { onClick: this.isInArray(_i, disabledOptions) ? null : this.onChange.bind(this, type, _i) }; html.push(_react2['default'].createElement( 'li', _extends({ className: cls }, attrs, { key: _i }), _i )); } return html; }; TimePickerPanel.prototype._setInstance = function _setInstance(name, ref) { this[name] = ref; }; TimePickerPanel.prototype.render = function render() { var _props = this.props, showHour = _props.showHour, showMinute = _props.showMinute, showSecond = _props.showSecond, locale = _props.locale, others = _objectWithoutProperties(_props, ['showHour', 'showMinute', 'showSecond', 'locale']); var prefix = this.context.prefix || this.props.prefix; return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: prefix + 'time-picker-panel' }), _react2['default'].createElement( 'div', { className: prefix + 'time-picker-panel-title' }, _react2['default'].createElement( 'span', { className: prefix + 'time-picker-panel-title-cell' }, locale.hour ), _react2['default'].createElement( 'span', { className: prefix + 'time-picker-panel-title-cell' }, locale.minute ), _react2['default'].createElement( 'span', { className: prefix + 'time-picker-panel-title-cell' }, locale.second ) ), _react2['default'].createElement( 'div', { className: prefix + 'time-picker-panel-body' }, _react2['default'].createElement( 'div', { ref: this._setInstance.bind(this, 'hourSelect'), className: prefix + 'time-picker-select' }, _react2['default'].createElement( 'ul', { ref: this._setInstance.bind(this, 'hourList') }, this.renderPanel('hour', showHour) ) ), _react2['default'].createElement( 'div', { ref: this._setInstance.bind(this, 'minuteSelect'), className: prefix + 'time-picker-select' }, _react2['default'].createElement( 'ul', { ref: this._setInstance.bind(this, 'minuteList') }, this.renderPanel('minute', showMinute) ) ), _react2['default'].createElement( 'div', { ref: this._setInstance.bind(this, 'secondSelect'), className: prefix + 'time-picker-select' }, _react2['default'].createElement( 'ul', { ref: this._setInstance.bind(this, 'secondList') }, this.renderPanel('second', showSecond) ) ) ) ); }; return TimePickerPanel; }(_react.Component), _class.propTypes = { prefix: _propTypes2['default'].string, value: _propTypes2['default'].any, onChange: _propTypes2['default'].func, showHour: _propTypes2['default'].bool, showMinute: _propTypes2['default'].bool, showSecond: _propTypes2['default'].bool, disabledHours: _propTypes2['default'].func, disabledMinutes: _propTypes2['default'].func, disabledSeconds: _propTypes2['default'].func }, _class.defaultProps = { prefix: 'next-', locale: {}, onChange: function onChange() {}, showHour: true, showMinute: true, showSecond: true }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); TimePickerPanel.displayName = 'TimePickerPanel'; exports['default'] = TimePickerPanel; (0, _commonMixin2['default'])(TimePickerPanel); module.exports = exports['default']; /***/ }), /***/ 2277: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextButton = __webpack_require__(1472); var _nextButton2 = _interopRequireDefault(_nextButton); var _utils = __webpack_require__(1744); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var QuickTool = (_temp = _class = function (_Component) { _inherits(QuickTool, _Component); function QuickTool() { _classCallCheck(this, QuickTool); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } QuickTool.prototype.onChange = function onChange(type) { var _props; for (var _len = arguments.length, others = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { others[_key - 1] = arguments[_key]; } (_props = this.props).onChange.apply(_props, [type].concat(others)); }; QuickTool.prototype.isNowValid = function isNowValid() { var disabledDate = this.props.disabledDate; var calendarDate = (0, _utils.getCalendarDate)((0, _nextMoment2['default'])()); return (0, _utils.isValidCalendarDate)(calendarDate, disabledDate); }; QuickTool.prototype.render = function render() { var _classNames, _this2 = this; var _props2 = this.props, locale = _props2.locale, module = _props2.module, shortcuts = _props2.shortcuts, value = _props2.value, mode = _props2.mode; var prefix = this.context.prefix || this.props.prefix; var disabledSelect = function disabledSelect() { if (value instanceof Array) { return !value[0] || !value[1]; } else { return !value; } }; var isNowValid = this.isNowValid(); var selectCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'date-picker-quick-tool-select', true), _defineProperty(_classNames, prefix + 'date-picker-quick-tool-select-disabled', disabledSelect()), _classNames)); var selectDateAttrs = { onClick: disabledSelect() ? null : this.onChange.bind(this, 'select-date') }; var selectTimeAttrs = { onClick: disabledSelect() ? null : this.onChange.bind(this, 'select-time') }; return _react2['default'].createElement( 'div', { className: prefix + 'date-picker-quick-tool', ref: 'date-picker-quick-tool' }, module.indexOf('now') >= 0 ? isNowValid ? _react2['default'].createElement( 'span', { className: prefix + 'date-picker-quick-tool-now', onClick: this.onChange.bind(this, 'now') }, locale.now ) : _react2['default'].createElement( 'span', { className: prefix + 'date-picker-quick-tool-now-disabled' }, locale.now ) : null, shortcuts.map(function (item) { return _react2['default'].createElement( 'span', { key: item, className: prefix + 'date-picker-quick-tool-shortcut', onClick: _this2.onChange.bind(_this2, 'quick-select', item) }, item ); }), _react2['default'].createElement( _nextButton2['default'], { size: 'small', type: 'primary', className: prefix + 'date-picker-quick-tool-ok', onClick: this.onChange.bind(this, 'ok') }, locale.ok ), module.indexOf('select') >= 0 ? mode === 'date' ? _react2['default'].createElement( 'span', _extends({ className: selectCls }, selectDateAttrs), locale.selectDate ) : _react2['default'].createElement( 'span', _extends({ className: selectCls }, selectTimeAttrs), locale.selectTime ) : null ); }; return QuickTool; }(_react.Component), _class.propTypes = { prefix: _propTypes2['default'].string, value: _propTypes2['default'].any, module: _propTypes2['default'].array, shortcuts: _propTypes2['default'].array, mode: _propTypes2['default'].oneOf(['decade', 'year', 'month', 'date']), locale: _propTypes2['default'].object, disabledDate: _propTypes2['default'].func, onChange: _propTypes2['default'].func }, _class.defaultProps = { prefix: 'next-', mode: 'month', shortcuts: [], onChange: function onChange() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); QuickTool.displayName = 'QuickTool'; exports['default'] = QuickTool; module.exports = exports['default']; /***/ }), /***/ 2278: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _dialog = __webpack_require__(2586); var _dialog2 = _interopRequireDefault(_dialog); var _base = __webpack_require__(1912); var _base2 = _interopRequireDefault(_base); var _content = __webpack_require__(1913); var _inner = __webpack_require__(2279); var _inner2 = _interopRequireDefault(_inner); var _util = __webpack_require__(2587); var _index = __webpack_require__(2282); var _index2 = _interopRequireDefault(_index); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _dialog2['default'].Header = _content.Header; _dialog2['default'].Body = _content.Body; _dialog2['default'].Footer = _content.Footer; _dialog2['default'].alert = _util.alert; _dialog2['default'].confirm = _util.confirm; _dialog2['default'].Inner = _inner2['default']; _dialog2['default'].Base = _base2['default']; _dialog2['default'].LOCALE = _index2['default']; exports['default'] = _dialog2['default']; module.exports = exports['default']; /***/ }), /***/ 2279: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Children = _react2['default'].Children, noop = function noop() {}, getPrivateDialogProperty = function getPrivateDialogProperty(name) { return '_dialog' + (name.charAt(0).toUpperCase() + name.substr(1)) + 'Id'; }; var uuid = 0; var DialogInner = (_temp = _class = function (_React$Component) { _inherits(DialogInner, _React$Component); function DialogInner(props, context) { _classCallCheck(this, DialogInner); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); ['header', 'body', 'footer'].forEach(function (name) { _this[getPrivateDialogProperty(name)] = 'dialog-' + name + '-' + uuid++; }); return _this; } DialogInner.prototype.render = function render() { var _classNames; /* eslint-disable no-unused-vars, react/prop-types */ var _props = this.props, children = _props.children, className = _props.className, footerAlign = _props.footerAlign, closable = _props.closable, role = _props.role, others = _objectWithoutProperties(_props, ['children', 'className', 'footerAlign', 'closable', 'role']), prefix = this.context.prefix || this.props.prefix, content = this._getContent(), cls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'dialog', true), _defineProperty(_classNames, footerAlign, footerAlign), _defineProperty(_classNames, className, className), _classNames)), closeContent = closable ? _react2['default'].createElement( 'a', { href: 'javascript:;', className: prefix + 'dialog-close', onClick: this.onClose.bind(this) }, _react2['default'].createElement(_nextIcon2['default'], { prefix: prefix, type: 'close', size: 'small' }) ) : null; others = (0, _nextUtil.pickAttrs)(others); return _react2['default'].createElement( 'div', _extends({}, others, { className: cls, role: role, 'aria-labelledby': content.header ? content.header.props.id : '' }), content.header, content.body, content.footer, closeContent ); }; DialogInner.prototype._getContent = function _getContent() { var _this2 = this; var children = this.props.children, result = {}; Children.forEach(children, function (child) { if (child && child.type.dialogMark) { var name = child.type.dialogMark.toLowerCase(); result[name] = _react2['default'].cloneElement(child, { ref: name, id: _this2[getPrivateDialogProperty(name)] }); } }); return result; }; DialogInner.prototype.getHeader = function getHeader() { return _reactDom2['default'].findDOMNode(this.refs.header); }; DialogInner.prototype.getBody = function getBody() { return _reactDom2['default'].findDOMNode(this.refs.body); }; DialogInner.prototype.getFooter = function getFooter() { return _reactDom2['default'].findDOMNode(this.refs.footer); }; DialogInner.prototype.onClose = function onClose(e) { this.props.onClose('fromCloseBtn'); e.preventDefault(); }; return DialogInner; }(_react2['default'].Component), _class.propTypes = { prefix: _propTypes2['default'].string, footerAlign: _propTypes2['default'].oneOf(['left', 'center', 'right']), className: _propTypes2['default'].string, closable: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].string]), children: _propTypes2['default'].any, onClose: _propTypes2['default'].func }, _class.defaultProps = { prefix: 'next-', onClose: noop, footerAlign: 'right', role: 'dialog', closable: true }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); DialogInner.displayName = 'DialogInner'; exports['default'] = DialogInner; module.exports = exports['default']; /***/ }), /***/ 2280: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _feedback = __webpack_require__(2281); var _feedback2 = _interopRequireDefault(_feedback); var _toast = __webpack_require__(2588); var _toast2 = _interopRequireDefault(_toast); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _feedback2['default'].toast = _toast2['default']; exports['default'] = _feedback2['default']; module.exports = exports['default']; /***/ }), /***/ 2281: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var typesMap = { success: 'success', prompt: 'warning', error: 'error', help: 'help', loading: 'loading' }; var ieVersion = typeof document === 'undefined' ? false : document.documentMode; /** * Feedback */ var Feedback = (_temp = _class = function (_Component) { _inherits(Feedback, _Component); function Feedback() { _classCallCheck(this, Feedback); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Feedback.prototype.render = function render() { var _classNames; var prefix = this.context.prefix || this.props.prefix; /* eslint-disable no-unused-vars */ var _props = this.props, propsPrefix = _props.prefix, type = _props.type, shape = _props.shape, size = _props.size, visible = _props.visible, title = _props.title, children = _props.children, className = _props.className, others = _objectWithoutProperties(_props, ['prefix', 'type', 'shape', 'size', 'visible', 'title', 'children', 'className']); /* eslint-enable */ var feedbackPrefix = prefix + 'feedback'; var iconType = typesMap[type]; var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, feedbackPrefix, true), _defineProperty(_classNames, feedbackPrefix + '-' + type, type), _defineProperty(_classNames, feedbackPrefix + '-' + shape, shape), _defineProperty(_classNames, feedbackPrefix + '-' + size, size), _defineProperty(_classNames, feedbackPrefix + '-title-content', !!title), _defineProperty(_classNames, feedbackPrefix + '-only-content', !title && !!children), _defineProperty(_classNames, feedbackPrefix + '-ie8', ieVersion === 8), _defineProperty(_classNames, feedbackPrefix + '-hide', !visible), _defineProperty(_classNames, className, className), _classNames)); return _react2['default'].createElement( 'div', _extends({}, others, { className: classes }), _react2['default'].createElement(_nextIcon2['default'], { prefix: prefix, className: feedbackPrefix + '-symbol', type: iconType }), title && _react2['default'].createElement( 'div', { className: feedbackPrefix + '-title' }, title ), children && _react2['default'].createElement( 'div', { className: feedbackPrefix + '-content' }, children ) ); }; return Feedback; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 反馈类型 */ type: _propTypes2['default'].oneOf(['success', 'error', 'prompt', 'help', 'loading']), /** * 反馈外观 */ shape: _propTypes2['default'].oneOf(['inline', 'addon', 'toast']), /** * 反馈大小 */ size: _propTypes2['default'].oneOf(['medium', 'large']), /** * 标题 */ title: _propTypes2['default'].node, /** * 内容 */ children: _propTypes2['default'].node, /** * 是否显示 */ visible: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-', type: 'success', shape: 'inline', size: 'medium', visible: true, title: '' }, _temp); Feedback.displayName = 'Feedback'; exports['default'] = Feedback; module.exports = exports['default']; /***/ }), /***/ 2282: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = { 'en-us': { ok: 'Ok', cancel: 'Cancel' }, 'zh-cn': { ok: '确认', cancel: '取消' }, 'zh-tw': { ok: '確認', cancel: '取消' } }; module.exports = exports['default']; /***/ }), /***/ 2283: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _util = __webpack_require__(1371); var util = _interopRequireWildcard(_util); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } /** * Rule for validating required fields. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param source The source object being validated. * @param errors An array of errors that this rule may add * validation errors to. * @param options The validation options. * @param options.messages The validation messages. */ function required(rule, value, source, errors, options, type) { if (rule.required && (!source.hasOwnProperty(rule.field) || util.isEmptyValue(value, type || rule.type))) { errors.push(util.format(options.messages.required, rule.fullField)); } } exports['default'] = required; /***/ }), /***/ 2284: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _row = __webpack_require__(2617); var _row2 = _interopRequireDefault(_row); var _col = __webpack_require__(2618); var _col2 = _interopRequireDefault(_col); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Grid = { Row: _row2.default, Col: _col2.default }; exports.default = Grid; module.exports = exports['default']; /***/ }), /***/ 2285: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _slip = __webpack_require__(2627); var _slip2 = _interopRequireDefault(_slip); var _tree = __webpack_require__(2628); var _tree2 = _interopRequireDefault(_tree); var _line = __webpack_require__(2629); var _line2 = _interopRequireDefault(_line); var _text = __webpack_require__(2630); var _text2 = _interopRequireDefault(_text); var _filling = __webpack_require__(2631); var _filling2 = _interopRequireDefault(_filling); var _normal = __webpack_require__(2286); var _normal2 = _interopRequireDefault(_normal); var _icononly = __webpack_require__(2632); var _icononly2 = _interopRequireDefault(_icononly); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var ItemMain = (_temp = _class = function (_React$Component) { _inherits(ItemMain, _React$Component); function ItemMain() { _classCallCheck(this, ItemMain); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } ItemMain.prototype.render = function render() { var type = this.context.type.toLowerCase(); var component = ItemMain.typeMap[type]; if (component) { return _react2['default'].createElement(component, this.props, this.props.children); } }; return ItemMain; }(_react2['default'].Component), _class.componentMark = 'item-main', _class.propTypes = { children: _propTypes2['default'].any }, _class.typeMap = { line: _line2['default'], text: _text2['default'], slip: _slip2['default'], tree: _tree2['default'], normal: _normal2['default'], filling: _filling2['default'], icononly: _icononly2['default'] }, _temp); ItemMain.displayName = 'ItemMain'; exports['default'] = ItemMain; ItemMain.contextTypes = { type: _propTypes2['default'].string }; module.exports = exports['default']; /***/ }), /***/ 2286: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _item = __webpack_require__(1809); var _item2 = _interopRequireDefault(_item); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Normal = function (_Item) { _inherits(Normal, _Item); function Normal(props, context) { _classCallCheck(this, Normal); var _this = _possibleConstructorReturn(this, _Item.call(this, props, context)); _this.activeDirectionClassName = context.prefix + 'navigation-item-selected'; return _this; } Normal.prototype.onClick = function onClick() { var _props = this.props, onClick = _props.onClick, onSelect = _props.onSelect, selected = _props.selected, selectedStyle = _props.selectedStyle, itemid = _props.itemid; var context = this.context, argv = [itemid, this].concat([].slice.call(arguments)); argv.splice(2, 0, this); onClick.apply(this, argv); context.onItemClick.apply(context.rootNavigation, argv); if (selected) { return this; } onSelect.apply(this, argv); if (selectedStyle) { context.onItemSelect.apply(context.rootNavigation, argv); } }; Normal.prototype.render = function render() { var _classNames; var _props2 = this.props, selected = _props2.selected, activeDirection = _props2.activeDirection, context = this.context, classes = void 0, activeClassName = void 0; activeDirection = activeDirection || context.activeDirection; activeClassName = this.activeDirectionClassName + '-' + activeDirection; classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, this.selectedClassName, selected), _defineProperty(_classNames, activeClassName, selected && activeDirection), _classNames)); return _Item.prototype.render.call(this, classes); }; return Normal; }(_item2['default']); exports['default'] = Normal; module.exports = exports['default']; /***/ }), /***/ 2287: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _helper = __webpack_require__(1914); var _helper2 = _interopRequireDefault(_helper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Group = (_temp = _class = function (_React$Component) { _inherits(Group, _React$Component); function Group(props, context) { _classCallCheck(this, Group); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); var prefix = context.prefix + 'navigation'; _this.groupClassName = prefix + '-group'; _this.titleClassName = prefix + '-group-title'; _this.contentClassName = prefix + '-group-content'; return _this; } Group.prototype.renderTitle = function renderTitle() { var title = this.props.title; return _react2['default'].createElement( 'div', { className: this.titleClassName }, title ); }; Group.prototype.renderChildren = function renderChildren() { var children = this.props.children; return _react2['default'].createElement( 'ul', { className: this.contentClassName }, children ); }; Group.prototype.renderContent = function renderContent() { var _classNames; var _props = this.props, className = _props.className, style = _props.style; var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, this.groupClassName, true), _defineProperty(_classNames, className, !!className), _classNames)); return _react2['default'].createElement( 'li', { className: classes, style: style }, this.renderTitle(), this.renderChildren() ); }; Group.prototype.render = function render() { return this.renderContent(); }; return Group; }(_react2['default'].Component), _class.contextTypes = _helper2['default'].propTypes, _class.propTypes = { className: _propTypes2['default'].string, title: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].element]), children: _propTypes2['default'].any }, _temp); Group.displayName = 'Group'; exports['default'] = Group; module.exports = exports['default']; /***/ }), /***/ 2288: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _navigation = __webpack_require__(1810); var _navigation2 = _interopRequireDefault(_navigation); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Normal = function (_Navigation) { _inherits(Normal, _Navigation); function Normal() { _classCallCheck(this, Normal); return _possibleConstructorReturn(this, _Navigation.apply(this, arguments)); } /** * 由item子组件click触发select处理函数 * @method onItemSelect */ Normal.prototype.onItemSelect = function onItemSelect(itemid) { if (itemid === this.state.selectedKey) { return this; } _Navigation.prototype.onItemSelect.apply(this, arguments); if (this.props.selectedStyle) { this.setState({ selectedKey: itemid }); } }; return Normal; }(_navigation2['default']); exports['default'] = Normal; Normal.defaultProps.type = 'normal'; module.exports = exports['default']; /***/ }), /***/ 2289: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _utils = __webpack_require__(1746); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var checkSpecKeys = function checkSpecKeys(spec, keysArray) { return keysArray.reduce(function (value, key) { return value && spec.hasOwnProperty(key); }, true) ? null : console.error('Keys Missing', spec); /*eslint no-console:0*/ }; var getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) { checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth']); var trackWidth = void 0; var trackHeight = void 0; var trackChildren = spec.slideCount + 2 * spec.slidesToShow; if (!spec.vertical) { if (spec.variableWidth) { trackWidth = (spec.slideCount + 2 * spec.slidesToShow) * spec.slideWidth; } else if (spec.centerMode) { trackWidth = (spec.slideCount + 2 * (spec.slidesToShow + 1)) * spec.slideWidth; } else { trackWidth = (spec.slideCount + 2 * spec.slidesToShow) * spec.slideWidth; } } else { trackHeight = trackChildren * spec.slideHeight; } var style = { opacity: 1 }; var transform = { WebkitTransform: !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)', transform: !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)', transition: '', WebkitTransition: '', msTransform: !spec.vertical ? 'translateX(' + spec.left + 'px)' : 'translateY(' + spec.left + 'px)' }; if (trackWidth) { style = _extends({}, style, { width: trackWidth }); } if (trackHeight) { style = _extends({}, style, { height: trackHeight }); } if (!spec.fade) { style = _extends({}, style, transform); } // Fallback for IE8 /* istanbul ignore if */ if (_utils.isIE8) { if (!spec.vertical) { style.marginLeft = spec.left + 'px'; } else { style.marginTop = spec.left + 'px'; } } return style; }; var getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) { checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth', 'speed', 'cssEase']); var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined style.WebkitTransition = '-webkit-transform ' + spec.speed + 'ms ' + spec.cssEase; style.transition = 'transform ' + spec.speed + 'ms ' + spec.cssEase; return style; }; var getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) { checkSpecKeys(spec, ['slideIndex', 'trackRef', 'infinite', 'centerMode', 'slideCount', 'slidesToShow', 'slidesToScroll', 'slideWidth', 'listWidth', 'variableWidth', 'slideHeight']); var slideOffset = 0; var targetLeft = void 0; var targetSlide = void 0; var verticalOffset = 0; if (spec.fade) { return 0; } if (spec.infinite) { if (spec.slideCount > spec.slidesToShow) { slideOffset = spec.slideWidth * spec.slidesToShow * -1; verticalOffset = spec.slideHeight * spec.slidesToShow * -1; } if (spec.slideCount % spec.slidesToScroll !== 0) { if (spec.slideIndex + spec.slidesToScroll > spec.slideCount && spec.slideCount > spec.slidesToShow) { if (spec.slideIndex > spec.slideCount) { slideOffset = (spec.slidesToShow - (spec.slideIndex - spec.slideCount)) * spec.slideWidth * -1; verticalOffset = (spec.slidesToShow - (spec.slideIndex - spec.slideCount)) * spec.slideHeight * -1; } else { slideOffset = spec.slideCount % spec.slidesToScroll * spec.slideWidth * -1; verticalOffset = spec.slideCount % spec.slidesToScroll * spec.slideHeight * -1; } } } } else { /* eslint-disable no-lonely-if */ if (spec.slideCount % spec.slidesToScroll !== 0) { if (spec.slideIndex + spec.slidesToScroll > spec.slideCount && spec.slideCount > spec.slidesToShow) { var slidesToOffset = spec.slidesToShow - spec.slideCount % spec.slidesToScroll; slideOffset = slidesToOffset * spec.slideWidth; } } } if (spec.centerMode) { if (spec.infinite) { slideOffset += spec.slideWidth * Math.floor(spec.slidesToShow / 2); } else { slideOffset = spec.slideWidth * Math.floor(spec.slidesToShow / 2); } } if (!spec.vertical) { targetLeft = spec.slideIndex * spec.slideWidth * -1 + slideOffset; } else { targetLeft = spec.slideIndex * spec.slideHeight * -1 + verticalOffset; } if (spec.variableWidth === true) { var targetSlideIndex = void 0; if (spec.slideCount <= spec.slidesToShow || spec.infinite === false) { targetSlide = _reactDom2['default'].findDOMNode(spec.trackRef).childNodes[spec.slideIndex]; } else { targetSlideIndex = spec.slideIndex + spec.slidesToShow; targetSlide = _reactDom2['default'].findDOMNode(spec.trackRef).childNodes[targetSlideIndex]; } targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0; if (spec.centerMode === true) { if (spec.infinite === false) { targetSlide = _reactDom2['default'].findDOMNode(spec.trackRef).children[spec.slideIndex]; } else { targetSlide = _reactDom2['default'].findDOMNode(spec.trackRef).children[spec.slideIndex + spec.slidesToShow + 1]; } if (targetSlide) { targetLeft = targetSlide.offsetLeft * -1 + (spec.listWidth - targetSlide.offsetWidth) / 2; } } } return targetLeft; }; /***/ }), /***/ 2290: /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * json2mq is used to generate media query string from JSON or javascript object. * reference: * https://github.com/akiran/json2mq/blob/master/index.js */ var utils = __webpack_require__(1746); var isDimension = function isDimension(feature) { var re = /[height|width]$/; return re.test(feature); }; var obj2mq = function obj2mq(obj) { var mq = ''; var features = Object.keys(obj); features.forEach(function (feature, index) { var value = obj[feature]; feature = utils.camel2hyphen(feature); // Add px to dimension features if (isDimension(feature) && typeof value === 'number') { value = value + 'px'; } if (value === true) { mq += feature; } else if (value === false) { mq += 'not ' + feature; } else { mq += '(' + feature + ': ' + value + ')'; } if (index < features.length - 1) { mq += ' and '; } }); return mq; }; var json2mq = function json2mq(query) { var mq = ''; if (typeof query === 'string') { return query; } // Handling array of media queries if (query instanceof Array) { query.forEach(function (q, index) { mq += obj2mq(q); if (index < query.length - 1) { mq += ', '; } }); return mq; } // Handling single media query return obj2mq(query); }; module.exports = json2mq; /***/ }), /***/ 2291: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getWidth = getWidth; exports.getHeight = getHeight; exports.isIE8 = isIE8; exports.getTransformPropertyName = getTransformPropertyName; // 获取元素的宽 function getWidth(elem) { if (!elem) { return 0; } return elem.offsetWidth; } // 获取元素的高度 function getHeight(elem) { if (!elem) { return 0; } return elem.offsetHeight; } // 是否为 IE8 浏览器 function isIE8() { /* istanbul ignore if */ if (!document || typeof document === 'undefined') { return false; } var documentMode = document.documentMode || 0; return documentMode === 8; } var transformPropertyName = void 0; function getTransformPropertyName() { /* istanbul ignore if */ if (!window.getComputedStyle) { return false; } if (transformPropertyName !== undefined) { return transformPropertyName; } var el = document.createElement('p'); var has3d = void 0; var transforms = { webkitTransform: '-webkit-transform', OTransform: '-o-transform', msTransform: '-ms-transform', MozTransform: '-moz-transform', transform: 'transform' }; // Add it to the body to get the computed style. document.body.insertBefore(el, null); for (var t in transforms) { if (el.style[t] !== undefined) { el.style[t] = 'translate3d(1px,1px,1px)'; has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]); if (has3d !== undefined && has3d.length > 0 && has3d !== 'none') { transformPropertyName = t; } } } document.body.removeChild(el); return transformPropertyName; } /***/ }), /***/ 2292: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _tree = __webpack_require__(2692); var _tree2 = _interopRequireDefault(_tree); var _treeNode = __webpack_require__(2693); var _treeNode2 = _interopRequireDefault(_treeNode); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _tree2['default'].Node = _treeNode2['default']; exports['default'] = _tree2['default']; module.exports = exports['default']; /***/ }), /***/ 2293: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _runtime = __webpack_require__(2696); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Upload = function (_Component) { _inherits(Upload, _Component); function Upload(props) { _classCallCheck(this, Upload); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.state = { Component: _runtime.Html5Uploader }; return _this; } Upload.prototype.componentDidMount = function componentDidMount() { if (typeof File === 'undefined') { /* eslint react/no-did-mount-set-state:0 */ this.setState({ Component: _runtime.IframeUploader }); } }; Upload.prototype.abort = function abort(file) { this.refs.Uploader.abort(file); }; Upload.prototype.render = function render() { var others = _objectWithoutProperties(this.props, []); var Uploader = this.state.Component; return _react2['default'].createElement(Uploader, _extends({}, others, { ref: 'Uploader' })); }; return Upload; }(_react.Component); Upload.displayName = 'Upload'; exports['default'] = Upload; module.exports = exports['default']; /***/ }), /***/ 2294: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = upload; var _objectAssign = __webpack_require__(76); var _objectAssign2 = _interopRequireDefault(_objectAssign); var _index = __webpack_require__(1668); var _mime = __webpack_require__(2700); var _mime2 = _interopRequireDefault(_mime); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function getError(option, xhr) { var msg = 'cannot post ' + option.action + ' ' + xhr.status + '\''; var err = new Error(msg); err.status = xhr.status; err.method = 'post'; err.url = option.action; return err; } function getBody(xhr) { var text = xhr.responseText || xhr.response; if (!text) { return text; } try { return JSON.parse(text); } catch (e) { return text; } } function send(xhr, data) { if (typeof data === 'string') { // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/sendAsBinary if (xhr.sendAsBinary) { // Gecko xhr.sendAsBinary(data); } else { // WebKit with typed arrays support var ui8a = new Uint8Array(data.length); for (var i = 0, l = data.length; i < l; i++) { ui8a[i] = data.charCodeAt(i) & 0xff; } xhr.send(ui8a.buffer); } } else { xhr.send(data); } } function upload(option) { if (typeof XMLHttpRequest === 'undefined') { return; } var xhr = new XMLHttpRequest(); if (xhr.upload) { xhr.upload.onprogress = function progress(e) { if (e.total > 0) { e.percent = e.loaded / e.total * 100; } option.onProgress(e); }; } var formData = void 0; var fileName = option.file && option.file.name || ''; var multipartArgs = (0, _objectAssign2['default'])({ name: fileName }, option.data); if (typeof option.bin === 'string') { var bin = option.bin; var boundary = '----ksuploadboundary' + (0, _index.uid)(); var dashdash = '--'; var crlf = '\r\n'; var multipartBlob = ''; option.headers = option.headers || {}; // if no FormData we can still try to send it directly as last resort (see below) // Trying to send the whole thing as binary... // Added multipart request option.headers['Content-Type'] = 'multipart/form-data; boundary=' + boundary; // append multipart parameters Object.keys(multipartArgs).forEach(function (name) { /* eslint prefer-template: 0 */ multipartBlob += dashdash + boundary + crlf + 'Content-Disposition: form-data; name="' + name + '"' + crlf + crlf; multipartBlob += unescape(encodeURIComponent(multipartArgs[name])) + crlf; }); var mimeType = _mime2['default'][option.file.name.replace(/^.+\.([^.]+)/, '$1').toLowerCase()] || 'application/octet-stream'; // Build RFC2388 blob multipartBlob += dashdash + boundary + crlf + 'Content-Disposition: form-data; name="' + option.filename + '"; filename="' + unescape(encodeURIComponent(option.file.name)) + '"' + crlf + 'Content-Type: ' + mimeType + crlf + crlf + bin + crlf + dashdash + boundary + dashdash + crlf; // multipartDeltaSize = multipartBlob.length - bin.length; formData = multipartBlob; } else { formData = new FormData(); /* eslint-disable */ Object.keys(multipartArgs).map(function (key) { formData.append(key, multipartArgs[key]); }); /* eslint-enable */ formData.append(option.filename, option.bin); } xhr.onerror = function error(e) { option.onError(e); }; xhr.onload = function onload() { if (xhr.status < 200 || xhr.status >= 300) { return option.onError(getError(option, xhr), getBody(xhr)); } option.onSuccess(getBody(xhr)); }; xhr.onabort = function (e) { option.onAbort(e); }; xhr.open('post', option.action, true); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179 if (option.withCredentials && 'withCredentials' in xhr) { xhr.withCredentials = true; } var headers = option.headers || {}; for (var h in headers) { if (headers.hasOwnProperty(h)) { xhr.setRequestHeader(h, headers[h]); } } send(xhr, formData); delete option.bin; delete option.file; return { abort: function abort() { xhr.abort(); } }; } module.exports = exports['default']; /***/ }), /***/ 2295: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /* eslint-disable */ var BinaryReader = function () { function BinaryReader() { _classCallCheck(this, BinaryReader); this._II = false; this._bin = null; } BinaryReader.prototype._read = function _read(idx, size) { var mv = this._II ? 0 : -8 * (size - 1); var sum = 0, i = void 0; for (i = 0; i < size; i++) { sum |= this._bin.charCodeAt(idx + i) << Math.abs(mv + i * 8); } return sum; }; BinaryReader.prototype._write = function _write(idx, num, size) { var str = ''; var mv = this._II ? 0 : -8 * (size - 1), i = void 0; for (i = 0; i < size; i++) { str += String.fromCharCode(num >> Math.abs(mv + i * 8) & 255); } this._putstr(str, idx, size); }; BinaryReader.prototype._putstr = function _putstr(segment, idx, length) { length = arguments.length === 3 ? length : this._bin.length - idx - 1; this._bin = this._bin.substr(0, idx) + segment + this._bin.substr(length + idx); }; BinaryReader.prototype.II = function II(order) { if (order === undefined) return this._II; this._II = order; }; BinaryReader.prototype.init = function init(binData) { this._II = false; this._bin = binData; }; BinaryReader.prototype.SEGMENT = function SEGMENT(idx, length, segment) { var bin = this._bin; switch (arguments.length) { case 1: return bin.substr(idx, bin.length - idx - 1); case 2: return bin.substr(idx, length); case 3: this._putstr(segment, idx, length); break; default: return bin; } }; BinaryReader.prototype.BYTE = function BYTE(idx) { return this._read(idx, 1); }; BinaryReader.prototype.SHORT = function SHORT(idx) { return this._read(idx, 2); }; BinaryReader.prototype.LONG = function LONG(idx, num) { if (num === undefined) { return this._read(idx, 4); } this._write(idx, num, 4); }; BinaryReader.prototype.SLONG = function SLONG(idx) { // 2's complement notation var num = this._read(idx, 4); return num > 2147483647 ? num - 4294967296 : num; }; BinaryReader.prototype.STRING = function STRING(idx, size) { var str = ''; for (size += idx; idx < size; idx++) { str += String.fromCharCode(this._read(idx, 1)); } return str; }; return BinaryReader; }(); exports['default'] = BinaryReader; module.exports = exports['default']; /***/ }), /***/ 2296: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextProgress = __webpack_require__(1917); var _nextProgress2 = _interopRequireDefault(_nextProgress); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _index = __webpack_require__(1668); var util = _interopRequireWildcard(_index); var _util = __webpack_require__(1668); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; /** Upload.List */ var UploadList = (_temp = _class = function (_Component) { _inherits(UploadList, _Component); function UploadList() { _classCallCheck(this, UploadList); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } UploadList.prototype.componentDidUpdate = function componentDidUpdate() { var _this2 = this; if (this.props.listType !== 'picture' && this.props.listType !== 'picture-card') { return; } this.props.fileList.forEach(function (file) { if (typeof document === 'undefined' || typeof window === 'undefined' || !window.FileReader || !window.File || !(file.originFileObj instanceof File) || file.thumbUrl !== undefined) { return; } file.thumbUrl = ''; util.readFileAsDataURL(file.originFileObj, function (previewDataUrl) { file.thumbUrl = previewDataUrl; _this2.forceUpdate(); }); }); }; UploadList.prototype.handleClose = function handleClose(file) { this.props.onRemove(file); }; UploadList.prototype.handleCancel = function handleCancel(file) { this.props.onCancel(file); }; UploadList.prototype.render = function render() { var _this3 = this, _classNames2; var _props = this.props, listType = _props.listType, locale = _props.locale, children = _props.children; var prefix = this.context.prefix || this.props.prefix; var prefixCls = prefix + 'upload'; var list = this.props.fileList.map(function (file, idx) { var _classNames; var size = file.size ? parseFloat(file.size / 1024, 10).toFixed(2) : 0; var progress = void 0; var img = ''; file.uid = file.uid || (0, _util.uid)(); var status = file.status; if (listType === 'picture-card') { if (status === 'uploading') { img = _react2['default'].createElement( 'div', { className: prefixCls + '-list-item-thumbnail' }, _react2['default'].createElement( 'div', null, _react2['default'].createElement(_nextIcon2['default'], { type: 'picture' }), _react2['default'].createElement( 'a', { href: 'javascript:;', onClick: function onClick() { return _this3.handleCancel(file); } }, locale.image.cancel ) ) ); } else if (status === 'error') { img = _react2['default'].createElement( 'div', { className: prefixCls + '-list-item-thumbnail' }, _react2['default'].createElement( 'div', null, _react2['default'].createElement(_nextIcon2['default'], { type: 'cry' }) ) ); } else { var backgroundSize = file.response && file.response.height > file.response.width ? 'auto 100%' : '100% auto'; img = _react2['default'].createElement( 'div', { className: prefixCls + '-list-item-thumbnail' }, _react2['default'].createElement('div', { style: { backgroundImage: 'url("' + file.imgURL + '")', backgroundSize: backgroundSize } }) ); } } else if (listType === 'text-image') { if (status === 'uploading') { img = _react2['default'].createElement( 'div', { className: prefixCls + '-list-item-thumbnail' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'picture' }) ); } else if (status === 'error') { img = _react2['default'].createElement( 'div', { className: prefixCls + '-list-item-thumbnail' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'cry' }) ); } else { var _backgroundSize = file.response && file.response.height > file.response.width ? 'auto 100%' : '100% auto'; img = _react2['default'].createElement( 'div', { className: prefixCls + '-list-item-thumbnail' }, _react2['default'].createElement('div', { style: { backgroundImage: 'url(' + file.imgURL + ')', backgroundSize: _backgroundSize } }) ); } } if (file.status === 'uploading') { progress = _react2['default'].createElement( 'div', { className: prefixCls + '-list-item-progress' }, _react2['default'].createElement(_nextProgress2['default'], { size: listType === 'picture-card' ? 'small' : 'medium', percent: file.percent, showInfo: false }) ); } var infoUploadingClass = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefixCls + '-list-item', true), _defineProperty(_classNames, prefixCls + '-list-item-' + file.status, true), _defineProperty(_classNames, prefixCls + '-list-item-hovered', !!file.hovered), _classNames)); return _react2['default'].createElement( 'div', { className: infoUploadingClass, key: file.uid }, _this3.props.cell ? _this3.props.cell(file, idx) : _react2['default'].createElement( 'div', { className: prefixCls + '-list-item-info' }, img, listType === 'picture-card' ? _react2['default'].createElement( 'span', { className: prefixCls + '-list-item-name' }, file.fileName ) : listType === 'text-image' && file.status === 'uploading' ? '' : _react2['default'].createElement( 'a', { href: file.downloadURL, target: '_blank', style: { pointerEvents: file.downloadURL ? '' : 'none' }, className: prefixCls + '-list-item-name' }, _react2['default'].createElement( 'span', null, file.fileName ), !!size && _react2['default'].createElement( 'span', { className: prefixCls + '-list-item-extra' }, '(', size, 'K)' ) ), progress, listType === 'picture-card' ? file.status !== 'uploading' ? _react2['default'].createElement( 'span', { className: prefixCls + '-tool ' + (!_this3.props.closable ? 'noclose' : '') }, _react2['default'].createElement( 'a', { href: file.downloadURL, target: '_blank', style: { pointerEvents: file.downloadURL ? '' : 'none' } }, _react2['default'].createElement(_nextIcon2['default'], { type: file.downloadURL ? 'download' : '', className: prefixCls + '-tool-download-icon' }) ), _this3.props.closable ? _react2['default'].createElement( 'span', { className: prefixCls + '-tool-close' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'ashbin', onClick: function onClick() { return _this3.handleClose(file); } }) ) : null ) : '' : _this3.props.closable ? _react2['default'].createElement(_nextIcon2['default'], { type: 'close', size: 'large', onClick: function onClick() { return _this3.handleClose(file); } }) : null ) ); }); var listClassNames = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefixCls + '-list', true), _defineProperty(_classNames2, prefixCls + '-list-' + this.props.listType, true), _classNames2)); return _react2['default'].createElement( 'div', { className: listClassNames }, list, children ); }; return UploadList; }(_react.Component), _class.propTypes = { prefix: _propTypes2['default'].string, locale: _propTypes2['default'].object, /** * 文件列表,数据格式请参考 文件对象 */ listType: _propTypes2['default'].oneOf(['text', 'text-image', 'picture-card']), /** * 文件列表 */ fileList: _propTypes2['default'].array, closable: _propTypes2['default'].bool, language: _propTypes2['default'].string, /** * 渲染 * @param {Object} value 该行数据 * @param {Number} idx 序列 * @return {Element} 自定义内容 */ cell: _propTypes2['default'].func, onRemove: _propTypes2['default'].func, onCancel: _propTypes2['default'].func, children: _propTypes2['default'].node }, _class.defaultProps = { prefix: 'next-', listType: 'text', fileList: [], closable: false, onRemove: noop, onCancel: noop }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); UploadList.displayName = 'UploadList'; exports['default'] = (0, _nextLocaleProvider2['default'])(UploadList); module.exports = exports['default']; /***/ }), /***/ 2505: /***/ (function(module, exports, __webpack_require__) { exports.Accordion = __webpack_require__(2549); exports.Affix = __webpack_require__(2551); exports.Animate = __webpack_require__(1503); exports.Badge = __webpack_require__(2553); exports.Balloon = __webpack_require__(1909); exports.Breadcrumb = __webpack_require__(2557); exports.Button = __webpack_require__(1472); exports.Calendar = __webpack_require__(1743); exports.Card = __webpack_require__(2573); exports.Cascader = __webpack_require__(2274); exports.CascaderSelect = __webpack_require__(2576); exports.Checkbox = __webpack_require__(1559); exports.ConfigProvider = __webpack_require__(2577); exports.DatePicker = __webpack_require__(2578); exports.Dialog = __webpack_require__(2278); exports.dom = __webpack_require__(1124); exports.Dropdown = __webpack_require__(1741); exports.Feedback = __webpack_require__(2280); exports.Field = __webpack_require__(2590); exports.Form = __webpack_require__(2614); exports.Grid = __webpack_require__(2284); exports.Icon = __webpack_require__(917); exports.Input = __webpack_require__(1448); exports.Loading = __webpack_require__(2619); exports.LocaleProvider = __webpack_require__(1218); exports.Menu = __webpack_require__(1453); exports.Moment = __webpack_require__(980); exports.moment = __webpack_require__(980); exports.Nav = __webpack_require__(2620); exports.Navigation = __webpack_require__(2626); exports.Notice = __webpack_require__(2640); exports.NumberPicker = __webpack_require__(2642); exports.Overlay = __webpack_require__(1401); exports.Pagination = __webpack_require__(2024); exports.Progress = __webpack_require__(1917); exports.Radio = __webpack_require__(1742); exports.Range = __webpack_require__(2645); exports.Rating = __webpack_require__(2652); exports.Search = __webpack_require__(2653); exports.Select = __webpack_require__(1567); exports.Slider = __webpack_require__(2656); exports.Step = __webpack_require__(2667); exports.Switch = __webpack_require__(2670); exports.Tab = __webpack_require__(2671); exports.Table = __webpack_require__(2676); exports.Tag = __webpack_require__(2683); exports.TimePicker = __webpack_require__(1911); exports.Timeline = __webpack_require__(2684); exports.Transfer = __webpack_require__(2687); exports.Tree = __webpack_require__(2292); exports.TreeSelect = __webpack_require__(2694); exports.Upload = __webpack_require__(2695); exports.version = '0.19.67'; /***/ }), /***/ 2549: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextUtil = __webpack_require__(889); var _section = __webpack_require__(2550); var _section2 = _interopRequireDefault(_section); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Accordion */ var Accordion = (_temp = _class = function (_React$Component) { _inherits(Accordion, _React$Component); function Accordion(props, context) { _classCallCheck(this, Accordion); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this.trigger = _this.trigger.bind(_this); _this.useProp(_this.props, true); return _this; } Accordion.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { //只有传递数据模型时才接受改变 this.useProp(nextProps); }; Accordion.prototype.useProp = function useProp(props, initial) { var dataModel = Array.isArray(props.dataSource); // 数据归一化 无论是来自于props.dataSource 还是来自于props.children var data = dataModel ? props.dataSource : _react2['default'].Children.map(props.children, function (e) { return _extends({ key: e.key }, e.props); }); var state = initial ? { section: [] } : this.state; // 初始化的时候没办法过去 this.state 所以给予一个默认值 var _getSectionsProp = this.getSectionsProp(data, state), section = _getSectionsProp.section, expandedWarning = _getSectionsProp.expandedWarning, multiTitleWarning = _getSectionsProp.multiTitleWarning; if (initial) { this.state = { section: section, dataModel: dataModel }; } else { this.setState({ section: section, dataModel: dataModel }); } if (expandedWarning) { // expand -》 expanded。 _nextUtil.log.deprecated('expand', 'expanded', 'Accordion'); } if (multiTitleWarning) { // mutliTitle -》 multiTitle。 _nextUtil.log.deprecated('mutliTitle', 'multiTitle', 'Accordion'); } }; Accordion.prototype.getSectionsProp = function getSectionsProp(data, state) { // 这个函数的逻辑比较复杂 // 获取之前存下来的 section var sectionInState = state.section; // 把section 变成 key value的形式 var keySection = sectionInState.reduce(function (prev, curr) { var key = curr.key; if (key !== undefined && key !== null) { prev[key] = curr; } return prev; }, {}); // 如果每个Children都传入了key, 称之为 KeyMode 如果每个都没传key或者 只有部分Children有key 则非keyMode // 计算之前的keyMode var prevhasKeys = Object.keys(keySection).length > 0; var prevKeyMode = prevhasKeys && Object.keys(keySection).length === sectionInState.length; // 计算现在的keyMode var currentKeys = data.filter(function (element) { return element.key !== undefined && element.key !== null; }); var currentKeyMode = data.length === currentKeys.length && currentKeys.length > 0; // 如果现在 只有部分Children有key 那么基于Warning var currentlackOfKey = data.length !== currentKeys.length && currentKeys.length > 0; if (currentlackOfKey) { // eslint-disable-next-line no-console console.error('Every Panel should have a key or None of Panel should have a key'); } var expandedWarning = false; var multiTitleWarning = false; var sectionsProp = data.map(function (e, index) { var expanded = e.expanded, expand = e.expand, mutliTitle = e.mutliTitle, multiTitle = e.multiTitle, title = e.title, content = e.content, disabled = e.disabled, className = e.className, style = e.style, key = e.key, others = _objectWithoutProperties(e, ['expanded', 'expand', 'mutliTitle', 'multiTitle', 'title', 'content', 'disabled', 'className', 'style', 'key']); var _expanded = function () { // expand -》 expanded。 var isExpanded = void 0; if (expand !== undefined) { expandedWarning = true; } if (expanded !== undefined) { isExpanded = !!expanded; } else if (expand !== undefined) { isExpanded = !!expand; } else { // 没有 expanded 和 expand也都没传入 说明用户完全不控制 Panel的展开状态 // 那么 处理这个Panel的时候 沿用原来的状态 // 如果之前传入的Children是keyMode 现在传入的Children也是keyMode 则按照key匹配模式复用状态 // 如果之前传入的Children非keyMode 现在传入的Children也非keyMode 则按照index匹配模式复用状态 // 如果之前传入的Children和现在传入的Children 一个keyMode 一个非keyMode 则认为全新的Panel 默认折叠 // eslint-disable-next-line no-lonely-if if (prevKeyMode === currentKeyMode && currentKeyMode === true) { // 如果之前传入的Children是keyMode 现在传入的Children也是keyMode 则按照key匹配模式复用状态 isExpanded = keySection[key] && keySection[key].expanded; } else if (prevKeyMode === currentKeyMode && currentKeyMode === false) { // 如果之前传入的Children非keyMode 现在传入的Children也非keyMode 则按照index匹配模式复用状态 isExpanded = sectionInState[index] && sectionInState[index].expanded; } else { isExpanded = false; } } return isExpanded; }(); var _multiTitle = function () { // mutliTitle -》 multiTitle。 var isMultiTitle = void 0; if (mutliTitle !== undefined) { multiTitleWarning = true; } if (multiTitle !== undefined) { isMultiTitle = !!multiTitle; } else if (mutliTitle !== undefined) { isMultiTitle = !!mutliTitle; } else { isMultiTitle = !!multiTitle; } return isMultiTitle; }(); return _extends({ expanded: _expanded, title: title, children: content, disabled: !!disabled, multiTitle: _multiTitle, className: className, style: style, key: key }, others); }); return { section: sectionsProp, expandedWarning: expandedWarning, multiTitleWarning: multiTitleWarning }; }; Accordion.prototype.singleCheck = function singleCheck(stateSection, index) { var _this2 = this; var section = stateSection.slice(); if (this.props.single === true) { //固定单条显示 section = section.map(function (suc, key) { var newSuc = function (o) { //Object.assign不兼容ie9 for (var i in suc) { if (!suc.hasOwnProperty(i)) { continue; } o[i] = suc[i]; } return o; }({}); if (index === key) { if (_this2.props.singleShrink === true) { //设置这个属性单例子模式可收起全部 newSuc.expanded = !newSuc.expanded; } else { newSuc.expanded = true; } } else { newSuc.expanded = false; } return newSuc; }); } else { //可以多条显示 section = section.map(function (suc, key) { var newSuc = function (o) { //Object.assign不兼容ie9 for (var i in suc) { if (!suc.hasOwnProperty(i)) { continue; } o[i] = suc[i]; } return o; }({}); if (index === key) { newSuc.expanded = !newSuc.expanded; } return newSuc; }); } return { section: section }; }; Accordion.prototype.trigger = function trigger(index) { var singleCheck = this.singleCheck(this.state.section, index); if (this.state.dataModel === false) { this.setState({ section: singleCheck.section }); } typeof this.props.onChange === 'function' && this.props.onChange(singleCheck.section.map(function (sec) { return sec.expanded; }), singleCheck.section); }; Accordion.prototype.render = function render() { var _this3 = this; // 支持从context上获取prefix var prefix = this.context.prefix || this.props.prefix; return _react2['default'].createElement( 'div', { className: (0, _classnames2['default'])(prefix + 'accordion', this.props.className), style: this.props.style }, this.state.section.map(function (e, keys) { var title = e.title, disabled = e.disabled, expanded = e.expanded, multiTitle = e.multiTitle, className = e.className, style = e.style, children = e.children, key = e.key, others = _objectWithoutProperties(e, ['title', 'disabled', 'expanded', 'multiTitle', 'className', 'style', 'children', 'key']); return _react2['default'].createElement( _section2['default'], _extends({ title: title, disabled: !!disabled, expanded: !!expanded, trigger: _this3.trigger, multiTitle: !!multiTitle, key: keys, index: keys, className: className, style: style, prefix: prefix }, others), children ); }) ); }; return Accordion; }(_react2['default'].Component), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * 组件接受行内样式 */ style: _propTypes2['default'].object, /** * 使用数据模型构建 */ dataSource: _propTypes2['default'].array, /** * 如果这个属性为true, 在single为true时, 组件可以收起全部子元素 */ singleShrink: _propTypes2['default'].bool, /** * 是否只能展开1个 */ single: _propTypes2['default'].bool, /** * 接收一个回调函数传递改变状态, 在使用dataSource时改回调需要产生改变组件才能生效 */ onChange: _propTypes2['default'].func, /** * 扩展class */ className: _propTypes2['default'].string }, _class.defaultProps = { single: false, prefix: 'next-' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Accordion.displayName = 'Accordion'; Accordion.Panel = _react2['default'].Component; exports['default'] = Accordion; module.exports = exports['default']; /***/ }), /***/ 2550: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Accordion.Panel */ var Section = (_temp = _class = function (_React$Component) { _inherits(Section, _React$Component); function Section() { _classCallCheck(this, Section); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Section.prototype.render = function render() { var _classNames; var _props = this.props, expanded = _props.expanded, disabled = _props.disabled, trigger = _props.trigger, index = _props.index, title = _props.title, children = _props.children, multiTitle = _props.multiTitle, className = _props.className, style = _props.style, prefix = _props.prefix, others = _objectWithoutProperties(_props, ['expanded', 'disabled', 'trigger', 'index', 'title', 'children', 'multiTitle', 'className', 'style', 'prefix']); // 支持从context上获取prefix var _prefix = this.context.prefix || prefix; var _className = [_prefix + 'accordion-section']; if (expanded) { _className.push(_prefix + 'accordion-section-expand'); } if (className) { _className.push(className); } return _react2['default'].createElement( 'div', _extends({ className: _classnames2['default'].apply(undefined, _className), style: style }, others), _react2['default'].createElement( 'div', { className: (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, _prefix + 'accordion-section-title', true), _defineProperty(_classNames, _prefix + 'accordion-section-title-disabled', disabled), _defineProperty(_classNames, _prefix + 'accordion-section-title-mutli', multiTitle), _classNames)), onClick: function onClick() { !disabled && trigger(index); } }, _react2['default'].createElement('i', { className: _prefix + 'icon ' + _prefix + 'icon-arrow-up-filling ' + _prefix + 'accordion-icon' }), title ), _react2['default'].createElement( 'div', { className: _prefix + 'accordion-section-content' }, children ) ); }; return Section; }(_react2['default'].Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 子组件接受行内样式 */ style: _propTypes2['default'].object, children: _propTypes2['default'].any, /** * 是否展开 */ expanded: _propTypes2['default'].bool.isRequired, /** * 是否禁止用户操作 */ disabled: _propTypes2['default'].bool.isRequired, trigger: _propTypes2['default'].func.isRequired, index: _propTypes2['default'].number.isRequired, /** * 标题 */ title: _propTypes2['default'].node, /** * 标题是否多行显示 */ multiTitle: _propTypes2['default'].bool.isRequired, /** * 扩展class */ className: _propTypes2['default'].string }, _class.defaultProps = { expanded: false, title: '', multiTitle: false }, _temp); Section.displayName = 'Section'; exports['default'] = Section; module.exports = exports['default']; /***/ }), /***/ 2551: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactDom = __webpack_require__(4); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _nextDom = __webpack_require__(1124); var _nextUtil = __webpack_require__(889); var _util = __webpack_require__(2552); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Affix */ var Affix = (_temp = _class = function (_React$Component) { _inherits(Affix, _React$Component); function Affix(props, context) { _classCallCheck(this, Affix); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this._updateNodePosition = function () { var container = _this.props.container; var affixContainer = container(); var containerScrollTop = (0, _util.getScroll)(affixContainer, true); // 容器在垂直位置上的滚动 offset var affixOffset = _this._getOffset(_this.affixNode, affixContainer); // 目标节点当前相对于容器的 offset var containerHeight = (0, _util.getNodeHeight)(affixContainer); // 容器的高度 var affixHeight = _this.affixNode.offsetHeight; var containerRect = (0, _util.getRect)(affixContainer); var affixMode = _this.affixMode; if (affixMode.top && containerScrollTop > affixOffset.top - affixMode.offset) { // affix top _this._setAffixStyle({ position: 'fixed', top: affixMode.offset + containerRect.top, width: affixOffset.width }); _this._setContainerStyle({ width: affixOffset.width, height: affixHeight }); } else if (affixMode.bottom && containerScrollTop < affixOffset.top + affixHeight + affixMode.offset - containerHeight) { // affix bottom _this._setAffixStyle({ position: 'fixed', bottom: affixMode.offset, width: affixOffset.width, height: affixHeight }); _this._setContainerStyle({ width: affixOffset.width, height: affixHeight }); } else { _this._setAffixStyle(null); _this._setContainerStyle(null); } }; _this._affixNodeRefHandler = function (ref) { _this.affixNode = (0, _reactDom.findDOMNode)(ref); }; _this.state = { style: null, containerStyle: null }; _this.affixMode = _this._getAffixMode(props); return _this; } Affix.prototype.componentDidMount = function componentDidMount() { var _this2 = this; var container = this.props.container; // wait for parent rendered this.timeout = setTimeout(function () { _this2._setEventHandlerForContainer(container); }); }; Affix.prototype.componentWillUnmount = function componentWillUnmount() { if (this.timeout) { clearTimeout(this.timeout); this.timeout = null; } var container = this.props.container; this._removeEventHandlerForContainer(container); }; Affix.prototype._setEventHandlerForContainer = function _setEventHandlerForContainer(getContainer) { var container = getContainer(); if (!container) { return; } _nextDom.events.on(container, 'scroll', this._updateNodePosition); _nextDom.events.on(container, 'resize', this._updateNodePosition); }; Affix.prototype._removeEventHandlerForContainer = function _removeEventHandlerForContainer(getContainer) { var container = getContainer(); if (container) { _nextDom.events.off(container, 'scroll', this._updateNodePosition); _nextDom.events.off(container, 'resize', this._updateNodePosition); } }; Affix.prototype._getAffixMode = function _getAffixMode() { var _props = this.props, offsetTop = _props.offsetTop, offsetBottom = _props.offsetBottom; var affixMode = { top: false, bottom: false, offset: 0 }; if (typeof offsetTop !== 'number' && typeof offsetBottom !== 'number') { // set default affixMode.top = true; } else if (typeof offsetTop === 'number') { affixMode.top = true; affixMode.offset = offsetTop; } else if (typeof offsetBottom === 'number') { affixMode.bottom = true; affixMode.offset = offsetBottom; } return affixMode; }; Affix.prototype._setAffixStyle = function _setAffixStyle(affixStyle) { if (_nextUtil.obj.shallowEqual(affixStyle, this.state.style)) { return; } this.setState({ style: affixStyle }); var onAffix = this.props.onAffix; if (affixStyle && affixStyle.position === 'fixed') { onAffix(true); } else { onAffix(false); } }; Affix.prototype._setContainerStyle = function _setContainerStyle(containerStyle) { if (_nextUtil.obj.shallowEqual(containerStyle, this.state.containerStyle)) { return; } this.setState({ containerStyle: containerStyle }); }; Affix.prototype._getOffset = function _getOffset(affixNode, affixContainer) { var affixRect = affixNode.getBoundingClientRect(); // affix 元素 相对浏览器窗口的位置 var containerRect = (0, _util.getRect)(affixContainer); // affix 容器 相对浏览器窗口的位置 var containerScrollTop = (0, _util.getScroll)(affixContainer, true); var containerScrollLeft = (0, _util.getScroll)(affixContainer, false); return { top: affixRect.top - containerRect.top + containerScrollTop, left: affixRect.left - containerRect.left + containerScrollLeft, width: affixRect.width, height: affixRect.height }; }; Affix.prototype.render = function render() { var _classnames; var _props2 = this.props, className = _props2.className, children = _props2.children, style = _props2.style; var state = this.state; var prefix = this.context.prefix || this.props.prefix; var classNames = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'affix', state.style), _defineProperty(_classnames, prefix + 'affix-top', !state.style && this.affixMode.top), _defineProperty(_classnames, prefix + 'affix-bottom', !state.style && this.affixMode.bottom), _defineProperty(_classnames, className, className), _classnames)); var combinedStyle = _extends({}, state.containerStyle, style); return _react2['default'].createElement( 'div', { ref: this._affixNodeRefHandler, style: combinedStyle }, _react2['default'].createElement( 'div', { className: classNames, style: state.style }, children ) ); }; return Affix; }(_react2['default'].Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 品牌样式前缀 */ prefix: _propTypes2['default'].string, /** * 设置 Affix 需要监听滚动事件的容器元素 * @return {ReactElement} 目标容器元素的实例 */ container: _propTypes2['default'].func, /** * 距离窗口顶部达到指定偏移量后触发 */ offsetTop: _propTypes2['default'].number, /** * 距离窗口底部达到制定偏移量后触发 */ offsetBottom: _propTypes2['default'].number, /** * 当元素的样式发生固钉样式变化时触发的回调函数 * @param {Boolean} affixed 元素是否被固钉 */ onAffix: _propTypes2['default'].func, /** * 自定义样式类名 */ className: _propTypes2['default'].string, style: _propTypes2['default'].object, children: _propTypes2['default'].any }, _class.defaultProps = { prefix: 'next-', container: function container() { return window; }, onAffix: function onAffix() {} }, _temp); Affix.displayName = 'Affix'; exports['default'] = Affix; module.exports = exports['default']; /***/ }), /***/ 2552: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getScroll = getScroll; exports.getRect = getRect; exports.getNodeHeight = getNodeHeight; function getScroll(node, isVertical) { if (typeof window === 'undefined') { return 0; } var windowProp = isVertical ? 'pageYOffset' : 'pageXOffset'; var elementProp = isVertical ? 'scrollTop' : 'scrollLeft'; return node === window ? node[windowProp] : node[elementProp]; } function getRect(node) { return node !== window ? node.getBoundingClientRect() : { top: 0, left: 0, bottom: 0 }; } function getNodeHeight(node) { if (!node) { return 0; } if (node === window) { return window.innerHeight; } return node.clientHeight; } /***/ }), /***/ 2553: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _badge = __webpack_require__(2554); var _badge2 = _interopRequireDefault(_badge); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = _badge2['default']; module.exports = exports['default']; /***/ }), /***/ 2554: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _sup = __webpack_require__(2555); var _sup2 = _interopRequireDefault(_sup); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Badge */ var Badge = (_temp = _class = function (_Component) { _inherits(Badge, _Component); function Badge() { _classCallCheck(this, Badge); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Badge.prototype.render = function render() { var _cx; var prefix = this.context.prefix || this.props.prefix; /* eslint-disable */ var _props = this.props, propsPrefix = _props.prefix, count = _props.count, overflowCount = _props.overflowCount, dot = _props.dot, align = _props.align, className = _props.className, children = _props.children, style = _props.style, others = _objectWithoutProperties(_props, ['prefix', 'count', 'overflowCount', 'dot', 'align', 'className', 'children', 'style']); /* eslint-enable */ count = parseInt(count, 10); overflowCount = parseInt(overflowCount, 10); var classes = (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, prefix + 'badge', true), _defineProperty(_cx, prefix + 'badge-not-a-wrapper', !children), _defineProperty(_cx, className, !!className), _cx)); var spanProps = { className: classes }; if (!dot) { spanProps.title = count; } spanProps = _extends({}, spanProps, others); return _react2['default'].createElement( 'span', spanProps, children, _react2['default'].createElement(_sup2['default'], { prefix: prefix, count: count, overflowCount: overflowCount, dot: dot, alignLeft: align === 'left', style: style }) ); }; return Badge; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内连样式 */ style: _propTypes2['default'].object, /** * 徽章依托的内容 */ children: _propTypes2['default'].node, /** * 展示的数字,大于 overflowCount 时显示为 ${overflowCount}+,为 0 时隐藏 */ count: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string]), /** * 展示的封顶的数字 */ overflowCount: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string]), /** * 不展示数字,只展示一个小红点 */ dot: _propTypes2['default'].bool, /** * 徽章显示的位置 */ align: _propTypes2['default'].oneOf(['left']) // TODO modify to alignLeft boolean prop in 1.x }, _class.defaultProps = { prefix: 'next-', count: 0, overflowCount: 99, dot: false }, _temp); Badge.displayName = 'Badge'; exports['default'] = Badge; module.exports = exports['default']; /***/ }), /***/ 2555: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextAnimate = __webpack_require__(1503); var _nextAnimate2 = _interopRequireDefault(_nextAnimate); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Sup = (_temp = _class = function (_Component) { _inherits(Sup, _Component); function Sup(props, context) { _classCallCheck(this, Sup); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.lastCount = 0; return _this; } Sup.prototype.componentDidMount = function componentDidMount() { this.computeStyle(true); }; Sup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('count' in nextProps) { if (this.props.count === nextProps.count) { return; } this.lastCount = this.props.count; } }; Sup.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { var _this2 = this; if (prevProps.count !== this.props.count) { this.computeStyle(false); setTimeout(function () { _this2.computeStyle(true, true); }, 300); } }; Sup.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; Sup.prototype.computeStyle = function computeStyle(removeTransition, revert) { var _this3 = this; var prefix = this.getPrefix(); var _props = this.props, count = _props.count, overflowCount = _props.overflowCount; var sup = this.refs.sup; if (sup && _nextDom.classList.hasClass(sup, prefix + 'badge-count')) { var scrollNums = sup.querySelectorAll('.' + prefix + 'badge-scroll-number-only'); if (scrollNums.length) { var height = window.getComputedStyle(sup).height; scrollNums = [].slice.call(scrollNums, 0).reverse(); this.getDigitArray(count).forEach(function (digit, i) { var position = _this3.getPositionByDigit(digit, i, revert); var transformTo = -position * parseFloat(height); removeTransition = removeTransition || typeof _this3.getDigitArray(_this3.lastCount)[i] === 'undefined' || _this3.lastCount > overflowCount || _this3.lastCount <= 0; var scrollStyle = _nextUtil.support.animation ? { transition: removeTransition ? 'none' : 'transform .3s cubic-bezier(.645, .045, .355, 1), -webkit-transform .3s cubic-bezier(.645, .045, .355, 1)', WebkitTransform: 'translateY(' + transformTo + 'px)', transform: 'translateY(' + transformTo + 'px)', height: height, lineHeight: height } : { top: transformTo + 'px', height: height, lineHeight: height }; Object.keys(scrollStyle).forEach(function (key) { scrollNums[i].style[key] = scrollStyle[key]; }); }); } } }; Sup.prototype.getDigitArray = function getDigitArray(num) { return num.toString().split('').reverse().map(function (i) { return parseInt(i, 10); }); }; Sup.prototype.getPositionByDigit = function getPositionByDigit(digit, i, revert) { if (revert) { return 10 + digit; } var lastDigit = this.getDigitArray(this.lastCount)[i] || 0; if (this.props.count > this.lastCount) { if (digit >= lastDigit) { return 10 + digit; } return 20 + digit; } if (digit <= lastDigit) { return 10 + digit; } return digit; }; Sup.prototype.renderDigit = function renderDigit(digit, i) { var prefix = this.getPrefix(); var children = []; for (var _i = 0; _i < 30; _i++) { children.push(_react2['default'].createElement( 'span', { key: _i }, _i % 10 )); } return _react2['default'].createElement( 'span', { className: prefix + 'badge-scroll-number-only', key: i }, children ); }; Sup.prototype.renderNumber = function renderNumber() { var _this4 = this; return this.getDigitArray(this.props.count).map(function (digit, i) { return _this4.renderDigit(digit, i); }).reverse(); }; Sup.prototype.render = function render() { var _cx; var prefix = this.getPrefix(); /* eslint-disable no-unused-vars */ var _props2 = this.props, propsPrefix = _props2.prefix, count = _props2.count, overflowCount = _props2.overflowCount, dot = _props2.dot, alignLeft = _props2.alignLeft, style = _props2.style; /* eslint-enable */ var classes = (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, prefix + 'badge-scroll-number', true), _defineProperty(_cx, prefix + 'badge-count', !!count), _defineProperty(_cx, prefix + 'badge-dot', dot), _defineProperty(_cx, prefix + 'badge-dot-left', alignLeft), _cx)); var show = false; var children = null; if (dot) { show = true; } else if (count) { var realCount = parseInt(count, 10); if (!isNaN(realCount) && realCount > 0) { show = true; if (overflowCount) { var realOverflowCount = parseInt(overflowCount, 10); if (!isNaN(realOverflowCount) && realOverflowCount > 0) { realCount = realCount > realOverflowCount ? realOverflowCount + '+' : realCount; } } if (isNaN(realCount)) { children = realCount; } else { children = this.renderNumber(); } } } var animation = { appear: 'fadeIn', enter: 'fadeIn', leave: 'fadeOut' }; var wrapper = _nextUtil.support.animation ? _react2['default'].createElement(_nextAnimate2['default'], { component: '', animation: animation }) : _react2['default'].createElement('span', null); var element = show ? _react2['default'].createElement( 'sup', { ref: 'sup', className: classes, style: style }, children ) : null; return _react2['default'].cloneElement(wrapper, {}, element); }; return Sup; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { prefix: _propTypes2['default'].string, count: _propTypes2['default'].number, overflowCount: _propTypes2['default'].number, dot: _propTypes2['default'].bool, alignLeft: _propTypes2['default'].bool, style: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', count: 0, overflowCount: 99, dot: false, alignLeft: false }, _temp); Sup.displayName = 'Sup'; exports['default'] = Sup; module.exports = exports['default']; /***/ }), /***/ 2556: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _balloon = __webpack_require__(2257); var _balloon2 = _interopRequireDefault(_balloon); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Balloon.Tooltip */ var Tooltip = (_temp = _class = function (_React$Component) { _inherits(Tooltip, _React$Component); function Tooltip() { _classCallCheck(this, Tooltip); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Tooltip.prototype.render = function render() { var _props = this.props, className = _props.className, align = _props.align, trigger = _props.trigger, text = _props.text, others = _objectWithoutProperties(_props, ['className', 'align', 'trigger', 'text']); return _react2['default'].createElement( _balloon2['default'], _extends({}, others, { triggerType: 'hover', closable: false, __isTooltip: true, className: className, align: align, trigger: trigger, delay: 0 }), text ); }; return Tooltip; }(_react2['default'].Component), _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内敛样式 */ style: _propTypes2['default'].object, /** * 弹出层位置 * @enumdesc 上, 右, 下, 左, 上左, 上右, 下左, 下右, 左上, 左下, 右上, 右下 */ align: _propTypes2['default'].oneOf(['t', 'r', 'b', 'l', 'tl', 'tr', 'bl', 'br', 'lt', 'lb', 'rt', 'rb']), /** * tooltip 内部内容文案 */ text: _propTypes2['default'].node, /** * 触发元素 */ trigger: _propTypes2['default'].any }, _class.defaultProps = { align: 'b', text: '', trigger: _react2['default'].createElement('span', null) }, _temp); Tooltip.displayName = 'Tooltip'; exports['default'] = Tooltip; module.exports = exports['default']; /***/ }), /***/ 2557: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _breadcrumb = __webpack_require__(2558); var _breadcrumb2 = _interopRequireDefault(_breadcrumb); var _item = __webpack_require__(2559); var _item2 = _interopRequireDefault(_item); var _number = __webpack_require__(2561); var _number2 = _interopRequireDefault(_number); var _keyword = __webpack_require__(2562); var _keyword2 = _interopRequireDefault(_keyword); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _breadcrumb2['default'].Item = _item2['default']; _breadcrumb2['default'].Number = _number2['default']; _breadcrumb2['default'].Keyword = _keyword2['default']; exports['default'] = _breadcrumb2['default']; module.exports = exports['default']; /***/ }), /***/ 2558: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Breadcrumb */ var Breadcrumb = (_temp = _class = function (_Component) { _inherits(Breadcrumb, _Component); function Breadcrumb() { _classCallCheck(this, Breadcrumb); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Breadcrumb.prototype.render = function render() { var _classNames; var prefix = this.context.prefix || this.props.prefix; /* eslint-disable no-unused-vars */ var _props = this.props, propsPrefix = _props.prefix, className = _props.className, children = _props.children, maxNode = _props.maxNode, separator = _props.separator, others = _objectWithoutProperties(_props, ['prefix', 'className', 'children', 'maxNode', 'separator']); /* eslint-enable */ var items = void 0; var length = _react2['default'].Children.count(children); if (maxNode > 1 && length > maxNode) { var breakpointer = length - maxNode + 1; items = []; _react2['default'].Children.forEach(children, function (item, i) { if (i === 0) { items.push(_react2['default'].cloneElement(item, { separator: separator, key: i })); } else if (i === breakpointer) { items.push(_react2['default'].cloneElement(item, { separator: separator, activated: i === length - 1, className: prefix + 'breadcrumb-text-ellipsis', key: i }, '...')); } else if (i > breakpointer) { items.push(_react2['default'].cloneElement(item, { separator: separator, activated: i === length - 1, key: i })); } }); } else { items = _react2['default'].Children.map(children, function (item, i) { return _react2['default'].cloneElement(item, { separator: separator, activated: i === length - 1, key: i }); }); } var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'breadcrumb', true), _defineProperty(_classNames, className, className), _classNames)); return _react2['default'].createElement( 'div', _extends({ className: classes }, others), items ); }; return Breadcrumb; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 面包屑子节点 ,需传入 Breadcrumb.Item */ children: function children(props, propName) { _react2['default'].Children.forEach(props[propName], function (child) { if (!(child && typeof child.type === 'function' && child.type._typeMark === 'breadcrumb_item')) { throw new Error('Breadcrumb\'s children must be Breadcrumb.Item!'); } }); }, /** * 面包屑显示的最多个数,超出的部分会被隐藏 */ maxNode: _propTypes2['default'].number, /** * 分隔符,可以是文本,也可以是 Icon */ separator: _propTypes2['default'].node }, _class.defaultProps = { prefix: 'next-', separator: _react2['default'].createElement(_nextIcon2['default'], { size: 'xs', type: 'arrow-right' }) }, _temp); Breadcrumb.displayName = 'Breadcrumb'; exports['default'] = Breadcrumb; module.exports = exports['default']; /***/ }), /***/ 2559: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextUtil = __webpack_require__(889); var _separator = __webpack_require__(2560); var _separator2 = _interopRequireDefault(_separator); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Breadcrumb.Item * @order 1 */ var Item = (_temp = _class = function (_Component) { _inherits(Item, _Component); function Item() { _classCallCheck(this, Item); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Item.prototype.render = function render() { var _classNames; var prefix = this.context.prefix || this.props.prefix; /* eslint-disable no-unused-vars */ var _props = this.props, propsPrefix = _props.prefix, className = _props.className, children = _props.children, href = _props.href, _props$link = _props.link, link = _props$link === undefined ? href : _props$link, activated = _props.activated, separator = _props.separator, others = _objectWithoutProperties(_props, ['prefix', 'className', 'children', 'href', 'link', 'activated', 'separator']); /* eslint-enable */ var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'breadcrumb-text', true), _defineProperty(_classNames, className, className), _defineProperty(_classNames, 'activated', activated), _classNames)); href && _nextUtil.log.deprecated('href', 'link', 'Breadcrumb.Item'); return _react2['default'].createElement( 'div', { className: prefix + 'breadcrumb-item' }, link ? _react2['default'].createElement( 'a', _extends({ href: link, className: classes }, others), children ) : _react2['default'].createElement( 'span', _extends({ className: classes }, others), children ), activated ? null : _react2['default'].createElement( _separator2['default'], null, separator ) ); }; return Item; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 面包屑节点内容 */ children: _propTypes2['default'].node, href: _propTypes2['default'].string, // TODO: deprecated in 1.0 release /** * 面包屑节点链接,如果设置这个属性,则该节点为`` ,否则是`` */ link: _propTypes2['default'].string, activated: _propTypes2['default'].bool, separator: _propTypes2['default'].node }, _class.defaultProps = { prefix: 'next-', activated: false }, _class._typeMark = 'breadcrumb_item', _temp); Item.displayName = 'Item'; exports['default'] = Item; module.exports = exports['default']; /***/ }), /***/ 2560: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Separator = (_temp = _class = function (_Component) { _inherits(Separator, _Component); function Separator() { _classCallCheck(this, Separator); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Separator.prototype.render = function render() { var _classNames; var prefix = this.context.prefix || this.props.prefix; /* eslint-disable no-unused-vars */ var _props = this.props, propsPrefix = _props.prefix, className = _props.className, children = _props.children, others = _objectWithoutProperties(_props, ['prefix', 'className', 'children']); /* eslint-enable */ var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'breadcrumb-separator', true), _defineProperty(_classNames, className, className), _classNames)); return _react2['default'].createElement( 'div', _extends({ className: classes }, others), children ); }; return Separator; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { prefix: _propTypes2['default'].string, className: _propTypes2['default'].string, children: _propTypes2['default'].node }, _class.defaultProps = { prefix: 'next-' }, _temp); Separator.displayName = 'Separator'; exports['default'] = Separator; module.exports = exports['default']; /***/ }), /***/ 2561: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Breadcrumb.Number * @order 3 */ var Number = (_temp = _class = function (_Component) { _inherits(Number, _Component); function Number() { _classCallCheck(this, Number); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Number.prototype.render = function render() { var _classNames; var prefix = this.context.prefix || this.props.prefix; /* eslint-disable no-unused-vars */ var _props = this.props, propsPrefix = _props.prefix, className = _props.className, children = _props.children, others = _objectWithoutProperties(_props, ['prefix', 'className', 'children']); /* eslint-enable */ var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'breadcrumb-text-number', true), _defineProperty(_classNames, className, className), _classNames)); return _react2['default'].createElement( 'span', _extends({ className: classes }, others), children ); }; return Number; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 数字内容 */ children: _propTypes2['default'].node }, _class.defaultProps = { prefix: 'next-' }, _temp); Number.displayName = 'Number'; exports['default'] = Number; module.exports = exports['default']; /***/ }), /***/ 2562: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Breadcrumb.Keyword * @order 2 */ var Keyword = (_temp = _class = function (_Component) { _inherits(Keyword, _Component); function Keyword() { _classCallCheck(this, Keyword); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Keyword.prototype.render = function render() { var _classNames; var prefix = this.context.prefix || this.props.prefix; /* eslint-disable no-unused-vars */ var _props = this.props, propsPrefix = _props.prefix, className = _props.className, children = _props.children, others = _objectWithoutProperties(_props, ['prefix', 'className', 'children']); /* eslint-enable */ var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'breadcrumb-text-keyword', true), _defineProperty(_classNames, className, className), _classNames)); return _react2['default'].createElement( 'span', _extends({ className: classes }, others), children ); }; return Keyword; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 关键字内容 */ children: _propTypes2['default'].node }, _class.defaultProps = { prefix: 'next-' }, _temp); Keyword.displayName = 'Keyword'; exports['default'] = Keyword; module.exports = exports['default']; /***/ }), /***/ 2563: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _nextUtil = __webpack_require__(889); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _basicPickTool = __webpack_require__(2565); var _basicPickTool2 = _interopRequireDefault(_basicPickTool); var _calendarTable = __webpack_require__(1910); var _calendarTable2 = _interopRequireDefault(_calendarTable); var _calendarMixin = __webpack_require__(1519); var _calendarMixin2 = _interopRequireDefault(_calendarMixin); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Calendar */ var Calendar = (_temp = _class = function (_Component) { _inherits(Calendar, _Component); function Calendar(props, context) { _classCallCheck(this, Calendar); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { base: props.base ? (0, _nextMoment2['default'])(props.base) : (0, _nextMoment2['default'])(), value: props.value ? (0, _nextMoment2['default'])(props.value) : '', mode: props.mode }; return _this; } Calendar.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if ('base' in newProps) { this.setState({ base: newProps.base ? (0, _nextMoment2['default'])(newProps.base) : (0, _nextMoment2['default'])() }); } if ('value' in newProps) { this.setState({ value: newProps.value ? (0, _nextMoment2['default'])(newProps.value) : '' }); } if ('mode' in newProps) { this.setState({ mode: newProps.mode }); } }; Calendar.prototype.onChange = function onChange(needChange, nextState) { if (needChange) { this.setState(nextState); } this.props.onChange(nextState); }; Calendar.prototype.render = function render() { var _classNames; var _props = this.props, className = _props.className, onChange = _props.onChange, others = _objectWithoutProperties(_props, ['className', 'onChange']); var type = others.type; var prefix = this.context.prefix || others.prefix; var state = this.state; var calendarCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'calendar', true), _defineProperty(_classNames, prefix + 'calendar-' + type, type), _defineProperty(_classNames, className, className), _classNames)); return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: calendarCls, ref: 'calendar' }), _react2['default'].createElement( 'div', { className: prefix + 'calendar-header' }, _react2['default'].createElement(_basicPickTool2['default'], _extends({}, others, { base: state.base, value: state.value, mode: state.mode, onChange: this.onChange.bind(this, true) })) ), _react2['default'].createElement( 'div', { className: prefix + 'calendar-body' }, _react2['default'].createElement(_calendarTable2['default'], _extends({}, others, { base: state.base, value: state.value, mode: state.mode, onChange: this.onChange.bind(this, false) })) ) ); }; return Calendar; }(_react.Component), _class.propTypes = { /** * 样式品牌前缀 */ prefix: _propTypes2['default'].string, /** * 基准日期 */ base: _propTypes2['default'].any, /** * 选中的日期值 */ value: _propTypes2['default'].any, /** * 面板选择模式 */ mode: _propTypes2['default'].oneOf(['month', 'year', 'decade']), /** * 类型 */ type: _propTypes2['default'].oneOf(['fullscreen', 'card']), /** * 日期改变时的回调 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象 */ onChange: _propTypes2['default'].func, /** * 自定义样式类 */ className: _propTypes2['default'].string, /** * 自定义日期渲染函数 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象 * @returns {Function} */ dateCellRender: _propTypes2['default'].func, /** * 自定义月份渲染函数 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象 * @returns {Function} */ monthCellRender: _propTypes2['default'].func, /** * 自定义年份渲染函数 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象 * @returns {Function} */ yearCellRender: _propTypes2['default'].func, /** * 不可选择的日期 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象 * @returns {Boolean} */ disabledDate: _propTypes2['default'].func, /** * 不可选择的月份 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象 * @returns {Boolean} */ disabledMonth: _propTypes2['default'].func, /** * 不可选择的年份 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象 * @returns {Boolean} */ disabledYear: _propTypes2['default'].func, /** * 多语言选择 */ language: _propTypes2['default'].oneOf(['en-us', 'ar', 'de', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'zh-cn', 'zh-hk', 'zh-tw']), /** * 国际化配置 */ locale: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', type: 'fullscreen', mode: 'month', onChange: function onChange() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Calendar.displayName = 'Calendar'; (0, _calendarMixin2['default'])(Calendar); exports['default'] = (0, _nextLocaleProvider2['default'])(Calendar); module.exports = exports['default']; /***/ }), /***/ 2564: /***/ (function(module, exports, __webpack_require__) { var map = { "./ar": 2260, "./ar.js": 2260, "./de": 2261, "./de.js": 2261, "./es": 2262, "./es.js": 2262, "./fr": 2263, "./fr.js": 2263, "./hi": 2264, "./hi.js": 2264, "./it": 2265, "./it.js": 2265, "./ja": 2266, "./ja.js": 2266, "./ko": 2267, "./ko.js": 2267, "./pt": 2268, "./pt.js": 2268, "./ru": 2269, "./ru.js": 2269, "./zh-cn": 2270, "./zh-cn.js": 2270, "./zh-hk": 2271, "./zh-hk.js": 2271, "./zh-tw": 2272, "./zh-tw.js": 2272 }; function webpackContext(req) { return __webpack_require__(webpackContextResolve(req)); }; function webpackContextResolve(req) { var id = map[req]; if(!(id + 1)) // check for number or string throw new Error("Cannot find module '" + req + "'."); return id; }; webpackContext.keys = function webpackContextKeys() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = 2564; /***/ }), /***/ 2565: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextRadio = __webpack_require__(1742); var _nextRadio2 = _interopRequireDefault(_nextRadio); var _nextSelect = __webpack_require__(1567); var _nextSelect2 = _interopRequireDefault(_nextSelect); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _calendarMixin = __webpack_require__(1519); var _calendarMixin2 = _interopRequireDefault(_calendarMixin); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var BasicSelectTool = (_temp = _class = function (_Component) { _inherits(BasicSelectTool, _Component); function BasicSelectTool(props) { _classCallCheck(this, BasicSelectTool); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.state = { base: props.base, mode: props.mode }; return _this; } BasicSelectTool.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if ('base' in newProps) { this.setState({ base: newProps.base }); } if ('mode' in newProps) { this.setState({ mode: newProps.mode }); } }; BasicSelectTool.prototype.onChange = function onChange(key, nextBase) { var _state = this.state, base = _state.base, mode = _state.mode; switch (key) { case 'year': { base = (0, _nextMoment2['default'])(base).year(nextBase); break; } case 'month': { base = (0, _nextMoment2['default'])(base).month(nextBase); break; } case 'mode': { mode = nextBase; break; } } this.props.onChange({ base: base, mode: mode }); }; BasicSelectTool.prototype.render = function render() { var _classNames; var _props = this.props, prefix = _props.prefix, type = _props.type, locale = _props.locale, language = _props.language, others = _objectWithoutProperties(_props, ['prefix', 'type', 'locale', 'language']); var _state2 = this.state, base = _state2.base, mode = _state2.mode; var size = type === 'fullscreen' ? 'medium' : 'small'; // get year var yearOptions = this.getLateastYears(base.year()).map(function (year, index) { return _react2['default'].createElement( 'option', { key: index, value: year }, year ); }); // get month var monthsLocale = locale.format ? locale.format.shortMonths : this.getMonthsLocale(language); var monthOptions = monthsLocale.map(function (month, index) { return _react2['default'].createElement( 'option', { key: index, value: index }, month ); }); // get class var basicCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'calendar-pick-tool', true), _defineProperty(_classNames, prefix + 'calendar-basic-pick-tool', true), _classNames)); return _react2['default'].createElement( 'div', { className: basicCls }, _react2['default'].createElement( _nextSelect2['default'], { prefix: prefix, value: base.year(), size: size, onChange: this.onChange.bind(this, 'year'), container: function container(target) { return target.parentNode; }, autoWidth: false }, yearOptions ), _react2['default'].createElement( _nextSelect2['default'], { prefix: prefix, value: base.month(), size: size, onChange: this.onChange.bind(this, 'month'), container: function container(target) { return target.parentNode; }, autoWidth: false }, monthOptions ), _react2['default'].createElement( _nextRadio.Group, { shape: 'button', size: size, value: mode, onChange: this.onChange.bind(this, 'mode') }, _react2['default'].createElement( _nextRadio2['default'], { value: 'month' }, locale.month ), _react2['default'].createElement( _nextRadio2['default'], { value: 'year' }, locale.year ) ) ); }; return BasicSelectTool; }(_react.Component), _class.propTypes = { onChange: _propTypes2['default'].func }, _temp); BasicSelectTool.displayName = 'BasicSelectTool'; (0, _calendarMixin2['default'])(BasicSelectTool); exports['default'] = BasicSelectTool; module.exports = exports['default']; /***/ }), /***/ 2566: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _calendarMixin = __webpack_require__(1519); var _calendarMixin2 = _interopRequireDefault(_calendarMixin); var _validators = __webpack_require__(2273); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var CalendarHead = function (_Component) { _inherits(CalendarHead, _Component); function CalendarHead() { _classCallCheck(this, CalendarHead); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } CalendarHead.prototype.render = function render() { var _classNames; var _props = this.props, prefix = _props.prefix, type = _props.type, locale = _props.locale, language = _props.language; // 设置多语言 _nextMoment2['default'].locale(language); // 获得多语言数据 var elements = [], localeData = _nextMoment2['default'].localeData(), weekdaysMin = localeData.weekdaysMin(), firstDayOfWeek = localeData.firstDayOfWeek(); if (locale.format) { var _ref = locale.format || {}, veryShortWeekdays = _ref.veryShortWeekdays, customFirstDayOfWeek = _ref.firstDayOfWeek; if (veryShortWeekdays) { weekdaysMin = veryShortWeekdays; } if ((0, _validators.isWeekdayIndex)(customFirstDayOfWeek)) { firstDayOfWeek = customFirstDayOfWeek; } } for (var i = 0; i < weekdaysMin.length; i++) { elements.push(_react2['default'].createElement( 'th', { key: i, className: prefix + 'calendar-th' }, _react2['default'].createElement( 'span', { className: prefix + 'calendar-th-inner' }, weekdaysMin[(i + firstDayOfWeek) % 7] ) )); } var theadCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'calendar-thead', true), _defineProperty(_classNames, prefix + 'calendar-' + type + '-thead', type), _classNames)); return _react2['default'].createElement( 'thead', { className: theadCls, ref: 'calendar-thead' }, _react2['default'].createElement( 'tr', null, elements ) ); }; return CalendarHead; }(_react.Component); CalendarHead.displayName = 'CalendarHead'; (0, _calendarMixin2['default'])(CalendarHead); exports['default'] = CalendarHead; module.exports = exports['default']; /***/ }), /***/ 2567: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _calendarMixin = __webpack_require__(1519); var _calendarMixin2 = _interopRequireDefault(_calendarMixin); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var CalendarBody = (_temp = _class = function (_Component) { _inherits(CalendarBody, _Component); function CalendarBody(props) { _classCallCheck(this, CalendarBody); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.state = { value: props.value, base: props.base, mode: props.mode }; return _this; } CalendarBody.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if ('value' in newProps) { this.setState({ value: newProps.value }); } if ('base' in newProps) { this.setState({ base: newProps.base }); } if ('mode' in newProps) { this.setState({ mode: newProps.mode }); } }; CalendarBody.prototype.onChange = function onChange(key, nextValue) { var _state = this.state, base = _state.base, value = _state.value; switch (key) { case 'decade': base = (0, _nextMoment2['default'])(base).year(nextValue); break; case 'year': base = (0, _nextMoment2['default'])(base).year(nextValue); if (!(value instanceof Array)) { value = (value ? (0, _nextMoment2['default'])(value) : (0, _nextMoment2['default'])()).year(nextValue); } break; case 'month': base = (0, _nextMoment2['default'])(base).year(nextValue.year).month(nextValue.month); if (!(value instanceof Array)) { value = (value ? (0, _nextMoment2['default'])(value) : (0, _nextMoment2['default'])()).year(nextValue.year).month(nextValue.month); } break; case 'date': if (value instanceof Array) { var _nextValue = nextValue, year = _nextValue.year, month = _nextValue.month, date = _nextValue.date; nextValue = (0, _nextMoment2['default'])().year(nextValue.year).month(nextValue.month).date(nextValue.date); if (value[0] && !value[1] && value[0].valueOf() <= nextValue.valueOf()) { value[1] = nextValue; } else if (value[0] && !value[1] && value[0].valueOf() > nextValue.valueOf()) { value[0] = nextValue; } else { value = [nextValue, '']; } } else { value = (value ? (0, _nextMoment2['default'])(value) : (0, _nextMoment2['default'])()).year(nextValue.year).month(nextValue.month).date(nextValue.date); } break; default: break; } this.props.onChange({ base: base, value: value, mode: key }); }; CalendarBody.prototype.getDatePanel = function getDatePanel() { var _props = this.props, prefix = _props.prefix, rangeMode = _props.rangeMode, language = _props.language, locale = _props.locale, highlightDate = _props.highlightDate, dateCellRender = _props.dateCellRender; var _state2 = this.state, base = _state2.base, value = _state2.value; // get calendar var calendar = this.getCalendar(base, language, locale); var weekHtml = []; var monthHtml = []; for (var windex = 0; windex < calendar.length; windex++) { var week = calendar[windex]; for (var dindex = 0; dindex < week.length; dindex++) { var _classNames; var dayBase = week[dindex].base, dayValue = week[dindex].value, isToday = false, isSelectedDate = false, isRangeDate = false, isAllowedDate = this.isAllowedDate(dayValue); // 进行各种校验 if (value instanceof Array) { var rangeStart = value[0] ? value[0].valueOf() : null; var rangeEnd = value[1] ? value[1].valueOf() : null; isSelectedDate = this.isSameDay(dayValue.timestamp, rangeStart) || this.isSameDay(dayValue.timestamp, rangeEnd); isRangeDate = rangeStart && rangeEnd && this.isRangeDay(dayValue.timestamp, [rangeStart, rangeEnd]); } else { isSelectedDate = this.isSameDay(dayValue.timestamp, value.valueOf()); } isToday = this.isSameDay(dayValue.timestamp, (0, _nextMoment2['default'])().valueOf()); var cellCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'calendar-cell', true), _defineProperty(_classNames, prefix + 'calendar-cell-prev-month', dayValue.month < dayBase.month), _defineProperty(_classNames, prefix + 'calendar-cell-next-month', dayValue.month > dayBase.month), _defineProperty(_classNames, prefix + 'calendar-cell-today', isToday), _defineProperty(_classNames, prefix + 'calendar-cell-selected', isSelectedDate), _defineProperty(_classNames, prefix + 'calendar-cell-range', isRangeDate), _defineProperty(_classNames, prefix + 'calendar-cell-highlight', highlightDate(dayValue)), _defineProperty(_classNames, prefix + 'calendar-cell-range-mode', rangeMode), _defineProperty(_classNames, prefix + 'calendar-cell-disabled', !isAllowedDate), _classNames)); var dateAttrs = { title: dayValue.year + '-' + (dayValue.month + 1) + '-' + dayValue.date, onClick: isAllowedDate ? this.onChange.bind(this, 'date', dayValue) : null }; weekHtml.push(_react2['default'].createElement( 'td', { key: dindex, className: cellCls }, _react2['default'].createElement( 'div', _extends({}, dateAttrs, { className: prefix + 'calendar-date' }), dateCellRender ? dateCellRender(dayValue) : dayValue.date ) )); } monthHtml.push(_react2['default'].createElement( 'tr', { key: windex }, weekHtml )); weekHtml = []; } return monthHtml; }; CalendarBody.prototype.getMonthPanel = function getMonthPanel() { var _this2 = this; var _props2 = this.props, prefix = _props2.prefix, locale = _props2.locale, language = _props2.language, monthCellRender = _props2.monthCellRender; var _state3 = this.state, base = _state3.base, value = _state3.value; // get locale var monthsLocale = locale.format ? locale.format.shortMonths : this.getMonthsLocale(language); var selectedMonth = value instanceof Array ? '' : value && value.month(); var selectedYear = value instanceof Array ? '' : value && value.year(); var currentdMonth = (0, _nextMoment2['default'])().month(); var currentdYear = (0, _nextMoment2['default'])().year(); // monthsLocale 0~11 var monthHtml = [], yearHtml = []; var _loop = function _loop(mindex) { var _classNames2; var theDate = (0, _nextMoment2['default'])(base).month(mindex); var calendarDate = { timestamp: theDate.valueOf(), year: theDate.year(), month: mindex, date: theDate.date(), week: theDate.isoWeekday(), valueOf: function valueOf() { return theDate.valueOf(); } }; // 校验合法性 var isAllowedMonth = _this2.isAllowedMonth(calendarDate); var monthAttrs = { title: monthsLocale[mindex], onClick: isAllowedMonth ? _this2.onChange.bind(_this2, 'month', calendarDate) : null }; // get class var cellCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'calendar-cell', true), _defineProperty(_classNames2, prefix + 'calendar-cell-today', theDate.year() === currentdYear && mindex === currentdMonth), _defineProperty(_classNames2, prefix + 'calendar-cell-selected', theDate.year() === selectedYear && mindex === selectedMonth), _defineProperty(_classNames2, prefix + 'calendar-cell-disabled', !isAllowedMonth), _classNames2)); monthHtml.push(_react2['default'].createElement( 'td', { key: mindex, className: cellCls }, _react2['default'].createElement( 'div', _extends({}, monthAttrs, { className: prefix + 'calendar-month' }), monthCellRender ? monthCellRender(calendarDate) : monthsLocale[mindex] ) )); if (mindex % 3 === 2) { yearHtml.push(_react2['default'].createElement( 'tr', { key: mindex }, monthHtml )); monthHtml = []; } }; for (var mindex = 0; mindex < monthsLocale.length; mindex++) { _loop(mindex); } return yearHtml; }; CalendarBody.prototype.getYearPanel = function getYearPanel() { var _this3 = this; var _props3 = this.props, prefix = _props3.prefix, yearCellRender = _props3.yearCellRender; var _state4 = this.state, base = _state4.base, value = _state4.value; // get decade years var selectedYear = value instanceof Array ? '' : value && value.year(); var currentdYear = (0, _nextMoment2['default'])().year(); var baseYear = base.year(); var decadeYears = this.getDecadeYears(baseYear); var yearHtml = []; var cellHtml = void 0; var decadeHtml = []; for (var i = 0; i < decadeYears.length + 2; i++) { var _classNames3; var theYear = decadeYears[i - 1]; var isAllowedYear = true; if (i === 0) { cellHtml = _react2['default'].createElement( 'div', { className: prefix + 'calendar-year', onClick: this.onChange.bind(this, 'decade', baseYear - 10) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-left', size: 'xs' }) ); } else if (i === decadeYears.length + 1) { cellHtml = _react2['default'].createElement( 'div', { className: prefix + 'calendar-year', onClick: this.onChange.bind(this, 'decade', baseYear + 10) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-right', size: 'xs' }) ); } else { (function () { var theDate = (0, _nextMoment2['default'])(base).year(theYear); var calendarDate = { timestamp: theDate.valueOf(), year: theYear, month: theDate.month(), date: theDate.date(), week: theDate.isoWeekday(), valueOf: function valueOf() { return theDate.valueOf(); } }; // 校验合法性 isAllowedYear = _this3.isAllowedYear(calendarDate); var yearAttrs = { title: theYear, onClick: isAllowedYear ? _this3.onChange.bind(_this3, 'year', theYear) : null }; cellHtml = _react2['default'].createElement( 'div', _extends({}, yearAttrs, { className: prefix + 'calendar-year' }), yearCellRender ? yearCellRender(calendarDate) : theYear ); })(); } var cellCls = (0, _classnames2['default'])((_classNames3 = {}, _defineProperty(_classNames3, prefix + 'calendar-cell', true), _defineProperty(_classNames3, prefix + 'calendar-cell-today', theYear && theYear === currentdYear), _defineProperty(_classNames3, prefix + 'calendar-cell-selected', theYear && theYear === selectedYear), _defineProperty(_classNames3, prefix + 'calendar-cell-disabled', !isAllowedYear), _classNames3)); yearHtml.push(_react2['default'].createElement( 'td', { key: i, className: cellCls }, cellHtml )); if (i % 3 === 2) { decadeHtml.push(_react2['default'].createElement( 'tr', { key: '3-' + i / 3 }, yearHtml )); yearHtml = []; } } return decadeHtml; }; CalendarBody.prototype.render = function render() { var _classNames4; var _props4 = this.props, prefix = _props4.prefix, type = _props4.type; var mode = this.state.mode; var bodyHtml = []; if (mode === 'decade') { bodyHtml = this.getYearPanel(); } else if (mode === 'year') { bodyHtml = this.getMonthPanel(); } else if (mode === 'month') { bodyHtml = this.getDatePanel(); } var bodyCls = (0, _classnames2['default'])((_classNames4 = {}, _defineProperty(_classNames4, prefix + 'calendar-tbody', true), _defineProperty(_classNames4, prefix + 'calendar-' + type + '-tbody', type), _classNames4)); return _react2['default'].createElement( 'tbody', { className: bodyCls, ref: 'calendar-tbody' }, bodyHtml ); }; return CalendarBody; }(_react.Component), _class.propTypes = { type: _propTypes2['default'].oneOf(['fullscreen', 'card']), rangeMode: _propTypes2['default'].bool, onChange: _propTypes2['default'].func, highlightDate: _propTypes2['default'].func }, _class.defaultProps = { highlightDate: function highlightDate() { return false; } }, _temp); CalendarBody.displayName = 'CalendarBody'; (0, _calendarMixin2['default'])(CalendarBody); exports['default'] = CalendarBody; module.exports = exports['default']; /***/ }), /***/ 2568: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _nextUtil = __webpack_require__(889); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _datePickTool = __webpack_require__(2569); var _datePickTool2 = _interopRequireDefault(_datePickTool); var _calendarTable = __webpack_require__(1910); var _calendarTable2 = _interopRequireDefault(_calendarTable); var _calendarMixin = __webpack_require__(1519); var _calendarMixin2 = _interopRequireDefault(_calendarMixin); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var DatePickerPanel = (_temp = _class = function (_Component) { _inherits(DatePickerPanel, _Component); function DatePickerPanel(props, context) { _classCallCheck(this, DatePickerPanel); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { base: props.base ? (0, _nextMoment2['default'])(props.base) : (0, _nextMoment2['default'])(), value: props.value ? (0, _nextMoment2['default'])(props.value) : '', mode: props.mode, animate: false }; return _this; } DatePickerPanel.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if ('base' in newProps) { this.setState({ base: newProps.base ? (0, _nextMoment2['default'])(newProps.base) : (0, _nextMoment2['default'])() }); } if ('value' in newProps) { this.setState({ value: newProps.value ? (0, _nextMoment2['default'])(newProps.value) : '' }); } if ('mode' in newProps) { this.setState({ mode: newProps.mode }); } }; DatePickerPanel.prototype.onChange = function onChange(needChange, nextState) { var base = nextState.base, mode = nextState.mode; if (needChange) { this.setState({ base: base, mode: mode }); } // Important: 兼容 0.x BR // see http://gitlab.alibaba-inc.com/next/work/issues/311 if (mode === 'date' && this.props.onSelect) { _nextUtil.log.deprecated('onSelect', 'onChange', 'Calendar.DatePickerPanel'); this.props.onSelect(base); } this.props.onChange(nextState); }; DatePickerPanel.prototype.onAnimate = function onAnimate(animate) { var _this2 = this; this.setState({ animate: animate }); setTimeout(function () { _this2.setState({ animate: false }); }, 500); }; DatePickerPanel.prototype.render = function render() { var _classNames, _classNames2; var _props = this.props, className = _props.className, others = _objectWithoutProperties(_props, ['className']); var prefix = this.context.prefix || others.prefix; var _state = this.state, base = _state.base, value = _state.value, mode = _state.mode, animate = _state.animate; var calendarCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'calendar', true), _defineProperty(_classNames, prefix + 'calendar-card', true), _defineProperty(_classNames, className, className), _classNames)); var calendarBodyCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'calendar-body', true), _defineProperty(_classNames2, '' + animate, animate), _classNames2)); return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: calendarCls, ref: 'date-picker-panel' }), _react2['default'].createElement( 'div', { className: prefix + 'calendar-header' }, _react2['default'].createElement(_datePickTool2['default'], _extends({}, others, { base: base, mode: mode, onChange: this.onChange.bind(this, true), onAnimate: this.onAnimate.bind(this) })) ), _react2['default'].createElement( 'div', { className: calendarBodyCls }, _react2['default'].createElement(_calendarTable2['default'], _extends({}, others, { type: 'card', base: base, value: value, mode: mode, onChange: this.onChange.bind(this, false) })) ) ); }; return DatePickerPanel; }(_react.Component), _class.propTypes = { onChange: _propTypes2['default'].func, className: _propTypes2['default'].string }, _class.defaultProps = { mode: 'month', onChange: function onChange() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); DatePickerPanel.displayName = 'DatePickerPanel'; (0, _calendarMixin2['default'])(DatePickerPanel); exports['default'] = (0, _nextLocaleProvider2['default'])(DatePickerPanel); module.exports = exports['default']; /***/ }), /***/ 2569: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _calendarMixin = __webpack_require__(1519); var _calendarMixin2 = _interopRequireDefault(_calendarMixin); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var DatePickTool = (_temp = _class = function (_Component) { _inherits(DatePickTool, _Component); function DatePickTool(props) { _classCallCheck(this, DatePickTool); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.state = { base: props.base, mode: props.mode, animate: false }; return _this; } DatePickTool.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if ('base' in newProps) { this.setState({ base: newProps.base }); } if ('mode' in newProps) { this.setState({ mode: newProps.mode }); } }; DatePickTool.prototype.onChange = function onChange(key, nextState) { var _this2 = this; var _state = this.state, base = _state.base, mode = _state.mode; var cacheBase = base.valueOf(); switch (key) { case 'year': base = (0, _nextMoment2['default'])(base).year(nextState); break; case 'month': { var nowYear = (0, _nextMoment2['default'])(base).year(); if (nextState < 0) { base = (0, _nextMoment2['default'])(base).year(nowYear - 1).month(11); } else if (nextState > 11) { base = (0, _nextMoment2['default'])(base).year(nowYear + 1).month(0); } else { base = (0, _nextMoment2['default'])(base).month(nextState); } break; } case 'mode': mode = nextState; break; } if (base.valueOf() !== cacheBase) { var animate = base.valueOf() > cacheBase ? 'enter-to-right' : 'enter-to-left'; this.props.onAnimate(animate); this.setState({ animate: animate }); setTimeout(function () { _this2.setState({ animate: false }); }, 400); } this.props.onChange({ base: base, mode: mode }); }; DatePickTool.prototype.getPicker = function getPicker() { var _classNames; var _props = this.props, prefix = _props.prefix, locale = _props.locale, language = _props.language; var _state2 = this.state, base = _state2.base, mode = _state2.mode, animate = _state2.animate; var picker = []; var selectMoment = (0, _nextMoment2['default'])(base).locale(language); var selectMonth = selectMoment.month(); var selectMonthDisplay = locale.format ? locale.format.shortMonths[selectMonth] : selectMoment.format('MMMM'); var selectYear = selectMoment.year(); var selectYearDisplay = selectMoment.format('YYYY'); var decadeYears = this.getDecadeYears(selectYear); var decadeYearsDisplay = decadeYears[0] + ' - ' + decadeYears[decadeYears.length - 1]; // 动效 var blockCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'calendar-pick-tool-block', true), _defineProperty(_classNames, '' + animate, animate), _classNames)); switch (mode) { case 'decade': picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-prev-decade-btn', key: 'prev-decade', title: locale.prevYear, onClick: this.onChange.bind(this, 'year', selectYear - 10) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-left' }) )); picker.push(_react2['default'].createElement( 'div', { className: blockCls, key: 'select' }, _react2['default'].createElement( 'span', { className: prefix + 'calendar-ym-select' }, _react2['default'].createElement( 'span', { className: prefix + 'calendar-decade-selected' }, decadeYearsDisplay ) ) )); picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-next-decade-btn', key: 'next-decade', title: locale.nextYear, onClick: this.onChange.bind(this, 'year', selectYear + 10) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-right' }) )); break; case 'year': picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-prev-year-btn', key: 'prev-year', title: locale.prevYear, onClick: this.onChange.bind(this, 'year', selectYear - 1) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-left' }) )); picker.push(_react2['default'].createElement( 'div', { className: blockCls, key: 'select' }, _react2['default'].createElement( 'span', { className: prefix + 'calendar-ym-select' }, _react2['default'].createElement( 'a', { className: prefix + 'calendar-year-select', title: locale.yearSelect, onClick: this.onChange.bind(this, 'mode', 'decade') }, selectYearDisplay ) ) )); picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-next-year-btn', key: 'next-year', title: locale.nextYear, onClick: this.onChange.bind(this, 'year', selectYear + 1) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-right' }) )); break; case 'month': picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-prev-year-btn', key: 'prev-year', title: locale.prevYear, onClick: this.onChange.bind(this, 'year', selectYear - 1) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-left' }) )); picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-prev-month-btn', key: 'prev-month', title: locale.prevMonth, onClick: this.onChange.bind(this, 'month', selectMonth - 1) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-left' }) )); picker.push(_react2['default'].createElement( 'div', { className: blockCls, key: 'select' }, _react2['default'].createElement( 'span', { className: prefix + 'calendar-ym-select' }, _react2['default'].createElement( 'a', { className: prefix + 'calendar-month-select', title: locale.monthSelect, onClick: this.onChange.bind(this, 'mode', 'year') }, selectMonthDisplay ), _react2['default'].createElement( 'a', { className: prefix + 'calendar-year-select', title: locale.yearSelect, onClick: this.onChange.bind(this, 'mode', 'decade') }, selectYearDisplay ) ) )); picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-next-month-btn', key: 'next-month', title: locale.nextMonth, onClick: this.onChange.bind(this, 'month', selectMonth + 1) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-right' }) )); picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-next-year-btn', key: 'next-year', title: locale.nextYear, onClick: this.onChange.bind(this, 'year', selectYear + 1) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-right' }) )); break; default: break; } return picker; }; DatePickTool.prototype.render = function render() { var _classNames2; var prefix = this.props.prefix; var picker = this.getPicker(); var complexCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'calendar-pick-tool', true), _defineProperty(_classNames2, prefix + 'calendar-date-pick-tool', true), _classNames2)); return _react2['default'].createElement( 'div', { className: complexCls, ref: 'calendar-picker' }, picker ); }; return DatePickTool; }(_react.Component), _class.propTypes = { onChange: _propTypes2['default'].func, onAnimate: _propTypes2['default'].func }, _class.defaultProps = { onAnimate: function onAnimate() {} }, _temp); DatePickTool.displayName = 'DatePickTool'; (0, _calendarMixin2['default'])(DatePickTool); exports['default'] = DatePickTool; module.exports = exports['default']; /***/ }), /***/ 2570: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _nextUtil = __webpack_require__(889); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _rangePickTool = __webpack_require__(2571); var _rangePickTool2 = _interopRequireDefault(_rangePickTool); var _calendarTable = __webpack_require__(1910); var _calendarTable2 = _interopRequireDefault(_calendarTable); var _calendarMixin = __webpack_require__(1519); var _calendarMixin2 = _interopRequireDefault(_calendarMixin); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var RangePickerPanel = (_temp = _class = function (_Component) { _inherits(RangePickerPanel, _Component); function RangePickerPanel(props, context) { _classCallCheck(this, RangePickerPanel); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { base: props.base ? (0, _nextMoment2['default'])(props.base) : (0, _nextMoment2['default'])(), value: _this.getRangeValue(props.value), mode: props.mode, animate: false }; return _this; } RangePickerPanel.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if ('base' in newProps) { this.setState({ base: newProps.base ? (0, _nextMoment2['default'])(newProps.base) : (0, _nextMoment2['default'])() }); } if ('value' in newProps) { this.setState({ value: this.getRangeValue(newProps.value) }); } if ('mode' in newProps) { this.setState({ mode: newProps.mode }); } }; RangePickerPanel.prototype.onChange = function onChange(needChange, nextState) { if (needChange) { this.setState(nextState); } // Important: 兼容 0.x BR // see http://gitlab.alibaba-inc.com/next/work/issues/311 if (nextState.mode === 'date' && this.props.onSelect) { _nextUtil.log.deprecated('onSelect', 'onChange', 'Calendar.RangePickerPanel'); this.props.onSelect(nextState.value); } this.props.onChange(nextState); }; RangePickerPanel.prototype.onAnimate = function onAnimate(animate) { var _this2 = this; this.setState({ animate: animate }); setTimeout(function () { _this2.setState({ animate: false }); }, 500); }; RangePickerPanel.prototype.getRangeValue = function getRangeValue(value) { var rangeValue = [null, null]; if (value && value instanceof Array) { rangeValue[0] = value[0] ? (0, _nextMoment2['default'])(value[0]) : null; rangeValue[1] = value[1] ? (0, _nextMoment2['default'])(value[1]) : null; } else { rangeValue[0] = value ? (0, _nextMoment2['default'])(value) : null; } return rangeValue; }; RangePickerPanel.prototype.getRangeBase = function getRangeBase(base) { var nextMonth = base.month() + 1; var nextYear = base.year() + 1; var nextBase = nextMonth > 11 ? (0, _nextMoment2['default'])(base).year(nextYear).month(nextMonth % 12) : (0, _nextMoment2['default'])(base).month(nextMonth); return [base, nextBase]; }; RangePickerPanel.prototype.render = function render() { var _classNames, _classNames2; var _props = this.props, className = _props.className, others = _objectWithoutProperties(_props, ['className']); var prefix = this.context.prefix || others.prefix; var _state = this.state, value = _state.value, base = _state.base, mode = _state.mode, animate = _state.animate; // get range base var rangeBase = this.getRangeBase(base); var calendarCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'calendar', true), _defineProperty(_classNames, prefix + 'calendar-card', true), _defineProperty(_classNames, className, className), _classNames)); var calendarBodyCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'calendar-body', true), _defineProperty(_classNames2, prefix + 'calendar-range-body', true), _defineProperty(_classNames2, '' + animate, animate), _classNames2)); return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: calendarCls, ref: 'range-picker-panel' }), _react2['default'].createElement( 'div', { className: prefix + 'calendar-header' }, _react2['default'].createElement(_rangePickTool2['default'], _extends({}, others, { base: base, mode: mode, onChange: this.onChange.bind(this, true), onAnimate: this.onAnimate.bind(this) })) ), mode === 'month' ? _react2['default'].createElement( 'div', { className: calendarBodyCls }, _react2['default'].createElement( 'div', { className: prefix + 'calendar-range-body-left' }, _react2['default'].createElement(_calendarTable2['default'], _extends({}, others, { type: 'card', base: rangeBase[0], value: value, mode: mode, rangeMode: true, onChange: this.onChange.bind(this, false) })) ), _react2['default'].createElement( 'div', { className: prefix + 'calendar-range-body-right' }, _react2['default'].createElement(_calendarTable2['default'], _extends({}, others, { type: 'card', base: rangeBase[1], value: value, mode: mode, rangeMode: true, onChange: this.onChange.bind(this, false) })) ) ) : _react2['default'].createElement( 'div', { className: calendarBodyCls }, _react2['default'].createElement(_calendarTable2['default'], _extends({}, others, { type: 'card', base: base, value: value, mode: mode, onChange: this.onChange.bind(this, false) })) ) ); }; return RangePickerPanel; }(_react.Component), _class.propTypes = { onChange: _propTypes2['default'].func, className: _propTypes2['default'].string }, _class.defaultProps = { mode: 'month', onChange: function onChange() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); RangePickerPanel.displayName = 'RangePickerPanel'; (0, _calendarMixin2['default'])(RangePickerPanel); exports['default'] = (0, _nextLocaleProvider2['default'])(RangePickerPanel); module.exports = exports['default']; /***/ }), /***/ 2571: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _calendarMixin = __webpack_require__(1519); var _calendarMixin2 = _interopRequireDefault(_calendarMixin); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var RangePickTool = (_temp = _class = function (_Component) { _inherits(RangePickTool, _Component); function RangePickTool(props) { _classCallCheck(this, RangePickTool); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.state = { base: props.base, mode: props.mode, animate: false }; return _this; } RangePickTool.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if ('base' in newProps) { this.setState({ base: newProps.base }); } if ('mode' in newProps) { this.setState({ mode: newProps.mode }); } }; RangePickTool.prototype.onChange = function onChange(key, nextBase) { var _this2 = this; var _state = this.state, base = _state.base, mode = _state.mode; var cacheBase = base.valueOf(); switch (key) { case 'year': base = (0, _nextMoment2['default'])(base).year(nextBase); break; case 'month': { var nowYear = (0, _nextMoment2['default'])(base).year(); if (nextBase < 0) { base = (0, _nextMoment2['default'])(base).year(nowYear - 1).month(11); } else if (nextBase > 11) { base = (0, _nextMoment2['default'])(base).year(nowYear + 1).month(0); } else { base = (0, _nextMoment2['default'])(base).month(nextBase); } break; } case 'mode': mode = nextBase; break; } if (base.valueOf() !== cacheBase) { var animate = base.valueOf() > cacheBase ? 'enter-to-right' : 'enter-to-left'; this.props.onAnimate(animate); this.setState({ animate: animate }); setTimeout(function () { _this2.setState({ animate: false }); }, 400); } this.props.onChange({ base: base, mode: mode }); }; RangePickTool.prototype.getPicker = function getPicker() { var _classNames, _classNames2; var _props = this.props, prefix = _props.prefix, locale = _props.locale, language = _props.language; var _state2 = this.state, base = _state2.base, mode = _state2.mode, animate = _state2.animate; var picker = []; var selectMoment = (0, _nextMoment2['default'])(base).locale(language); var selectMonth = selectMoment.month(); var selectMonthDisplay = locale.format ? locale.format.shortMonths[selectMonth] : selectMoment.format('MMMM'); var selectYear = selectMoment.year(); var selectYearDisplay = selectMoment.format('YYYY'); var decadeYears = this.getDecadeYears(selectYear); var decadeYearsDisplay = decadeYears[0] + ' - ' + decadeYears[decadeYears.length - 1]; var nextMonth = selectMonth + 1 > 11 ? 0 : selectMonth + 1; var nextMonthDisplay = locale.format ? locale.format.shortMonths[nextMonth] : selectMoment.month(nextMonth).format('MMMM'); var nextYear = selectMonth + 1 > 11 ? selectYear + 1 : selectYear; var nextYearDisplay = selectMoment.year(nextYear).format('YYYY'); // 动效 var blockCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'calendar-pick-tool-block', true), _defineProperty(_classNames, '' + animate, animate), _classNames)); var rangeBlockCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'calendar-pick-tool-block', true), _defineProperty(_classNames2, prefix + 'calendar-pick-tool-block-range', true), _defineProperty(_classNames2, '' + animate, animate), _classNames2)); switch (mode) { case 'decade': picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-prev-decade-btn', key: 'prev-decade', title: locale.prevYear, onClick: this.onChange.bind(this, 'year', selectYear - 1) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-left' }) )); picker.push(_react2['default'].createElement( 'div', { className: blockCls, key: 'select' }, _react2['default'].createElement( 'span', { className: prefix + 'calendar-ym-select' }, _react2['default'].createElement( 'span', { className: prefix + 'calendar-decade-selected' }, decadeYearsDisplay ) ) )); picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-next-decade-btn', key: 'next-decade', title: locale.nextYear, onClick: this.onChange.bind(this, 'year', selectYear + 1) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-right' }) )); break; case 'year': picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-prev-year-btn', key: 'prev-year', title: locale.prevYear, onClick: this.onChange.bind(this, 'year', selectYear - 1) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-left' }) )); picker.push(_react2['default'].createElement( 'div', { className: blockCls, key: 'select' }, _react2['default'].createElement( 'span', { className: prefix + 'calendar-ym-select' }, _react2['default'].createElement( 'a', { className: prefix + 'calendar-year-select', title: locale.yearSelect, onClick: this.onChange.bind(this, 'mode', 'decade') }, selectYearDisplay ) ) )); picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-next-year-btn', key: 'next-year', title: locale.nextYear, onClick: this.onChange.bind(this, 'year', selectYear + 1) }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-right' }) )); break; case 'month': picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-prev-year-btn', title: locale.prevYear, onClick: this.onChange.bind(this, 'year', selectYear - 1), key: 'prev-year' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-left' }) )); picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-prev-month-btn', title: locale.prevMonth, onClick: this.onChange.bind(this, 'month', selectMonth - 1), key: 'prev-month' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-left' }) )); picker.push(_react2['default'].createElement( 'div', { className: rangeBlockCls, key: 'range-left' }, _react2['default'].createElement( 'span', { className: prefix + 'calendar-ym-select' }, _react2['default'].createElement( 'a', { className: prefix + 'calendar-month-select', title: locale.monthSelect, onClick: this.onChange.bind(this, 'mode', 'year') }, selectMonthDisplay ), _react2['default'].createElement( 'a', { className: prefix + 'calendar-year-select', title: locale.yearSelect, onClick: this.onChange.bind(this, 'mode', 'decade') }, selectYearDisplay ) ) )); picker.push(_react2['default'].createElement( 'div', { className: rangeBlockCls, key: 'range-right' }, _react2['default'].createElement( 'span', { className: prefix + 'calendar-ym-select' }, _react2['default'].createElement( 'a', { className: prefix + 'calendar-month-select', title: locale.monthSelect, onClick: this.onChange.bind(this, 'mode', 'year') }, nextMonthDisplay ), _react2['default'].createElement( 'a', { className: prefix + 'calendar-year-select', title: locale.yearSelect, onClick: this.onChange.bind(this, 'mode', 'decade') }, nextYearDisplay ) ) )); picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-next-month-btn', title: locale.nextMonth, onClick: this.onChange.bind(this, 'month', selectMonth + 1), key: 'next-month' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-right' }) )); picker.push(_react2['default'].createElement( 'a', { className: prefix + 'calendar-next-year-btn', title: locale.nextYear, onClick: this.onChange.bind(this, 'year', selectYear + 1), key: 'next-year' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-double-right' }) )); break; default: break; } return picker; }; RangePickTool.prototype.render = function render() { var _classNames3; var prefix = this.props.prefix; var picker = this.getPicker(); var rangeCls = (0, _classnames2['default'])((_classNames3 = {}, _defineProperty(_classNames3, prefix + 'calendar-pick-tool', true), _defineProperty(_classNames3, prefix + 'calendar-range-pick-tool', true), _classNames3)); return _react2['default'].createElement( 'div', { className: rangeCls, ref: 'calendar-picker' }, picker ); }; return RangePickTool; }(_react.Component), _class.propTypes = { onChange: _propTypes2['default'].func, onAnimate: _propTypes2['default'].func }, _class.defaultProps = { onAnimate: function onAnimate() {} }, _temp); RangePickTool.displayName = 'RangePickTool'; (0, _calendarMixin2['default'])(RangePickTool); exports['default'] = RangePickTool; module.exports = exports['default']; /***/ }), /***/ 2572: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var locale = { 'zh-cn': { today: '今天', now: '此刻', ok: '确定', clear: '清除', month: '月', year: '年', prevYear: '上一年', nextYear: '下一年', prevMonth: '上个月', nextMonth: '下个月', monthSelect: '选择月份', yearSelect: '选择年份', decadeSelect: '选择年代' }, 'zh-tw': { today: '今天', now: '此刻', ok: '確定', clear: '清除', month: '月', year: '年', prevYear: '上一年', nextYear: '下一年', prevMonth: '上个月', nextMonth: '下个月', monthSelect: '選擇月份', yearSelect: '選擇年份', decadeSelect: '選擇年代' }, 'en-us': { today: 'Today', now: 'Now', ok: 'Ok', clear: 'Clear', month: 'Month', year: 'Year', prevYear: 'Previous year', nextYear: 'Next year', prevMonth: 'Previous month', nextMonth: 'Next month', monthSelect: 'Choose a month', yearSelect: 'Choose a year', decadeSelect: 'Choose a decade' } }; exports['default'] = locale; module.exports = exports['default']; /***/ }), /***/ 2573: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _locale = __webpack_require__(2574); var _locale2 = _interopRequireDefault(_locale); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Card */ var Card = (_temp = _class = function (_React$Component) { _inherits(Card, _React$Component); function Card(props, context) { _classCallCheck(this, Card); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this.handleWindowResize = function () { if (_this.state.expand) { _this.cardBody.style.height = 'auto'; } }; _this.handleToggle = function () { _this.setState(function (prevState) { return { expand: !prevState.expand }; }); }; _this._cardBodyRefHandler = function (ref) { _this.cardBody = ref; }; _this._contentRefHandler = function (ref) { _this.content = ref; }; _this._expandBtnRefHandler = function (ref) { _this.expandBtn = ref; }; _this.state = { needMore: false, expand: false, contentHeight: 'auto' }; return _this; } Card.prototype.componentDidMount = function componentDidMount() { this._setNeedMore(); this._setBodyHeight(); _nextDom.events.on(window, 'resize', this.handleWindowResize); }; Card.prototype.componentDidUpdate = function componentDidUpdate() { this._setBodyHeight(); }; Card.prototype.componentWillUnmount = function componentWillUnmount() { _nextDom.events.off(window, 'resize', this.handleWindowResize); }; // 监听 window resize, 如果 state 是 expand 则设置 bodyHeight 为 auto 使得内容高度能够自适应拉伸 // 是否展示 More 按钮 Card.prototype._setNeedMore = function _setNeedMore() { var bodyHeight = this.props.bodyHeight; var contentHeight = this._getHeight(this.content); this.setState({ needMore: bodyHeight !== 'auto' && contentHeight > bodyHeight }); }; // 设置 Body 的高度 Card.prototype._setBodyHeight = function _setBodyHeight() { var contentHeight = this._getHeight(this.content); var expandBtnHeight = this._getHeight(this.expandBtn); var expandBtnPaddingTop = this._getPaddingTop(this.expandBtn); if (this.state.expand) { // MEMO: 为什么不直接设置高度为 auto ? 答案是为了能够有展开动效 this.cardBody.style.height = contentHeight + expandBtnHeight + expandBtnPaddingTop + 24 + 'px'; } else { this.cardBody.style.height = this.props.bodyHeight + 24 + 'px'; } }; Card.prototype._getHeight = function _getHeight(node) { if (node) { return node.offsetHeight; } return 0; }; Card.prototype._getPaddingTop = function _getPaddingTop(node) { if (node && window && window.getComputedStyle) { return parseFloat(window.getComputedStyle(node).paddingTop); } return 0; }; Card.prototype.render = function render() { var _classNames, _classNames2, _classNames3; var _props = this.props, className = _props.className, title = _props.title, subTitle = _props.subTitle, extra = _props.extra, titlePrefixLine = _props.titlePrefixLine, titleBottomLine = _props.titleBottomLine, children = _props.children, locale = _props.locale, others = _objectWithoutProperties(_props, ['className', 'title', 'subTitle', 'extra', 'titlePrefixLine', 'titleBottomLine', 'children', 'locale']); var prefix = this.context.prefix || this.props.prefix; var _state = this.state, needMore = _state.needMore, expand = _state.expand; var cardCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'card', true), _defineProperty(_classNames, className, className), _classNames)); var headCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'card-head', true), _defineProperty(_classNames2, prefix + 'card-head-prefix', titlePrefixLine), _classNames2)); var bodyCls = (0, _classnames2['default'])((_classNames3 = {}, _defineProperty(_classNames3, prefix + 'card-body', true), _defineProperty(_classNames3, prefix + 'card-body-no-title', !title), _defineProperty(_classNames3, prefix + 'card-body-need-more', needMore), _defineProperty(_classNames3, 'expand', expand), _classNames3)); return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: cardCls }), title ? _react2['default'].createElement( 'div', { className: headCls }, _react2['default'].createElement( 'div', { className: prefix + 'card-head-main' }, _react2['default'].createElement( 'span', { className: prefix + 'card-title' }, title ), subTitle ? _react2['default'].createElement( 'span', { className: prefix + 'card-sub-title' }, subTitle ) : null, extra ? _react2['default'].createElement( 'span', { className: prefix + 'card-extra' }, extra ) : null ), titleBottomLine ? _react2['default'].createElement('div', { className: prefix + 'card-head-divider' }) : null ) : null, _react2['default'].createElement( 'div', { className: bodyCls, ref: this._cardBodyRefHandler }, _react2['default'].createElement( 'div', { className: prefix + 'card-content', ref: this._contentRefHandler }, children ), needMore ? _react2['default'].createElement( 'div', { className: prefix + 'card-more-btn', ref: this._expandBtnRefHandler, onClick: this.handleToggle }, _react2['default'].createElement( 'span', null, expand ? locale.lessBtn : locale.moreBtn, ' ', _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-down', size: 'xs', className: expand ? 'expand' : '' }) ) ) : null ) ); }; return Card; }(_react2['default'].Component), _class.propTypes = { /** * 样式的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 卡片的标题 */ title: _propTypes2['default'].node, /** * 卡片的副标题 */ subTitle: _propTypes2['default'].node, /** * 是否显示标题的前缀线 */ titlePrefixLine: _propTypes2['default'].bool, /** * 是否显示标题栏的下划线 */ titleBottomLine: _propTypes2['default'].bool, // TODO: 1.x change to `divider` /** * 内容区域的固定高度 */ bodyHeight: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), /** * 标题区域的用户自定义内容 */ extra: _propTypes2['default'].node, /** * 自定义样式 */ className: _propTypes2['default'].string }, _class.defaultProps = { prefix: 'next-', titlePrefixLine: true, titleBottomLine: true, bodyHeight: 120 }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Card.displayName = 'Card'; var CardLocale = (0, _nextLocaleProvider2['default'])(Card); CardLocale.LOCALE = _locale2['default']; exports['default'] = CardLocale; module.exports = exports['default']; /***/ }), /***/ 2574: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var locale = { 'zh-cn': { moreBtn: '展开', lessBtn: '收起' }, 'zh-tw': { moreBtn: '展開', lessBtn: '收起' }, 'en-us': { moreBtn: 'More', lessBtn: 'Less' } }; exports['default'] = locale; module.exports = exports['default']; /***/ }), /***/ 2575: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextCheckbox = __webpack_require__(1559); var _nextCheckbox2 = _interopRequireDefault(_nextCheckbox); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /* eslint-disable react/prop-types */ /* eslint-disable react/no-multi-comp */ var scrollbarWidth = void 0; var Menu = function (_Component) { _inherits(Menu, _Component); function Menu() { _classCallCheck(this, Menu); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Menu.prototype.componentDidMount = function componentDidMount() { this.computeMenuHeight(); this.computeMenuWidth(); var itemSelector = '.' + this.props.prefix + 'cascader-menu-item'; var menu = this.refs.menu; var targetItem = menu.querySelector(itemSelector + '.expanded') || menu.querySelector(itemSelector + '.js-selected'); if (targetItem) { menu.scrollTop = targetItem.offsetTop - Math.floor((menu.clientHeight / targetItem.clientHeight - 1) / 2) * targetItem.clientHeight; } }; Menu.prototype.componentDidUpdate = function componentDidUpdate() { this.computeMenuHeight(); this.computeMenuWidth(); }; Menu.prototype.computeMenuHeight = function computeMenuHeight() { var menu = this.refs.menu; var item = menu.querySelector('.' + this.props.prefix + 'cascader-menu-item'); if (!item || !parseInt(item.clientHeight, 10)) { return; } menu.style.height = this.props.showItemCount * item.clientHeight + 'px'; }; Menu.prototype.computeMenuWidth = function computeMenuWidth() { var menu = this.refs.menu; if (typeof this.props.labelWidth === 'undefined') { if (scrollbarWidth === undefined) { scrollbarWidth = (0, _nextUtil.scrollbar)().width; } if (scrollbarWidth > 0) { menu.style.width = 'auto'; if (menu.scrollHeight > menu.clientHeight) { menu.style.width = menu.offsetWidth + scrollbarWidth + 'px'; } } } }; Menu.prototype.render = function render() { var _props = this.props, prefix = _props.prefix, children = _props.children; return _react2['default'].createElement( 'div', { className: prefix + 'cascader-menu-wrapper' }, _react2['default'].createElement( 'ul', { className: prefix + 'cascader-menu', ref: 'menu' }, children ) ); }; return Menu; }(_react.Component); Menu.displayName = 'Menu'; var Item = function (_Component2) { _inherits(Item, _Component2); function Item(props) { _classCallCheck(this, Item); var _this2 = _possibleConstructorReturn(this, _Component2.call(this, props)); _this2.state = { loading: false }; _this2.handleClick = _this2.handleClick.bind(_this2); _this2.handleMouseEnter = _this2.handleMouseEnter.bind(_this2); _this2.removeLoading = _this2.removeLoading.bind(_this2); return _this2; } Item.prototype.addLoading = function addLoading() { this.setState({ loading: true }); }; Item.prototype.removeLoading = function removeLoading() { this.setState({ loading: false }); }; Item.prototype.setLoadingIfNeed = function setLoadingIfNeed(p) { if (p && typeof p.then === 'function') { this.addLoading(); p.then(this.removeLoading)['catch'](this.removeLoading); } }; Item.prototype.handleClick = function handleClick(e) { if ('onClick' in this.props) { this.setLoadingIfNeed(this.props.onClick(e)); } }; Item.prototype.handleMouseEnter = function handleMouseEnter(e) { if ('onMouseEnter' in this.props) { this.setLoadingIfNeed(this.props.onMouseEnter(e)); } }; Item.prototype.render = function render() { var _cx; var _props2 = this.props, prefix = _props2.prefix, className = _props2.className, disabled = _props2.disabled, selected = _props2.selected, expanded = _props2.expanded, canExpand = _props2.canExpand, children = _props2.children; var loading = this.state.loading; var classNames = (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, prefix + 'cascader-menu-item', true), _defineProperty(_cx, 'expanded', expanded), _defineProperty(_cx, 'disabled', disabled), _defineProperty(_cx, className, !!className), _cx)); return _react2['default'].createElement( 'li', { className: classNames, onClick: this.handleClick, onMouseEnter: this.handleMouseEnter }, selected ? _react2['default'].createElement(_nextIcon2['default'], { className: prefix + 'cascader-menu-icon-selected', type: 'select' }) : null, children, canExpand ? loading ? _react2['default'].createElement(_nextIcon2['default'], { className: prefix + 'cascader-menu-icon-loading', type: 'loading' }) : _react2['default'].createElement(_nextIcon2['default'], { className: prefix + 'cascader-menu-icon-expand', type: 'arrow-right' }) : null ); }; return Item; }(_react.Component); Item.displayName = 'Item'; var CheckboxItem = function (_Component3) { _inherits(CheckboxItem, _Component3); function CheckboxItem() { _classCallCheck(this, CheckboxItem); return _possibleConstructorReturn(this, _Component3.apply(this, arguments)); } CheckboxItem.prototype.stopPropagation = function stopPropagation(e) { e.stopPropagation(); }; CheckboxItem.prototype.render = function render() { var _props3 = this.props, prefix = _props3.prefix, disabled = _props3.disabled, checkable = _props3.checkable, checkboxDisabled = _props3.checkboxDisabled, checked = _props3.checked, indeterminate = _props3.indeterminate, onCheck = _props3.onCheck, children = _props3.children, others = _objectWithoutProperties(_props3, ['prefix', 'disabled', 'checkable', 'checkboxDisabled', 'checked', 'indeterminate', 'onCheck', 'children']); return _react2['default'].createElement( Item, _extends({ prefix: prefix, disabled: disabled }, others), checkable ? _react2['default'].createElement(_nextCheckbox2['default'], { className: prefix + 'cascader-menu-checkbox', disabled: disabled || checkboxDisabled, checked: checked, indeterminate: indeterminate, onChange: onCheck, onClick: this.stopPropagation }) : null, children ); }; return CheckboxItem; }(_react.Component); CheckboxItem.displayName = 'CheckboxItem'; Menu.Item = Item; Menu.CheckboxItem = CheckboxItem; exports['default'] = Menu; module.exports = exports['default']; /***/ }), /***/ 2576: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextSelect = __webpack_require__(1567); var _nextSelect2 = _interopRequireDefault(_nextSelect); var _nextCascader = __webpack_require__(2274); var _nextCascader2 = _interopRequireDefault(_nextCascader); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var isMacChrome = function () { var agent = window.navigator.userAgent.toLowerCase(); return agent.indexOf('macintosh') > -1 && agent.indexOf('chrome') > -1; }(); /** * CascaderSelect */ var CascaderSelect = (_temp = _class = function (_Component) { _inherits(CascaderSelect, _Component); function CascaderSelect(props, context) { _classCallCheck(this, CascaderSelect); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { value: 'value' in props ? props.value : props.defaultValue, visible: props.defaultVisible }; ['handleVisibleChange', 'handleChange', 'handleRemove', 'afterOpen', 'getCascader'].forEach(function (method) { _this[method] = _this[method].bind(_this); }); return _this; } CascaderSelect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { this.setState({ value: nextProps.value }); } }; CascaderSelect.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; CascaderSelect.prototype.normalizeValue = function normalizeValue(value) { if (value) { if (Array.isArray(value)) { return value; } return [value]; } return []; }; CascaderSelect.prototype.updateCache = function updateCache(dataSource) { var _this2 = this; this._v2n = {}; this._p2n = {}; var loop = function loop(data) { var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0'; return data.forEach(function (item, index) { var value = item.value, children = item.children; var pos = prefix + '-' + index; _this2._v2n[value] = _this2._p2n[pos] = _extends({}, item, { pos: pos }); if (children && children.length) { loop(children, pos); } }); }; loop(dataSource); }; CascaderSelect.prototype.flatValue = function flatValue(value) { var _this3 = this; var getDepth = function getDepth(v) { return _this3.getPos(v).split('-').length; }; var newValue = value.slice(0).sort(function (prev, next) { return getDepth(prev) - getDepth(next); }); for (var i = 0; i < newValue.length; i++) { for (var j = 0; j < newValue.length; j++) { if (i !== j && this.isDescendantOrSelf(this.getPos(newValue[i]), this.getPos(newValue[j]))) { newValue.splice(j, 1); j--; } } } return newValue; }; CascaderSelect.prototype.isDescendantOrSelf = function isDescendantOrSelf(currentPos, targetPos) { if (!currentPos || !targetPos) { return false; } var currentNums = currentPos.split('-'); var targetNums = targetPos.split('-'); return currentNums.length <= targetNums.length && currentNums.every(function (num, index) { return num === targetNums[index]; }); }; CascaderSelect.prototype.getValue = function getValue(pos) { return this._p2n[pos] ? this._p2n[pos].value : null; }; CascaderSelect.prototype.getPos = function getPos(value) { return this._v2n[value] ? this._v2n[value].pos : null; }; CascaderSelect.prototype.getData = function getData(value) { var _this4 = this; return value.map(function (v) { return _this4._v2n[v]; }); }; CascaderSelect.prototype.getLabelPath = function getLabelPath(data) { var _this5 = this; var nums = data.pos.split('-'); return nums.slice(1).reduce(function (ret, num, index) { var p = nums.slice(0, index + 2).join('-'); ret.push(_this5._p2n[p].label); return ret; }, []); }; CascaderSelect.prototype.getSignleData = function getSignleData(value) { if (!value.length) { return null; } var data = this._v2n[value]; if (!data) { return null; } var label = this.getLabelPath(data); var displayRender = this.props.displayRender || function (labels) { return labels.join(' / '); }; return _extends({}, data, { label: displayRender(label, data) }); }; CascaderSelect.prototype.getMultipleData = function getMultipleData(value) { var _this6 = this; var _props = this.props, checkStrictly = _props.checkStrictly, canOnlyCheckLeaf = _props.canOnlyCheckLeaf, displayRender = _props.displayRender, dataSource = _props.dataSource; var newValue = void 0; if (checkStrictly || canOnlyCheckLeaf) { newValue = value; } else { var filterValue = value.filter(function (v) { return typeof _this6._v2n[v] !== 'undefined'; }); newValue = this.flatValue(filterValue); var childChecked = function childChecked(child) { return newValue.indexOf(child.value) > -1; }; var removeValue = function removeValue(child) { return newValue.splice(newValue.indexOf(child.value), 1); }; var addParentValue = function addParentValue(i, parent) { return newValue.splice(i, 0, parent.value); }; for (var i = 0; i < newValue.length; i++) { var pos = this.getPos(newValue[i]); var nums = pos.split('-'); if (nums.length === 2) { break; } for (var j = nums.length - 2; j > 0; j--) { var parent = nums.slice(1, j + 1).reduce(function (ret, num) { return ret.children[num]; }, { children: dataSource }); var parentChecked = parent.children.every(childChecked); if (parentChecked) { parent.children.forEach(removeValue); addParentValue(i, parent); } else { break; } } } } var data = this.getData(newValue); if (displayRender) { data = data.map(function (item) { var labelPath = _this6.getLabelPath(item); return _extends({}, item, { label: displayRender(labelPath, item) }); }); } return data; }; CascaderSelect.prototype.getIndeterminate = function getIndeterminate(value) { var _this7 = this; var indeterminate = []; var positions = value.map(this.getPos.bind(this)); positions.forEach(function (pos) { var nums = pos.split('-'); for (var i = nums.length; i > 2; i--) { var parentPos = nums.slice(0, i - 1).join('-'); var parentValue = _this7.getValue(parentPos); if (indeterminate.indexOf(parentValue) === -1) { indeterminate.push(parentValue); } } }); return indeterminate; }; CascaderSelect.prototype.completeValue = function completeValue(value) { var newValue = []; var flatValue = this.flatValue(value).reverse(); if (flatValue.length) { var ps = Object.keys(this._p2n); for (var i = 0; i < ps.length; i++) { for (var j = 0; j < flatValue.length; j++) { var v = flatValue[j]; if (this.isDescendantOrSelf(this.getPos(v), ps[i])) { newValue.push(this.getValue(ps[i])); ps.splice(i, 1); i--; break; } } } } return newValue; }; CascaderSelect.prototype.isLeaf = function isLeaf(data) { return !(data.children && data.children.length || !!this.props.loadData && !data.isLeaf); }; CascaderSelect.prototype.handleVisibleChange = function handleVisibleChange(visible) { this.setState({ visible: visible }); }; CascaderSelect.prototype.handleChange = function handleChange(value, data, extra) { var _props2 = this.props, multiple = _props2.multiple, changeOnSelect = _props2.changeOnSelect, onChange = _props2.onChange; var st = {}; if (!multiple && (!changeOnSelect || this.isLeaf(data))) { st.visible = !this.state.visible; } if (!('value' in this.props)) { st.value = value; } if (Object.keys(st).length) { this.setState(st); } if (onChange) { onChange(value, data, extra); } }; CascaderSelect.prototype.handleRemove = function handleRemove(value) { value = this.normalizeValue(value); if ('onChange' in this.props) { var _props3 = this.props, multiple = _props3.multiple, checkStrictly = _props3.checkStrictly, onChange = _props3.onChange; if (multiple) { var currentValue = void 0; for (var i = 0; i < this.state.value.length; i++) { if (value.indexOf(this.state.value[i]) === -1) { currentValue = this.state.value[i]; break; } } var currentData = this._v2n[currentValue]; var data = this.getData(value); var checked = false; if (checkStrictly) { this.props.onChange(value, data, { checked: checked, currentData: currentData, checkedData: data }); } else { var checkedValue = this.completeValue(value); var checkedData = this.getData(checkedValue); var indeterminateValue = this.getIndeterminate(value); var indeterminateData = this.getData(indeterminateValue); this.props.onChange(value, data, { checked: checked, currentData: currentData, checkedData: checkedData, indeterminateData: indeterminateData }); } } else { onChange(null, null); } } if (!('value' in this.props)) { this.setState({ value: value }); } }; CascaderSelect.prototype.afterOpen = function afterOpen() { // mac + chrome + 高分辨率屏幕(mac pro)+ 出现滚动条 + 有动画播放 // 下拉弹层在第一次展开时,会发生展示错位现象 // http://gitlab.alibaba-inc.com/next/cascader-select/issues/17 // 所以 .next-cascader-menu 默认设置 overflow: hidden; // 打开弹层后,删除该样式 if (isMacChrome && this.cascader) { var cascaderNode = (0, _reactDom.findDOMNode)(this.cascader); _nextDom.classList.removeClass(cascaderNode, 'menu-overflow-hidden'); } this.props.afterOpen(); }; CascaderSelect.prototype.getCascader = function getCascader(ref) { this.cascader = ref; }; CascaderSelect.prototype.renderOverlay = function renderOverlay() { var prefix = this.getPrefix(); var cascaderSelectPrefix = prefix + 'cascader-select-'; var _props4 = this.props, dataSource = _props4.dataSource, multiple = _props4.multiple, defaultExpandedValue = _props4.defaultExpandedValue, expandTrigger = _props4.expandTrigger, checkStrictly = _props4.checkStrictly, labelWidth = _props4.labelWidth, showItemCount = _props4.showItemCount, changeOnSelect = _props4.changeOnSelect, canOnlyCheckLeaf = _props4.canOnlyCheckLeaf, loadData = _props4.loadData; var value = this.state.value; return _react2['default'].createElement( 'div', { className: cascaderSelectPrefix + 'dropdown' }, _react2['default'].createElement(_nextCascader2['default'], { ref: this.getCascader, value: value, className: isMacChrome ? 'menu-overflow-hidden' : null, dataSource: dataSource, onChange: this.handleChange, multiple: multiple, canOnlySelectLeaf: !changeOnSelect, canOnlyCheckLeaf: canOnlyCheckLeaf, defaultExpandedValue: defaultExpandedValue, expandTrigger: expandTrigger, checkStrictly: checkStrictly, labelWidth: labelWidth, showItemCount: showItemCount, loadData: loadData, setCascaderInnerWidth: false }) ); }; CascaderSelect.prototype.render = function render() { var prefix = this.getPrefix(); var _props5 = this.props, size = _props5.size, shape = _props5.shape, placeholder = _props5.placeholder, dataSource = _props5.dataSource, disabled = _props5.disabled, hasArrow = _props5.hasArrow, hasClear = _props5.hasClear, popupClassName = _props5.popupClassName, multiple = _props5.multiple, className = _props5.className, style = _props5.style, container = _props5.container; var _state = this.state, value = _state.value, visible = _state.visible; var others = (0, _nextUtil.pickOthers)(CascaderSelect, this.props); var overlay = this.renderOverlay(); this.updateCache(dataSource); var normalizedValue = this.normalizeValue(value); return _react2['default'].createElement(_nextSelect2['default'], _extends({ prefix: prefix, className: className, style: style, size: size, shape: shape, placeholder: placeholder, disabled: disabled, hasArrow: hasArrow, hasClear: hasClear, popupClassName: popupClassName, multiple: multiple, value: multiple ? this.getMultipleData(normalizedValue) : this.getSignleData(normalizedValue), onChange: this.handleRemove, visible: visible, onVisibleChange: this.handleVisibleChange, overlay: overlay, container: container, afterOpen: this.afterOpen }, others)); }; return CascaderSelect; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 选择框大小 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 选择框形状 */ shape: _propTypes2['default'].oneOf(['normal', 'arrow-only']), /** * 选择框占位符 */ placeholder: _propTypes2['default'].string, /** * 是否禁用 */ disabled: _propTypes2['default'].bool, /** * 是否显示右侧的箭头 */ hasArrow: _propTypes2['default'].bool, /** * 是否显示清空按钮,该按钮可以清空当前选中的值,该属性仅在单选模式下有效 */ hasClear: _propTypes2['default'].bool, /** * 数据源,结构可参考下方说明 */ dataSource: _propTypes2['default'].arrayOf(_propTypes2['default'].object), /** * (非受控)默认值 */ defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].arrayOf(_propTypes2['default'].string)]), /** * (受控)当前值 */ value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].arrayOf(_propTypes2['default'].string)]), /** * 选中值改变时触发的回调函数 * @param {String|Array} value 选中的值,单选时返回单个值,多选时返回数组 * @param {Object|Array} data 选中的数据,包括 value 和 label,单选时返回单个值,多选时返回数组,父子节点选中关联时,同时选中,只返回父节点 * @param {Object} extra 额外参数 * @param {Array} extra.selectedPath 单选时选中的数据的路径 * @param {Boolean} extra.checked 多选时当前的操作是选中还是取消选中 * @param {Object} extra.currentData 多选时当前操作的数据 * @param {Array} extra.checkedData 多选时所有被选中的数据 * @param {Array} extra.indeterminateData 多选时半选的数据 */ onChange: _propTypes2['default'].func, /** * 初始下拉框是否显示 */ defaultVisible: _propTypes2['default'].bool, /** * 默认展开值,如果不设置,组件内部会根据 defaultValue/value 进行自动设置 */ defaultExpandedValue: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * 展开触发的方式 */ expandTrigger: _propTypes2['default'].oneOf(['click', 'hover']), /** * 是否多选 */ multiple: _propTypes2['default'].bool, /** * 是否选中即发生改变, 该属性仅在单选模式下有效 */ changeOnSelect: _propTypes2['default'].bool, /** * 是否只能勾选叶子项的checkbox,该属性仅在多选模式下有效 */ canOnlyCheckLeaf: _propTypes2['default'].bool, /** * 父子节点是否选中不关联 */ checkStrictly: _propTypes2['default'].bool, /** * 文字区域宽度,当文字超过宽度时,结尾会以省略号显示,默认值为文字实际宽度 */ labelWidth: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), /** * 每一列展示的个数 */ showItemCount: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), /** * 选择框单选时展示结果的函数 * @param {Array} label 选中路径的文本数组 * @return {ReactNode} 渲染在选择框中的内容 * @default 单选时:labelPath => labelPath.join(' / ');多选时:labelPath => labelPath[labelPath.length - 1] */ displayRender: _propTypes2['default'].func, /** * 下拉框样式自定义类名 */ popupClassName: _propTypes2['default'].string, /** * 下拉框挂载的容器节点 */ container: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]), /** * 异步加载数据函数 * @param {Object} data 当前点击异步加载的数据 */ loadData: _propTypes2['default'].func, afterOpen: _propTypes2['default'].func }, _class.defaultProps = { prefix: 'next-', size: 'medium', shape: 'normal', disabled: false, hasArrow: true, hasClear: false, dataSource: [], defaultValue: null, defaultVisible: false, expandTrigger: 'click', multiple: false, changeOnSelect: false, canOnlyCheckLeaf: false, checkStrictly: false, showItemCount: 6, afterOpen: function afterOpen() {} }, _temp); CascaderSelect.displayName = 'CascaderSelect'; exports['default'] = CascaderSelect; module.exports = exports['default']; /***/ }), /***/ 2577: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * ConfigProvider */ var ConfigProvider = (_temp = _class = function (_React$Component) { _inherits(ConfigProvider, _React$Component); function ConfigProvider() { _classCallCheck(this, ConfigProvider); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } ConfigProvider.prototype.getChildContext = function getChildContext() { return { prefix: this.props.prefix }; }; ConfigProvider.prototype.render = function render() { return this.props.children; }; return ConfigProvider; }(_react2['default'].Component), _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 子Element */ children: _propTypes2['default'].node }, _class.defaultProps = { prefix: 'next-' }, _class.childContextTypes = { prefix: _propTypes2['default'].string }, _temp); ConfigProvider.displayName = 'ConfigProvider'; exports['default'] = ConfigProvider; module.exports = exports['default']; /***/ }), /***/ 2578: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _datePicker = __webpack_require__(2579); var _datePicker2 = _interopRequireDefault(_datePicker); var _rangePicker = __webpack_require__(2582); var _rangePicker2 = _interopRequireDefault(_rangePicker); var _monthPicker = __webpack_require__(2583); var _monthPicker2 = _interopRequireDefault(_monthPicker); var _yearPicker = __webpack_require__(2584); var _yearPicker2 = _interopRequireDefault(_yearPicker); var _locale = __webpack_require__(2585); var _locale2 = _interopRequireDefault(_locale); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _datePicker2['default'].LOCALE = _locale2['default']; _rangePicker2['default'].LOCALE = _locale2['default']; _monthPicker2['default'].LOCALE = _locale2['default']; _yearPicker2['default'].LOCALE = _locale2['default']; _datePicker2['default'].MonthPicker = _monthPicker2['default']; _datePicker2['default'].YearPicker = _yearPicker2['default']; _datePicker2['default'].RangePicker = _rangePicker2['default']; exports['default'] = _datePicker2['default']; module.exports = exports['default']; /***/ }), /***/ 2579: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextInput = __webpack_require__(1448); var _nextInput2 = _interopRequireDefault(_nextInput); var _nextOverlay = __webpack_require__(1401); var _nextCalendar = __webpack_require__(1743); var _nextTimePicker = __webpack_require__(1911); var _nextUtil = __webpack_require__(889); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _quickTool = __webpack_require__(2277); var _quickTool2 = _interopRequireDefault(_quickTool); var _utils = __webpack_require__(1744); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } function getValue(value, dateFormat, disabledDate) { if (!value) { return null; } return (0, _utils.toMoment)(value, dateFormat, disabledDate); } /** DatePicker */ var DatePicker = (_temp = _class = function (_Component) { _inherits(DatePicker, _Component); function DatePicker(props, context) { _classCallCheck(this, DatePicker); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.onValueChange = function (value) { var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'onChange'; var showTime = _this.props.showTime; var valueParts = (0, _utils.parseDateParts)(value, _this.dateFormat, _this.timeFormat, _this.dateTimeFormat); var formatString = showTime ? valueParts.dateTimeString : valueParts.dateString; _this.props[handler](valueParts.dateValue, formatString); }; _this.onSelectDate = function (_ref) { var base = _ref.base, value = _ref.value, mode = _ref.mode, from = _ref.from; var newState = { base: base, mode: mode }; if (value) { switch (mode) { case 'date': { var showTime = _this.props.showTime; var defaultHour = 0; var defaultMinute = 0; var defaultSecond = 0; if (showTime && showTime.defaultValue) { var defaultTimeValue = (0, _utils.toMoment)(showTime.defaultValue, _this.timeFormat); if (defaultTimeValue) { defaultHour = defaultTimeValue.hour(); defaultMinute = defaultTimeValue.minute(); defaultSecond = defaultTimeValue.second(); } } value = value.hour(defaultHour).minute(defaultMinute).second(defaultSecond); newState.mode = from === 'select-time' ? 'date' : 'month'; if (!('value' in _this.props)) { newState.value = value; } if (!from && !_this.props.showTime) { _this.onOpenChange(false); } break; } case 'year': { newState.base = value; break; } case 'month': { newState.base = value; break; } default: } } _this.setState(newState); if (mode === 'date' && (!_this.state.value || value.valueOf() !== _this.state.value.valueOf())) { _this.onValueChange(value, 'onChange'); } }; _this.onSelectTime = function (value) { if (!('value' in _this.props)) { _this.setState({ value: value }); } if (value.valueOf() !== _this.state.value.valueOf()) { _this.onValueChange(value, 'onChange'); } }; _this.onOpenChange = function (open) { if (!('open' in _this.props)) { _this.setState({ open: open }); } _this.props.onOpenChange(open); }; _this.onQuickChange = function (type) { switch (type) { case 'now': { var now = (0, _nextMoment2['default'])(); _this.setState({ base: now, value: now, mode: 'month' }); _this.onValueChange(now); _this.onOpenChange(false); break; } case 'select-date': _this.setState({ mode: 'month' }); break; case 'select-time': _this.setState({ mode: 'date' }); break; case 'ok': _this.onOpenChange(false); break; default: break; } }; _this.clearValue = function (e) { e.stopPropagation(); _this.setState({ base: (0, _nextMoment2['default'])(), value: null }); _this.onValueChange(null); }; if (props.format) { _nextUtil.log.deprecated('format', 'formater', 'DatePicker'); } (0, _utils.mixin)(_this, (0, _utils.getFormat)(props.formater, props.format, props.showTime)); var normalizeValue = getValue(props.value || props.defaultValue, _this.dateTimeFormat, props.disabledDate); _this.state = { value: normalizeValue, base: props.defaultBase || normalizeValue, mode: 'month', dateInputStr: '', timeInputStr: '', inputing: false, inputingError: false, open: props.open || props.defaultOpen }; return _this; } DatePicker.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { var showTime = 'showTime' in nextProps ? nextProps.showTime : this.props.showTime; (0, _utils.mixin)(this, (0, _utils.getFormat)(nextProps.formater, nextProps.format || this.props.format, showTime)); var normalizeValue = getValue(nextProps.value, this.dateTimeFormat, nextProps.disabledDate || this.props.disabledDate); this.setState({ value: normalizeValue, base: normalizeValue }); } if ('showTime' in nextProps) { (0, _utils.mixin)(this, (0, _utils.getFormat)(nextProps.formater, nextProps.format || this.props.format, nextProps.showTime)); } if ('open' in nextProps) { this.setState({ open: nextProps.open }); } }; DatePicker.prototype.onInputChange = function onInputChange(stateName, inputString) { if (!('value' in this.props)) { var _setState; this.setState((_setState = {}, _defineProperty(_setState, stateName, inputString), _defineProperty(_setState, 'inputing', stateName), _setState)); } }; DatePicker.prototype.onInputBlur = function onInputBlur(stateName) { var _this2 = this; var inputString = this.state[stateName]; if (this.state.inputing && inputString) { var _props = this.props, showTime = _props.showTime, disabledDate = _props.disabledDate; var format = stateName === 'dateInputStr' ? this.dateFormat : this.timeFormat; if (!(0, _utils.isFunction)(format)) { var parsed = (0, _nextMoment2['default'])(inputString, format); if (parsed.isValid() && !disabledDate((0, _utils.getCalendarDate)(parsed))) { var _setState2; var value = parsed; if (stateName === 'timeInputStr') { value = this.state.value.clone().hour(parsed.hour()).minute(parsed.minute()).second(parsed.second()); } else if (showTime && showTime.defaultValue) { // set defaultValue of time var defaultTimeValue = (0, _utils.toMoment)(showTime.defaultValue, this.timeFormat); var defaultHour = defaultTimeValue.hour(); var defaultMinute = defaultTimeValue.minute(); var defaultSecond = defaultTimeValue.second(); value = value.hour(defaultHour).minute(defaultMinute).second(defaultSecond); } this.setState((_setState2 = { value: value, base: value }, _defineProperty(_setState2, stateName, ''), _defineProperty(_setState2, 'inputing', false), _defineProperty(_setState2, 'inputingError', false), _setState2), function () { _this2.onValueChange(_this2.state.value); }); } else { this.setState({ inputingError: stateName }); } } } }; DatePicker.prototype.render = function render() { var _classNames, _classNames2, _classNames3, _classNames4; var _props2 = this.props, className = _props2.className, size = _props2.size, disabled = _props2.disabled, locale = _props2.locale, popupStyle = _props2.popupStyle, popupAlign = _props2.popupAlign, popupOffset = _props2.popupOffset, hasClear = _props2.hasClear, showTime = _props2.showTime, readOnly = _props2.readOnly, id = _props2.id, style = _props2.style, others = _objectWithoutProperties(_props2, ['className', 'size', 'disabled', 'locale', 'popupStyle', 'popupAlign', 'popupOffset', 'hasClear', 'showTime', 'readOnly', 'id', 'style']); var state = this.state; var prefix = this.context.prefix || this.props.prefix; var quickModule = showTime ? ['now', 'select'] : ['now']; // 样式 var triggerCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'date-picker', true), _defineProperty(_classNames, prefix + 'date-picker-' + size, size), _defineProperty(_classNames, prefix + 'date-picker-disabled', disabled), _defineProperty(_classNames, prefix + 'date-picker-show-time', showTime), _defineProperty(_classNames, className, className), _classNames)); var panelCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'date-picker-panel', true), _defineProperty(_classNames2, prefix + 'date-picker-panel-show-time', showTime), _classNames2)); var iconSize = { large: 'medium', medium: 'small', small: 'xs' }[size]; var dateInputCls = (0, _classnames2['default'])((_classNames3 = {}, _defineProperty(_classNames3, 'error', state.inputingError === 'dateInputStr'), _defineProperty(_classNames3, 'focus', state.mode !== 'date' && showTime), _classNames3)); var timeInputCls = (0, _classnames2['default'])((_classNames4 = {}, _defineProperty(_classNames4, 'error', state.inputingError === 'timeInputStr'), _defineProperty(_classNames4, 'focus', state.mode === 'date' && showTime), _classNames4)); // 判断时分秒 if (showTime && typeof this.timeFormat === 'string') { if (this.timeFormat.indexOf('HH') < 0) { others.showHour = false; } if (this.timeFormat.indexOf('mm') < 0) { others.showMinute = false; } if (this.timeFormat.indexOf('ss') < 0) { others.showSecond = false; } } var valueParts = (0, _utils.parseDateParts)(state.value, this.dateFormat, this.timeFormat, this.dateTimeFormat); var panelDateInputValue = state.inputing === 'dateInputStr' ? state.dateInputStr : state.value ? valueParts.dateString : ''; var panelTimeInputValue = state.inputing === 'timeInputStr' ? state.timeInputStr : state.value ? valueParts.timeString : ''; // 组件 var datePanel = _react2['default'].createElement( 'div', { className: panelCls, style: popupStyle }, _react2['default'].createElement( 'div', { className: prefix + 'date-picker-input' }, _react2['default'].createElement(_nextInput2['default'], { className: dateInputCls, placeholder: (0, _utils.isFunction)(this.dateFormat) ? locale.selectDate : this.dateFormat, disabled: disabled, size: 'medium', value: panelDateInputValue, readOnly: readOnly, onChange: this.onInputChange.bind(this, 'dateInputStr'), onBlur: this.onInputBlur.bind(this, 'dateInputStr'), onClick: this.onQuickChange.bind(this, 'select-date') }), showTime ? _react2['default'].createElement(_nextInput2['default'], { className: timeInputCls, placeholder: (0, _utils.isFunction)(this.timeFormat) ? locale.selectTime : this.timeFormat, disabled: disabled || !state.value, size: 'medium', value: panelTimeInputValue, readOnly: readOnly, onChange: this.onInputChange.bind(this, 'timeInputStr'), onBlur: this.onInputBlur.bind(this, 'timeInputStr'), onClick: !state.value ? null : this.onQuickChange.bind(this, 'select-time') }) : null ), state.mode === 'date' ? _react2['default'].createElement(_nextTimePicker.Panel, _extends({}, others, { locale: locale, value: state.value, onChange: this.onSelectTime })) : _react2['default'].createElement(_nextCalendar.DatePickerPanel, _extends({}, others, { mode: state.mode, locale: locale, base: state.base, value: state.value, onChange: this.onSelectDate })), _react2['default'].createElement(_quickTool2['default'], _extends({}, others, { value: state.value, mode: state.mode, locale: locale, module: quickModule, onChange: this.onQuickChange.bind(this) })) ); var dateTrigger = _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: triggerCls, style: style, id: id }), _react2['default'].createElement(_nextInput2['default'], { placeholder: locale.datePlaceholder, readOnly: readOnly, disabled: disabled, size: size, value: showTime ? valueParts.dateTimeString : valueParts.dateString }), state.value && !disabled && hasClear ? _react2['default'].createElement(_nextIcon2['default'], { type: 'delete-filling', size: iconSize, title: locale.clear, onClick: this.clearValue }) : _react2['default'].createElement(_nextIcon2['default'], { type: 'calendar', size: iconSize }) ); return _react2['default'].createElement( _nextOverlay.Popup, _extends({}, others, { autoFocus: false, disabled: disabled, visible: state.open, trigger: dateTrigger, triggerType: 'click', align: popupAlign, offset: popupOffset, onVisibleChange: this.onOpenChange }), datePanel ); }; return DatePicker; }(_react.Component), _class.propTypes = { /** * 品牌样式前缀 */ prefix: _propTypes2['default'].string, /** * 默认的基准日期 */ defaultBase: _propTypes2['default'].string, /** * 默认日期 */ defaultValue: _propTypes2['default'].any, /** * 日期值 */ value: _propTypes2['default'].any, /** * 日期禁用 * @param {Object} CalendarObject * @return {Boolean} true 表示禁用,反之表示可用 */ disabledDate: _propTypes2['default'].func, /** * 时间发生改变时的回调函数 * @param {String} date 改变后的日期 * @param {String} formatDate 改变后的格式化日期 */ onChange: _propTypes2['default'].func, /** * 是否默认展开 */ defaultOpen: _propTypes2['default'].bool, /** * 是否展开 */ open: _propTypes2['default'].bool, /** * 当面板展开状态改变时的回调函数 * @param {Boolean} open 面板的展开状态 */ onOpenChange: _propTypes2['default'].func, /** * 输入框大小 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 语言 */ language: _propTypes2['default'].oneOf(['en-us', 'ar', 'de', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'zh-cn', 'zh-hk', 'zh-tw']), /** * 国际化配置, [参考](http://gitlab.alibaba-inc.com/next/date-picker/blob/master/src/locale/index.js) */ locale: _propTypes2['default'].object, /** * 弹层面板样式 */ popupStyle: _propTypes2['default'].object, /** * 弹层对齐方式 */ popupAlign: _propTypes2['default'].string, /** * 弹层偏移 */ popupOffset: _propTypes2['default'].array, format: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]), /** * 日期格式化 */ formater: _propTypes2['default'].array, /** * 是否禁用 */ disabled: _propTypes2['default'].bool, /** * 是否展示清空按钮 */ hasClear: _propTypes2['default'].bool, /** * 是否展示时间选择或传入 { defaultValue } 设置时间初值 */ showTime: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].object]), /** * 输入框是否只读 */ readOnly: _propTypes2['default'].bool, /** * 自定义组件样式 */ className: _propTypes2['default'].string, id: _propTypes2['default'].any, style: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', size: 'medium', popupAlign: 'tl tl', popupOffset: [0, 0], formater: ['YYYY-MM-DD', 'HH:mm:ss'], disabledDate: function disabledDate() { return false; }, hasClear: true, readOnly: false, onChange: function onChange() {}, onOpenChange: function onOpenChange() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); DatePicker.displayName = 'DatePicker'; exports['default'] = (0, _nextLocaleProvider2['default'])(DatePicker); module.exports = exports['default']; /***/ }), /***/ 2580: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextOverlay = __webpack_require__(1401); var _nextInput = __webpack_require__(1448); var _nextInput2 = _interopRequireDefault(_nextInput); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextUtil = __webpack_require__(889); var _commonMixin = __webpack_require__(2275); var _commonMixin2 = _interopRequireDefault(_commonMixin); var _timePickerPanel = __webpack_require__(2276); var _timePickerPanel2 = _interopRequireDefault(_timePickerPanel); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** TimePicker */ var TimePicker = (_temp = _class = function (_Component) { _inherits(TimePicker, _Component); function TimePicker(props, context) { _classCallCheck(this, TimePicker); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); var normalizeValue = _this.normalizeValue(props.value || props.defaultValue); _this.state = { value: normalizeValue, inputValue: _this.parseValue(normalizeValue), inputValueCorrect: normalizeValue || normalizeValue === '', open: props.open || props.defaultOpen }; return _this; } TimePicker.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if ('value' in newProps) { var normalizeValue = this.normalizeValue(newProps.value || newProps.defaultValue); this.setState({ value: normalizeValue, inputValue: this.parseValue(normalizeValue), inputValueCorrect: normalizeValue || normalizeValue === '' }); } if ('open' in newProps) { this.setState({ open: newProps.open }); } }; TimePicker.prototype.parseValue = function parseValue(value) { if (!value) { return ''; } return (0, _nextMoment2['default'])(value).isValid() ? (0, _nextMoment2['default'])(value).format(this.props.format) : value; }; TimePicker.prototype.getStrRegExp = function getStrRegExp(format) { var exactRegExp = []; var fuzzyRegExp = []; for (var i = 0; i < format.length; i++) { if (/[a-zA-Z]/.test(format[i])) { exactRegExp.push('[0-9]'); } else { exactRegExp.push(format[i]); if (fuzzyRegExp.indexOf(format[i]) === -1) { fuzzyRegExp.push(format[i]); } } } return { fuzzy: new RegExp('^[0-9' + fuzzyRegExp.join('') + ']{0,' + exactRegExp.length + '}$'), exact: new RegExp('^' + exactRegExp.join('') + '$') }; }; TimePicker.prototype.onOpenChange = function onOpenChange(open) { if (!('open' in this.props)) { this.setState({ open: open }); } this.props.onOpenChange(open); }; TimePicker.prototype.onChange = function onChange(value) { var formatValue = this.parseValue(value); var nextValue = (0, _nextMoment2['default'])(formatValue, [this.props.format]); if (!('value' in this.props)) { this.setState({ inputValue: formatValue, value: nextValue }); } this.props.onChange(new Date(nextValue.valueOf()), formatValue); }; TimePicker.prototype.onInputChange = function onInputChange(nextInputValue, e) { var format = this.props.format; var _getStrRegExp = this.getStrRegExp(format), fuzzy = _getStrRegExp.fuzzy, exact = _getStrRegExp.exact; // 模糊匹配输入值 if (fuzzy.test(nextInputValue)) { this.setState({ inputValue: nextInputValue, inputValueCorrect: true }); } // 精确匹配以修改值 if (exact.test(nextInputValue)) { var nextValue = (0, _nextMoment2['default'])(nextInputValue, [format]); var isValid = nextValue.isValid() && this.isValid(nextValue); if (isValid) { this.onChange(nextValue); } else { this.setState({ inputValueCorrect: false }); } } // 清空 if (nextInputValue === '') { this.clearValue(e); } }; TimePicker.prototype.clearValue = function clearValue(e) { e.stopPropagation(); this.setState({ value: null, inputValue: '', inputValueCorrect: true }); this.onOpenChange(false); this.props.onChange(null, ''); }; TimePicker.prototype.render = function render() { var _classNames; var _props = this.props, id = _props.id, placeholder = _props.placeholder, style = _props.style, className = _props.className, others = _objectWithoutProperties(_props, ['id', 'placeholder', 'style', 'className']); var size = others.size, format = others.format, disabled = others.disabled, locale = others.locale, popupAlign = others.popupAlign, popupOffset = others.popupOffset, popupStyle = others.popupStyle, hasClear = others.hasClear; var _state = this.state, value = _state.value, open = _state.open, inputValue = _state.inputValue, inputValueCorrect = _state.inputValueCorrect; var prefix = this.context.prefix || this.props.prefix; var formatValue = this.parseValue(value); delete others.onChange; // 避免往下透传 onChange if (format.indexOf('ss') < 0) { others.showSecond = false; } if (format.indexOf('HH') < 0) { others.showHour = false; } // 样式 var triggerCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'time-picker', true), _defineProperty(_classNames, prefix + 'time-picker-size-' + size, size), _defineProperty(_classNames, prefix + 'time-picker-disabled', disabled), _defineProperty(_classNames, className, className), _classNames)); var iconSize = { large: 'medium', medium: 'small', small: 'xs' }[size]; var inputCls = (0, _classnames2['default'])(_defineProperty({}, 'error', !inputValueCorrect)); // 组件 var panel = _react2['default'].createElement( 'div', { className: prefix + 'time-picker-panel-wrapper', style: popupStyle }, _react2['default'].createElement( 'div', { className: prefix + 'time-picker-input' }, _react2['default'].createElement(_nextInput2['default'], { className: inputCls, disbaled: disabled, size: 'medium', value: inputValue, placeholder: format, onChange: this.onInputChange.bind(this) }) ), _react2['default'].createElement(_timePickerPanel2['default'], _extends({}, others, { value: value, onChange: this.onChange.bind(this) })) ); var trigger = _react2['default'].createElement( 'span', _extends({}, (0, _nextUtil.pickAttrs)(others), { id: id, className: triggerCls, style: style }), _react2['default'].createElement(_nextInput2['default'], { placeholder: placeholder || locale.placeholder, disabled: disabled, size: size, value: formatValue }), formatValue && !disabled && hasClear ? _react2['default'].createElement(_nextIcon2['default'], { type: 'delete-filling', size: iconSize, title: locale.clear, onClick: this.clearValue.bind(this) }) : _react2['default'].createElement(_nextIcon2['default'], { type: 'clock', size: iconSize }) ); return _react2['default'].createElement( _nextOverlay.Popup, _extends({}, others, { disabled: disabled, visible: open, align: popupAlign, offset: popupOffset, trigger: trigger, triggerType: 'click', onVisibleChange: this.onOpenChange.bind(this) }), panel ); }; return TimePicker; }(_react.Component), _class.propTypes = { /** * 样式的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 输入框提示文案 */ placeholder: _propTypes2['default'].string, /** * 默认时间 */ defaultValue: _propTypes2['default'].any, /** * 时间 */ value: _propTypes2['default'].any, /** * 时间值改变时的回调 * @param {String} date 日期值 * @param {String} formatDate 格式化后的日期值 */ onChange: _propTypes2['default'].func, /** * 默认是否展开 */ defaultOpen: _propTypes2['default'].bool, /** * 展开 */ open: _propTypes2['default'].bool, /** * 展开状态改变时的回调 * @param {Boolean} open 是否展开 */ onOpenChange: _propTypes2['default'].func, /** * 展示的时间格式,目前只支持 24 小时值 */ format: _propTypes2['default'].string, /** * 禁用全部操作 */ disabled: _propTypes2['default'].bool, /** * 输入框尺寸 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 弹层样式 */ popupStyle: _propTypes2['default'].object, /** * 弹层对齐方式 */ popupAlign: _propTypes2['default'].string, /** * 弹层偏移 */ popupOffset: _propTypes2['default'].array, /** * 禁止选择指定分小时 * Function() => Array */ disabledHours: _propTypes2['default'].func, /** * 禁止选择指定分钟 * Function() => Array */ disabledMinutes: _propTypes2['default'].func, /** * 禁止选择部分秒 * Function() => Array */ disabledSeconds: _propTypes2['default'].func, /** * 是否显示清空按钮 */ hasClear: _propTypes2['default'].bool, /** * 自定样式名 */ className: _propTypes2['default'].string }, _class.defaultProps = { prefix: 'next-', format: 'HH:mm:ss', size: 'medium', popupAlign: 'tl tl', popupOffset: [0, 0], hasClear: true, onChange: function onChange() {}, onOpenChange: function onOpenChange() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); TimePicker.displayName = 'TimePicker'; (0, _commonMixin2['default'])(TimePicker); exports['default'] = TimePicker; module.exports = exports['default']; /***/ }), /***/ 2581: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var locale = { 'zh-cn': { placeholder: '请选择时间', clear: '清除', hour: '时', minute: '分', second: '秒' }, 'zh-tw': { placeholder: '請選擇時間', clear: '清除', hour: '時', minute: '分', second: '秒' }, 'en-us': { placeholder: 'Select a Time', clear: 'Clear', hour: 'H', minute: 'M', second: 'S' } }; exports['default'] = locale; module.exports = exports['default']; /***/ }), /***/ 2582: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp, _initialiseProps; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextInput = __webpack_require__(1448); var _nextInput2 = _interopRequireDefault(_nextInput); var _nextOverlay = __webpack_require__(1401); var _nextCalendar = __webpack_require__(1743); var _nextTimePicker = __webpack_require__(1911); var _nextUtil = __webpack_require__(889); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _quickTool = __webpack_require__(2277); var _quickTool2 = _interopRequireDefault(_quickTool); var _utils = __webpack_require__(1744); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } function mapInputStringNameToValueName(name) { return { startDateInputStr: 'startValue', startTimeInputStr: 'startValue', endDateInputStr: 'endValue', endTimeInputStr: 'endValue' }[name]; } function getRangeValue(values, dateFormat, disabledDate) { if (!Array.isArray(values)) { return { startValue: null, endValue: null }; } var startValue = (0, _utils.toMoment)(values[0], dateFormat, disabledDate); var endValue = (0, _utils.toMoment)(values[1], dateFormat, disabledDate); return { startValue: startValue, endValue: endValue }; } var oldFormatWrapper = function oldFormatWrapper(format) { // 如果用户传的 format 为 function 的话,强制重置,并提醒 format 已被废弃,使用新的 formater 进行替换 if ((0, _utils.isFunction)(format)) { return function (date) { return date; }; } return format; }; /** * TODO: * 1. 受控与非受控检查 * 2. dateInputStr/timeInputStr 使用常量隔离 */ /** DatePicker.RangePicker */ var RangePicker = (_temp = _class = function (_Component) { _inherits(RangePicker, _Component); function RangePicker(props, context) { _classCallCheck(this, RangePicker); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _initialiseProps.call(_this); if (props.format) { _nextUtil.log.deprecated('format', 'formater', 'DatePicker.RangePicker'); } (0, _utils.mixin)(_this, (0, _utils.getFormat)(props.formater, oldFormatWrapper(props.format), props.showTime)); var rangeValue = getRangeValue(props.value || props.defaultValue, _this.dateTimeFormat, props.disabledDate); _this.state = _extends({}, rangeValue, { base: props.defaultBase || rangeValue.startValue, mode: 'month', startDateInputStr: '', endDateInputStr: '', startTimeInputStr: '', endTimeInputStr: '', inputing: false, inputingError: false, open: props.open || props.defaultOpen }); return _this; } RangePicker.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { var showTime = 'showTime' in nextProps ? nextProps.showTime : this.props.showTime; (0, _utils.mixin)(this, (0, _utils.getFormat)(nextProps.formater, oldFormatWrapper(nextProps.format || this.props.format), showTime)); var rangeValue = getRangeValue(nextProps.value, this.dateTimeFormat, nextProps.disabledDate || this.props.disabledDate); this.setState(_extends({}, rangeValue, { base: rangeValue.startValue })); } if ('showTime' in nextProps) { (0, _utils.mixin)(this, (0, _utils.getFormat)(nextProps.formater, oldFormatWrapper(nextProps.format || this.props.format), nextProps.showTime)); } if ('open' in nextProps) { this.setState({ open: nextProps.open }); } }; RangePicker.prototype.onDateInputChange = function onDateInputChange(stateName, inputString) { if (!('value' in this.props)) { var _setState; this.setState((_setState = {}, _defineProperty(_setState, stateName, inputString), _defineProperty(_setState, 'inputing', stateName), _setState)); } }; RangePicker.prototype.onDateInputBlur = function onDateInputBlur(stateName) { var _this2 = this; var inputString = this.state[stateName]; if (this.state.inputing && inputString) { var disabledDate = this.props.disabledDate; if (!(0, _utils.isFunction)(this.dateFormat)) { var parsed = (0, _nextMoment2['default'])(inputString, this.dateFormat); if (parsed.isValid() && !disabledDate((0, _utils.getCalendarDate)(parsed))) { var _filterObject; // TODO: check showTime.defaultValue this.setState((0, _utils.filterObject)((_filterObject = {}, _defineProperty(_filterObject, mapInputStringNameToValueName(stateName), parsed), _defineProperty(_filterObject, stateName, ''), _defineProperty(_filterObject, 'base', stateName === 'startDateInputStr' ? parsed : undefined), _defineProperty(_filterObject, 'inputing', false), _defineProperty(_filterObject, 'inputingError', false), _filterObject)), function () { if (stateName === 'startDateInputStr') { _this2.onValueChange(_this2.state.startValue, _this2.state.endValue, 'onStartChange'); } else { _this2.onValueChange(_this2.state.startValue, _this2.state.endValue, 'onEndChange'); } if (_this2.state.startValue && _this2.state.endValue) { _this2.onValueChange(_this2.state.startValue, _this2.state.endValue); } }); } else { this.setState({ inputingError: stateName }); } } } }; RangePicker.prototype.onTimeInputChange = function onTimeInputChange(stateName, inputString) { if (!('value' in this.props)) { var _setState2; this.setState((_setState2 = {}, _defineProperty(_setState2, stateName, inputString), _defineProperty(_setState2, 'inputing', stateName), _setState2)); } }; RangePicker.prototype.onTimeInputBlur = function onTimeInputBlur(stateName) { var _this3 = this; var inputString = this.state[stateName]; if (this.state.inputing && inputString) { if (!(0, _utils.isFunction)(this.timeFormat)) { var parsed = (0, _nextMoment2['default'])(inputString, this.timeFormat); if (parsed.isValid()) { var _setState3; var targetState = mapInputStringNameToValueName(stateName); var value = this.state[targetState].clone().hour(parsed.hour()).minute(parsed.minute()).second(parsed.second()); this.setState((_setState3 = {}, _defineProperty(_setState3, targetState, value), _defineProperty(_setState3, stateName, ''), _defineProperty(_setState3, 'inputing', false), _defineProperty(_setState3, 'inputingError', false), _setState3), function () { if (stateName === 'startTimeInputStr') { _this3.onValueChange(_this3.state.startValue, _this3.state.endValue, 'onStartChange'); } else { _this3.onValueChange(_this3.state.startValue, _this3.state.endValue, 'onEndChange'); } _this3.onValueChange(_this3.state.startValue, _this3.state.endValue); }); } else { this.setState({ inputingError: stateName }); } } } }; RangePicker.prototype.onOpenChange = function onOpenChange(open) { if (!('open' in this.props)) { this.setState({ open: open }); } this.props.onOpenChange(open); }; RangePicker.prototype.disabledTime = function disabledTime(_ref) { var startValue = _ref.startValue, endValue = _ref.endValue; var _props = this.props, disabledHours = _props.disabledHours, disabledMinutes = _props.disabledMinutes, disabledSeconds = _props.disabledSeconds; var disabledTime = {}; if (startValue && endValue) { var isSameDay = startValue.format('L') === endValue.format('L'); var newDisabledHours = function newDisabledHours() { var result = (0, _utils.isFunction)(disabledHours) ? disabledHours() : []; if (isSameDay) { for (var i = 0; i < startValue.hour(); i++) { result.push(i); } } return result; }; var newDisabledMinutes = function newDisabledMinutes() { var result = (0, _utils.isFunction)(disabledMinutes) ? disabledMinutes() : []; if (isSameDay && startValue.hour() === endValue.hour()) { for (var i = 0; i < startValue.minute(); i++) { result.push(i); } } return result; }; var newDisabledSeconds = function newDisabledSeconds() { var result = (0, _utils.isFunction)(disabledSeconds) ? disabledSeconds() : []; if (isSameDay && startValue.hour() === endValue.hour() && startValue.minute() === endValue.minute()) { for (var i = 0; i <= startValue.second(); i++) { result.push(i); } } return result; }; disabledTime = { disabledHours: newDisabledHours, disabledMinutes: newDisabledMinutes, disabledSeconds: newDisabledSeconds }; } return disabledTime; }; RangePicker.prototype.clearValue = function clearValue(e) { e.stopPropagation(); this.setState({ startValue: null, endValue: null }); this.onValueChange(null, null, 'onStartChange'); this.onValueChange(null, null, 'onEndChange'); this.onValueChange(null, null, 'onChange'); }; RangePicker.prototype.render = function render() { var _classNames, _classNames2, _classNames3, _classNames4, _classNames5, _classNames6; var _props2 = this.props, className = _props2.className, size = _props2.size, disabled = _props2.disabled, locale = _props2.locale, popupStyle = _props2.popupStyle, popupAlign = _props2.popupAlign, popupOffset = _props2.popupOffset, hasClear = _props2.hasClear, showTime = _props2.showTime, ranges = _props2.ranges, readOnly = _props2.readOnly, id = _props2.id, style = _props2.style, others = _objectWithoutProperties(_props2, ['className', 'size', 'disabled', 'locale', 'popupStyle', 'popupAlign', 'popupOffset', 'hasClear', 'showTime', 'ranges', 'readOnly', 'id', 'style']); var state = this.state; var prefix = this.context.prefix || this.props.prefix; var quickModule = showTime ? ['select'] : []; var triggerCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'date-picker', true), _defineProperty(_classNames, prefix + 'range-picker', true), _defineProperty(_classNames, prefix + 'range-picker-' + size, size), _defineProperty(_classNames, prefix + 'range-picker-disabled', disabled), _defineProperty(_classNames, prefix + 'range-picker-show-time', showTime), _defineProperty(_classNames, className, className), _classNames)); var panelCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'range-picker-panel', true), _defineProperty(_classNames2, prefix + 'range-picker-panel-show-time', showTime), _classNames2)); var iconSize = { large: 'medium', medium: 'small', small: 'xs' }[size]; var startDateInputCls = (0, _classnames2['default'])((_classNames3 = {}, _defineProperty(_classNames3, 'focus', state.mode !== 'date' && !state.startValue && showTime), _defineProperty(_classNames3, 'error', state.inputingError === 'startDateInputStr'), _classNames3)); var startTimeInputCls = (0, _classnames2['default'])((_classNames4 = {}, _defineProperty(_classNames4, prefix + 'range-picker-panel-time-input', true), _defineProperty(_classNames4, 'focus', state.mode === 'date' && !state.startValue && showTime), _defineProperty(_classNames4, 'error', state.inputingError === 'startTimeInputStr'), _classNames4)); var endDateInputCls = (0, _classnames2['default'])((_classNames5 = {}, _defineProperty(_classNames5, 'focus', state.mode !== 'date' && !state.endValue && showTime), _defineProperty(_classNames5, 'error', state.inputingError === 'endDateInputStr'), _classNames5)); var endTimeInputCls = (0, _classnames2['default'])((_classNames6 = {}, _defineProperty(_classNames6, prefix + 'range-picker-panel-time-input', true), _defineProperty(_classNames6, 'focus', state.mode === 'date' && !state.endValue && showTime), _defineProperty(_classNames6, 'error', state.inputingError === 'endTimeInputStr'), _classNames6)); // 判断时分秒 if (showTime && !(0, _utils.isFunction)(this.timeFormat)) { if (this.timeFormat.indexOf('ss') < 0) { others.showSecond = false; } if (this.timeFormat.indexOf('HH') < 0) { others.showHour = false; } } // 同一天禁用时间 var disabledTime = this.disabledTime(state); var startValueParts = (0, _utils.parseDateParts)(state.startValue, this.dateFormat, this.timeFormat, this.dateTimeFormat); var endValueParts = (0, _utils.parseDateParts)(state.endValue, this.dateFormat, this.timeFormat, this.dateTimeFormat); var panelStartDateInputValue = state.inputing === 'startDateInputStr' ? state.startDateInputStr : state.startValue ? startValueParts.dateString : ''; var panelEndDateInputValue = state.inputing === 'endDateInputStr' ? state.endDateInputStr : state.endValue ? endValueParts.dateString : ''; var panelStartTimeInputVal = state.inputing === 'startTimeInputStr' ? state.startTimeInputStr : state.startValue ? startValueParts.timeString : ''; var panelEndTimeInputVal = state.inputing === 'endTimeInputStr' ? state.endTimeInputStr : state.endValue ? endValueParts.timeString : ''; // 组件 var datePanel = _react2['default'].createElement( 'div', { className: panelCls, style: popupStyle }, _react2['default'].createElement( 'div', { className: prefix + 'range-picker-input' }, _react2['default'].createElement(_nextInput2['default'], { className: startDateInputCls, placeholder: (0, _utils.isFunction)(this.dateFormat) ? locale.selectDate : this.dateFormat, disabled: disabled, size: 'medium', value: panelStartDateInputValue, readOnly: readOnly, onChange: this.onDateInputChange.bind(this, 'startDateInputStr'), onBlur: this.onDateInputBlur.bind(this, 'startDateInputStr'), onClick: this.onQuickChange.bind(this, 'select-date') }), showTime ? _react2['default'].createElement(_nextInput2['default'], { className: startTimeInputCls, placeholder: (0, _utils.isFunction)(this.timeFormat) ? locale.selectTime : this.timeFormat, disabled: disabled || !state.startValue || !state.endValue, size: 'medium', value: panelStartTimeInputVal, readOnly: readOnly, onChange: this.onTimeInputChange.bind(this, 'startTimeInputStr'), onBlur: this.onTimeInputBlur.bind(this, 'startTimeInputStr'), onClick: this.onQuickChange.bind(this, 'select-time') }) : null, _react2['default'].createElement( 'span', { className: prefix + 'range-picker-input-separator' }, '-' ), _react2['default'].createElement(_nextInput2['default'], { className: endDateInputCls, placeholder: (0, _utils.isFunction)(this.dateFormat) ? locale.selectDate : this.dateFormat, disabled: disabled, size: 'medium', value: panelEndDateInputValue, readOnly: readOnly, onChange: this.onDateInputChange.bind(this, 'endDateInputStr'), onBlur: this.onDateInputBlur.bind(this, 'endDateInputStr'), onClick: this.onQuickChange.bind(this, 'select-date') }), showTime ? _react2['default'].createElement(_nextInput2['default'], { className: endTimeInputCls, placeholder: (0, _utils.isFunction)(this.timeFormat) ? locale.selectTime : this.timeFormat, disabled: disabled || !state.startValue || !state.endValue, size: 'medium', value: panelEndTimeInputVal, readOnly: readOnly, onChange: this.onTimeInputChange.bind(this, 'endTimeInputStr'), onBlur: this.onTimeInputBlur.bind(this, 'endTimeInputStr'), onClick: this.onQuickChange.bind(this, 'select-time') }) : null ), state.mode === 'date' ? _react2['default'].createElement( 'div', { className: prefix + 'range-picker-panel-time' }, _react2['default'].createElement(_nextTimePicker.Panel, _extends({}, others, { locale: locale, value: state.startValue, onChange: this.onSelectStartTime })), _react2['default'].createElement(_nextTimePicker.Panel, _extends({}, others, disabledTime, { locale: locale, value: state.endValue, onChange: this.onSelectEndTime })) ) : _react2['default'].createElement(_nextCalendar.RangePickerPanel, _extends({}, others, { mode: state.mode, locale: locale, base: state.base, value: [state.startValue, state.endValue], onChange: this.onSelectRange })), _react2['default'].createElement(_quickTool2['default'], { value: [state.startValue, state.endValue], mode: state.mode, locale: locale, module: quickModule, shortcuts: Object.keys(ranges), onChange: this.onQuickChange }) ); var dateTrigger = _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: triggerCls, style: style, id: id }), _react2['default'].createElement( 'div', { className: prefix + 'range-picker-trigger' }, _react2['default'].createElement(_nextInput2['default'], { placeholder: locale.rangeStartPlaceholder, disabled: disabled, size: size, value: showTime ? startValueParts.dateTimeString : startValueParts.dateString, readOnly: readOnly }), _react2['default'].createElement( 'span', { className: prefix + 'range-picker-separator' }, '-' ), _react2['default'].createElement(_nextInput2['default'], { placeholder: locale.rangeEndPlaceholder, disabled: disabled, size: size, value: showTime ? endValueParts.dateTimeString : endValueParts.dateString, readOnly: readOnly }) ), (state.startValue || state.endValue) && !disabled && hasClear ? _react2['default'].createElement(_nextIcon2['default'], { type: 'delete-filling', size: iconSize, title: locale.clear, onClick: this.clearValue.bind(this) }) : _react2['default'].createElement(_nextIcon2['default'], { type: 'calendar', size: iconSize }) ); return _react2['default'].createElement( _nextOverlay.Popup, _extends({}, others, { autoFocus: false, disabled: disabled, visible: state.open, trigger: dateTrigger, triggerType: 'click', align: popupAlign, offset: popupOffset, onVisibleChange: this.onOpenChange.bind(this) }), datePanel ); }; return RangePicker; }(_react.Component), _class.propTypes = { /** * 品牌样式前缀 */ prefix: _propTypes2['default'].string, /** * 默认的基准日期 */ defaultBase: _propTypes2['default'].string, /** * 默认日期值 */ defaultValue: _propTypes2['default'].array, /** * 日期值 */ value: _propTypes2['default'].array, /** * 日期禁用 * @param {Object} CalendarObject * @return {Boolean} true 表示禁用,反之表示可用 */ disabledDate: _propTypes2['default'].func, /** * 禁用指定的小时,同 TimePicker */ disabledHours: _propTypes2['default'].func, /** * 禁用指定的分钟,同 TimePicker */ disabledMinutes: _propTypes2['default'].func, /** * 禁用指定的秒钟,同 TimePicker */ disabledSeconds: _propTypes2['default'].func, /** * 时间发生改变的回调 * @param {Array} dateRange 选中的日期区间数组 * @param {Array} formatDateRnage 格式化后的选中的日期区间数组 */ onChange: _propTypes2['default'].func, /** * 开始日期变化时的回调 * @param {String} date 开始日期 */ onStartChange: _propTypes2['default'].func, /** * 结束日期变化时的回调 * @param {String} date 结束日期 */ onEndChange: _propTypes2['default'].func, /** * 默认是否展开 */ defaultOpen: _propTypes2['default'].bool, /** * 是否展开 */ open: _propTypes2['default'].bool, /** * 当面板展开状态改变时的回调 * @param {Boolean} 面板的 open 状态 */ onOpenChange: _propTypes2['default'].func, /** * 输入框大小 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 语言 */ language: _propTypes2['default'].oneOf(['en-us', 'ar', 'de', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'zh-cn', 'zh-hk', 'zh-tw']), /** * 国际化配置,[参考](http://gitlab.alibaba-inc.com/next/date-picker/blob/master/src/locale/index.js) */ locale: _propTypes2['default'].object, /** * 弹层样式 */ popupStyle: _propTypes2['default'].object, /** * 弹层对其方式 */ popupAlign: _propTypes2['default'].string, /** * 弹层偏移 */ popupOffset: _propTypes2['default'].array, /** * 输出日期的格式 */ format: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]), /** * 日期值格式化(可替代 format) */ formater: _propTypes2['default'].array, /** * 是否禁用 */ disabled: _propTypes2['default'].bool, /** * 是否有清空按钮 */ hasClear: _propTypes2['default'].bool, /** * 是否显示时间或传入 { defaultValue } 设置时间初值 */ showTime: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].object]), /** * 重新选择时是否重置时间 */ resetTime: _propTypes2['default'].bool, /** * 用户预设的快捷选择的日期范围 */ ranges: _propTypes2['default'].object, /** * 输入框是否只读 */ readOnly: _propTypes2['default'].bool, /** * 自定义组件样式 */ className: _propTypes2['default'].string, id: _propTypes2['default'].any, style: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', size: 'medium', popupAlign: 'tl tl', popupOffset: [0, 0], formater: ['YYYY-MM-DD', 'HH:mm:ss'], hasClear: true, showTime: false, resetTime: true, ranges: {}, disabledDate: function disabledDate() { return false; }, onChange: function onChange() {}, onStartChange: function onStartChange() {}, onEndChange: function onEndChange() {}, onOpenChange: function onOpenChange() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _initialiseProps = function _initialiseProps() { var _this4 = this; this.onValueChange = function (startValue, endValue) { var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'onChange'; var showTime = _this4.props.showTime; var startValueParts = (0, _utils.parseDateParts)(startValue, _this4.dateFormat, _this4.timeFormat, _this4.dateTimeFormat); var endValueParts = (0, _utils.parseDateParts)(endValue, _this4.dateFormat, _this4.timeFormat, _this4.dateTimeFormat); var formatStrings = showTime ? [startValueParts.dateTimeString, endValueParts.dateTimeString] : [startValueParts.dateString, endValueParts.dateString]; switch (handler) { case 'onStartChange': _this4.props[handler](startValueParts.dateValue, formatStrings[0]); break; case 'onEndChange': _this4.props[handler](endValueParts.dateValue, formatStrings[1]); break; case 'onChange': { _this4.props[handler]([startValueParts.dateValue, endValueParts.dateValue], formatStrings); break; } default: } }; this.onSelectRange = function (_ref2) { var value = _ref2.value, base = _ref2.base, mode = _ref2.mode; var _props3 = _this4.props, showTime = _props3.showTime, resetTime = _props3.resetTime; var state = _this4.state; if (mode === 'date') { var defaultStartHour = 0; var defaultStartMinute = 0; var defaultStartSecond = 0; var defaultEndHour = 0; var defaultEndMinute = 0; var defaultEndSecond = 0; if (showTime) { if (showTime.defaultValue) { var defaultStartTimeValue = (0, _utils.toMoment)(showTime.defaultValue[0], _this4.timeFormat); var defaultEndTimeValue = (0, _utils.toMoment)(showTime.defaultValue[1], _this4.timeFormat); if (defaultStartTimeValue) { defaultStartHour = defaultStartTimeValue.hour(); defaultStartMinute = defaultStartTimeValue.minute(); defaultStartSecond = defaultStartTimeValue.second(); } if (defaultEndTimeValue) { defaultEndHour = defaultEndTimeValue.hour(); defaultEndMinute = defaultEndTimeValue.minute(); defaultEndSecond = defaultEndTimeValue.second(); } } // resetTime=false 表示不重置时间,每次沿用上一次选择的时间 if (!resetTime) { if (state.startValue) { defaultStartHour = state.startValue.hour(); defaultStartMinute = state.startValue.minute(); defaultStartSecond = state.startValue.second(); } if (_this4.lastSelectedEndValue) { defaultEndHour = _this4.lastSelectedEndValue.hour(); defaultEndMinute = _this4.lastSelectedEndValue.minute(); defaultEndSecond = _this4.lastSelectedEndValue.second(); } } } if (value[0] && (!state.startValue || state.startValue.valueOf() !== value[0].valueOf())) { value[0] = value[0].hour(defaultStartHour).minute(defaultStartMinute).second(defaultStartSecond); _this4.onValueChange(value[0], null, 'onStartChange'); } if (value[1]) { value[1] = value[1].hour(defaultEndHour).minute(defaultEndMinute).second(defaultEndSecond); _this4.onValueChange(value[0], value[1], 'onEndChange'); } var newState = (0, _utils.filterObject)({ startValue: value[0], endValue: value[1] }); var newStartValue = newState.startValue || _this4.state.startValue; var newEndValue = newState.endValue || _this4.state.endValue; _this4.lastSelectedEndValue = newEndValue; // 记住上次选择的结束日期 _this4.setState(newState); if (value[0] && value[1]) { _this4.onValueChange(newStartValue, newEndValue, 'onChange'); } // 判断收起弹层 if (!_this4.props.showTime && value[0] && value[1]) { _this4.onOpenChange(false); } } else { _this4.setState({ base: base, mode: mode }); } }; this.onSelectStartTime = function (value) { if (!('value' in _this4.props)) { _this4.setState({ startValue: value }); } if (value.valueOf() !== _this4.state.startValue.valueOf()) { _this4.onValueChange(value, _this4.state.endValue, 'onStartChange'); _this4.onValueChange(value, _this4.state.endValue, 'onChange'); } }; this.onSelectEndTime = function (value) { if (!('value' in _this4.props)) { _this4.setState({ endValue: value }); } if (value.valueOf() !== _this4.state.endValue.valueOf()) { _this4.onValueChange(_this4.state.startValue, value, 'onEndChange'); _this4.onValueChange(_this4.state.startValue, value, 'onChange'); } }; this.onQuickChange = function (type, value) { var _props4 = _this4.props, ranges = _props4.ranges, disabledDate = _props4.disabledDate; switch (type) { case 'select-date': _this4.setState({ mode: 'month' }); break; case 'select-time': _this4.setState({ mode: 'date' }); break; case 'ok': _this4.onOpenChange(false); break; case 'quick-select': { // 判断是否是快捷选择操作 var range = ranges[value]; if (range && value) { var rangeValue = getRangeValue(range, _this4.dateFormat, disabledDate); _this4.setState(rangeValue, function () { _this4.onValueChange(_this4.state.startValue, _this4.state.endValue, 'onChange'); _this4.onOpenChange(false); }); } break; } default: break; } }; }, _temp); RangePicker.displayName = 'RangePicker'; exports['default'] = (0, _nextLocaleProvider2['default'])(RangePicker); module.exports = exports['default']; /***/ }), /***/ 2583: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextInput = __webpack_require__(1448); var _nextInput2 = _interopRequireDefault(_nextInput); var _nextOverlay = __webpack_require__(1401); var _nextCalendar = __webpack_require__(1743); var _nextUtil = __webpack_require__(889); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _utils = __webpack_require__(1744); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** DatePicker.MonthPicker */ var MonthPicker = (_temp = _class = function (_Component) { _inherits(MonthPicker, _Component); function MonthPicker(props, context) { _classCallCheck(this, MonthPicker); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); var normalizeValue = _this.normalizeValue(props.value || props.defaultValue, false); _this.state = { value: normalizeValue, base: props.defaultBase || normalizeValue, mode: 'year', inputValue: _this.parseValue(normalizeValue), inputValueCorrect: normalizeValue || normalizeValue === '', open: props.open || props.defaultOpen }; return _this; } MonthPicker.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { var normalizeValue = this.normalizeValue(nextProps.value, false); this.setState({ value: normalizeValue, inputValue: this.parseValue(normalizeValue), inputValueCorrect: normalizeValue || normalizeValue === '' }); } if ('open' in nextProps) { this.setState({ open: nextProps.open }); } }; MonthPicker.prototype.normalizeValue = function normalizeValue(value) { var checkDisabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var _props = this.props, format = _props.format, disabledMonth = _props.disabledMonth; var mode = this.state ? this.state.mode : 'year'; var resultValue = ''; if (!value) { return resultValue; } if (typeof value === 'number') { resultValue = (0, _nextMoment2['default'])(value); } else { resultValue = (0, _nextMoment2['default'])(value, [format]).isValid() ? (0, _nextMoment2['default'])(value, [format]) : ''; } if (checkDisabled && resultValue && mode === 'year') { var calendarDate = (0, _utils.getCalendarDate)(resultValue); resultValue = (0, _utils.isValidCalendarDate)(calendarDate, disabledMonth) ? resultValue : ''; } return resultValue; }; MonthPicker.prototype.parseValue = function parseValue(value) { if (!value) { return ''; } return (0, _nextMoment2['default'])(value).isValid() ? (0, _nextMoment2['default'])(value).format(this.props.format) : value; }; MonthPicker.prototype.onChange = function onChange(nextState) { var format = this.props.format; var base = nextState.base, mode = nextState.mode, value = nextState.value; var newBase = base; var newMode = mode; if (value) { var formatValue = this.parseValue(value); var nextValue = (0, _nextMoment2['default'])(formatValue, [format]); switch (mode) { case 'year': newBase = nextValue; break; case 'month': newMode = 'year'; if (!('value' in this.props)) { this.setState({ inputValue: formatValue, value: nextValue }); } this.onOpenChange(false); this.props.onChange(new Date(nextValue.valueOf()), formatValue); break; } } this.setState({ base: newBase, mode: newMode }); }; MonthPicker.prototype.onOpenChange = function onOpenChange(open) { if (!('open' in this.props)) { this.setState({ open: open }); } this.props.onOpenChange(open); }; MonthPicker.prototype.onInputChange = function onInputChange(nextInputValue, event) { var _props2 = this.props, format = _props2.format, disabledMonth = _props2.disabledMonth; var _getStrRegExp = (0, _utils.getStrRegExp)(format), fuzzy = _getStrRegExp.fuzzy, exact = _getStrRegExp.exact; // 模糊匹配输入值 if (fuzzy.test(nextInputValue)) { this.setState({ inputValue: nextInputValue, inputValueCorrect: true }); } // 精确匹配以修改值 if (exact.test(nextInputValue)) { var nextValue = (0, _nextMoment2['default'])(nextInputValue, [format]); var isValid = nextValue.isValid() && (0, _utils.isValidCalendarDate)((0, _utils.getCalendarDate)(nextValue), disabledMonth); if (isValid) { this.onChange({ base: nextValue, value: nextValue, mode: 'month' }); } else { this.setState({ inputValueCorrect: false }); } } // 清空 if (nextInputValue === '') { this.clearValue(event); } }; MonthPicker.prototype.clearValue = function clearValue(event) { event.stopPropagation(); this.setState({ inputValue: '', value: '', base: (0, _nextMoment2['default'])() }); this.props.onChange(null, ''); }; MonthPicker.prototype.render = function render() { var _classNames; var _props3 = this.props, className = _props3.className, size = _props3.size, disabled = _props3.disabled, locale = _props3.locale, format = _props3.format, popupStyle = _props3.popupStyle, popupAlign = _props3.popupAlign, popupOffset = _props3.popupOffset, hasClear = _props3.hasClear, readOnly = _props3.readOnly, id = _props3.id, style = _props3.style, others = _objectWithoutProperties(_props3, ['className', 'size', 'disabled', 'locale', 'format', 'popupStyle', 'popupAlign', 'popupOffset', 'hasClear', 'readOnly', 'id', 'style']); delete others.onChange; var _state = this.state, value = _state.value, base = _state.base, mode = _state.mode, inputValue = _state.inputValue, inputValueCorrect = _state.inputValueCorrect, open = _state.open; var prefix = this.context.prefix || this.props.prefix; // 获得格式日期 var formatValue = this.parseValue(value); // 样式 var triggerCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'month-picker', true), _defineProperty(_classNames, prefix + 'month-picker-' + size, size), _defineProperty(_classNames, prefix + 'month-picker-disabled', disabled), _defineProperty(_classNames, className, className), _classNames)); var iconSize = { large: 'medium', medium: 'small', small: 'xs' }[size]; var inputCls = (0, _classnames2['default'])(_defineProperty({}, 'error', !inputValueCorrect)); // 组件 var monthPanel = _react2['default'].createElement( 'div', { className: prefix + 'month-picker-panel', style: popupStyle }, _react2['default'].createElement( 'div', { className: prefix + 'month-picker-input' }, _react2['default'].createElement(_nextInput2['default'], { className: inputCls, placeholder: format, disabled: disabled, size: 'medium', value: inputValue, readOnly: readOnly, onChange: this.onInputChange.bind(this) }) ), _react2['default'].createElement(_nextCalendar.DatePickerPanel, _extends({}, others, { mode: mode, locale: locale, base: base, value: value, onChange: this.onChange.bind(this) })) ); var monthTrigger = _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: triggerCls, style: style, id: id }), _react2['default'].createElement(_nextInput2['default'], { placeholder: locale.monthPlaceholder, disabled: disabled, size: size, readOnly: readOnly, value: formatValue }), formatValue && !disabled && hasClear ? _react2['default'].createElement(_nextIcon2['default'], { type: 'delete-filling', size: iconSize, title: locale.clear, onClick: this.clearValue.bind(this) }) : _react2['default'].createElement(_nextIcon2['default'], { type: 'calendar', size: iconSize }) ); return _react2['default'].createElement( _nextOverlay.Popup, _extends({}, others, { autoFocus: false, disabled: disabled, visible: open, trigger: monthTrigger, triggerType: 'click', align: popupAlign, offset: popupOffset, onVisibleChange: this.onOpenChange.bind(this) }), monthPanel ); }; return MonthPicker; }(_react.Component), _class.propTypes = { /** * 品牌样式前缀 */ prefix: _propTypes2['default'].string, /** * 默认的基准日期 */ defaultBase: _propTypes2['default'].string, /** * 默认日期 */ defaultValue: _propTypes2['default'].any, /** * 日期值 */ value: _propTypes2['default'].any, /** * 日期发生改变时的回调 * @param {String} date 改变后的日期 * @param {String} formatDate 格式化的日期 */ onChange: _propTypes2['default'].func, /** * 禁用的月 */ disabledMonth: _propTypes2['default'].func, /** * 是否默认展开 */ defaultOpen: _propTypes2['default'].bool, /** * 是否展开 */ open: _propTypes2['default'].bool, /** * 当面板展开变化时的回调 * @param {Boolean} open 面板的展开状态 */ onOpenChange: _propTypes2['default'].func, /** * 输入框大小 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 语言 */ language: _propTypes2['default'].oneOf(['en-us', 'ar', 'de', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'zh-cn', 'zh-hk', 'zh-tw']), /** * 国际化配置, [参考](http://gitlab.alibaba-inc.com/next/date-picker/blob/master/src/locale/index.js) */ locale: _propTypes2['default'].object, /** * 弹层样式 */ popupStyle: _propTypes2['default'].object, /** * 弹层对齐方式 */ popupAlign: _propTypes2['default'].string, /** * 弹层偏移 */ popupOffset: _propTypes2['default'].array, /** * 展开日期的格式 */ format: _propTypes2['default'].string, /** * 是否禁用 */ disabled: _propTypes2['default'].bool, /** * 是否有清空按钮 */ hasClear: _propTypes2['default'].bool, /** * 输入框是否只读 */ readOnly: _propTypes2['default'].bool, /** * 自定义组件样式 */ className: _propTypes2['default'].string, id: _propTypes2['default'].any, style: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', size: 'medium', popupAlign: 'tl tl', popupOffset: [0, 0], format: 'YYYY-MM', hasClear: true, readOnly: false, onChange: function onChange() {}, onOpenChange: function onOpenChange() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); MonthPicker.displayName = 'MonthPicker'; exports['default'] = (0, _nextLocaleProvider2['default'])(MonthPicker); module.exports = exports['default']; /***/ }), /***/ 2584: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextInput = __webpack_require__(1448); var _nextInput2 = _interopRequireDefault(_nextInput); var _nextOverlay = __webpack_require__(1401); var _nextCalendar = __webpack_require__(1743); var _nextUtil = __webpack_require__(889); var _nextMoment = __webpack_require__(980); var _nextMoment2 = _interopRequireDefault(_nextMoment); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _utils = __webpack_require__(1744); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** DatePicker.YearPicker */ var YearPicker = (_temp = _class = function (_Component) { _inherits(YearPicker, _Component); function YearPicker(props, context) { _classCallCheck(this, YearPicker); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); var normalizeValue = _this.normalizeValue(props.value || props.defaultValue, false); _this.state = { value: normalizeValue, base: props.defaultBase || normalizeValue, mode: 'decade', inputValue: _this.parseValue(normalizeValue), inputValueCorrect: normalizeValue || normalizeValue === '', open: props.open || props.defaultOpen }; return _this; } YearPicker.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { var normalizeValue = this.normalizeValue(nextProps.value, false); this.setState({ value: normalizeValue, inputValue: this.parseValue(normalizeValue), inputValueCorrect: normalizeValue || normalizeValue === '' }); } if ('open' in nextProps) { this.setState({ open: nextProps.open }); } }; YearPicker.prototype.normalizeValue = function normalizeValue(value) { var checkDisabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var _props = this.props, format = _props.format, disabledYear = _props.disabledYear; var mode = this.state ? this.state.mode : 'decade'; var resultValue = ''; if (!value) { return resultValue; } if (typeof value === 'number') { resultValue = (0, _nextMoment2['default'])(value); } else { resultValue = (0, _nextMoment2['default'])(value, [format]).isValid() ? (0, _nextMoment2['default'])(value, [format]) : ''; } if (checkDisabled && resultValue && mode === 'decade') { var calendarDate = (0, _utils.getCalendarDate)(resultValue); resultValue = (0, _utils.isValidCalendarDate)(calendarDate, disabledYear) ? resultValue : ''; } return resultValue; }; YearPicker.prototype.parseValue = function parseValue(value) { if (!value) { return ''; } return (0, _nextMoment2['default'])(value).isValid() ? (0, _nextMoment2['default'])(value).format(this.props.format) : value; }; YearPicker.prototype.onChange = function onChange(nextState) { var format = this.props.format; var base = nextState.base, mode = nextState.mode, value = nextState.value; var newBase = base; var newMode = mode; if (value) { var formatValue = this.parseValue(value); var nextValue = (0, _nextMoment2['default'])(formatValue, [format]); switch (mode) { case 'year': newMode = 'decade'; newBase = nextValue; if (!('value' in this.props)) { this.setState({ inputValue: formatValue, value: nextValue }); } this.onOpenChange(false); this.props.onChange(new Date(nextValue.valueOf()), formatValue); break; } } this.setState({ base: newBase, mode: newMode }); }; YearPicker.prototype.onOpenChange = function onOpenChange(open) { if (!('open' in this.props)) { this.setState({ open: open }); } this.props.onOpenChange(open); }; YearPicker.prototype.onInputChange = function onInputChange(nextInputValue, event) { var _props2 = this.props, format = _props2.format, disabledYear = _props2.disabledYear; var _getStrRegExp = (0, _utils.getStrRegExp)(format), fuzzy = _getStrRegExp.fuzzy, exact = _getStrRegExp.exact; // 模糊匹配输入值 if (fuzzy.test(nextInputValue)) { this.setState({ inputValue: nextInputValue, inputValueCorrect: true }); } // 精确匹配以修改值 if (exact.test(nextInputValue)) { var nextValue = (0, _nextMoment2['default'])(nextInputValue, [format]); var isValid = nextValue.isValid() && (0, _utils.isValidCalendarDate)((0, _utils.getCalendarDate)(nextValue), disabledYear); if (isValid) { this.onChange({ base: nextValue, value: nextValue, mode: 'year' }); } else { this.setState({ inputValueCorrect: false }); } } // 清空 if (nextInputValue === '') { this.clearValue(event); } }; YearPicker.prototype.clearValue = function clearValue(event) { event.stopPropagation(); this.setState({ inputValue: '', value: '' }); this.props.onChange(null, ''); }; YearPicker.prototype.render = function render() { var _classNames; var _props3 = this.props, className = _props3.className, size = _props3.size, disabled = _props3.disabled, locale = _props3.locale, format = _props3.format, popupStyle = _props3.popupStyle, popupAlign = _props3.popupAlign, popupOffset = _props3.popupOffset, hasClear = _props3.hasClear, readOnly = _props3.readOnly, id = _props3.id, style = _props3.style, others = _objectWithoutProperties(_props3, ['className', 'size', 'disabled', 'locale', 'format', 'popupStyle', 'popupAlign', 'popupOffset', 'hasClear', 'readOnly', 'id', 'style']); delete others.onChange; var _state = this.state, value = _state.value, base = _state.base, mode = _state.mode, inputValue = _state.inputValue, inputValueCorrect = _state.inputValueCorrect, open = _state.open; var prefix = this.context.prefix || this.props.prefix; // 获得格式日期 var formatValue = this.parseValue(value); // 样式 var triggerCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'year-picker', true), _defineProperty(_classNames, prefix + 'year-picker-' + size, size), _defineProperty(_classNames, prefix + 'year-picker-disabled', disabled), _defineProperty(_classNames, className, className), _classNames)); var iconSize = { large: 'medium', medium: 'small', small: 'xs' }[size]; var inputCls = (0, _classnames2['default'])(_defineProperty({}, 'error', !inputValueCorrect)); // 组件 var yearPanel = _react2['default'].createElement( 'div', { className: prefix + 'year-picker-panel', style: popupStyle }, _react2['default'].createElement( 'div', { className: prefix + 'year-picker-input' }, _react2['default'].createElement(_nextInput2['default'], { className: inputCls, placeholder: format, disabled: disabled, size: 'medium', value: inputValue, readOnly: readOnly, onChange: this.onInputChange.bind(this) }) ), _react2['default'].createElement(_nextCalendar.DatePickerPanel, _extends({}, others, { mode: mode, locale: locale, base: base, value: value, onChange: this.onChange.bind(this) })) ); var yearTrigger = _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: triggerCls, style: style, id: id }), _react2['default'].createElement(_nextInput2['default'], { placeholder: locale.yearPlaceholder, disabled: disabled, size: size, value: formatValue, readOnly: readOnly }), formatValue && !disabled && hasClear ? _react2['default'].createElement(_nextIcon2['default'], { type: 'delete-filling', size: iconSize, title: locale.clear, onClick: this.clearValue.bind(this) }) : _react2['default'].createElement(_nextIcon2['default'], { type: 'calendar', size: iconSize }) ); return _react2['default'].createElement( _nextOverlay.Popup, _extends({}, others, { autoFocus: false, disabled: disabled, visible: open, trigger: yearTrigger, triggerType: 'click', align: popupAlign, offset: popupOffset, onVisibleChange: this.onOpenChange.bind(this) }), yearPanel ); }; return YearPicker; }(_react.Component), _class.propTypes = { /** * 品牌的样式前缀 */ prefix: _propTypes2['default'].string, /** * 默认的基准日期 */ defaultBase: _propTypes2['default'].string, /** * 默认日期 */ defaultValue: _propTypes2['default'].any, /** * 日期 */ value: _propTypes2['default'].any, /** * 时间发生变化的回调 * @param {String} date 改变后的日期 * @param {String} formateDate 格式化的日期 */ onChange: _propTypes2['default'].func, /** * 年份禁用函数 */ disabledYear: _propTypes2['default'].func, /** * 默认是否展开 */ defaultOpen: _propTypes2['default'].bool, /** * 是否展开 */ open: _propTypes2['default'].bool, /** * 当面板展开状态改变时的回调 * @param {Boolean} open 面板的展开状态 */ onOpenChange: _propTypes2['default'].func, /** * 输入框尺寸 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 语言 */ language: _propTypes2['default'].oneOf(['en-us', 'ar', 'de', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pt', 'ru', 'zh-cn', 'zh-hk', 'zh-tw']), /** * 国际化配置,[参考](http://gitlab.alibaba-inc.com/next/date-picker/blob/master/src/locale/index.js) */ locale: _propTypes2['default'].object, /** * 弹层样式 */ popupStyle: _propTypes2['default'].object, /** * 弹层对齐方式 */ popupAlign: _propTypes2['default'].string, /** * 弹层偏移 */ popupOffset: _propTypes2['default'].array, /** * 日期格式 */ format: _propTypes2['default'].string, /** * 是否禁用 */ disabled: _propTypes2['default'].bool, /** * 是否展示清空按钮 */ hasClear: _propTypes2['default'].bool, /** * 输入框是否只读 */ readOnly: _propTypes2['default'].bool, /** * 自定义组件样式 */ className: _propTypes2['default'].string, id: _propTypes2['default'].any, style: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', size: 'medium', popupAlign: 'tl tl', popupOffset: [0, 0], format: 'YYYY', hasClear: true, readOnly: false, onChange: function onChange() {}, onOpenChange: function onOpenChange() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); YearPicker.displayName = 'YearPicker'; exports['default'] = (0, _nextLocaleProvider2['default'])(YearPicker); module.exports = exports['default']; /***/ }), /***/ 2585: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = { 'zh-cn': { datePlaceholder: '请选择日期', monthPlaceholder: '请选择月份', yearPlaceholder: '请选择年份', rangeStartPlaceholder: '起始日期', rangeEndPlaceholder: '结束日期', now: '此刻', selectTime: '选择时间', selectDate: '选择日期', ok: '确定', clear: '清除' }, 'en-us': { datePlaceholder: 'Select date', monthPlaceholder: 'Select month', yearPlaceholder: 'Select year', rangeStartPlaceholder: 'Start date', rangeEndPlaceholder: 'End date', now: 'Now', selectTime: 'Select time', selectDate: 'Select date', ok: 'OK', clear: 'Clear' }, 'zh-tw': { datePlaceholder: '請選擇日期', monthPlaceholder: '請選擇月份', yearPlaceholder: '請選擇年份', rangeStartPlaceholder: '起始日期', rangeEndPlaceholder: '結束日期', now: '此刻', selectTime: '選擇時間', selectDate: '選擇日期', ok: '確定', clear: '清除' } }; module.exports = exports['default']; /***/ }), /***/ 2586: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextButton = __webpack_require__(1472); var _nextButton2 = _interopRequireDefault(_nextButton); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _base = __webpack_require__(1912); var _base2 = _interopRequireDefault(_base); var _content = __webpack_require__(1913); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; /** * Dialog * @description 继承 Overlay 的 API,除非特别说明 */ var Dialog = (_temp = _class = function (_Component) { _inherits(Dialog, _Component); function Dialog() { _classCallCheck(this, Dialog); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Dialog.prototype.render = function render() { /* eslint-disable no-unused-vars, react/prop-types */ var _props = this.props, title = _props.title, children = _props.children, footer = _props.footer, onOk = _props.onOk, onCancel = _props.onCancel, locale = _props.locale, visible = _props.visible, others = _objectWithoutProperties(_props, ['title', 'children', 'footer', 'onOk', 'onCancel', 'locale', 'visible']), prefix = this.context.prefix || this.props.prefix, buttons = _react2['default'].createElement( 'span', null, _react2['default'].createElement( _nextButton2['default'], { prefix: prefix, type: 'primary', onClick: visible ? onOk : noop }, locale.ok ), _react2['default'].createElement( _nextButton2['default'], { prefix: prefix, onClick: visible ? onCancel : noop }, locale.cancel ) ), headerNode = title ? _react2['default'].createElement( _content.Header, { prefix: prefix }, title ) : null, footerNode = footer === false ? null : _react2['default'].createElement( _content.Footer, { prefix: prefix }, footer ? footer : buttons ); return _react2['default'].createElement( _base2['default'], _extends({ visible: visible }, others), headerNode, _react2['default'].createElement( _content.Body, { prefix: prefix }, children ), footerNode ); }; return Dialog; }(_react.Component), _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 对话框的标题 */ title: _propTypes2['default'].any, /** * 传入底部的内容 */ footer: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].string, _propTypes2['default'].node]), /** * 底部按钮的对齐方式 */ footerAlign: _propTypes2['default'].oneOf(['left', 'center', 'right']), /** * 控制对话框是否可见 */ visible: _propTypes2['default'].bool, /** * 是否需要mask */ hasMask: _propTypes2['default'].bool, /** * 'esc, mask, close', 详见[closable](#closable) */ closable: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].bool]), /** * 是否强制更新dialog的位置,在`isFullScreen`为true且align为`cc cc`的时候无效 */ shouldUpdatePosition: _propTypes2['default'].bool, /** * 浮层自定义位置 */ align: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), /** * 配置动画的播放方式 * @param {String} in 进场动画 * @param {String} out 出场动画 */ animation: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].bool]), /** * 在点击关闭按钮的时候触发的函数 */ onClose: _propTypes2['default'].func, /** * 浮层关闭后触发的事件, 如果有动画,则在动画结束后触发 */ afterClose: _propTypes2['default'].func, /** * 在点击Ok按钮的时候触发的函数 */ onOk: _propTypes2['default'].func, /** * 在点击Cancel按钮的时候触发的函数 */ onCancel: _propTypes2['default'].func, /** * 当dialog过高的时候距离viewport的最小边距,在`isFullScreen`下无效。 */ minMargin: _propTypes2['default'].number, /** * 当dialog弹出的时候是否自动获取焦点 */ autoFocus: _propTypes2['default'].bool, /** * 自定义国际化文案对象 * @property {String} ok 确认按钮文案 * @property {String} cancel 取消按钮文案 */ locale: _propTypes2['default'].object, /** * 自定义国际化语言 */ language: _propTypes2['default'].oneOf(['en-us', 'zh-cn', 'zh-tw']), /** * 是否是启用使用CSS定位模式的对话框, 在该模式下面无需通过`shouldUpdatePosition`来进行重新定位。 */ isFullScreen: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-', footerAlign: 'right', hasMask: true, closable: 'esc,close', align: 'cc cc', animation: { 'in': 'fadeInDown', out: 'fadeOutUp' }, onOk: noop, onCancel: noop, minMargin: 40, autoFocus: true, isFullScreen: false }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Dialog.displayName = 'Dialog'; exports['default'] = (0, _nextLocaleProvider2['default'])(Dialog); module.exports = exports['default']; /***/ }), /***/ 2587: /***/ (function(module, exports, __webpack_require__) { "use strict"; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _nextButton = __webpack_require__(1472); var _nextButton2 = _interopRequireDefault(_nextButton); var _nextFeedback = __webpack_require__(2280); var _nextFeedback2 = _interopRequireDefault(_nextFeedback); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _base = __webpack_require__(1912); var _base2 = _interopRequireDefault(_base); var _content = __webpack_require__(1913); var _index = __webpack_require__(2282); var _index2 = _interopRequireDefault(_index); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; var wrapper = function wrapper(fn, callback) { return function () { var res = void 0; if (typeof fn === 'function') { res = fn(); } if (res && res.then) { res.then(function (result) { if (result !== false) { callback(); } }); } else if (res !== false) { callback(); } }; }, feedbackMaps = { alert: 'prompt', confirm: 'help' }; var Modal = (_temp = _class = function (_React$Component) { _inherits(Modal, _React$Component); function Modal(props) { _classCallCheck(this, Modal); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); _this.state = { visible: false }; _this.close = _this.close.bind(_this); return _this; } /* eslint-disable react/no-did-mount-set-state */ // preact compat // see https://github.com/developit/preact/issues/556 // 我们通过触发componentWillReceiveProps绕过这个问题 Modal.prototype.componentDidMount = function componentDidMount() { this.setState({ visible: true }); }; Modal.prototype.render = function render() { /* eslint-disable react/prop-types */ var _props = this.props, prefix = _props.prefix, onOk = _props.onOk, onCancel = _props.onCancel, afterClose = _props.afterClose, className = _props.className, title = _props.title, type = _props.type, content = _props.content, locale = _props.locale, onClose = _props.onClose, needWrapper = _props.needWrapper, footer = _props.footer, others = _objectWithoutProperties(_props, ['prefix', 'onOk', 'onCancel', 'afterClose', 'className', 'title', 'type', 'content', 'locale', 'onClose', 'needWrapper', 'footer']); locale = locale || { ok: 'Ok', cancel: 'Cancel' }; var Ok = wrapper(onOk, this.close), Cancel = wrapper(onCancel, this.close), Close = wrapper(onClose, this.close); return _react2['default'].createElement( _base2['default'], _extends({ prefix: prefix, onClose: Close, visible: this.state.visible, className: className, afterClose: afterClose, role: 'alertdialog' }, others), _react2['default'].createElement( _content.Header, { prefix: prefix }, title ), _react2['default'].createElement( _content.Body, { prefix: prefix }, _react2['default'].createElement( 'div', { className: prefix + 'dialog-' + type }, needWrapper ? _react2['default'].createElement(_nextFeedback2['default'], { prefix: prefix, type: feedbackMaps[type], size: 'large', shape: 'addon', title: content }) : content ) ), _react2['default'].createElement( _content.Footer, { prefix: prefix }, footer ? footer : [_react2['default'].createElement( _nextButton2['default'], { prefix: prefix, type: 'primary', onClick: this.state.visible ? Ok : noop, key: 'ok' }, locale.ok ), type === 'confirm' ? _react2['default'].createElement( _nextButton2['default'], { prefix: prefix, type: 'normal', onClick: this.state.visible ? Cancel : noop, key: 'cancel' }, locale.cancel ) : null] ) ); }; Modal.prototype.close = function close() { if (this.state.visible) { this.setState({ visible: false }); } }; return Modal; }(_react2['default'].Component), _class.propTypes = { needWrapper: _propTypes2['default'].bool, prefix: _propTypes2['default'].string }, _class.defaultProps = { needWrapper: true, prefix: 'next-' }, _temp); Modal.displayName = 'Modal'; var LocaleModal = (0, _nextLocaleProvider2['default'])(Modal); LocaleModal.LOCALE = _index2['default']; var render = function render(config) { var container = document.createElement('div'); var unMount = function unMount() { if (config && config.afterClose && typeof config.afterClose === 'function') { config.afterClose(); } _reactDom2['default'].unmountComponentAtNode(container); container.parentNode.removeChild(container); }; var instance = void 0; document.body.appendChild(container); _reactDom2['default'].render(_react2['default'].createElement(LocaleModal, _extends({}, config, { afterClose: unMount })), container, function () { instance = this; }); return { hide: function hide() { var inc = instance && instance.getInstance(); inc && inc.close(); } }; }; Object.keys(feedbackMaps).forEach(function (method) { exports[method] = function (config) { config = config || {}; config.type = method; return render(config); }; }); /***/ }), /***/ 2588: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _mask = __webpack_require__(2589); var _mask2 = _interopRequireDefault(_mask); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var instance = void 0; var hidingToast = void 0; function handleConfig(config, type) { var newConfig = {}; if (typeof config === 'string' || (0, _react.isValidElement)(config)) { newConfig.content = config; } else if (isObject(config)) { newConfig = _extends({}, config); } if (typeof newConfig.duration !== 'number') { newConfig.duration = 3000; } if (type) { newConfig.type = type; } return newConfig; } function isObject(obj) { return {}.toString.call(obj) === '[object Object]'; } function open(config, type) { close(); config = handleConfig(config, type); instance = _mask2['default'].create(config); if (config.duration > 0) { hidingToast && clearTimeout(hidingToast); hidingToast = setTimeout(close, config.duration); } } function close() { instance && instance.destroy(); instance = null; } var toast = { show: function show(config) { open(config); }, hide: function hide() { close(); } }; var types = ['success', 'prompt', 'error', 'help', 'loading']; types.forEach(function (type) { toast[type] = function (config) { return open(config, type); }; }); exports['default'] = toast; module.exports = exports['default']; /***/ }), /***/ 2589: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp2; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextOverlay = __webpack_require__(1401); var _nextOverlay2 = _interopRequireDefault(_nextOverlay); var _feedback = __webpack_require__(2281); var _feedback2 = _interopRequireDefault(_feedback); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Mask = (_temp2 = _class = function (_React$Component) { _inherits(Mask, _React$Component); function Mask() { var _temp, _this, _ret; _classCallCheck(this, Mask); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = { visible: true }, _temp), _possibleConstructorReturn(_this, _ret); } Mask.prototype.render = function render() { var prefix = this.context.prefix || this.props.prefix; /* eslint-disable no-unused-vars */ var _props = this.props, propsPrefix = _props.prefix, type = _props.type, content = _props.content, align = _props.align, offset = _props.offset, hasMask = _props.hasMask, afterClose = _props.afterClose, animation = _props.animation, others = _objectWithoutProperties(_props, ['prefix', 'type', 'content', 'align', 'offset', 'hasMask', 'afterClose', 'animation']); /* eslint-enable */ var visible = this.state.visible; return _react2['default'].createElement( _nextOverlay2['default'], { prefix: prefix, animation: animation, visible: visible, align: align, offset: offset, hasMask: hasMask, afterClose: afterClose }, _react2['default'].createElement(_feedback2['default'], _extends({}, others, { prefix: prefix, type: type, shape: 'toast', title: content, className: prefix + 'feedback-wrapper' })) ); }; return Mask; }(_react2['default'].Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { prefix: _propTypes2['default'].string, type: _propTypes2['default'].string, content: _propTypes2['default'].node, align: _propTypes2['default'].string, offset: _propTypes2['default'].array, hasMask: _propTypes2['default'].bool, afterClose: _propTypes2['default'].func, animation: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', align: 'cc cc', offset: [0, 0], hasMask: false, animation: { 'in': 'pulse', out: 'zoomOut' } }, _temp2); Mask.displayName = 'Mask'; exports['default'] = Mask; Mask.create = function (props) { /* eslint-disable no-unused-vars */ var duration = props.duration, afterClose = props.afterClose, others = _objectWithoutProperties(props, ['duration', 'afterClose']); /* eslint-enable no-unused-vars */ var div = document.createElement('div'); document.body.appendChild(div); var closeChain = function closeChain() { _reactDom2['default'].unmountComponentAtNode(div); document.body.removeChild(div); afterClose && afterClose(); }; var mask = void 0, destroyed = false; var destroy = function destroy() { if (mask) { mask.setState({ visible: false }); } destroyed = true; }; _reactDom2['default'].render(_react2['default'].createElement(Mask, _extends({ afterClose: closeChain }, others)), div, function () { mask = this; if (mask && destroyed) { destroy(); } }); return { component: mask, destroy: destroy }; }; module.exports = exports['default']; /***/ }), /***/ 2590: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _asyncValidator = __webpack_require__(2591); var _asyncValidator2 = _interopRequireDefault(_asyncValidator); var _objectAssign = __webpack_require__(76); var _objectAssign2 = _interopRequireDefault(_objectAssign); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _nextUtil = __webpack_require__(889); var _utils = __webpack_require__(2613); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function noop() {} var initMeta = { state: '', valueName: 'value', trigger: 'onChange' }; var Field = function () { function Field(com, options) { var _this = this; _classCallCheck(this, Field); this.com = com; this.fieldsMeta = {}; this.cacheMeta = {}; this.cachedBind = {}; //解决每次函数新增的问题 this.onChange = noop; this.parseName = false; this.forceUpdate = false; this.scrollToFirstError = false; //TODO: set true in 1.0 version this.autoUnmount = false; //TODO: set true in 1.0 version this.deepReset = false; //TODO: set true in 1.0 version if (!this.com) { _nextUtil.log.warning('`this` is missing in `Field`, you should use like `new Field(this)`'); } if (options) { if (options.onChange) { this.onChange = options.onChange; } ['parseName', 'forceUpdate', 'scrollToFirstError', 'autoUnmount', 'deepReset'].forEach(function (m) { if (m in options && options[m]) { _this[m] = true; } }); } ['init', 'getValue', 'getValues', 'setValue', 'setValues', 'getError', 'setError', 'setErrors', 'validate', 'getState', 'isValidating', 'reset', 'remove'].forEach(function (m) { _this[m] = _this[m].bind(_this); }); } Field.prototype.init = function init(name) { var _this2 = this; var fieldOption = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _fieldOption$valueNam = fieldOption.valueName, valueName = _fieldOption$valueNam === undefined ? 'value' : _fieldOption$valueNam, _fieldOption$trigger = fieldOption.trigger, trigger = _fieldOption$trigger === undefined ? 'onChange' : _fieldOption$trigger, _fieldOption$rules = fieldOption.rules, rules = _fieldOption$rules === undefined ? null : _fieldOption$rules, initValue = fieldOption.initValue, _fieldOption$normaliz = fieldOption.normalize, normalize = _fieldOption$normaliz === undefined ? null : _fieldOption$normaliz, _fieldOption$getValue = fieldOption.getValueFromEvent, getValueFromEvent = _fieldOption$getValue === undefined ? normalize : _fieldOption$getValue, _fieldOption$props = fieldOption.props, props = _fieldOption$props === undefined ? {} : _fieldOption$props; var originalProps = (0, _objectAssign2['default'])({}, props); if (!(name in this.fieldsMeta)) { this.fieldsMeta[name] = _extends({}, initMeta, { initValue: initValue }); } var fieldMeta = this.fieldsMeta[name]; normalize && _nextUtil.log.deprecated('normalize', 'getValueFromEvent', 'Field'); valueName in props && _nextUtil.log.warning('`init` will override `props.' + valueName + '`, don\'t set it directly, and you can use `setValue` to change it'); var defaultValueName = 'default' + valueName[0].toUpperCase() + valueName.slice(1); typeof initValue !== 'undefined' && defaultValueName in props && _nextUtil.log.warning('`option.initValue` will take place of `' + defaultValueName + ', they can\'t be used toghter'); (0, _objectAssign2['default'])(fieldMeta, { valueName: valueName, getValueFromEvent: getValueFromEvent, rules: rules, rulesMap: rules ? this._getRulesMap(name, rules, trigger) : null //map the rules by the key of trigger }); // 兼容defaultValue逻辑:存在defaultValue的时候,value不能赋值,否则defaultValue不生效 if (!('value' in fieldMeta)) { if (typeof initValue !== 'undefined') { fieldMeta.value = initValue; } else if (defaultValueName in props) { fieldMeta.value = props[defaultValueName]; } } var inputProps = { 'data-meta': 'Field', id: name, //TODO: will be remove at 1.0 version ref: this.autoUnmount ? this._getCacheBind(name, name + '__ref', this._saveRef) : name //TODO: will be remove at 1.0 version }; if ('value' in fieldMeta) { inputProps[valueName] = fieldMeta.value; } if (rules) { var _loop = function _loop(action) { inputProps[action] = function () { _this2._onChangeValidate(name, action); action in props && typeof props[action] === 'function' && props[action].apply(props, arguments); _this2._reRender(); }; }; for (var action in fieldMeta.rulesMap) { _loop(action); } } // trigger here maybe replace action, but validator won't be lost, it will still be checked in _onChange inputProps[trigger] = function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this2._onChange.apply(_this2, [name, trigger].concat(args)); trigger in props && typeof props[trigger] === 'function' && props[trigger].apply(props, args); _this2.onChange(name, fieldMeta.value); _this2._reRender(); }; delete originalProps[defaultValueName]; delete originalProps[valueName]; return (0, _objectAssign2['default'])(originalProps, inputProps); }; // 提取rule里面的trigger并且做映射 Field.prototype._getRulesMap = function _getRulesMap(name, rules, trigger) { var rulesMap = {}; // 根据trigger做校验分组 if (rules.length) { for (var i = 0; i < rules.length; i++) { this._validateMap(rulesMap, rules[i], trigger); } } else if (!Array.isArray(rules)) { this._validateMap(rulesMap, rules, trigger); } return rulesMap; }; // 根据trigger做校验分组 Field.prototype._validateMap = function _validateMap(rulesMap, rule, defaultTrigger) { if (!('trigger' in rule)) { rule.trigger = [defaultTrigger]; } if (typeof rule.trigger === 'string') { rule.trigger = [rule.trigger]; } for (var i = 0; i < rule.trigger.length; i++) { var trigger = rule.trigger[i]; if (trigger in rulesMap) { rulesMap[trigger].push(rule); } else { rulesMap[trigger] = [rule]; } } delete rule.trigger; }; //手动修改触发 Field.prototype._onChange = function _onChange(name, action) { for (var _len2 = arguments.length, others = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { others[_key2 - 2] = arguments[_key2]; } var e = others[0]; var fieldMeta = this._get(name); if (!fieldMeta) { return; } fieldMeta.value = fieldMeta.getValueFromEvent ? fieldMeta.getValueFromEvent.apply(this, others) : (0, _utils.getValueFromEvent)(e); this._resetError(name); var rulesMap = fieldMeta.rulesMap; if (rulesMap && action in rulesMap) { this._validate(rulesMap[action], name, fieldMeta.value); } }; //校验事件触发 Field.prototype._onChangeValidate = function _onChangeValidate(name, action) { var fieldMeta = this._get(name); var rulesMap = fieldMeta.rulesMap; if (action in rulesMap) { this._validate(rulesMap[action], name, this.getValue(name)); } }; Field.prototype._getCacheBind = function _getCacheBind(name, action, fn) { var cache = this.cachedBind[name] = this.cachedBind[name] || {}; if (!cache[action]) { cache[action] = fn.bind(this, name); } return cache[action]; }; Field.prototype._saveRef = function _saveRef(name, component) { if (!component) { // after destroy, delete data this.cacheMeta[name] = this.fieldsMeta[name]; delete this.fieldsMeta[name]; return; } else if (this.cacheMeta[name] && !(name in this.fieldsMeta)) { this.fieldsMeta[name] = this.cacheMeta[name]; } var fieldMeta = this._get(name); if (fieldMeta) { fieldMeta.ref = component; } }; // 会做初始化value兼容检测 Field.prototype.getValue = function getValue(name) { var field = this._get(name); if (field) { if ('value' in field) { return field.value; } else if (this.com && this.com.refs) { //TODO: remove get defaultValue by ref in 1.0BR var ref = this.com.refs[name] || field.ref; // 第一次ref很可能取不到 if (ref) { var value = (0, _utils.getDefaultValue)(ref, field.valueName); field.value = value; if (typeof value !== 'undefined') { field.initValue = value; } return field.value; } } } return undefined; }; Field.prototype.getValues = function getValues(names) { var _this3 = this; var fields = names || this.getNames(); var allValues = {}; fields.forEach(function (f) { if (!_this3.parseName) { allValues[f] = _this3.getValue(f); } else { allValues = (0, _utils.setIn)(allValues, f, _this3.getValue(f)); } }); return allValues; }; Field.prototype.setValue = function setValue(name, value) { var reRender = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; if (name in this.fieldsMeta) { this.fieldsMeta[name].value = value; // this.onChange({[name]:value}); //人为set不应该属于onChange事件 reRender && this._reRender(); } else { this.fieldsMeta[name] = { value: value }; } }; Field.prototype.setValues = function setValues() { var _this4 = this; var fieldsValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (!this.parseName) { for (var name in fieldsValue) { this.setValue(name, fieldsValue[name], false); } } else { var fields = this.getNames(); fields.forEach(function (name) { var value = (0, _utils.getIn)(fieldsValue, name); if (value !== undefined) { _this4.setValue(name, value, false); } }); } this._reRender(); }; Field.prototype.setError = function setError(name, errors) { var err = Array.isArray(errors) ? errors : errors ? [errors] : []; if (name in this.fieldsMeta) { this.fieldsMeta[name].errors = err; } else { this.fieldsMeta[name] = { errors: err }; } if (this.fieldsMeta[name].errors && this.fieldsMeta[name].errors.length > 0) { this.fieldsMeta[name].state = 'error'; } else { this.fieldsMeta[name].state = ''; } this._reRender(); }; Field.prototype.setErrors = function setErrors() { var fieldsErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; for (var name in fieldsErrors) { this.setError(name, fieldsErrors[name]); } }; Field.prototype.getError = function getError(name) { var field = this._get(name); if (field && field.errors && field.errors.length) { return field.errors; } return null; }; Field.prototype.getErrors = function getErrors(names) { var _this5 = this; var fields = names || this.getNames(); var allErrors = {}; fields.forEach(function (f) { allErrors[f] = _this5.getError(f); }); return allErrors; }; Field.prototype.getState = function getState(name) { var field = this._get(name); if (field && field.state) { return field.state; } return ''; }; //TODO: isValidating can be replace by getState, and will be removed at 1.0 version Field.prototype.isValidating = function isValidating(name) { var field = this._get(name); return !!field && !!field.state === 'validating'; }; //手动触发校验 Field.prototype.validate = function validate(ns, opt, cb) { var _this6 = this; var _getParams = (0, _utils.getParams)(ns, opt, cb), names = _getParams.names, options = _getParams.options, callback = _getParams.callback; var fieldNames = names || this.getNames(); var descriptor = {}; var values = {}; var hasRule = false; for (var i = 0; i < fieldNames.length; i++) { var name = fieldNames[i]; var fieldMeta = this._get(name); if (!fieldMeta) continue; if (fieldMeta.rules && (Array.isArray(fieldMeta.rules) && fieldMeta.rules.length || Object.prototype.toString.call(fieldMeta.rules) === '[object Object]')) { descriptor[name] = fieldMeta.rules; values[name] = this.getValue(name); hasRule = true; // 清空错误 fieldMeta.errors = []; fieldMeta.state = ''; } } if (!hasRule) { callback && callback(null, this.getValues(fieldNames)); return; } var validate = new _asyncValidator2['default'](descriptor); validate.validate(values, options, function (errors) { var errorsGroup = null; if (errors && errors.length) { errorsGroup = {}; errors.forEach(function (e) { var fieldName = e.field; if (!errorsGroup[fieldName]) { errorsGroup[fieldName] = { errors: [] }; } var fieldErrors = errorsGroup[fieldName].errors; fieldErrors.push(e.message); }); } if (errorsGroup) { // 更新每个field里面error信息 for (var _i in errorsGroup) { var field = _this6._get(_i); field.errors = errorsGroup[_i].errors; field.state = 'error'; } } //没有错误的修改状态为成功 for (var _i2 = 0; _i2 < fieldNames.length; _i2++) { var _name = fieldNames[_i2]; var _fieldMeta = _this6._get(_name); if (_fieldMeta.rules && !(errorsGroup && _name in errorsGroup)) { _fieldMeta.state = 'success'; } } callback && callback(errorsGroup, _this6.getValues(fieldNames)); _this6._reRender(); if (errorsGroup && _this6.scrollToFirstError) { var firstNode = void 0; var firstTop = void 0; for (var _i3 in errorsGroup) { var instance = _this6.com.refs[_i3] || _this6._get(_i3).ref; var node = _reactDom2['default'].findDOMNode(instance); if (!node) { return; } var top = node.getBoundingClientRect().top; if (firstTop === undefined || firstTop > top) { firstTop = top; firstNode = node; } } if (firstNode && firstNode.scrollIntoView) { firstNode.scrollIntoView(); } } }); }; /** * clear form OR reset to default * @param ns * @param backToDefault */ Field.prototype.reset = function reset(ns) { var _this7 = this; var backToDefault = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var changed = false; if (typeof ns === 'string') { ns = [ns]; } else if (typeof ns === 'boolean') { backToDefault = ns; ns = null; } var names = ns || Object.keys(this.fieldsMeta); names.forEach(function (name) { var field = _this7._get(name); _this7.getValue(name); if (field) { changed = true; if (_this7.deepReset) { //有默认值的情况 if (backToDefault && 'initValue' in field) { field.value = field.initValue; } else { field.value = undefined; } } else { /* eslint-disable no-lonely-if */ if ('initValue' in field) { if (backToDefault === false) { if (typeof field.value === 'string') { field.value = ''; } else { field.value = field.initValue; } } else { field.value = field.initValue; } } else { // 没有设置默认值的情况 /* eslint-disable no-lonely-if */ if (typeof field.value === 'boolean') { field.value = false; } else if (typeof field.value === 'string') { field.value = ''; } else { field.value = undefined; } } } field.state = ''; // delete field.value; delete field.errors; delete field.rules; delete field.rulesMap; } }); if (changed) { this._reRender(); } }; //单个校验 Field.prototype._validate = function _validate(rule, name, value) { var _this8 = this; var field = this._get(name); field.state = 'validating'; var validate = new _asyncValidator2['default'](_defineProperty({}, name, rule)); validate.validate(_defineProperty({}, name, value), function (errors) { if (errors && errors.length) { field.errors = (0, _utils.getErrorStrs)(errors); field.state = 'error'; } else { field.errors = []; //清空错误 field.state = 'success'; } _this8._reRender(); }); }; Field.prototype._resetError = function _resetError(name) { var field = this._get(name); delete field.errors; //清空错误 field.state = ''; }; Field.prototype.getNames = function getNames() { var fieldsMeta = this.fieldsMeta; return fieldsMeta ? Object.keys(fieldsMeta).filter(function () { return true; }) : []; }; //触发render重绘组件 Field.prototype._reRender = function _reRender() { if (this.com) { if (!this.forceUpdate && this.com.setState) { this.com.setState({}); } else if (this.com.forceUpdate) { this.com.forceUpdate(); //forceUpdate 对性能有较大的影响,成指数上升 } } }; Field.prototype._get = function _get(name) { return name in this.fieldsMeta ? this.fieldsMeta[name] : null; }; Field.prototype._getAll = function _getAll() { return this.fieldsMeta; }; Field.prototype.remove = function remove(ns) { var _this9 = this; if (typeof ns === 'string') { ns = [ns]; } var names = ns || Object.keys(this.fieldsMeta); names.forEach(function (name) { if (name in _this9.fieldsMeta) { delete _this9.fieldsMeta[name]; delete _this9.cacheMeta[name]; } }); }; return Field; }(); exports['default'] = Field; module.exports = exports['default']; /***/ }), /***/ 2591: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _util = __webpack_require__(1371); var _validator = __webpack_require__(2592); var _validator2 = _interopRequireDefault(_validator); var _messages2 = __webpack_require__(2612); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Encapsulates a validation schema. * * @param descriptor An object declaring validation rules * for this schema. */ function Schema(descriptor) { this.rules = null; this._messages = _messages2.messages; this.define(descriptor); } Schema.prototype = { messages: function messages(_messages) { if (_messages) { this._messages = (0, _util.deepMerge)((0, _messages2.newMessages)(), _messages); } return this._messages; }, define: function define(rules) { if (!rules) { throw new Error('Cannot configure a schema with no rules'); } if ((typeof rules === 'undefined' ? 'undefined' : _typeof(rules)) !== 'object' || Array.isArray(rules)) { throw new Error('Rules must be an object'); } this.rules = {}; var z = void 0; var item = void 0; for (z in rules) { if (rules.hasOwnProperty(z)) { item = rules[z]; this.rules[z] = Array.isArray(item) ? item : [item]; } } }, validate: function validate(source_) { var _this = this; var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var oc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; var source = source_; var options = o; var callback = oc; if (typeof options === 'function') { callback = options; options = {}; } if (!this.rules || Object.keys(this.rules).length === 0) { if (callback) { callback(); } return Promise.resolve(); } function complete(results) { var i = void 0; var errors = []; var fields = {}; function add(e) { if (Array.isArray(e)) { var _errors; errors = (_errors = errors).concat.apply(_errors, e); } else { errors.push(e); } } for (i = 0; i < results.length; i++) { add(results[i]); } if (!errors.length) { errors = null; fields = null; } else { fields = (0, _util.convertFieldsError)(errors); } callback(errors, fields); } if (options.messages) { var messages = this.messages(); if (messages === _messages2.messages) { messages = (0, _messages2.newMessages)(); } (0, _util.deepMerge)(messages, options.messages); options.messages = messages; } else { options.messages = this.messages(); } var arr = void 0; var value = void 0; var series = {}; var keys = options.keys || Object.keys(this.rules); keys.forEach(function (z) { arr = _this.rules[z]; value = source[z]; arr.forEach(function (r) { var rule = r; if (typeof rule.transform === 'function') { if (source === source_) { source = _extends({}, source); } value = source[z] = rule.transform(value); } if (typeof rule === 'function') { rule = { validator: rule }; } else { rule = _extends({}, rule); } rule.validator = _this.getValidationMethod(rule); rule.field = z; rule.fullField = rule.fullField || z; rule.type = _this.getType(rule); if (!rule.validator) { return; } series[z] = series[z] || []; series[z].push({ rule: rule, value: value, source: source, field: z }); }); }); var errorFields = {}; return (0, _util.asyncMap)(series, options, function (data, doIt) { var rule = data.rule; var deep = (rule.type === 'object' || rule.type === 'array') && (_typeof(rule.fields) === 'object' || _typeof(rule.defaultField) === 'object'); deep = deep && (rule.required || !rule.required && data.value); rule.field = data.field; function addFullfield(key, schema) { return _extends({}, schema, { fullField: rule.fullField + '.' + key }); } function cb() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var errors = e; if (!Array.isArray(errors)) { errors = [errors]; } if (!options.suppressWarning && errors.length) { Schema.warning('async-validator:', errors); } if (errors.length && rule.message) { errors = [].concat(rule.message); } errors = errors.map((0, _util.complementError)(rule)); if (options.first && errors.length) { errorFields[rule.field] = 1; return doIt(errors); } if (!deep) { doIt(errors); } else { // if rule is required but the target object // does not exist fail at the rule level and don't // go deeper if (rule.required && !data.value) { if (rule.message) { errors = [].concat(rule.message).map((0, _util.complementError)(rule)); } else if (options.error) { errors = [options.error(rule, (0, _util.format)(options.messages.required, rule.field))]; } else { errors = []; } return doIt(errors); } var fieldsSchema = {}; if (rule.defaultField) { for (var k in data.value) { if (data.value.hasOwnProperty(k)) { fieldsSchema[k] = rule.defaultField; } } } fieldsSchema = _extends({}, fieldsSchema, data.rule.fields); for (var f in fieldsSchema) { if (fieldsSchema.hasOwnProperty(f)) { var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]]; fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f)); } } var schema = new Schema(fieldsSchema); schema.messages(options.messages); if (data.rule.options) { data.rule.options.messages = options.messages; data.rule.options.error = options.error; } schema.validate(data.value, data.rule.options || options, function (errs) { var finalErrors = []; if (errors && errors.length) { finalErrors.push.apply(finalErrors, errors); } if (errs && errs.length) { finalErrors.push.apply(finalErrors, errs); } doIt(finalErrors.length ? finalErrors : null); }); } } var res = void 0; if (rule.asyncValidator) { res = rule.asyncValidator(rule, data.value, cb, data.source, options); } else if (rule.validator) { res = rule.validator(rule, data.value, cb, data.source, options); if (res === true) { cb(); } else if (res === false) { cb(rule.message || rule.field + ' fails'); } else if (res instanceof Array) { cb(res); } else if (res instanceof Error) { cb(res.message); } } if (res && res.then) { res.then(function () { return cb(); }, function (e) { return cb(e); }); } }, function (results) { complete(results); }); }, getType: function getType(rule) { if (rule.type === undefined && rule.pattern instanceof RegExp) { rule.type = 'pattern'; } if (typeof rule.validator !== 'function' && rule.type && !_validator2['default'].hasOwnProperty(rule.type)) { throw new Error((0, _util.format)('Unknown rule type %s', rule.type)); } return rule.type || 'string'; }, getValidationMethod: function getValidationMethod(rule) { if (typeof rule.validator === 'function') { return rule.validator; } var keys = Object.keys(rule); var messageIndex = keys.indexOf('message'); if (messageIndex !== -1) { keys.splice(messageIndex, 1); } if (keys.length === 1 && keys[0] === 'required') { return _validator2['default'].required; } return _validator2['default'][this.getType(rule)] || false; } }; Schema.register = function register(type, validator) { if (typeof validator !== 'function') { throw new Error('Cannot register a validator by type, validator is not a function'); } _validator2['default'][type] = validator; }; Schema.warning = _util.warning; Schema.messages = _messages2.messages; exports['default'] = Schema; /***/ }), /***/ 2592: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _string = __webpack_require__(2593); var _string2 = _interopRequireDefault(_string); var _method = __webpack_require__(2599); var _method2 = _interopRequireDefault(_method); var _number = __webpack_require__(2600); var _number2 = _interopRequireDefault(_number); var _boolean = __webpack_require__(2601); var _boolean2 = _interopRequireDefault(_boolean); var _regexp = __webpack_require__(2602); var _regexp2 = _interopRequireDefault(_regexp); var _integer = __webpack_require__(2603); var _integer2 = _interopRequireDefault(_integer); var _float = __webpack_require__(2604); var _float2 = _interopRequireDefault(_float); var _array = __webpack_require__(2605); var _array2 = _interopRequireDefault(_array); var _object = __webpack_require__(2606); var _object2 = _interopRequireDefault(_object); var _enum = __webpack_require__(2607); var _enum2 = _interopRequireDefault(_enum); var _pattern = __webpack_require__(2608); var _pattern2 = _interopRequireDefault(_pattern); var _date = __webpack_require__(2609); var _date2 = _interopRequireDefault(_date); var _required = __webpack_require__(2610); var _required2 = _interopRequireDefault(_required); var _type = __webpack_require__(2611); var _type2 = _interopRequireDefault(_type); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = { string: _string2['default'], method: _method2['default'], number: _number2['default'], boolean: _boolean2['default'], regexp: _regexp2['default'], integer: _integer2['default'], float: _float2['default'], array: _array2['default'], object: _object2['default'], 'enum': _enum2['default'], pattern: _pattern2['default'], date: _date2['default'], url: _type2['default'], hex: _type2['default'], email: _type2['default'], required: _required2['default'] }; /***/ }), /***/ 2593: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Performs validation for string types. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param callback The callback function. * @param source The source object being validated. * @param options The validation options. * @param options.messages The validation messages. */ function string(rule, value, callback, source, options) { var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if ((0, _util.isEmptyValue)(value, 'string') && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options, 'string'); if (!(0, _util.isEmptyValue)(value, 'string')) { _rule2['default'].type(rule, value, source, errors, options); _rule2['default'].range(rule, value, source, errors, options); _rule2['default'].pattern(rule, value, source, errors, options); if (rule.whitespace === true) { _rule2['default'].whitespace(rule, value, source, errors, options); } } } callback(errors); } exports['default'] = string; /***/ }), /***/ 2594: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _util = __webpack_require__(1371); var util = _interopRequireWildcard(_util); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } /** * Rule for validating whitespace. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param source The source object being validated. * @param errors An array of errors that this rule may add * validation errors to. * @param options The validation options. * @param options.messages The validation messages. */ function whitespace(rule, value, source, errors, options) { if (/^\s+$/.test(value) || value === '') { errors.push(util.format(options.messages.whitespace, rule.fullField)); } } exports['default'] = whitespace; /***/ }), /***/ 2595: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _util = __webpack_require__(1371); var util = _interopRequireWildcard(_util); var _required = __webpack_require__(2283); var _required2 = _interopRequireDefault(_required); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } /* eslint max-len:0 */ var pattern = { // http://emailregex.com/ email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, url: new RegExp('^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$', 'i'), hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i }; var types = { integer: function integer(value) { return types.number(value) && parseInt(value, 10) === value; }, float: function float(value) { return types.number(value) && !types.integer(value); }, array: function array(value) { return Array.isArray(value); }, regexp: function regexp(value) { if (value instanceof RegExp) { return true; } try { return !!new RegExp(value); } catch (e) { return false; } }, date: function date(value) { return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function'; }, number: function number(value) { if (isNaN(value)) { return false; } return typeof value === 'number'; }, object: function object(value) { return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !types.array(value); }, method: function method(value) { return typeof value === 'function'; }, email: function email(value) { return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255; }, url: function url(value) { return typeof value === 'string' && !!value.match(pattern.url); }, hex: function hex(value) { return typeof value === 'string' && !!value.match(pattern.hex); } }; /** * Rule for validating the type of a value. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param source The source object being validated. * @param errors An array of errors that this rule may add * validation errors to. * @param options The validation options. * @param options.messages The validation messages. */ function type(rule, value, source, errors, options) { if (rule.required && value === undefined) { (0, _required2['default'])(rule, value, source, errors, options); return; } var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex']; var ruleType = rule.type; if (custom.indexOf(ruleType) > -1) { if (!types[ruleType](value)) { errors.push(util.format(options.messages.types[ruleType], rule.fullField, rule.type)); } // straight typeof check } else if (ruleType && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== rule.type) { errors.push(util.format(options.messages.types[ruleType], rule.fullField, rule.type)); } } exports['default'] = type; /***/ }), /***/ 2596: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _util = __webpack_require__(1371); var util = _interopRequireWildcard(_util); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } /** * Rule for validating minimum and maximum allowed values. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param source The source object being validated. * @param errors An array of errors that this rule may add * validation errors to. * @param options The validation options. * @param options.messages The validation messages. */ function range(rule, value, source, errors, options) { var len = typeof rule.len === 'number'; var min = typeof rule.min === 'number'; var max = typeof rule.max === 'number'; // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane) var spRegexp = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; var val = value; var key = null; var num = typeof value === 'number'; var str = typeof value === 'string'; var arr = Array.isArray(value); if (num) { key = 'number'; } else if (str) { key = 'string'; } else if (arr) { key = 'array'; } // if the value is not of a supported type for range validation // the validation rule rule should use the // type property to also test for a particular type if (!key) { return false; } if (arr) { val = value.length; } if (str) { // 处理码点大于U+010000的文字length属性不准确的bug,如"𠮷𠮷𠮷".lenght !== 3 val = value.replace(spRegexp, '_').length; } if (len) { if (val !== rule.len) { errors.push(util.format(options.messages[key].len, rule.fullField, rule.len)); } } else if (min && !max && val < rule.min) { errors.push(util.format(options.messages[key].min, rule.fullField, rule.min)); } else if (max && !min && val > rule.max) { errors.push(util.format(options.messages[key].max, rule.fullField, rule.max)); } else if (min && max && (val < rule.min || val > rule.max)) { errors.push(util.format(options.messages[key].range, rule.fullField, rule.min, rule.max)); } } exports['default'] = range; /***/ }), /***/ 2597: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _util = __webpack_require__(1371); var util = _interopRequireWildcard(_util); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } var ENUM = 'enum'; /** * Rule for validating a value exists in an enumerable list. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param source The source object being validated. * @param errors An array of errors that this rule may add * validation errors to. * @param options The validation options. * @param options.messages The validation messages. */ function enumerable(rule, value, source, errors, options) { rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : []; if (rule[ENUM].indexOf(value) === -1) { errors.push(util.format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', '))); } } exports['default'] = enumerable; /***/ }), /***/ 2598: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _util = __webpack_require__(1371); var util = _interopRequireWildcard(_util); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } /** * Rule for validating a regular expression pattern. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param source The source object being validated. * @param errors An array of errors that this rule may add * validation errors to. * @param options The validation options. * @param options.messages The validation messages. */ function pattern(rule, value, source, errors, options) { if (rule.pattern) { if (rule.pattern instanceof RegExp) { // if a RegExp instance is passed, reset `lastIndex` in case its `global` // flag is accidentally set to `true`, which in a validation scenario // is not necessary and the result might be misleading rule.pattern.lastIndex = 0; if (!rule.pattern.test(value)) { errors.push(util.format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); } } else if (typeof rule.pattern === 'string') { var _pattern = new RegExp(rule.pattern); if (!_pattern.test(value)) { errors.push(util.format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); } } } } exports['default'] = pattern; /***/ }), /***/ 2599: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Validates a function. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param callback The callback function. * @param source The source object being validated. * @param options The validation options. * @param options.messages The validation messages. */ function method(rule, value, callback, source, options) { var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if ((0, _util.isEmptyValue)(value) && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options); if (value !== undefined) { _rule2['default'].type(rule, value, source, errors, options); } } callback(errors); } exports['default'] = method; /***/ }), /***/ 2600: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Validates a number. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param callback The callback function. * @param source The source object being validated. * @param options The validation options. * @param options.messages The validation messages. */ function number(rule, value, callback, source, options) { var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if (value === '') { value = undefined; } if ((0, _util.isEmptyValue)(value) && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options); if (value !== undefined) { _rule2['default'].type(rule, value, source, errors, options); _rule2['default'].range(rule, value, source, errors, options); } } callback(errors); } exports['default'] = number; /***/ }), /***/ 2601: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _util = __webpack_require__(1371); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Validates a boolean. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param callback The callback function. * @param source The source object being validated. * @param options The validation options. * @param options.messages The validation messages. */ function boolean(rule, value, callback, source, options) { var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if ((0, _util.isEmptyValue)(value) && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options); if (value !== undefined) { _rule2['default'].type(rule, value, source, errors, options); } } callback(errors); } exports['default'] = boolean; /***/ }), /***/ 2602: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Validates the regular expression type. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param callback The callback function. * @param source The source object being validated. * @param options The validation options. * @param options.messages The validation messages. */ function regexp(rule, value, callback, source, options) { var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if ((0, _util.isEmptyValue)(value) && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options); if (!(0, _util.isEmptyValue)(value)) { _rule2['default'].type(rule, value, source, errors, options); } } callback(errors); } exports['default'] = regexp; /***/ }), /***/ 2603: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Validates a number is an integer. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param callback The callback function. * @param source The source object being validated. * @param options The validation options. * @param options.messages The validation messages. */ function integer(rule, value, callback, source, options) { var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if ((0, _util.isEmptyValue)(value) && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options); if (value !== undefined) { _rule2['default'].type(rule, value, source, errors, options); _rule2['default'].range(rule, value, source, errors, options); } } callback(errors); } exports['default'] = integer; /***/ }), /***/ 2604: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Validates a number is a floating point number. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param callback The callback function. * @param source The source object being validated. * @param options The validation options. * @param options.messages The validation messages. */ function floatFn(rule, value, callback, source, options) { var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if ((0, _util.isEmptyValue)(value) && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options); if (value !== undefined) { _rule2['default'].type(rule, value, source, errors, options); _rule2['default'].range(rule, value, source, errors, options); } } callback(errors); } exports['default'] = floatFn; /***/ }), /***/ 2605: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Validates an array. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param callback The callback function. * @param source The source object being validated. * @param options The validation options. * @param options.messages The validation messages. */ function array(rule, value, callback, source, options) { var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if ((0, _util.isEmptyValue)(value, 'array') && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options, 'array'); if (!(0, _util.isEmptyValue)(value, 'array')) { _rule2['default'].type(rule, value, source, errors, options); _rule2['default'].range(rule, value, source, errors, options); } } callback(errors); } exports['default'] = array; /***/ }), /***/ 2606: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Validates an object. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param callback The callback function. * @param source The source object being validated. * @param options The validation options. * @param options.messages The validation messages. */ function object(rule, value, callback, source, options) { var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if ((0, _util.isEmptyValue)(value) && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options); if (value !== undefined) { _rule2['default'].type(rule, value, source, errors, options); } } callback(errors); } exports['default'] = object; /***/ }), /***/ 2607: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var ENUM = 'enum'; /** * Validates an enumerable list. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param callback The callback function. * @param source The source object being validated. * @param options The validation options. * @param options.messages The validation messages. */ function enumerable(rule, value, callback, source, options) { var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if ((0, _util.isEmptyValue)(value) && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options); if (value) { _rule2['default'][ENUM](rule, value, source, errors, options); } } callback(errors); } exports['default'] = enumerable; /***/ }), /***/ 2608: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * Validates a regular expression pattern. * * Performs validation when a rule only contains * a pattern property but is not declared as a string type. * * @param rule The validation rule. * @param value The value of the field on the source object. * @param callback The callback function. * @param source The source object being validated. * @param options The validation options. * @param options.messages The validation messages. */ function pattern(rule, value, callback, source, options) { var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if ((0, _util.isEmptyValue)(value, 'string') && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options); if (!(0, _util.isEmptyValue)(value, 'string')) { _rule2['default'].pattern(rule, value, source, errors, options); } } callback(errors); } exports['default'] = pattern; /***/ }), /***/ 2609: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function date(rule, value, callback, source, options) { // console.log('integer rule called %j', rule); var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); // console.log('validate on %s value', value); if (validate) { if ((0, _util.isEmptyValue)(value) && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options); if (!(0, _util.isEmptyValue)(value)) { var dateObject = void 0; if (typeof value === 'number') { dateObject = new Date(value); } else { dateObject = value; } _rule2['default'].type(rule, dateObject, source, errors, options); if (dateObject) { _rule2['default'].range(rule, dateObject.getTime(), source, errors, options); } } } callback(errors); } exports['default'] = date; /***/ }), /***/ 2610: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function required(rule, value, callback, source, options) { var errors = []; var type = Array.isArray(value) ? 'array' : typeof value === 'undefined' ? 'undefined' : _typeof(value); _rule2['default'].required(rule, value, source, errors, options, type); callback(errors); } exports['default'] = required; /***/ }), /***/ 2611: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _rule = __webpack_require__(1435); var _rule2 = _interopRequireDefault(_rule); var _util = __webpack_require__(1371); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function type(rule, value, callback, source, options) { var ruleType = rule.type; var errors = []; var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); if (validate) { if ((0, _util.isEmptyValue)(value, ruleType) && !rule.required) { return callback(); } _rule2['default'].required(rule, value, source, errors, options, ruleType); if (!(0, _util.isEmptyValue)(value, ruleType)) { _rule2['default'].type(rule, value, source, errors, options); } } callback(errors); } exports['default'] = type; /***/ }), /***/ 2612: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.newMessages = newMessages; function newMessages() { return { 'default': 'Validation error on field %s', required: '%s is required', 'enum': '%s must be one of %s', whitespace: '%s cannot be empty', date: { format: '%s date %s is invalid for format %s', parse: '%s date could not be parsed, %s is invalid ', invalid: '%s date %s is invalid' }, types: { string: '%s is not a %s', method: '%s is not a %s (function)', array: '%s is not an %s', object: '%s is not an %s', number: '%s is not a %s', date: '%s is not a %s', boolean: '%s is not a %s', integer: '%s is not an %s', float: '%s is not a %s', regexp: '%s is not a valid %s', email: '%s is not a valid %s', url: '%s is not a valid %s', hex: '%s is not a valid %s' }, string: { len: '%s must be exactly %s characters', min: '%s must be at least %s characters', max: '%s cannot be longer than %s characters', range: '%s must be between %s and %s characters' }, number: { len: '%s must equal %s', min: '%s cannot be less than %s', max: '%s cannot be greater than %s', range: '%s must be between %s and %s' }, array: { len: '%s must be exactly %s in length', min: '%s cannot be less than %s in length', max: '%s cannot be greater than %s in length', range: '%s must be between %s and %s in length' }, pattern: { mismatch: '%s value %s does not match pattern %s' }, clone: function clone() { var cloned = JSON.parse(JSON.stringify(this)); cloned.clone = this.clone; return cloned; } }; } var messages = exports.messages = newMessages(); /***/ }), /***/ 2613: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.getValueFromEvent = getValueFromEvent; exports.getDefaultValue = getDefaultValue; exports.getErrorStrs = getErrorStrs; exports.getParams = getParams; exports.setIn = setIn; exports.getIn = getIn; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function getValueFromEvent(e) { // support custom element if (!e || !e.target) { return e; } var target = e.target; if (target.type === 'checkbox') { return target.checked; } else if (target.type === 'radio') { //兼容radioGroup if (target.value) { return target.value; } else { return target.checked; } } return target.value; } function getDefaultValue(ref, valueName) { if (!ref) { return undefined; } if (ref.nodeType && ref.nodeType === 1) { //原生 if (ref.nodeName === 'INPUT') { switch (ref.type) { case 'checkbox': case 'radio': if ('defaultChecked' in ref) { return ref.defaultChecked; } break; } } if ('defaultValue' in ref) { return ref.defaultValue; } else if ('value' in ref) { //原生的select设置defaultValue,但是ref上面只有value属性 return ref.value; } } else { var defaultValue = 'default' + valueName.substring(0, 1).toUpperCase() + valueName.substring(1); if (defaultValue in ref.props) { return ref.props[defaultValue]; } if ('defaultValue' in ref.props) { return ref.props.defaultValue; } else if ('defaultChecked' in ref.props) { return ref.props.defaultChecked; } } return undefined; } function getErrorStrs(errors) { if (errors) { return errors.map(function (e) { if ('message' in e) { return e.message; } return e; }); } return errors; } // export function isEmptyObject(obj) { // return Object.keys(obj).length === 0; // } // export function flattenArray(arr) { // return Array.prototype.concat.apply([], arr); // } // export function mirror(obj) { // return obj; // } // export function hasRules(validate) { // if (validate) { // return validate.some((item) => { // return !!item.rules && item.rules.length; // }); // } // return false; // } function getParams(ns, opt, cb) { var names = typeof ns === 'string' ? [ns] : ns; var callback = cb; var options = opt; if (cb === undefined) { if (typeof names === 'function') { callback = names; options = {}; names = undefined; } else if (Array.isArray(names)) { if (typeof options === 'function') { callback = options; options = {}; } else { options = options || {}; } } else { callback = options; options = names || {}; names = undefined; } } return { names: names, callback: callback, options: options }; } /** * get value from key like 'a.b.c' * @param obj * @param strKey like a.b.c * @returns {*} */ // export function getValueByStringKey(obj, strKey = '') { // if (!strKey) { // return obj; // } // return strKey.split('.').reduce((previousValue, currentValue) => { // return previousValue[currentValue]; // }, obj); // } /** * set value by key like 'a.b.c' * @param obj a.b.c = value * @param strKey * @param value */ // export function setValueByStringKey(obj, strKey = '', value) { // if (!strKey) { // return obj; // } // return strKey.split('.').reduce((previousValue, currentValue, i, arr) => { // if (!(currentValue in previousValue)) { // previousValue[currentValue] = {}; // } // if (i === arr.length - 1) { // previousValue[currentValue] = value; // } // return previousValue[currentValue]; // }, obj); // } var setInWithPath = function setInWithPath(state, value, path, pathIndex) { if (pathIndex >= path.length) { return value; } var first = path[pathIndex]; var next = setInWithPath(state && state[first], value, path, pathIndex + 1); if (!state) { var initialized = isNaN(first) ? {} : []; initialized[first] = next; return initialized; } if (Array.isArray(state)) { var copy = [].concat(state); copy[first] = next; return copy; } return _extends({}, state, _defineProperty({}, first, next)); }; function setIn(state, name, value) { return setInWithPath(state, value, name.replace(/\[/, '.').replace(/\]/, '').split('.'), 0); } function getIn(state, name) { if (!state) { return state; } var path = name.replace(/\[/, '.').replace(/\]/, '').split('.'); var length = path.length; if (!length) { return undefined; } var result = state; for (var i = 0; i < length && !!result; ++i) { result = result[path[i]]; } return result; } /***/ }), /***/ 2614: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _form = __webpack_require__(2615); var _form2 = _interopRequireDefault(_form); var _formItem = __webpack_require__(2616); var _formItem2 = _interopRequireDefault(_formItem); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _form2['default'].Item = _formItem2['default']; exports['default'] = _form2['default']; module.exports = exports['default']; /***/ }), /***/ 2615: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Form */ var Form = (_temp = _class = function (_React$Component) { _inherits(Form, _React$Component); function Form() { _classCallCheck(this, Form); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Form.prototype.getChildContext = function getChildContext() { return { field: this.props.field, direction: this.props.direction, labelAlign: this.props.labelAlign, size: this.props.size }; }; Form.prototype.render = function render() { var _classNames; /*eslint-disable */ var _props = this.props, className = _props.className, field = _props.field, direction = _props.direction, size = _props.size, labelAlign = _props.labelAlign, labelTextAlign = _props.labelTextAlign, others = _objectWithoutProperties(_props, ['className', 'field', 'direction', 'size', 'labelAlign', 'labelTextAlign']); /*eslint-enable */ var prefix = this.context.prefix || this.props.prefix; // inset 模式统一左对齐 var labelAlignReal = labelAlign === 'inset' ? 'left' : labelAlign; var formClassName = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'form', true), _defineProperty(_classNames, prefix + 'form-' + labelAlignReal, labelAlignReal), _defineProperty(_classNames, prefix + 'form-label-' + labelTextAlign, !!labelTextAlign), _defineProperty(_classNames, prefix + 'form-hoz', direction === 'hoz'), _defineProperty(_classNames, '' + direction, true), _defineProperty(_classNames, prefix + 'form-' + size, size), _defineProperty(_classNames, className, !!className), _classNames)); return _react2['default'].createElement( 'form', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: formClassName }), this.props.children ); }; return Form; }(_react2['default'].Component), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * 表单展示方向 * @enumdesc 水平, 垂直 */ direction: _propTypes2['default'].oneOf(['hoz', 'ver']), /** * 单个FormItem的size自定义,优先级高于Form的size, 并且当组件与 FormItem 一起使用时,组件自身设置 size 属性无效。 * @enumdesc 大, 中, 小 */ size: _propTypes2['default'].oneOf(['large', 'medium', 'small']), /** * 标签的位置 * @enumdesc 上, 左, 内 */ labelAlign: _propTypes2['default'].oneOf(['top', 'left', 'inset']), /** * 标签的左右对齐方式 * @enumdesc , 左, 右 */ labelTextAlign: _propTypes2['default'].oneOf(['', 'left', 'right']), /** * 经 `new Field(this)` 初始化后,直接传给 Form 即可 用到表单校验则不可忽略此项 */ field: _propTypes2['default'].any, /** * form内有 `htmlType="submit"` 的元素的时候会触发 */ onSubmit: _propTypes2['default'].func, /** * 子元素 */ children: _propTypes2['default'].any, /** * 扩展class */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', onSubmit: function onSubmit(e) { e.preventDefault(); }, size: 'medium', direction: 'ver', labelAlign: 'left' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.childContextTypes = { field: _propTypes2['default'].object, direction: _propTypes2['default'].oneOf(['hoz', 'ver']), labelAlign: _propTypes2['default'].oneOf(['top', 'left', 'inset']), size: _propTypes2['default'].oneOf(['large', 'small', 'medium']) }, _temp); Form.displayName = 'Form'; exports['default'] = Form; module.exports = exports['default']; /***/ }), /***/ 2616: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextGrid = __webpack_require__(2284); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } function prefixFn(prefix) { for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } return args.map(function (s) { return prefix + 'form-item-' + s; }).join(' '); } /** Form.Item */ var FormItem = (_temp = _class = function (_React$Component) { _inherits(FormItem, _React$Component); function FormItem() { _classCallCheck(this, FormItem); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } FormItem.prototype._getLayoutClass = function _getLayoutClass(colDef) { var _classNames; if (!colDef) { return ''; } var span = colDef.span, offset = colDef.offset, fixedSpan = colDef.fixedSpan; /*eslint-enable */ var prefix = this.context.prefix || this.props.prefix; return (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'col-' + span, span), _defineProperty(_classNames, prefix + 'col-offset-' + offset, offset), _defineProperty(_classNames, prefix + 'col-fixed-' + fixedSpan, fixedSpan), _classNames)); }; FormItem.prototype.getHelpMsg = function getHelpMsg() { var context = this.context; var props = this.props; if (props.help === undefined && context.field) { return this.getId() ? context.field.getError(this.getId()) : ''; } return props.help; }; FormItem.prototype.getOnlyControl = function getOnlyControl() { var children = _react2['default'].Children.toArray(this.props.children); var child = children.filter(function (c) { return c.props && 'data-meta' in c.props; })[0]; return child !== undefined ? child : null; }; FormItem.prototype.getChildProp = function getChildProp(prop) { var child = this.getOnlyControl(); return child && child.props && child.props[prop]; }; FormItem.prototype.getId = function getId() { return this.getChildProp('id'); }; FormItem.prototype.renderHelp = function renderHelp() { var prefix = this.context.prefix || this.props.prefix; var help = this.getHelpMsg(); return _react2['default'].createElement( 'div', { className: help ? prefixFn(prefix, 'explain') : '', key: 'help' }, help ); }; FormItem.prototype.getValidateStatus = function getValidateStatus() { var getState = this.context.field.getState; var field = this.getId(); if (!field) { return ''; } var state = getState(field); if (state === 'validating') { return 'loading'; } else { return state; } }; FormItem.prototype.renderValidateWrapper = function renderValidateWrapper(validateStatus, help, extra) { var _cls; var props = this.props; var prefix = this.context.prefix || this.props.prefix; var cls = (_cls = {}, _defineProperty(_cls, this._getLayoutClass(props.wrapperCol), this.context.labelAlign !== 'top'), _defineProperty(_cls, prefix + 'form-item-control', true), _cls); var childrenProps = { size: this.props.size || this.context.size }; if (props.hasFeedback) { if (validateStatus === 'success' || validateStatus === 'loading') { childrenProps.state = validateStatus; } } var children = _react2['default'].Children.map(props.children, function (child) { if (child && typeof child.type === 'function') { return _react2['default'].cloneElement(child, childrenProps); } return child; }); return _react2['default'].createElement( 'div', { className: (0, _classnames2['default'])(cls), key: 'item' }, children, ' ', help, ' ', extra ); }; FormItem.prototype.getRules = function getRules(name) { return this.context.field && this.context.field._get(name) && this.context.field._get(name).rules; }; FormItem.prototype.isRequired = function isRequired() { if (this.context.field) { var rules = this.getRules(this.getId()) || null; if (!rules) { return false; } if (rules.required) { return true; } else { return rules.some(function (rule) { return rule.required; }); } } return false; }; FormItem.prototype.renderLabel = function renderLabel() { var _classNames2; var props = this.props; var prefix = this.context.prefix || this.props.prefix; var labelCol = props.labelCol; var required = props.required === undefined ? this.isRequired() : props.required; var className = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, this._getLayoutClass(labelCol), true), _defineProperty(_classNames2, prefix + 'form-item-label', true), _classNames2)); return props.label !== undefined ? _react2['default'].createElement( 'label', { htmlFor: props.id || this.getId(), required: required, className: className, key: 'label' }, props.label ) : null; }; FormItem.prototype.renderChildren = function renderChildren(validateStatus) { return [this.renderLabel(), this.renderValidateWrapper(validateStatus, this.context.labelAlign !== 'inset' && this.props.labelAlign !== 'inset' ? this.renderHelp() : null, this.props.extra)]; }; FormItem.prototype.renderFormItem = function renderFormItem(validateStatus, children) { var _classNames3; var _props = this.props, className = _props.className, labelAlign = _props.labelAlign, style = _props.style, others = _objectWithoutProperties(_props, ['className', 'labelAlign', 'style']); var prefix = this.context.prefix || this.props.prefix; var itemClassName = (0, _classnames2['default'])((_classNames3 = {}, _defineProperty(_classNames3, prefix + 'form-item', true), _defineProperty(_classNames3, prefix + 'row', this.context.direction === 'ver' && this.context.labelAlign === 'left'), _defineProperty(_classNames3, 'has-success', validateStatus === 'success'), _defineProperty(_classNames3, 'has-error', validateStatus === 'error'), _defineProperty(_classNames3, '' + className, !!className), _classNames3)); if (this.context.labelAlign === 'inset' || labelAlign === 'inset') { return _react2['default'].createElement( 'div', { className: itemClassName, style: style }, _react2['default'].createElement( _nextGrid.Row, { className: prefix + 'form-item-inset' }, children ), this.renderHelp() ); } return _react2['default'].createElement( 'div', _extends({ className: itemClassName, style: style }, (0, _nextUtil.pickAttrs)(others)), children ); }; FormItem.prototype.render = function render() { var validateStatus = this.props.validateStatus === undefined && this.context.field ? this.getValidateStatus() : this.props.validateStatus; var children = this.renderChildren(validateStatus); return this.renderFormItem(validateStatus, children); }; return FormItem; }(_react2['default'].Component), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * label 标签的文本 */ label: _propTypes2['default'].node, /** * label 标签布局,通 `` 组件,设置 span offset 值,如 {span: 8, offset: 16},该项仅在垂直表单有效 */ labelCol: _propTypes2['default'].object, /** * 提示信息,如不设置,则会根据校验规则自动生成. 如果设置会受控(ps: 可以利用这点自定义错误位置,详细看demo自定义错误) */ help: _propTypes2['default'].node, /** * 校验状态,如不设置,则会根据校验规则自动生成 * @enumdesc , 成功, 失败, 校验中 */ validateStatus: _propTypes2['default'].oneOf(['', 'success', 'error', 'loading']), /** * 配合 validateStatus 属性使用,是否展示校验状态图标, 目前只有Input支持 */ hasFeedback: _propTypes2['default'].bool, /** * 需要为输入控件设置布局样式时,使用该属性,用法同 labelCol */ wrapperCol: _propTypes2['default'].object, /** * 自定义内联样式 */ style: _propTypes2['default'].object, id: _propTypes2['default'].string, children: _propTypes2['default'].node, /** * 额外的提示信息,和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。 位于错误信息后面 */ extra: _propTypes2['default'].node, /** * 单个FormItem的size自定义,优先级高于Form的size, 并且当组件与 FormItem 一起使用时,组件自身设置 size 属性无效。 */ size: _propTypes2['default'].oneOf(['', 'large', 'small', 'medium']), labelAlign: _propTypes2['default'].oneOf(['', 'top', 'left', 'inset']), /** * 扩展class */ className: _propTypes2['default'].string }, _class.defaultProps = { hasFeedback: false, prefix: 'next-' }, _class.contextTypes = { field: _propTypes2['default'].object, direction: _propTypes2['default'].oneOf(['hoz', 'ver']), labelAlign: _propTypes2['default'].oneOf(['top', 'left', 'inset']), prefix: _propTypes2['default'].string, size: _propTypes2['default'].oneOf(['small', 'medium', 'large']) }, _temp); FormItem.displayName = 'FormItem'; exports['default'] = FormItem; module.exports = exports['default']; /***/ }), /***/ 2617: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); // var _nextConfigProvider = require('../../next-config-provider/lib/index.js'); // var _nextConfigProvider2 = _interopRequireDefault(_nextConfigProvider); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Grid.Row * @order 1 */ var Row = (_temp = _class = function (_Component) { _inherits(Row, _Component); function Row() { _classCallCheck(this, Row); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Row.prototype.render = function render() { var _cx; /* eslint-disable no-unused-vars */ var _props = this.props, prefix = _props.prefix, pure = _props.pure, wrap = _props.wrap, fixed = _props.fixed, gutter = _props.gutter, fixedWidth = _props.fixedWidth, align = _props.align, justify = _props.justify, className = _props.className, children = _props.children, others = _objectWithoutProperties(_props, ['prefix', 'pure', 'wrap', 'fixed', 'gutter', 'fixedWidth', 'align', 'justify', 'className', 'children']); /* eslint-enable no-unused-vars */ var newClassName = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'row'] = true, _cx[prefix + 'row-wrap'] = wrap, _cx[prefix + 'row-fixed'] = fixed, _cx[prefix + 'row-fixed-' + fixedWidth] = !!fixedWidth, _cx[prefix + 'row-justify-' + justify] = !!justify, _cx[prefix + 'row-align-' + align] = !!align, _cx[className] = !!className, _cx)); var newChildren = children; var gutterNumber = parseInt(gutter, 10); if (gutterNumber !== 0) { var halfGutterString = gutterNumber / 2 + 'px'; others.style = _extends({ marginLeft: '-' + halfGutterString, marginRight: '-' + halfGutterString }, others.style || {}); newChildren = _react.Children.map(children, function (child) { if (typeof child.type === 'function' && child.type.isNextCol) { var newChild = (0, _react.cloneElement)(child, { style: _extends({ paddingLeft: halfGutterString, paddingRight: halfGutterString }, child.style || {}) }); return newChild; } return child; }); } return _react2.default.createElement( 'div', _extends({ className: newClassName }, others), newChildren ); }; return Row; }(_react.Component), _class.propTypes = { prefix: _propTypes2.default.string, pure: _propTypes2.default.bool, className: _propTypes2.default.string, style: _propTypes2.default.object, /** * 行内容 */ children: _propTypes2.default.node, /** * 列间隔 */ gutter: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), /** * 列在行中宽度溢出后是否换行 */ wrap: _propTypes2.default.bool, /** * 行在某一断点下宽度是否保持不变(默认行宽度随视口变化而变化) */ fixed: _propTypes2.default.bool, /** * 固定行的宽度为某一断点的宽度,不受视口影响而变动 * @enumdesc 320px, 480px, 720px, 990px, 1200px, 1500px */ fixedWidth: _propTypes2.default.oneOf(['xxs', 'xs', 's', 'm', 'l', 'xl']), /** * (不支持IE9及以下浏览器)多列垂直方向对齐方式 * @enumdesc 顶部对齐, 居中对齐, 底部对齐, 按第一行文字基线对齐, 未设置高度或设为 auto,将占满整个容器的高度 * @default 'stretch' */ align: _propTypes2.default.oneOf(['top', 'center', 'bottom', 'baseline', 'stretch']), /** * (不支持IE9及以下浏览器)行内具有多余空间时的布局方式 * @enumdesc 左对齐, 居中对齐, 右对齐, 两端对齐,列之间间距相等, 每列具有相同的左右间距,行两端间距是列间距的二分之一 * @default 'start' */ justify: _propTypes2.default.oneOf(['start', 'center', 'end', 'space-between', 'space-around']) }, _class.defaultProps = { prefix: 'next-', pure: false, fixed: false, gutter: 0, wrap: false }, _temp); Row.displayName = 'Row'; //exports.default = _nextConfigProvider2.default.config(Row); exports.default = Row; module.exports = exports['default']; /***/ }), /***/ 2618: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); // var _nextConfigProvider = require('../../next-config-provider/lib/index.js'); // var _nextConfigProvider2 = _interopRequireDefault(_nextConfigProvider); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var breakPoints = ['xxs', 'xs', 's', 'm', 'l', 'xl']; /** * Grid.Col * @order 2 */ var Col = (_temp = _class = function (_Component) { _inherits(Col, _Component); function Col() { _classCallCheck(this, Col); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Col.prototype.render = function render() { var _this2 = this, _extends2, _extends3; /* eslint-disable no-unused-vars */ var _props = this.props, prefix = _props.prefix, pure = _props.pure, span = _props.span, offset = _props.offset, fixedSpan = _props.fixedSpan, fixedOffset = _props.fixedOffset, hidden = _props.hidden, align = _props.align, xxs = _props.xxs, xs = _props.xs, s = _props.s, m = _props.m, l = _props.l, xl = _props.xl, className = _props.className, children = _props.children, others = _objectWithoutProperties(_props, ['prefix', 'pure', 'span', 'offset', 'fixedSpan', 'fixedOffset', 'hidden', 'align', 'xxs', 'xs', 's', 'm', 'l', 'xl', 'className', 'children']); /* eslint-enable no-unused-vars */ var pointClassObj = breakPoints.reduce(function (ret, point) { var pointProps = {}; if (_typeof(_this2.props[point]) === 'object') { pointProps = _this2.props[point]; } else { pointProps.span = _this2.props[point]; } ret[prefix + 'col-' + point + '-' + pointProps.span] = !!pointProps.span; ret[prefix + 'col-' + point + '-offset-' + pointProps.offset] = !!pointProps.offset; return ret; }, {}); var hiddenClassObj = void 0; if (hidden === true) { var _hiddenClassObj; hiddenClassObj = (_hiddenClassObj = {}, _hiddenClassObj[prefix + 'col-hidden'] = true, _hiddenClassObj); } else if (typeof hidden === 'string') { var _hiddenClassObj2; hiddenClassObj = (_hiddenClassObj2 = {}, _hiddenClassObj2[prefix + 'col-' + hidden + '-hidden'] = !!hidden, _hiddenClassObj2); } else if (Array.isArray(hidden)) { hiddenClassObj = hidden.reduce(function (ret, point) { ret[prefix + 'col-' + point + '-hidden'] = !!point; return ret; }, {}); } var classes = (0, _classnames2.default)(_extends((_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))); return _react2.default.createElement( 'div', _extends({ className: classes }, others), children ); }; return Col; }(_react.Component), _class.isNextCol = true, _class.propTypes = { prefix: _propTypes2.default.string, pure: _propTypes2.default.bool, className: _propTypes2.default.string, /** * 列内容 */ children: _propTypes2.default.node, /** * 列宽度

**可选值**:
1, 2, 3, ..., 22, 23, 24 */ span: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), /** * 固定列宽度,宽度值为20 * 栅格数

**可选值**:
1, 2, 3, ..., 28, 29, 30 */ fixedSpan: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), /** * (不支持IE9及以下浏览器)列偏移

**可选值**:
1, 2, 3, ..., 22, 23, 24 */ offset: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), /** * (不支持IE9及以下浏览器)固定列偏移,宽度值为20 * 栅格数

**可选值**:
1, 2, 3, ..., 28, 29, 30 */ fixedOffset: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), /** * (不支持IE9及以下浏览器)多列垂直方向对齐方式,可覆盖Row的align属性 */ align: _propTypes2.default.oneOf(['top', 'center', 'bottom', 'baseline', 'stretch']), /** * 列在不同断点下的显示与隐藏

**可选值**:
true(在所有断点下隐藏)
false(在所有断点下显示)
'xs'(在 xs 断点下隐藏)
['xxs', 'xs', 's', 'm', 'l', 'xl'](在 xxs, xs, s, m, l, xl 断点下隐藏) */ hidden: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string, _propTypes2.default.array]), /** * >=320px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 */ xxs: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]), /** * >=480px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 */ xs: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]), /** * >=720px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 */ s: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]), /** * >=990px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 */ m: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]), /** * >=1200px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 */ l: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]), /** * >=1500px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象 */ xl: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]) }, _class.defaultProps = { prefix: 'next-', pure: false }, _temp); Col.displayName = 'Col'; //exports.default = _nextConfigProvider2.default.config(Col); exports.default = Col; module.exports = exports['default']; /***/ }), /***/ 2619: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Loading */ var Loading = (_temp = _class = function (_React$Component) { _inherits(Loading, _React$Component); function Loading() { _classCallCheck(this, Loading); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Loading.prototype.render = function render() { var _classNames; var _props = this.props, tip = _props.tip, state = _props.state, _props$visible = _props.visible, visible = _props$visible === undefined ? state !== 'off' : _props$visible, children = _props.children, className = _props.className, style = _props.style, shape = _props.shape, color = _props.color; state && _nextUtil.log.deprecated('state', 'visible', 'Loading'); var prefix = this.context.prefix || this.props.prefix; var tipDom = null; var dotCls = prefix + 'loading-dot'; switch (shape) { case 'flower': tipDom = _react2['default'].createElement( 'span', { className: prefix + 'loading-flower' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'loading', className: prefix + 'loading-icon', style: { color: color } }) ); break; case 'fusion-reactor': tipDom = _react2['default'].createElement( 'div', { className: prefix + 'loading-fusion-reactor' }, _react2['default'].createElement('div', { className: dotCls, style: { backgroundColor: color } }), _react2['default'].createElement('div', { className: dotCls, style: { backgroundColor: color } }), _react2['default'].createElement('div', { className: dotCls, style: { backgroundColor: color } }), _react2['default'].createElement('div', { className: dotCls, style: { backgroundColor: color } }) ); break; case 'dot-circle': tipDom = _react2['default'].createElement( 'div', { className: prefix + 'loading-dot-circle' }, _react2['default'].createElement( 'div', { className: dotCls, style: { color: color } }, 'loading...' ) ); break; } var loadingCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'loading', true), _defineProperty(_classNames, 'loading', visible), _defineProperty(_classNames, className, className), _classNames)); return _react2['default'].createElement( 'div', { className: loadingCls, style: style }, visible ? _react2['default'].createElement( 'div', { className: prefix + 'loading-tip' }, tipDom, tip ) : null, _react2['default'].createElement( 'div', { className: prefix + 'loading-component' }, visible ? _react2['default'].createElement('div', { className: prefix + 'loading-masker' }) : null, children ) ); }; return Loading; }(_react2['default'].Component), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * 自定义内容 */ tip: _propTypes2['default'].any, state: _propTypes2['default'].oneOf(['', 'on', 'off']), /** * loading 状态, 默认 true */ visible: _propTypes2['default'].bool, /** * 自定义class */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 动画类型 * @enumdesc 无, icon, fusion矢量, 点圈 */ shape: _propTypes2['default'].oneOf(['', 'flower', 'fusion-reactor', 'dot-circle']), /** * 动画颜色 */ color: _propTypes2['default'].string, /** * 子元素 */ children: _propTypes2['default'].any }, _class.defaultProps = { prefix: 'next-', state: '', //TODO: deprecated in 1.0 release shape: '' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Loading.displayName = 'Loading'; exports['default'] = Loading; module.exports = exports['default']; /***/ }), /***/ 2620: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _nav = __webpack_require__(2621); var _nav2 = _interopRequireDefault(_nav); var _item = __webpack_require__(2622); var _item2 = _interopRequireDefault(_item); var _group = __webpack_require__(2623); var _group2 = _interopRequireDefault(_group); var _subNav = __webpack_require__(2624); var _subNav2 = _interopRequireDefault(_subNav); var _popupItem = __webpack_require__(2625); var _popupItem2 = _interopRequireDefault(_popupItem); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = _nav2['default']; _nav2['default'].Item = _item2['default']; _nav2['default'].Group = _group2['default']; _nav2['default'].SubNav = _subNav2['default']; _nav2['default'].PopupItem = _popupItem2['default']; module.exports = exports['default']; /***/ }), /***/ 2621: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextMenu = __webpack_require__(1453); var _nextMenu2 = _interopRequireDefault(_nextMenu); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Nav * @description 继承自`Menu`的能力请查看`Menu`文档 */ var Nav = (_temp = _class = function (_React$Component) { _inherits(Nav, _React$Component); function Nav() { _classCallCheck(this, Nav); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Nav.prototype.getChildContext = function getChildContext() { return { iconOnly: this.props.iconOnly, popupAlign: this.props.popupAlign, triggerType: this.props.trigger || this.props.triggerType, //TODO: trigger will be remove in 1.0 hasTooltip: this.props.hasTooltip }; }; Nav.prototype.render = function render() { var _classNames; /*eslint-disable */ var _props = this.props, className = _props.className, type = _props.type, style = _props.style, iconOnly = _props.iconOnly, activeDirection = _props.activeDirection, children = _props.children, popupAlign = _props.popupAlign, trigger = _props.trigger, hasArrow = _props.hasArrow, others = _objectWithoutProperties(_props, ['className', 'type', 'style', 'iconOnly', 'activeDirection', 'children', 'popupAlign', 'trigger', 'hasArrow']); /*eslint-enable */ var prefix = this.context.prefix || this.props.prefix; var props = { selectMode: 'single', openMode: 'single' }; // set default activeDirection var realActiveDirection = activeDirection; if (realActiveDirection && (this.props.direction === 'hoz' && (realActiveDirection === 'left' || realActiveDirection === 'right') || this.props.direction === 'ver' && (realActiveDirection === 'top' || realActiveDirection === 'bottom'))) { realActiveDirection = null; } if (!iconOnly && realActiveDirection === undefined) { realActiveDirection = this.props.direction === 'hoz' ? 'bottom' : type === 'line' ? 'right' : 'left'; } if (this.props.direction === 'hoz' || popupAlign === 'outside') { props.openMode = 'multiple'; props.shallowSelect = true; } var cls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'nav', true), _defineProperty(_classNames, prefix + 'nav-' + type, type), _defineProperty(_classNames, '' + this.props.direction, this.props.direction), _defineProperty(_classNames, 'active', realActiveDirection), _defineProperty(_classNames, '' + realActiveDirection, realActiveDirection), _defineProperty(_classNames, 'icononly', iconOnly), _defineProperty(_classNames, 'no-arrow', !hasArrow), _defineProperty(_classNames, className, !!className), _classNames)); return _react2['default'].createElement( 'div', { className: cls, style: style }, _react2['default'].createElement( _nextMenu2['default'], _extends({}, props, others, { className: prefix + 'nav-menu' }), children ) ); }; return Nav; }(_react2['default'].Component), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * 导航类型 * @enumdesc 正常, 主要, 次要, 文字, 线形 */ type: _propTypes2['default'].oneOf(['normal', 'primary', 'secondary', 'text', 'line']), /** * 导航方向 * @enumdesc 水平, 垂直 */ direction: _propTypes2['default'].oneOf(['hoz', 'ver']), /** * 设置组件选中状态的active边方向 * @enumdesc 无, 上, 下, 左, 右 */ activeDirection: _propTypes2['default'].oneOf([null, 'top', 'bottom', 'left', 'right']), /** * Tree 展开时候右侧子item的对齐方式 */ popupAlign: _propTypes2['default'].oneOf(['follow', 'outside']), /** * PopupItem触发方式 */ triggerType: _propTypes2['default'].oneOf(['click', 'hover']), trigger: _propTypes2['default'].oneOf(['click', 'hover']), // TODO: will deprecated in 1.0 release version /** * 自定义class */ className: _propTypes2['default'].string, /** * 控制icon是否展示 */ iconOnly: _propTypes2['default'].bool, /** * 是否有ToolTIps(仅在iconOnly=true时生效) */ hasTooltip: _propTypes2['default'].bool, /** * 是否显示右侧的箭头(仅在iconOnly=true时生效) */ hasArrow: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-', type: 'normal', direction: 'ver', popupAlign: 'follow', hasTooltip: false, hasArrow: true }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.childContextTypes = { iconOnly: _propTypes2['default'].bool, hasTooltip: _propTypes2['default'].bool, popupAlign: _propTypes2['default'].string, triggerType: _propTypes2['default'].string }, _temp); Nav.displayName = 'Nav'; exports['default'] = Nav; module.exports = exports['default']; /***/ }), /***/ 2622: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextMenu = __webpack_require__(1453); var _nextMenu2 = _interopRequireDefault(_nextMenu); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextBalloon = __webpack_require__(1909); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Nav.Item * @description 继承自`Menu.Item`的能力请查看`Menu.Item`文档 */ var Item = (_temp = _class = function (_Menu$Container) { _inherits(Item, _Menu$Container); function Item() { _classCallCheck(this, Item); return _possibleConstructorReturn(this, _Menu$Container.apply(this, arguments)); } Item.prototype.render = function render() { var _classNames; var _props = this.props, children = _props.children, icon = _props.icon, className = _props.className, others = _objectWithoutProperties(_props, ['children', 'icon', 'className']); var prefix = this.context.prefix || this.props.prefix; var props = { hasSelectedIcon: false }; var childrenEl = children; var cls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'nav-item', true), _defineProperty(_classNames, className, !!className), _classNames)); var iconEl = typeof icon === 'string' ? _react2['default'].createElement(_nextIcon2['default'], { type: '' + icon, size: 'xs', className: prefix + 'nav-icon' }) : icon; if (iconEl) { if (this.context.iconOnly && !(others.parent && others.parent.props.mode === 'popup')) { childrenEl = iconEl; props.indentSize = 0; delete others.indentSize; if (this.context.hasTooltip) { var item = _react2['default'].createElement( _nextMenu2['default'].Item, _extends({ ref: 'item' }, props, others, { className: cls }), childrenEl ); return _react2['default'].createElement(_nextBalloon.Tooltip, { trigger: item, align: 'r', text: children }); } } else { childrenEl = _react2['default'].createElement( 'span', null, iconEl, ' ', children ); } } return _react2['default'].createElement( _nextMenu2['default'].Item, _extends({ ref: 'item' }, props, others, { className: cls }), childrenEl ); }; return Item; }(_nextMenu2['default'].Container), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * 自定义图标,可以使用Icon的type, 也可以使用组件`` */ icon: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].node]) }, _class.defaultProps = { prefix: 'next-' }, _class.contextTypes = { iconOnly: _propTypes2['default'].bool, hasTooltip: _propTypes2['default'].bool, prefix: _propTypes2['default'].string }, _temp); exports['default'] = Item; module.exports = exports['default']; /***/ }), /***/ 2623: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextMenu = __webpack_require__(1453); var _nextMenu2 = _interopRequireDefault(_nextMenu); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Nav.Group * @description 继承自`Menu.Group`的能力请查看`Menu.Group`文档 */ var Group = (_temp = _class = function (_Menu$Container) { _inherits(Group, _Menu$Container); function Group() { _classCallCheck(this, Group); return _possibleConstructorReturn(this, _Menu$Container.apply(this, arguments)); } Group.prototype.render = function render() { var _classNames; var _props = this.props, className = _props.className, children = _props.children, others = _objectWithoutProperties(_props, ['className', 'children']); var prefix = this.context.prefix || this.props.prefix; var cls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'nav-group', true), _defineProperty(_classNames, className, !!className), _classNames)); return _react2['default'].createElement( _nextMenu2['default'].Group, _extends({ ref: 'group' }, others, { className: cls }), children ); }; return Group; }(_nextMenu2['default'].Container), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string }, _class.defaultProps = { prefix: 'next-' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); exports['default'] = Group; module.exports = exports['default']; /***/ }), /***/ 2624: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextMenu = __webpack_require__(1453); var _nextMenu2 = _interopRequireDefault(_nextMenu); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Nav.SubNav * @description 继承自`Menu.SubMenu`的能力请查看`Menu.SubMenu`文档 */ var SubNav = (_temp = _class = function (_Menu$Container) { _inherits(SubNav, _Menu$Container); function SubNav() { _classCallCheck(this, SubNav); return _possibleConstructorReturn(this, _Menu$Container.apply(this, arguments)); } SubNav.prototype.render = function render() { var _classNames; var _props = this.props, children = _props.children, label = _props.label, icon = _props.icon, className = _props.className, others = _objectWithoutProperties(_props, ['children', 'label', 'icon', 'className']); var prefix = this.context.prefix || this.props.prefix; var props = { hasSelectedIcon: false, label: label }; if (this.context.triggerType) { props.triggerType = this.context.triggerType; } // slip 模式,强制设置为hover if (this.context.popupAlign === 'outside') { props.align = 'outside'; props.mode = 'popup'; props.triggerType = 'hover'; if (this.props.mode !== 'popup') { props.triggerType = 'click'; } } var iconEl = typeof icon === 'string' ? _react2['default'].createElement(_nextIcon2['default'], { type: '' + icon, size: 'xs' }) : icon; if (this.context.iconOnly) { props.label = iconEl ? iconEl : _react2['default'].createElement('span', null); } else { props.label = iconEl ? _react2['default'].createElement( 'span', null, iconEl, ' ', label ) : label; } var cls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'nav-subnav', true), _defineProperty(_classNames, prefix + 'nav-item', true), _defineProperty(_classNames, className, !!className), _classNames)); return _react2['default'].createElement( _nextMenu2['default'].SubMenu, _extends({ ref: 'submenu' }, props, others, { className: cls }), children ); }; return SubNav; }(_nextMenu2['default'].Container), _class._subMenu = true, _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * 自定义图标,可以使用Icon的type, 也可以使用组件`` */ icon: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].node]) }, _class.defaultProps = { prefix: 'next-' }, _class.contextTypes = { popupAlign: _propTypes2['default'].string, iconOnly: _propTypes2['default'].bool, triggerType: _propTypes2['default'].string, prefix: _propTypes2['default'].string }, _temp); exports['default'] = SubNav; module.exports = exports['default']; /***/ }), /***/ 2625: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextMenu = __webpack_require__(1453); var _nextMenu2 = _interopRequireDefault(_nextMenu); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Nav.PopupItem * @description 继承自`Menu.PopupItem`的能力请查看`Menu.PopupItem`文档 */ var PopupItem = (_temp = _class = function (_Menu$Container) { _inherits(PopupItem, _Menu$Container); function PopupItem() { _classCallCheck(this, PopupItem); return _possibleConstructorReturn(this, _Menu$Container.apply(this, arguments)); } PopupItem.prototype.render = function render() { var _classNames; var _props = this.props, children = _props.children, icon = _props.icon, label = _props.label, className = _props.className, others = _objectWithoutProperties(_props, ['children', 'icon', 'label', 'className']); var prefix = this.context.prefix || this.props.prefix; var props = { hasSelectedIcon: false, autoWidth: true }; if (this.context.triggerType) { props.triggerType = this.context.triggerType; } var iconEl = typeof icon === 'string' ? _react2['default'].createElement(_nextIcon2['default'], { type: '' + icon, size: 'xs' }) : icon; if (iconEl) { if (this.context.iconOnly) { props.label = iconEl; } else { props.label = _react2['default'].createElement( 'span', null, iconEl, ' ', label ); } } else { props.label = label; } var cls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'nav-popup-item', true), _defineProperty(_classNames, prefix + 'nav-item', true), _defineProperty(_classNames, className, !!className), _classNames)); return _react2['default'].createElement( _nextMenu2['default'].PopupItem, _extends({ ref: 'popup' }, props, others, { className: cls }), children ); }; return PopupItem; }(_nextMenu2['default'].Container), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * 自定义图标,可以使用Icon的type, 也可以使用组件`` */ icon: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].node]) }, _class.defaultProps = { prefix: 'next-' }, _class.contextTypes = { triggerType: _propTypes2['default'].string, iconOnly: _propTypes2['default'].bool, prefix: _propTypes2['default'].string }, _temp); exports['default'] = PopupItem; module.exports = exports['default']; /***/ }), /***/ 2626: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _index = __webpack_require__(2285); var _index2 = _interopRequireDefault(_index); var _group = __webpack_require__(2287); var _group2 = _interopRequireDefault(_group); var _index3 = __webpack_require__(2633); var _index4 = _interopRequireDefault(_index3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = _index4['default']; _index4['default'].Group = _group2['default']; _index4['default'].Item = _index2['default']; module.exports = exports['default']; /***/ }), /***/ 2627: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _item = __webpack_require__(1809); var _item2 = _interopRequireDefault(_item); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Slip = function (_Item) { _inherits(Slip, _Item); function Slip(props, context) { _classCallCheck(this, Slip); var _this = _possibleConstructorReturn(this, _Item.call(this, props, context)); var prefix = context.prefix; _this.activeClassName = prefix + 'navigation-item-active'; return _this; } // onMouseEnter默认处理函数 // 调用上层navigation onItemMouseEnter 方法 Slip.prototype.onMouseEnter = function onMouseEnter() { var _props = this.props, onMouseEnter = _props.onMouseEnter, itemid = _props.itemid; var argv = [].slice.call(arguments), context = this.context.navigation; argv = [itemid, this].concat(argv); onMouseEnter.apply(this, [itemid, this].concat(argv)); context.onItemMouseEnter.apply(context, argv); }; /** * onMouseMove默认处理函数;调用上层navigation onItemMouseMove 方法 * @method onMouseMove */ Slip.prototype.onMouseMove = function onMouseMove() { var _props2 = this.props, onMouseMove = _props2.onMouseMove, itemid = _props2.itemid; var argv = [].slice.call(arguments), context = this.context.navigation; argv = [itemid, this].concat(argv); onMouseMove.apply(this, [itemid, this].concat(argv)); context.onItemMouseMove.apply(context, argv); }; /** * onMouseLeave默认处理函数;调用上层navigation onItemMouseLeave 方法 * @method onMouseLeave */ Slip.prototype.onMouseLeave = function onMouseLeave() { var _props3 = this.props, onMouseLeave = _props3.onMouseLeave, itemid = _props3.itemid; var argv = [].slice.call(arguments), context = this.context.navigation; argv = [itemid, this].concat(argv); onMouseLeave.apply(this, [itemid, this].concat(argv)); context.onItemMouseLeave.apply(context, argv); }; Slip.prototype.renderChildren = function renderChildren() {}; Slip.prototype.render = function render() { var selected = this.props.selected; var className = void 0; if (selected) { className = this.activeClassName; } return _Item.prototype.render.call(this, className); }; return Slip; }(_item2['default']); exports['default'] = Slip; module.exports = exports['default']; /***/ }), /***/ 2628: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _item = __webpack_require__(1809); var _item2 = _interopRequireDefault(_item); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Tree = function (_Item) { _inherits(Tree, _Item); function Tree(props, context) { _classCallCheck(this, Tree); var _this = _possibleConstructorReturn(this, _Item.call(this, props, context)); var prefix = context.prefix + 'navigation'; _this.openedClassName = prefix + '-item-opened'; _this.leafAtFrontClassName = prefix + '-item-front'; _this.treeTitleClassName = prefix + '-item-tree-title'; _this.activeDirectionClassName = prefix + '-item-selected'; _this.state = { opened: _this.props.opened }; return _this; } Tree.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('opened' in nextProps) { this.setState({ opened: nextProps.opened }); } }; // 处理tree触发click事件函数 // 根据是否有hasChildren属性判断是select事件还是fold/unfold事件 Tree.prototype.onClick = function onClick(e) { var _props = this.props, hasChildren = _props.hasChildren, onClick = _props.onClick, onSelect = _props.onSelect, onFold = _props.onFold, onUnFold = _props.onUnFold, selected = _props.selected, selectedStyle = _props.selectedStyle, itemid = _props.itemid; var context = this.context, prefix = context.prefix, navigation = context.navigation, rootNavigation = context.rootNavigation, accordion = context.accordion, argv = [itemid, this].concat([].slice.call(arguments)), index = void 0, cls = e.target.className; if (typeof cls === 'string') { if (cls.indexOf(prefix + 'navigation-item-leaf-icon') === -1) { onClick.apply(this, argv); context.onItemClick.apply(context.rootNavigation, argv); } } if (hasChildren === 'tree') { this.setState({ opened: !this.state.opened }); if (this.state.opened) { onFold.apply(this, argv); context.onItemFold.apply(context.rootNavigation, argv); // 手风琴逻辑 if (accordion) { if (navigation) { if (navigation.state.openedKey === itemid) { navigation.state.openedKey = null; } } } } else { // 手风琴逻辑 if (accordion) { if (navigation) { if (navigation.state.openedKey === itemid) { navigation.state.openedKey = null; } else { if (navigation.state.openedKey) { index = rootNavigation.state.openedKeys.indexOf(navigation.state.openedKey); if (index > -1) { rootNavigation.state.openedKeys.splice(index, 1); navigation.state.openedKey = itemid; } } else { navigation.state.openedKey = itemid; } } } } onUnFold.apply(this, argv); context.onItemUnFold.apply(context.rootNavigation, argv); } } else { if (!selected) { onSelect.apply(this, argv); if (selectedStyle) { context.onItemSelect.apply(context.rootNavigation, argv); } } } e.stopPropagation(); }; // 渲染子组件图标函数 Tree.prototype.renderLeafIcon = function renderLeafIcon() { var hasChildren = this.props.hasChildren; var cmp = void 0; if (hasChildren) { cmp = _Item.prototype.renderLeafIcon.call(this); if (cmp) { return _react2['default'].cloneElement(cmp, { onClick: function onClick(e) { e.preventDefault(); } }); } } }; Tree.prototype.render = function render() { var _classNames; var _props2 = this.props, leafAtFront = _props2.leafAtFront, selected = _props2.selected, hasChildren = _props2.hasChildren; var activeDirection = this.props.activeDirection; var context = this.context, activeClassName = void 0; activeDirection = activeDirection || context.activeDirection; activeClassName = this.activeDirectionClassName + '-' + activeDirection; var name = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, this.selectedClassName, selected), _defineProperty(_classNames, this.openedClassName, this.state.opened), _defineProperty(_classNames, activeClassName, activeDirection && selected), _defineProperty(_classNames, this.leafAtFrontClassName, leafAtFront), _defineProperty(_classNames, this.treeTitleClassName, hasChildren), _classNames)); return _Item.prototype.render.call(this, name); }; return Tree; }(_item2['default']); exports['default'] = Tree; module.exports = exports['default']; /***/ }), /***/ 2629: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _common = __webpack_require__(1915); var _common2 = _interopRequireDefault(_common); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Line = function (_Common) { _inherits(Line, _Common); function Line(props, context) { _classCallCheck(this, Line); var _this = _possibleConstructorReturn(this, _Common.call(this, props, context)); _this.menuShowClassName = context.prefix + 'navigation-item-children-menu-show'; return _this; } Line.prototype.render = function render() { var focused = this.props.focused; var className = void 0; if (focused) { className = this.menuShowClassName; } return _Common.prototype.render.call(this, className); }; return Line; }(_common2['default']); exports['default'] = Line; module.exports = exports['default']; /***/ }), /***/ 2630: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _common = __webpack_require__(1915); var _common2 = _interopRequireDefault(_common); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Text = function (_Common) { _inherits(Text, _Common); function Text(props, context) { _classCallCheck(this, Text); var _this = _possibleConstructorReturn(this, _Common.call(this, props, context)); _this.menuShowClassName = context.prefix + 'navigation-item-children-menu-show'; return _this; } Text.prototype.render = function render() { var focused = this.props.focused; var className = void 0; if (focused) { className = this.menuShowClassName; } return _Common.prototype.render.call(this, className); }; return Text; }(_common2['default']); exports['default'] = Text; module.exports = exports['default']; /***/ }), /***/ 2631: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _common = __webpack_require__(1915); var _common2 = _interopRequireDefault(_common); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Filling = function (_Common) { _inherits(Filling, _Common); function Filling(props, context) { _classCallCheck(this, Filling); var _this = _possibleConstructorReturn(this, _Common.call(this, props, context)); _this.menuShowClassName = context.prefix + 'navigation-item-children-menu-show'; return _this; } Filling.prototype.render = function render() { var focused = this.props.focused; var className = void 0; if (focused) { className = this.menuShowClassName; } return _Common.prototype.render.call(this, className); }; return Filling; }(_common2['default']); exports['default'] = Filling; module.exports = exports['default']; /***/ }), /***/ 2632: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _normal = __webpack_require__(2286); var _normal2 = _interopRequireDefault(_normal); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var IconOnly = function (_Normal) { _inherits(IconOnly, _Normal); function IconOnly() { _classCallCheck(this, IconOnly); return _possibleConstructorReturn(this, _Normal.apply(this, arguments)); } IconOnly.prototype.renderText = function renderText() {}; IconOnly.prototype.renderLeafIcon = function renderLeafIcon() {}; return IconOnly; }(_normal2['default']); exports['default'] = IconOnly; module.exports = exports['default']; /***/ }), /***/ 2633: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _line = __webpack_require__(2634); var _line2 = _interopRequireDefault(_line); var _text = __webpack_require__(2635); var _text2 = _interopRequireDefault(_text); var _filling = __webpack_require__(2636); var _filling2 = _interopRequireDefault(_filling); var _tree = __webpack_require__(2637); var _tree2 = _interopRequireDefault(_tree); var _slip = __webpack_require__(2638); var _slip2 = _interopRequireDefault(_slip); var _normal = __webpack_require__(2288); var _normal2 = _interopRequireDefault(_normal); var _icononly = __webpack_require__(2639); var _icononly2 = _interopRequireDefault(_icononly); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var NavigationMain = (_temp = _class = function (_React$Component) { _inherits(NavigationMain, _React$Component); function NavigationMain(props, context) { _classCallCheck(this, NavigationMain); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); if (!context.main) { _this.state = { selectedKey: props.selectedKey, openedKeys: props.openedKeys, type: props.type, nestingPath: [] }; } return _this; } NavigationMain.prototype.getChildContext = function getChildContext() { return { main: this.context.main || this }; }; NavigationMain.prototype.collectKey = function collectKey(children) { var _this2 = this; var openedKeys = void 0, selectedKey = void 0, _handle = void 0; _handle = function handle(children) { _react2['default'].Children.forEach(children, function (child, i) { if (child === null || child === undefined) { return _this2; } if (typeof child.type === 'function') { if (child.type.componentMark === 'item-main') { if (child.props.opened) { openedKeys = openedKeys || []; openedKeys.push(child.props.itemid || child.key); } if (child.props.selected) { selectedKey = child.props.itemid || child.key; } } } if (child.props) { if (child.props.children) { return _handle(child.props.children); } } }); }; _handle(children); return { selectedKey: selectedKey, openedKeys: openedKeys }; }; NavigationMain.prototype.componentWillMount = function componentWillMount() { var key = void 0; if (!this.context.main) { key = this.collectKey(this.props.children); if (!this.state.selectedKey) { this.state.selectedKey = key.selectedKey; } if (!this.state.openedKeys) { this.state.openedKeys = key.openedKeys; } } }; NavigationMain.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var key = void 0, state = {}, recently = void 0, current = void 0; if (!this.context.main) { key = this.collectKey(nextProps.children); if (nextProps.selectedKey) { state.selectedKey = nextProps.selectedKey; } else { state.selectedKey = key.selectedKey; } if (nextProps.openedKeys) { state.openedKeys = nextProps.openedKeys; } else { current = key.openedKeys; recently = this.collectKey(this.props.children).openedKeys; if (!(current === recently)) { if (current === undefined || recently === undefined) { state.openedKeys = current || []; } else { if (!(current.length === recently.length)) { current = current.sort(); recently = recently.sort(); if (current.some(function (key, i) { return !(key === recently[i]); })) { state.openedKeys = current; } } } } } if (nextProps.type) { state.type = nextProps.type; } this.setState(state); if (nextProps.type) { if (!(this.state.type === nextProps.type)) { this.onChangeType(this.state.type, nextProps.type); } } } }; NavigationMain.prototype.onChangeType = function onChangeType(type, nextType) { var hasTree = type === 'tree' || nextType === 'tree', toTree = hasTree ? nextType === 'tree' : false, state = this.state, length = state.nestingPath ? state.nestingPath.length : 0, item = void 0; if (hasTree) { if (state.nestingPath) { if (state.nestingPath.length > 0) { if (toTree) { item = state.nestingPath[length - 1]; } else { item = state.nestingPath[0]; } if (item.props.selectedStyle) { if (length === 1) { if (item.props.hasChildren) { return this.setState({ selectedKey: null }); } } this.setState({ selectedKey: item.props.itemid }); } } } } }; NavigationMain.prototype.cloneProperty = function cloneProperty() { var props = this.props, newProps = {}, empty = function empty() {}, onSelect = void 0, onUnFold = void 0, onFold = void 0; Object.keys(props).forEach(function (key) { newProps[key] = props[key]; }); onSelect = newProps['onSelect'] || empty; onUnFold = newProps['onUnFold'] || empty; onFold = newProps['onFold'] || empty; newProps['onSelect'] = function (itemid, item) { var selectedStyle = item.props.selectedStyle, state = this.state; state.nestingPath = item.nestingPath; if (selectedStyle) { state.selectedKey = itemid; } onSelect.apply(null, arguments); }.bind(this); newProps['onFold'] = function (itemid) { if (!this.state.openedKeys) { this.state.openedKeys = []; } var index = this.state.openedKeys.indexOf(itemid); if (index > -1) { this.state.openedKeys.splice(index, 1); this.setState({ openedKeys: this.state.openedKeys }); } onFold.apply(null, arguments); }.bind(this); newProps['onUnFold'] = function (itemid) { if (!this.state.openedKeys) { this.state.openedKeys = []; } var hasThisKey = this.state.openedKeys.indexOf(itemid) > -1; if (!hasThisKey) { this.state.openedKeys.push(itemid); } this.setState({ openedKeys: this.state.openedKeys }); onUnFold.apply(null, arguments); }.bind(this); newProps['selectedKey'] = this.state.selectedKey; newProps['openedKeys'] = this.state.openedKeys; newProps['type'] = this.state.type; return newProps; }; NavigationMain.prototype.render = function render() { var context = this.context; var type = context.type || this.props.type; var component = void 0; var props = context.main ? this.props : this.cloneProperty(); type = type.toLowerCase(); component = NavigationMain.typeMap[type]; if (component) { return _react2['default'].createElement(component, props, this.props.children); } }; return NavigationMain; }(_react2['default'].Component), _class.componentMark = 'navigation-main', _class.typeMap = { line: _line2['default'], text: _text2['default'], slip: _slip2['default'], tree: _tree2['default'], normal: _normal2['default'], filling: _filling2['default'], icononly: _icononly2['default'] }, _temp); NavigationMain.displayName = 'NavigationMain'; exports['default'] = NavigationMain; NavigationMain.propTypes = { type: _propTypes2['default'].string, children: _propTypes2['default'].any }; NavigationMain.defaultProps = { type: 'text' }; NavigationMain.contextTypes = { type: _propTypes2['default'].string, main: _propTypes2['default'].any }; NavigationMain.childContextTypes = { main: _propTypes2['default'].any }; module.exports = exports['default']; /***/ }), /***/ 2634: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _vertical = __webpack_require__(1916); var _vertical2 = _interopRequireDefault(_vertical); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Line = function (_Vertical) { _inherits(Line, _Vertical); function Line() { _classCallCheck(this, Line); return _possibleConstructorReturn(this, _Vertical.apply(this, arguments)); } return Line; }(_vertical2['default']); exports['default'] = Line; Line.defaultProps.type = 'line'; module.exports = exports['default']; /***/ }), /***/ 2635: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _vertical = __webpack_require__(1916); var _vertical2 = _interopRequireDefault(_vertical); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Text = function (_Vertical) { _inherits(Text, _Vertical); function Text() { _classCallCheck(this, Text); return _possibleConstructorReturn(this, _Vertical.apply(this, arguments)); } return Text; }(_vertical2['default']); exports['default'] = Text; Text.defaultProps.type = 'text'; module.exports = exports['default']; /***/ }), /***/ 2636: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _vertical = __webpack_require__(1916); var _vertical2 = _interopRequireDefault(_vertical); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Filling = function (_Vertical) { _inherits(Filling, _Vertical); function Filling() { _classCallCheck(this, Filling); return _possibleConstructorReturn(this, _Vertical.apply(this, arguments)); } return Filling; }(_vertical2['default']); exports['default'] = Filling; Filling.defaultProps.type = 'filling'; module.exports = exports['default']; /***/ }), /***/ 2637: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _navigation = __webpack_require__(1810); var _navigation2 = _interopRequireDefault(_navigation); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Tree = function (_Navigation) { _inherits(Tree, _Navigation); function Tree(props, context) { _classCallCheck(this, Tree); var _this = _possibleConstructorReturn(this, _Navigation.call(this, props, context)); _this.state.openedKeys = _this.props.openedKeys || []; _this.state.openedKey = null; _this.theSameLevelKeys = []; return _this; } // 由item子组件click触发select处理函数 // 分局子组件selected状态决定是否调用该处理函数 Tree.prototype.onItemSelect = function onItemSelect(itemid) { if (itemid === this.state.itemid) { return this; } _Navigation.prototype.onItemSelect.apply(this, arguments); if (this.props.selectedStyle) { this.setState({ selectedKey: itemid }); } }; Tree.prototype.componentWillMount = function componentWillMount() { var branchLevel = this.context.branchLevel; this.context.branchLevel = branchLevel + 1; this.branchLevel = this.context.branchLevel; }; Tree.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var state = {}; _Navigation.prototype.componentWillReceiveProps.call(this, nextProps); if (nextProps.openedKeys) { state.openedKeys = nextProps.openedKeys; } this.setState(state); }; // 折叠处理函数 // 仅限Tree组件事件 Tree.prototype.onItemFold = function onItemFold(itemid) { var argv = [].slice.call(arguments); var index = this.state.openedKeys.indexOf(itemid); if (index > -1) { this.state.openedKeys.splice(index, 1); } argv.splice(2, 0, this); this.props.onFold.apply(this, argv); }; // 展开处理函数 // 仅限Tree组件 Tree.prototype.onItemUnFold = function onItemUnFold(itemid) { var argv = [].slice.call(arguments); var hasThisKey = this.state.openedKeys.indexOf(itemid) > -1; if (!hasThisKey) { this.state.openedKeys.push(itemid); } argv.splice(2, 0, this); this.props.onUnFold.apply(this, argv); }; /** * 克隆子组件属性值;根据状态设置新的属性值;一般用来处理selected、opened、focused属性 * 克隆子组件函数;过滤掉undefined,null情况 * @method cloneChildProperty * @return {Object} */ Tree.prototype.cloneChildProperty = function cloneChildProperty(child, key, _cloneChildProperty) { var props = _Navigation.prototype.cloneChildProperty.call(this, child, key, _cloneChildProperty), isMount = this.isMount, context = this.context, navigation = context.rootNavigation || this, hasOpenedKey = context.openedKeys || this.props.openedKeys, opened = void 0, state = void 0; state = navigation ? navigation.getRootState() : this.state; if (this.theSameLevelKeys.indexOf(key) === -1) { this.theSameLevelKeys.push(key); } if (!isMount) { if (!hasOpenedKey) { if (typeof child.props.opened === 'string') { if (child.props.opened === 'true') { state.openedKeys.push(key); this.state.openedKey = key; } } else { if (child.props.opened) { state.openedKeys.push(key); this.state.openedKey = key; } } } } if (state.openedKeys.indexOf(key) > -1) { opened = true; this.state.openedKey = key; } else { opened = false; } props.opened = opened; props.branchLevel = this.branchLevel; return props; }; return Tree; }(_navigation2['default']); exports['default'] = Tree; Tree.defaultProps.type = 'tree'; module.exports = exports['default']; /***/ }), /***/ 2638: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _navigation = __webpack_require__(1810); var _navigation2 = _interopRequireDefault(_navigation); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Slip = function (_Navigation) { _inherits(Slip, _Navigation); function Slip(props, context) { _classCallCheck(this, Slip); var _this = _possibleConstructorReturn(this, _Navigation.call(this, props, context)); var prefix = context.prefix; prefix = (prefix || props.prefix) + 'navigation'; _this.containerClassName = prefix + '-slip-container'; _this.mainClassName = prefix + '-slip-main'; _this.selectedClassName = prefix + '-slip-selected'; _this.state.content = null; return _this; } Slip.prototype.setContent = function setContent(content) { this.setState({ content: content }); }; Slip.prototype.onMainMouseLeave = function onMainMouseLeave() { this.setState({ selectedKey: null, content: null }); }; Slip.prototype.onItemSelect = function onItemSelect(itemid, item) { var onSelect = this.props.onSelect; var content = item.props.childrenContent, root = this.context.rootNavigation; this.setState({ selectedKey: itemid, content: content }); onSelect.apply(this, arguments); if (root) { root.props.onSelect.apply(root, arguments); } }; Slip.prototype.onItemMouseEnter = function onItemMouseEnter(itemid) { var context = this.context.rootNavigation || this, argv = [].slice.call(arguments); argv.splice(2, 0, this); _Navigation.prototype.onItemMouseEnter.apply(this, argv); if (itemid === this.state.selectedKey) { return this; } context.onItemSelect.apply(this, argv); }; Slip.prototype.onItemMouseLeave = function onItemMouseLeave() { var argv = [].slice.call(arguments); argv.splice(2, 0, this); this.props.onMouseMove.apply(this, argv); }; /** * 克隆item属性数据;根据状态处理props对应的值 * @method cloneChildProperty * @return {Object} */ Slip.prototype.cloneChildProperty = function cloneChildProperty(child, key) { var state = void 0, isMount = this.isMount; state = this.state; if (!isMount) { if (child.props.selected) { state.selectedKey = key; } } return { key: key, itemid: key, childrenContent: child.props.children, selected: !isMount ? child.props.selected : key === state.selectedKey, hasChildren: child.props.children ? this.context.type || this.props.type : undefined }; }; /** * 克隆container * @method cloneContainer * @return {Object} */ Slip.prototype.cloneContainer = function cloneContainer() { var _classNames; var container = this.props.container; var classes = void 0; if (!container) { return undefined; } classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, this.containerClassName, true), _defineProperty(_classNames, container.props.className, !!container.props.className), _classNames)); return _react2['default'].cloneElement(container, { className: classes }, this.state.content); }; /** * 渲染container * @method renderContainer * @return {Object} */ Slip.prototype.renderContainer = function renderContainer() { var container = this.cloneContainer(); if (container) { return container; } return _react2['default'].createElement( 'div', { className: this.containerClassName }, this.state.content ); }; Slip.prototype.render = function render() { var _classNames2; var classes = void 0, eventsBind = void 0; eventsBind = { onMouseLeave: this.onMainMouseLeave.bind(this) }; classes = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, this.mainClassName, true), _defineProperty(_classNames2, this.selectedClassName, !!this.state.selectedKey), _classNames2)); return _react2['default'].createElement( 'div', _extends({ style: this.props.style, className: classes }, eventsBind), _Navigation.prototype.render.call(this), this.renderContainer() ); }; return Slip; }(_navigation2['default']); exports['default'] = Slip; Slip.defaultProps.type = 'slip'; module.exports = exports['default']; /***/ }), /***/ 2639: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _normal = __webpack_require__(2288); var _normal2 = _interopRequireDefault(_normal); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Icononly = function (_Normal) { _inherits(Icononly, _Normal); function Icononly() { _classCallCheck(this, Icononly); return _possibleConstructorReturn(this, _Normal.apply(this, arguments)); } return Icononly; }(_normal2['default']); exports['default'] = Icononly; Icononly.defaultProps.type = 'icononly'; module.exports = exports['default']; /***/ }), /***/ 2640: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _notice = __webpack_require__(2641); var _notice2 = _interopRequireDefault(_notice); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = _notice2['default']; module.exports = exports['default']; /***/ }), /***/ 2641: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextAnimate = __webpack_require__(1503); var _nextAnimate2 = _interopRequireDefault(_nextAnimate); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; var typesMap = { prompt: 'prompt', warning: 'warning', system: 'warning' }; var timer = void 0; var styleHeight = void 0; var noder = void 0; var oneTransitionEnd = function oneTransitionEnd(node, done, time) { // 一个页面多个 Notice 的时候,只有最后一个执行了 setTimeout if (timer && noder === node) { clearTimeout(timer); } noder = node; timer = setTimeout(function () { ['notice-enter', 'notice-enter-active', 'notice-leave', 'notice-leave-active'].forEach(function (className) { _nextDom.classList.removeClass(node, className); }); _nextDom.style.set(node, 'height', styleHeight); done(); }, time); }; var enterHook = function enterHook(node, done) { styleHeight = node.style.height; var height = node.offsetHeight + 'px'; _nextDom.classList.addClass(node, 'notice-enter'); _nextDom.style.set(node, 'height', 0); setTimeout(function () { _nextDom.classList.addClass(node, 'notice-enter-active'); _nextDom.style.set(node, 'height', height); }, 1); oneTransitionEnd(node, done, 310); }; var leaveHook = function leaveHook(node, done) { styleHeight = node.style.height; var height = node.offsetHeight + 'px'; _nextDom.classList.addClass(node, 'notice-leave'); _nextDom.style.set(node, 'height', height); setTimeout(function () { _nextDom.classList.addClass(node, 'notice-leave-active'); _nextDom.style.set(node, 'height', 0); }, 1); oneTransitionEnd(node, done, 260); }; /** * Notice */ var Notice = (_temp = _class = function (_Component) { _inherits(Notice, _Component); function Notice(props, context) { _classCallCheck(this, Notice); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { visible: 'visible' in props ? props.visible : props.defaultVisible }; _this.handleClose = _this.handleClose.bind(_this); return _this; } Notice.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('visible' in nextProps) { this.setState({ visible: nextProps.visible }); } }; Notice.prototype.handleClose = function handleClose() { if (!('visible' in this.props)) { this.setState({ visible: false }); } var _props = this.props, onClose = _props.onClose, afterClose = _props.afterClose, animation = _props.animation; onClose(); if (!_nextUtil.support.transition || !animation) { afterClose(); } }; Notice.prototype.render = function render() { var _cx; var prefix = this.context.prefix || this.props.prefix; /* eslint-disable no-unused-vars */ var _props2 = this.props, propsPrefix = _props2.prefix, type = _props2.type, shape = _props2.shape, size = _props2.size, className = _props2.className, title = _props2.title, children = _props2.children, visible = _props2.visible, defaultVisible = _props2.defaultVisible, closable = _props2.closable, onClose = _props2.onClose, afterClose = _props2.afterClose, specifcIconType = _props2.iconType, animation = _props2.animation, others = _objectWithoutProperties(_props2, ['prefix', 'type', 'shape', 'size', 'className', 'title', 'children', 'visible', 'defaultVisible', 'closable', 'onClose', 'afterClose', 'iconType', 'animation']); /* eslint-enable no-unused-vars */ var noticePrefix = prefix + 'notice'; var iconType = specifcIconType || typesMap[type]; var classes = (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, noticePrefix, true), _defineProperty(_cx, noticePrefix + '-' + type, type), _defineProperty(_cx, noticePrefix + '-' + shape, shape), _defineProperty(_cx, noticePrefix + '-' + size, size), _defineProperty(_cx, noticePrefix + '-title-content', !!title), _defineProperty(_cx, noticePrefix + '-only-content', !title && !!children), _defineProperty(_cx, className, className), _cx)); var notice = this.state.visible ? _react2['default'].createElement( 'div', _extends({}, others, { className: classes }), _react2['default'].createElement(_nextIcon2['default'], { className: noticePrefix + '-symbol', type: iconType }), closable && shape !== 'addon' && _react2['default'].createElement( 'a', { href: 'javascript:;', className: noticePrefix + '-close', onClick: this.handleClose }, _react2['default'].createElement(_nextIcon2['default'], { type: 'close' }) ), title && _react2['default'].createElement( 'div', { className: noticePrefix + '-title' }, title ), children && _react2['default'].createElement( 'div', { className: noticePrefix + '-content' }, children ) ) : null; if (_nextUtil.support.transition && animation) { var hooks = { appear: enterHook, enter: enterHook, leave: leaveHook }; return _react2['default'].createElement( _nextAnimate2['default'], { useTransition: true, animation: hooks, afterLeave: afterClose }, notice ); } return notice; }; return Notice; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 提示类型 */ type: _propTypes2['default'].oneOf(['prompt', 'warning', 'system']), /** * 外观形状 */ shape: _propTypes2['default'].oneOf(['standalone', 'addon']), /** * 尺寸大小 */ size: _propTypes2['default'].oneOf(['medium', 'large']), /** * 标题 */ title: _propTypes2['default'].node, /** * 内容 */ children: _propTypes2['default'].node, /** * 默认是否显示 */ defaultVisible: _propTypes2['default'].bool, /** * 当前是否显示 */ visible: _propTypes2['default'].bool, /** * 是否可关闭 */ closable: _propTypes2['default'].bool, /** * 关闭时的回调函数 */ onClose: _propTypes2['default'].func, /** * 关闭后(动画播放完毕)的回调函数 */ afterClose: _propTypes2['default'].func, /** * 自定义图标类型,支持Icon列表请参考[Icon组件](http://fusion-demo.alibaba-inc.com/components?type=next&themeId=next&name=icon#Icon-0) */ iconType: _propTypes2['default'].string, /** * 是否开启动画 */ animation: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-', type: 'prompt', shape: 'standalone', size: 'medium', title: '', defaultVisible: true, closable: false, onClose: noop, afterClose: noop, animation: true }, _temp); Notice.displayName = 'Notice'; exports['default'] = Notice; module.exports = exports['default']; /***/ }), /***/ 2642: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextInput = __webpack_require__(1448); var _nextInput2 = _interopRequireDefault(_nextInput); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } function noop() {} function preventDefault(e) { e.preventDefault(); } /** NumberPicker */ var NumberPicker = (_temp = _class = function (_React$Component) { _inherits(NumberPicker, _React$Component); function NumberPicker(props) { _classCallCheck(this, NumberPicker); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); var value = void 0; if ('value' in props) { value = props.value; } else { value = props.defaultValue; } value = _this.toPrecisionAsStep(value); _this.state = { value: value, focused: props.autoFocus }; return _this; } NumberPicker.prototype.componentDidMount = function componentDidMount() { this.componentDidUpdate(); }; NumberPicker.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { if (nextProps.value === undefined) { this.setState({ value: '' }); return; } var value = this.toPrecisionAsStep(nextProps.value); this.setState({ value: value }); } }; NumberPicker.prototype.componentDidUpdate = function componentDidUpdate() { if (this.state.focused && document.activeElement !== this.refs.input.getInputNode()) { this.refs.input.getInputNode().focus(); } }; NumberPicker.prototype.onChange = function onChange(value, e) { if (this.props.editable === true) { value = value.trim(); // ignore space if (this.state.value === value) { return; } // in case of autoCorrect ('0.'=>0, '0.0'=>0) , we have these steps if (value) { // ignore when input start form '-' if (value === '-' || this.state.value === '-') { this.setState({ value: value }); return; } // ignore when next value = last value. // ps: Number('0.')=0 ; Number('0.0')=0; // but take care of Number('')=0; if (Number(this.state.value) === Number(value)) { this.setState({ value: value }); return; } // ignore when value < min (because number is inputted one by one) if (!isNaN(value) && Number(value) < this.props.min) { this.setState({ value: value }); return; } } this.setInputValue(value, e); } }; NumberPicker.prototype.onCorrect = function onCorrect(currentValue, oldValue) { this.props.onCorrect({ currentValue: currentValue, oldValue: oldValue }); }; NumberPicker.prototype.onKeyDown = function onKeyDown(e) { var _props; if (e.keyCode === 38) { this.up(e); } else if (e.keyCode === 40) { this.down(e); } for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } (_props = this.props).onKeyDown.apply(_props, [e].concat(args)); }; NumberPicker.prototype.onFocus = function onFocus() { var _props2; this.setState({ focused: true }); (_props2 = this.props).onFocus.apply(_props2, arguments); }; NumberPicker.prototype.onBlur = function onBlur(e) { var _props3; this.setState({ focused: false }); var value = this.getCurrentValidValue(e.target.value.trim()); if (this.state.value !== value) { this.setValue(value, e); } for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { args[_key2 - 1] = arguments[_key2]; } (_props3 = this.props).onBlur.apply(_props3, [e].concat(args)); }; NumberPicker.prototype.onStepMouseDown = function onStepMouseDown(e) { e.preventDefault(); var value = this.getCurrentValidValue(this.state.value); this.setState({ value: value }); }; NumberPicker.prototype.getCurrentValidValue = function getCurrentValidValue(value) { var val = value; var props = this.props; if (val === '') { val = ''; } else if (!isNaN(val)) { val = Number(val); if (val < props.min) { val = props.min; } if (val > props.max) { val = props.max; } } else { val = this.state.value; } var correctValue = this.toPrecisionAsStep(val); if ('' + correctValue !== '' + value) { this.onCorrect(correctValue, value); } return correctValue; }; NumberPicker.prototype.setValue = function setValue(v, e) { if (!('value' in this.props)) { this.setState({ value: v }); } this.props.onChange(isNaN(v) || v === '' ? undefined : v, e); }; NumberPicker.prototype.setInputValue = function setInputValue(v, e) { var value = this.getCurrentValidValue(v); this.setValue(value, e); }; NumberPicker.prototype.getPrecision = function getPrecision() { var props = this.props; var stepString = props.step.toString(); if (stepString.indexOf('e-') >= 0) { return parseInt(stepString.slice(stepString.indexOf('e-')), 10); } var precision = 0; if (stepString.indexOf('.') >= 0) { precision = stepString.length - stepString.indexOf('.') - 1; } return precision; }; NumberPicker.prototype.getPrecisionFactor = function getPrecisionFactor() { var precision = this.getPrecision(); return Math.pow(10, precision); }; NumberPicker.prototype.toPrecisionAsStep = function toPrecisionAsStep(num) { if (isNaN(num) || num === '') { return num; } var precision = this.getPrecision(); return Number(Number(num).toFixed(precision)); }; NumberPicker.prototype.upStep = function upStep(val) { var _props4 = this.props, step = _props4.step, min = _props4.min; var precisionFactor = this.getPrecisionFactor(); var result = void 0; if (typeof val === 'number') { result = (precisionFactor * val + precisionFactor * step) / precisionFactor; } else { result = min === -Infinity ? step : min; } return this.toPrecisionAsStep(result); }; NumberPicker.prototype.downStep = function downStep(val) { var _props5 = this.props, step = _props5.step, min = _props5.min; var precisionFactor = this.getPrecisionFactor(); var result = void 0; if (typeof val === 'number') { result = (precisionFactor * val - precisionFactor * step) / precisionFactor; } else { result = min === -Infinity ? -step : min; } return this.toPrecisionAsStep(result); }; NumberPicker.prototype.step = function step(type, e) { if (e) { e.preventDefault(); } var props = this.props; if (props.disabled) { return; } var value = this.state.value; if (isNaN(value)) { return; } var val = this[type + 'Step'](value); if (val > props.max || val < props.min) { return; } var ne = _extends({ triggerType: type }, e); this.setValue(val, ne); this.setState({ focused: true }); }; NumberPicker.prototype.down = function down(e) { this.step('down', e); }; NumberPicker.prototype.up = function up(e) { this.step('up', e); }; NumberPicker.prototype.focus = function focus() { this.refs.input.getInputNode().focus(); }; NumberPicker.prototype.render = function render() { var _classNames; /* eslint-disable no-unused-vars */ var _props6 = this.props, type = _props6.type, prefix = _props6.prefix, editable = _props6.editable, inputWidth = _props6.inputWidth, className = _props6.className, props = _objectWithoutProperties(_props6, ['type', 'prefix', 'editable', 'inputWidth', 'className']); /* eslint-enable */ var inputStyle = { width: inputWidth }; var prefixCls = (this.context.prefix || prefix) + 'number-picker'; // Remove React warning. // Warning: Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). delete props.defaultValue; var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, prefixCls + '-' + this.props.type, this.props.type), _defineProperty(_classNames, prefixCls + '-disabled', props.disabled), _defineProperty(_classNames, className, className), _classNames)); var upDisabledClass = ''; var downDisabledClass = ''; var value = this.state.value; if (!isNaN(value)) { var val = Number(value); if (val >= props.max) { upDisabledClass = prefixCls + '-handler-up-disabled'; } if (val <= props.min) { downDisabledClass = prefixCls + '-handler-down-disabled'; } } else { upDisabledClass = prefixCls + '-handler-up-disabled'; downDisabledClass = prefixCls + '-handler-down-disabled'; } // ref for test return _react2['default'].createElement( 'div', { className: classes, style: props.style }, _react2['default'].createElement( 'div', { className: prefixCls + '-handler-wrap' }, _react2['default'].createElement( 'a', { unselectable: 'unselectable', ref: 'up', onClick: upDisabledClass ? this.props.onDisabled : this.up.bind(this), onMouseDown: this.onStepMouseDown.bind(this), className: prefixCls + '-handler ' + prefixCls + '-handler-up ' + upDisabledClass }, _react2['default'].createElement( 'span', { unselectable: 'unselectable', className: prefixCls + '-handler-up-inner', onClick: preventDefault }, _react2['default'].createElement(_nextIcon2['default'], { type: 'add' }) ) ), _react2['default'].createElement( 'a', { unselectable: 'unselectable', ref: 'down', onMouseDown: this.onStepMouseDown.bind(this), onClick: downDisabledClass ? this.props.onDisabled : this.down.bind(this), className: prefixCls + '-handler ' + prefixCls + '-handler-down ' + downDisabledClass }, _react2['default'].createElement( 'span', { unselectable: 'unselectable', className: prefixCls + '-handler-down-inner', onClick: preventDefault }, _react2['default'].createElement(_nextIcon2['default'], { type: 'minus' }) ) ) ), _react2['default'].createElement( 'div', { className: prefixCls + '-input-wrap' }, _react2['default'].createElement(_nextInput2['default'], _extends({}, props, { style: inputStyle, className: prefixCls + '-input', autoComplete: 'off', onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), onKeyDown: this.onKeyDown.bind(this), autoFocus: props.autoFocus, readOnly: !editable, onChange: this.onChange.bind(this), ref: 'input', value: this.state.value })) ) ); }; return NumberPicker; }(_react2['default'].Component), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * 设置类型 * @enumdesc 普通, 内联 */ type: _propTypes2['default'].oneOf(['normal', 'inline']), /** * 当前值 */ value: _propTypes2['default'].number, /** * 默认值 */ defaultValue: _propTypes2['default'].number, /** * 步长 */ step: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string]), /** * 用户是否可以输入 */ editable: _propTypes2['default'].bool, autoFocus: _propTypes2['default'].bool, /** * 输入框的宽度 */ inputWidth: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string]), /** * 数值被改变的事件 * @param {Number} value 数据 * @param {Event} e DOM事件对象 */ onChange: _propTypes2['default'].func, /** * 键盘按下 */ onKeyDown: _propTypes2['default'].func, /** * 焦点获得 */ onFocus: _propTypes2['default'].func, /** * 焦点失去 */ onBlur: _propTypes2['default'].func, /** * 按钮被禁用时候点击的回调 * @param {Event} e DOM事件对象 */ onDisabled: _propTypes2['default'].func, /** * 数值订正后的回调 * @param {Object} obj {currentValue,oldValue:String} */ onCorrect: _propTypes2['default'].func, /** * 最大值 */ max: _propTypes2['default'].number, /** * 最小值 */ min: _propTypes2['default'].number, /** * 自定义class */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', max: Infinity, min: -Infinity, type: 'normal', step: 1, style: {}, defaultValue: 0, editable: true, onChange: noop, onKeyDown: noop, onFocus: noop, onBlur: noop, onDisabled: noop, onCorrect: noop }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); NumberPicker.displayName = 'NumberPicker'; exports['default'] = NumberPicker; module.exports = exports['default']; /***/ }), /***/ 2643: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Line = (_temp = _class = function (_Component) { _inherits(Line, _Component); function Line() { _classCallCheck(this, Line); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Line.prototype.componentDidMount = function componentDidMount() { var _this2 = this; if (this.line && this.props.animation) { // 延迟设置样式,为了增加一个默认的载入动效 this.timeout = setTimeout(function () { _this2.line.style.width = _this2.props.percent + '%'; }, 100); } }; Line.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { if (prevProps.percent !== this.props.percent && this.line) { this.line.style.width = this.props.percent + '%'; } }; Line.prototype.componentWillUnmount = function componentWillUnmount() { if (this.timeout) { clearTimeout(this.timeout); this.timeout = null; } }; Line.prototype._lineRefHandler = function _lineRefHandler(ref) { this.line = ref; }; Line.prototype.render = function render() { var _classNames, _classNames2; var _props = this.props, prefix = _props.prefix, size = _props.size, showInfo = _props.showInfo, type = _props.type, suffix = _props.suffix, state = _props.state, percent = _props.percent, animation = _props.animation, className = _props.className, others = _objectWithoutProperties(_props, ['prefix', 'size', 'showInfo', 'type', 'suffix', 'state', 'percent', 'animation', 'className']); var wrapCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'progress-line', true), _defineProperty(_classNames, prefix + 'progress-line-' + size, size), _defineProperty(_classNames, prefix + 'progress-line-show-info', showInfo), _defineProperty(_classNames, prefix + 'progress-line-' + type, type), _defineProperty(_classNames, className, className), _classNames)); var lineCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'progress-line-overlay', true), _defineProperty(_classNames2, prefix + 'progress-line-overlay-normal', true), _defineProperty(_classNames2, prefix + 'progress-line-overlay-' + state, state), _defineProperty(_classNames2, prefix + 'progress-line-overlay-started', type === 'progressive' && percent <= 30), _defineProperty(_classNames2, prefix + 'progress-line-overlay-middle', type === 'progressive' && percent > 30 && percent < 80), _defineProperty(_classNames2, prefix + 'progress-line-overlay-almostfinished', type === 'progressive' && percent >= 80), _classNames2)); var lineStyle = animation ? { width: '0%' } : { width: percent + '%' }; return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: wrapCls }), _react2['default'].createElement( 'div', { className: prefix + 'progress-line-container' }, _react2['default'].createElement( 'div', { className: prefix + 'progress-line-underlay' }, _react2['default'].createElement('div', { className: lineCls, style: lineStyle, ref: this._lineRefHandler.bind(this) }) ) ), showInfo ? _react2['default'].createElement( 'div', { className: prefix + 'progress-line-text' }, suffix ) : null ); }; return Line; }(_react.Component), _class.propTypes = { size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), percent: _propTypes2['default'].number, showInfo: _propTypes2['default'].bool, type: _propTypes2['default'].oneOf(['normal', 'progressive']), suffix: _propTypes2['default'].any, state: _propTypes2['default'].oneOf(['success', 'error']) }, _class.defaultProps = { size: 'medium', percent: 0, showInfo: true, type: 'normal' }, _temp); Line.displayName = 'Line'; exports['default'] = Line; module.exports = exports['default']; /***/ }), /***/ 2644: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Circle = (_temp = _class = function (_Component) { _inherits(Circle, _Component); function Circle(props) { _classCallCheck(this, Circle); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.state = { underlayStrokeWidth: 8, overlayStrokeWidth: 8 }; return _this; } Circle.prototype.componentDidMount = function componentDidMount() { var _this2 = this; if (this.underlay && this.overlay) { this.setState({ underlayStrokeWidth: this._getCssValue(this.underlay, 'stroke-width') || 8, overlayStrokeWidth: this._getCssValue(this.overlay, 'stroke-width') || 8 }); // 如果开启了动效,延迟设置样式,为了增加一个默认的载入动效 if (this.props.animation) { this.timeout = setTimeout(function () { _this2.overlay.style.strokeDashoffset = _this2._computeOverlayStrokeDashOffset() + 'px'; }, 100); } } }; Circle.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { if (this.props.animation && prevProps.percent !== this.props.percent && this.overlay) { this.overlay.style.strokeDashoffset = this._computeOverlayStrokeDashOffset() + 'px'; } }; Circle.prototype.componentWillUnmount = function componentWillUnmount() { if (this.timeout) { clearTimeout(this.timeout); this.timeout = null; } }; Circle.prototype._getCssValue = function _getCssValue(dom, name) { var css = window.getComputedStyle(dom).getPropertyValue(name); var regExp = /(\d*)px/g; var result = regExp.exec(css); return result instanceof Array ? Number(result[1]) : 0; }; Circle.prototype._underlayRefHandler = function _underlayRefHandler(ref) { this.underlay = ref; }; Circle.prototype._overlayRefHandler = function _overlayRefHandler(ref) { this.overlay = ref; }; Circle.prototype._computeOverlayStrokeDashOffset = function _computeOverlayStrokeDashOffset() { var _state = this.state, underlayStrokeWidth = _state.underlayStrokeWidth, overlayStrokeWidth = _state.overlayStrokeWidth; var overlayRadius = 50 - overlayStrokeWidth / 2 - (underlayStrokeWidth - overlayStrokeWidth) / 2; var overlayLen = Math.PI * 2 * overlayRadius; return (100 - this.props.percent) / 100 * overlayLen; }; Circle.prototype.render = function render() { var _classNames, _classNames2; var _props = this.props, prefix = _props.prefix, className = _props.className, animation = _props.animation, others = _objectWithoutProperties(_props, ['prefix', 'className', 'animation']); var size = others.size, showInfo = others.showInfo, type = others.type, suffix = others.suffix, state = others.state, percent = others.percent; var _state2 = this.state, underlayStrokeWidth = _state2.underlayStrokeWidth, overlayStrokeWidth = _state2.overlayStrokeWidth; // underlay path var underlayRadius = 50 - underlayStrokeWidth / 2; var underlayPathString = 'M 50,50 m 0,-' + underlayRadius + '\n a ' + underlayRadius + ',' + underlayRadius + ' 0 1 1 0,' + 2 * underlayRadius + '\n a ' + underlayRadius + ',' + underlayRadius + ' 0 1 1 0,-' + 2 * underlayRadius; // overlay path (为居中,减去相对于underlay的宽度) var overlayRadius = 50 - overlayStrokeWidth / 2 - (underlayStrokeWidth - overlayStrokeWidth) / 2; var overlayLen = Math.PI * 2 * overlayRadius; var overlayPathString = 'M 50,50 m 0,-' + overlayRadius + '\n a ' + overlayRadius + ',' + overlayRadius + ' 0 1 1 0,' + 2 * overlayRadius + '\n a ' + overlayRadius + ',' + overlayRadius + ' 0 1 1 0,-' + 2 * overlayRadius; var overlayPathStyle = { strokeDasharray: overlayLen + 'px ' + overlayLen + 'px', strokeDashoffset: animation ? // 根据动效是否开启,决定是否设置 dom 的实际取值 overlayLen + 'px' : this._computeOverlayStrokeDashOffset() + 'px' }; var wrapCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'progress-circle', true), _defineProperty(_classNames, prefix + 'progress-circle-' + size, size), _defineProperty(_classNames, prefix + 'progress-circle-show-info', showInfo), _defineProperty(_classNames, prefix + 'progress-circle-' + type, type), _defineProperty(_classNames, className, className), _classNames)); var pathCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'progress-circle-overlay', true), _defineProperty(_classNames2, prefix + 'progress-circle-overlay-normal', true), _defineProperty(_classNames2, prefix + 'progress-circle-overlay-' + state, state), _defineProperty(_classNames2, prefix + 'progress-circle-overlay-started', type === 'progressive' && percent <= 30), _defineProperty(_classNames2, prefix + 'progress-circle-overlay-middle', type === 'progressive' && percent > 30 && percent < 80), _defineProperty(_classNames2, prefix + 'progress-circle-overlay-almostfinished', type === 'progressive' && percent >= 80), _classNames2)); return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: wrapCls }), _react2['default'].createElement( 'svg', { className: prefix + 'progress-circle-container', viewBox: '0 0 100 100' }, _react2['default'].createElement('path', { className: prefix + 'progress-circle-underlay', d: underlayPathString, fillOpacity: '0', ref: this._underlayRefHandler.bind(this) }), _react2['default'].createElement('path', { className: pathCls, d: overlayPathString, fillOpacity: '0', style: overlayPathStyle, ref: this._overlayRefHandler.bind(this) }) ), showInfo ? _react2['default'].createElement( 'div', { className: prefix + 'progress-circle-text' }, suffix ) : null ); }; return Circle; }(_react.Component), _class.propTypes = { size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), percent: _propTypes2['default'].number, showInfo: _propTypes2['default'].bool, type: _propTypes2['default'].oneOf(['normal', 'progressive']), suffix: _propTypes2['default'].any, state: _propTypes2['default'].oneOf(['success', 'error']) }, _class.defaultProps = { size: 'medium', percent: 0, showInfo: true, type: 'normal' }, _temp); Circle.displayName = 'Circle'; exports['default'] = Circle; module.exports = exports['default']; /***/ }), /***/ 2645: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _range = __webpack_require__(2646); var _range2 = _interopRequireDefault(_range); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = _range2['default']; module.exports = exports['default']; /***/ }), /***/ 2646: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextDom = __webpack_require__(1124); var _nextBalloon = __webpack_require__(1909); var _nextBalloon2 = _interopRequireDefault(_nextBalloon); var _nextUtil = __webpack_require__(889); var _utils = __webpack_require__(1745); var _scale = __webpack_require__(2647); var _scale2 = _interopRequireDefault(_scale); var _track = __webpack_require__(2648); var _track2 = _interopRequireDefault(_track); var _selected = __webpack_require__(2649); var _selected2 = _interopRequireDefault(_selected); var _slider = __webpack_require__(2650); var _slider2 = _interopRequireDefault(_slider); var _mark2 = __webpack_require__(2651); var _mark3 = _interopRequireDefault(_mark2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; var Tooltip = _nextBalloon2['default'].Tooltip; /** Range */ var Range = (_temp = _class = function (_React$Component) { _inherits(Range, _React$Component); function Range(props) { _classCallCheck(this, Range); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); var min = props.min; var initialValue = _this._isMultiple() ? [min, min] : min; var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue; var value = props.value !== undefined ? props.value : defaultValue; _this.state = { // tooltipVisible: false, value: value, tempValue: value, hasMovingClass: false }; return _this; } Range.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var min = this.props.min; var initialValue = this._isMultiple() ? [min, min] : min; if ('value' in nextProps) { var value = nextProps.value; if (value === undefined) { // value设置undefined,reset为初始值 value = initialValue; } this.setState({ value: value, tempValue: value }); } }; Range.prototype.render = function render() { var _classNames; var value = this._moving ? this.state.tempValue : this.state.value; var _props = this.props, prefix = _props.prefix, min = _props.min, max = _props.max, disabled = _props.disabled, style = _props.style, id = _props.id, slider = _props.slider, reverse = _props.reverse, className = _props.className; prefix = this.context.prefix || prefix; var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'range', true), _defineProperty(_classNames, 'disabled', disabled), _defineProperty(_classNames, className, className), _classNames)); if (Array.isArray(value)) { value.forEach(function (item, index) { if (item > max) { value[index] = max; } }); } else if (value > max) { value = max; } var commonProps = { prefix: prefix, min: min, max: max, value: value, reverse: reverse, slider: slider, hasMovingClass: this.state.hasMovingClass }; // slider var _renderSlider2 = this._renderSlider(commonProps), lowerSlider = _renderSlider2.lowerSlider, upperSlider = _renderSlider2.upperSlider; return _react2['default'].createElement( 'div', { ref: 'range', className: classes, id: id, onMouseDown: disabled ? noop : this._onMouseDown.bind(this), style: style }, this._renderScale(commonProps), _react2['default'].createElement(_track2['default'], commonProps), _react2['default'].createElement(_selected2['default'], commonProps), lowerSlider, upperSlider, this._renderMark(commonProps) ); }; Range.prototype._isMultiple = function _isMultiple() { return this.props.slider === 'double'; }; Range.prototype._renderSlider = function _renderSlider(commonProps) { var lowerSlider = null; var upperSlider = null; var value = commonProps.value; var hasTips = this.props.hasTips; var hasTip = this.props.hasTip; if (hasTips !== undefined) { _nextUtil.log.deprecated('hasTips', 'hasTip', 'range'); hasTip = hasTips; } var tipFormatter = this.props.tipFormatter; if (this._isMultiple()) { // override value lowerSlider = hasTip ? _react2['default'].createElement(Tooltip, { animation: { 'in': 'fadeInUp', out: 'fadeOutDown' }, shouldUpdatePosition: true, trigger: _react2['default'].createElement(_slider2['default'], _extends({}, commonProps, { value: value[0] })), align: 't', text: tipFormatter(value[0] + '') }) : _react2['default'].createElement(_slider2['default'], _extends({}, commonProps, { value: value[0] })); upperSlider = hasTip ? _react2['default'].createElement(Tooltip, { animation: { 'in': 'fadeInUp', out: 'fadeOutDown' }, shouldUpdatePosition: true, trigger: _react2['default'].createElement(_slider2['default'], _extends({}, commonProps, { value: value[1] })), align: 't', text: tipFormatter(value[1] + '') }) : _react2['default'].createElement(_slider2['default'], _extends({}, commonProps, { value: value[1] })); } else { upperSlider = hasTip ? _react2['default'].createElement(Tooltip, { animation: { 'in': 'fadeInUp', out: 'fadeOutDown' }, shouldUpdatePosition: true, trigger: _react2['default'].createElement(_slider2['default'], commonProps), align: 't', text: tipFormatter(value + '') }) : _react2['default'].createElement(_slider2['default'], commonProps); } return { lowerSlider: lowerSlider, upperSlider: upperSlider }; }; Range.prototype._marksToScales = function _marksToScales(marks) { var result = []; if (Object.prototype.toString.call(marks) === '[object Object]') { for (var key in marks) { if (Object.hasOwnProperty.call(marks, key)) { result.push(parseInt(key)); } } } else { result = marks; } return result; }; Range.prototype._renderScale = function _renderScale(commonProps) { var _props2 = this.props, min = _props2.min, max = _props2.max, marks = _props2.marks; var scales = this._marksToScales(marks); var scale = null; if (scales !== false) { if (Array.isArray(scales)) { scale = _react2['default'].createElement(_scale2['default'], _extends({}, commonProps, { scales: scales })); } else { var pace = (max - min) / scales; var result = []; result.push(min); for (var i = 1; i < scales; i++) { result.push(min + i * pace); } result.push(max); scale = _react2['default'].createElement(_scale2['default'], _extends({}, commonProps, { scales: result })); } } else { scale = _react2['default'].createElement(_scale2['default'], _extends({}, commonProps, { scales: [] })); } return scale; }; Range.prototype._renderMark = function _renderMark(commonProps) { var _props3 = this.props, min = _props3.min, max = _props3.max, marks = _props3.marks; var mark = null; if (marks !== false) { var result = {}; if (Array.isArray(marks)) { marks.forEach(function (m) { result[m] = m.toString(); }); } else if (typeof marks === 'number') { var pace = (max - min) / marks; result[min] = min; for (var i = 1; i < marks; i++) { var _mark = min + i * pace; var precision = (0, _utils.getPrecision)(_mark); if (precision > 2) { precision = 2; } _mark = _mark.toFixed(precision); result[_mark] = _mark; } result[max] = max; } else { result = marks; } mark = _react2['default'].createElement(_mark3['default'], _extends({}, commonProps, { marks: result })); } return mark; }; Range.prototype._isEqule = function _isEqule(left, right) { if (Array.isArray(left)) { return left[0] === right[0] && left[1] === right[1]; } else { return left === right; } }; Range.prototype._onMouseDown = function _onMouseDown(e) { this.setState({ hasMovingClass: true }); this._start(e.pageX); this._addDocumentEvents(); pauseEvent(e); }; Range.prototype._start = function _start(position) { var tempValue = this.state.tempValue; var range = this.refs.range; var start = range.getBoundingClientRect().left; // Stabilize // position = start + length * this._moving = { start: start, end: start + range.clientWidth, startValue: tempValue }; // change on start this._onProcess(position, true); }; Range.prototype._end = function _end() { var startValue = this._moving.startValue; var _state = this.state, tempValue = _state.tempValue, value = _state.value; this._moving = null; this._removeDocumentEvents(); this.setState({ hasMovingClass: false }); if (!this._isEqule(tempValue, startValue)) { // Not Controlled if (!('value' in this.props)) { this.setState({ value: tempValue }); } else { this.setState({ // tooltipVisible: false, tempValue: value, value: value }); } this.props.onChange(tempValue); } }; Range.prototype._move = function _move(e) { this._onProcess(e.pageX); }; Range.prototype._onProcess = function _onProcess(position, start) { var tempValue = this.state.tempValue; var current = this._positionToCurrent(position); //current 为当前click的value if (start) { this._moving.dragging = this._getDragging(current, tempValue); } // this.setState({ // tooltipVisible: true // }) var nextValue = this._currentToValue(current, tempValue); //计算range的新value,可能是数组,可能是单个值 if (!this._isEqule(nextValue, tempValue)) { this.setState({ tempValue: nextValue }); this.props.onProcess(nextValue); } }; Range.prototype._addDocumentEvents = function _addDocumentEvents() { this._onMouseMoveListener = _nextDom.events.on(document, 'mousemove', this._move.bind(this)); this._onMouseUpListener = _nextDom.events.on(document, 'mouseup', this._end.bind(this)); }; Range.prototype._removeDocumentEvents = function _removeDocumentEvents() { if (this._onMouseMoveListener) { this._onMouseMoveListener.off(); this._onMouseMoveListener = null; } if (this._onMouseUpListener) { this._onMouseUpListener.off(); this._onMouseUpListener = null; } }; Range.prototype._getDragging = function _getDragging(current, preValue) { var dragging = 'upper'; if (this._isMultiple()) { if (current > preValue[1]) { dragging = 'upper'; } else if (current < preValue[0]) { dragging = 'lower'; } else { var mid = (preValue[0] + preValue[1]) / 2; dragging = current < mid ? 'lower' : 'upper'; } } return dragging; }; // position => current (value type) Range.prototype._positionToCurrent = function _positionToCurrent(position) { var _moving = this._moving, start = _moving.start, end = _moving.end; var _props4 = this.props, step = _props4.step, min = _props4.min, max = _props4.max; if (position < start) { position = start; } else if (position > end) { position = end; } var pecent = (0, _utils.getPercent)(start, end, position); // reset by step var newValue = parseFloat((Math.round(pecent / 100 * (max - min) / step) * step).toFixed((0, _utils.getPrecision)(step))); return min + newValue; }; Range.prototype._currentToValue = function _currentToValue(current, preValue) { var dragging = this._moving.dragging; if (!this._isMultiple()) { return current; } else { var result = void 0; if (dragging === 'lower') { if (current > preValue[1]) { result = [preValue[1], current]; this._moving.dragging = 'upper'; } else { result = [current, preValue[1]]; } } else if (dragging === 'upper') { if (current < preValue[0]) { result = [current, preValue[0]]; this._moving.dragging = 'lower'; } else { result = [preValue[0], current]; } } return result; } }; return Range; }(_react2['default'].Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内敛样式 */ style: _propTypes2['default'].object, /** * 滑块个数 * @enumdesc 单个, 两个 */ slider: _propTypes2['default'].oneOf(['single', 'double']), /** * 最小值 */ min: _propTypes2['default'].number, /** * 最大值 */ max: _propTypes2['default'].number, /** * 步长,取值必须大于 0,并且可被 (max - min) 整除。 */ step: _propTypes2['default'].number, /** * 设置当前取值。当 `slider` 为 `single` 时,使用 `Number`,否则用 `[Number, Number]` */ value: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].arrayOf(_propTypes2['default'].number)]), tempValue: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].arrayOf(_propTypes2['default'].number)]), /** * 设置初始取值。当 `slider` 为 `single` 时,使用 `Number`,否则用 `[Number, Number]` */ defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].arrayOf(_propTypes2['default'].number)]), /** * 刻度数值显示逻辑(false 代表不显示,array 枚举显示的值,number 代表按 number 平分,object 表示按 key 划分,value 值显示) */ marks: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].number, _propTypes2['default'].arrayOf(_propTypes2['default'].number), _propTypes2['default'].object]), /** * 值为 `true` 时,滑块为禁用状态 */ disabled: _propTypes2['default'].bool, /** * 当 Range 的值发生改变后,会触发 onChange 事件,并把改变后的值作为参数传入, 如果设置了value, 要配合此函数做受控使用 * @param {String/number} value */ onChange: _propTypes2['default'].func, /** * 滑块拖动的时候触发的事件,不建议在这里setState, 一般情况下不需要用, 滑动时有特殊需求时使用 * @param {String/number} value */ onProcess: _propTypes2['default'].func, hasTips: _propTypes2['default'].bool, /** * 是否显示tip */ hasTip: _propTypes2['default'].bool, /** * tip文件自定义处理 */ tipFormatter: _propTypes2['default'].func, id: _propTypes2['default'].string, /** * 选中态反转 */ reverse: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-', slider: 'single', min: 0, max: 100, step: 1, marks: false, disabled: false, hasTip: true, onChange: noop, onProcess: noop, tipFormatter: function tipFormatter(value) { return value; }, reverse: false }, _temp); Range.displayName = 'Range'; exports['default'] = Range; function pauseEvent(e) { e.stopPropagation(); e.preventDefault(); } module.exports = exports['default']; /***/ }), /***/ 2647: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _utils = __webpack_require__(1745); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Scale = (_temp = _class = function (_React$Component) { _inherits(Scale, _React$Component); function Scale() { _classCallCheck(this, Scale); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Scale.prototype.render = function render() { var prefix = this.props.prefix; var classes = (0, _classnames2['default'])(_defineProperty({}, prefix + 'range-scale', true)); var items = this._renderItems(); return _react2['default'].createElement( 'div', { className: classes }, items ); }; Scale.prototype._renderItems = function _renderItems() { var _props = this.props, min = _props.min, max = _props.max, value = _props.value, prefix = _props.prefix, scales = _props.scales; var items = []; scales.forEach(function (scale, i) { var _classNames2; var classes = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'range-scale-item', true), _defineProperty(_classNames2, 'activated', (0, _utils.inRange)(scale, value, min)), _classNames2)); var left = (0, _utils.getPercent)(min, max, scale) + '%'; items.push( // "key" is for https://fb.me/react-warning-keys _react2['default'].createElement('span', { className: classes, style: { left: left }, key: i })); }); return items; }; return Scale; }(_react2['default'].Component), _class.propTypes = { min: _propTypes2['default'].number, max: _propTypes2['default'].number, value: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].arrayOf(_propTypes2['default'].number)]), prefix: _propTypes2['default'].string, scales: _propTypes2['default'].arrayOf(_propTypes2['default'].number) }, _class.defaultProps = { prefix: 'next-', min: 0, max: 100, value: 0 }, _temp); Scale.displayName = 'Scale'; exports['default'] = Scale; module.exports = exports['default']; /***/ }), /***/ 2648: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Track = (_temp = _class = function (_React$Component) { _inherits(Track, _React$Component); function Track() { _classCallCheck(this, Track); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Track.prototype.render = function render() { var prefix = this.props.prefix; var classes = (0, _classnames2['default'])(_defineProperty({}, prefix + 'range-track', true)); return _react2['default'].createElement('div', { className: classes }); }; return Track; }(_react2['default'].Component), _class.propTypes = { prefix: _propTypes2['default'].string }, _class.defaultProps = { prefix: 'next-' }, _temp); Track.displayName = 'Track'; exports['default'] = Track; module.exports = exports['default']; /***/ }), /***/ 2649: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _utils = __webpack_require__(1745); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Selected = (_temp = _class = function (_React$Component) { _inherits(Selected, _React$Component); function Selected() { _classCallCheck(this, Selected); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Selected.prototype.render = function render() { var _props = this.props, prefix = _props.prefix, slider = _props.slider, reverse = _props.reverse; var classes = (0, _classnames2['default'])(_defineProperty({}, prefix + 'range-selected', true)); var SeletedComps = _react2['default'].createElement('div', { className: classes, style: this._getStyle() }); if (slider === 'double' && reverse) { SeletedComps = _react2['default'].createElement( 'div', null, _react2['default'].createElement('div', { className: classes, style: this._getStyleLeft() }), _react2['default'].createElement('div', { className: classes, style: this._getStyleRight() }) ); } return SeletedComps; }; Selected.prototype._getStyle = function _getStyle() { var _props2 = this.props, min = _props2.min, max = _props2.max, reverse = _props2.reverse; var value = this.props.value; if (!Array.isArray(value)) { value = [min, value]; } var width = (value[1] - value[0]) * 100 / (max - min); var style = { width: width + '%', left: (0, _utils.getPercent)(min, max, value[0]) + '%' }; if (reverse) { style = { width: 100 - width + '%', left: (0, _utils.getPercent)(min, max, value[0]) + width + '%' }; } return style; }; Selected.prototype._getStyleLeft = function _getStyleLeft() { var _props3 = this.props, min = _props3.min, max = _props3.max; var value = this.props.value; if (!Array.isArray(value)) { value = [min, value]; } var style = { width: (0, _utils.getPercent)(min, max, value[0]) + '%', left: 0 }; return style; }; Selected.prototype._getStyleRight = function _getStyleRight() { var _props4 = this.props, min = _props4.min, max = _props4.max; var value = this.props.value; if (!Array.isArray(value)) { value = [min, value]; } var width = (value[1] - value[0]) * 100 / (max - min); var style = { width: 100 - (0, _utils.getPercent)(min, max, value[0]) - width + '%', left: (0, _utils.getPercent)(min, max, value[0]) + width + '%' }; return style; }; return Selected; }(_react2['default'].Component), _class.propTypes = { min: _propTypes2['default'].number, max: _propTypes2['default'].number, slider: _propTypes2['default'].string, value: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].arrayOf(_propTypes2['default'].number)]), prefix: _propTypes2['default'].string, reverse: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-', slider: 'single', min: 0, max: 100, value: 0, reverse: false }, _temp); Selected.displayName = 'Selected'; exports['default'] = Selected; module.exports = exports['default']; /***/ }), /***/ 2650: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextUtil = __webpack_require__(889); var _utils = __webpack_require__(1745); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Slider = (_temp = _class = function (_React$Component) { _inherits(Slider, _React$Component); function Slider() { _classCallCheck(this, Slider); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Slider.prototype.render = function render() { var _classNames; var _props = this.props, prefix = _props.prefix, hasMovingClass = _props.hasMovingClass; var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'range-slider', true), _defineProperty(_classNames, prefix + 'range-slider-moving', hasMovingClass), _classNames)); return ( /* 透传props, 让它接受tooltip注入的属性 */ _react2['default'].createElement('div', _extends({}, (0, _nextUtil.pickAttrs)(this.props), { className: classes, style: this._getStyle() })) ); }; Slider.prototype._getStyle = function _getStyle() { var _props2 = this.props, min = _props2.min, max = _props2.max, value = _props2.value; return { left: (0, _utils.getPercent)(min, max, value) + '%', zIndex: 100 }; }; return Slider; }(_react2['default'].Component), _class.propTypes = { min: _propTypes2['default'].number, max: _propTypes2['default'].number, value: _propTypes2['default'].number, prefix: _propTypes2['default'].string, hasMovingClass: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-', min: 0, max: 100, value: 0, hasMovingClass: false }, _temp); Slider.displayName = 'Slider'; exports['default'] = Slider; module.exports = exports['default']; /***/ }), /***/ 2651: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _utils = __webpack_require__(1745); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Mark = (_temp = _class = function (_React$Component) { _inherits(Mark, _React$Component); function Mark() { _classCallCheck(this, Mark); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Mark.prototype.render = function render() { var prefix = this.props.prefix; var classes = (0, _classnames2['default'])(_defineProperty({}, prefix + 'range-mark', true)); var items = this._renderItems(); return _react2['default'].createElement( 'div', { className: classes }, items ); }; Mark.prototype._renderItems = function _renderItems() { var _props = this.props, min = _props.min, max = _props.max, value = _props.value, prefix = _props.prefix, marks = _props.marks; var items = []; Object.keys(marks).forEach(function (mark, i) { var _classNames2; var classes = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'range-mark-text', true), _defineProperty(_classNames2, 'activated', (0, _utils.inRange)(mark, value, min)), _classNames2)); var left = (0, _utils.getPercent)(min, max, mark) + '%'; items.push( // "key" is for https://fb.me/react-warning-keys _react2['default'].createElement( 'span', { className: classes, style: { left: left }, key: i }, marks[mark] )); }); return items; }; return Mark; }(_react2['default'].Component), _class.propTypes = { min: _propTypes2['default'].number, max: _propTypes2['default'].number, value: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].arrayOf(_propTypes2['default'].number)]), prefix: _propTypes2['default'].string, marks: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', min: 0, max: 100, value: 0 }, _temp); Mark.displayName = 'Mark'; exports['default'] = Mark; module.exports = exports['default']; /***/ }), /***/ 2652: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Rating */ var Rating = (_temp = _class = function (_React$Component) { _inherits(Rating, _React$Component); function Rating(props, context) { _classCallCheck(this, Rating); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this.state = { value: props.value || props.defaultValue || 0, hoverValue: 0, iconSpace: 0, iconSize: 0, clicked: false // 标记组件是否被点击过 }; _this.timer = null; return _this; } Rating.prototype.componentDidMount = function componentDidMount() { this.getRenderResult(); }; Rating.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { this.setState({ value: nextProps.value || 0 }); } }; Rating.prototype.componentWillUnmount = function componentWillUnmount() { // 延时设置 if (this.timer) { clearTimeout(this.timer); this.timer = null; } }; Rating.prototype.getRenderResult = function getRenderResult() { var count = this.props.count; var _state = this.state, iconSpace = _state.iconSpace, iconSize = _state.iconSize; var icon = this.refs['rating-icon-0']; if (icon && this.ratingUnderlay) { var newIconSize = icon.offsetWidth; var newIconSpace = (this.ratingUnderlay.offsetWidth - count * newIconSize) / (count + 1); if (newIconSize !== iconSize || newIconSpace !== iconSpace) { this.setState({ iconSpace: newIconSpace, iconSize: newIconSize }); } } }; Rating.prototype.getValue = function getValue(e) { // 如定位不准,优先纠正定位 this.getRenderResult(); var _props = this.props, allowHalf = _props.allowHalf, count = _props.count; var _state2 = this.state, iconSpace = _state2.iconSpace, iconSize = _state2.iconSize; var pos = e.pageX - this.ratingUnderlay.getBoundingClientRect().left; var fullNum = Math.floor(pos / (iconSpace + iconSize)); var surplusNum = (pos - fullNum * (iconSpace + iconSize)) / iconSize; var value = Number(fullNum) + Number(surplusNum.toFixed(1)); if (value >= count) { value = count; } else if (allowHalf) { var floorValue = Math.floor(value); value = value - 0.5 >= floorValue ? floorValue + 1 : floorValue + 0.5; } else { value = Math.floor(value) + 1; } return value; }; Rating.prototype.onHover = function onHover(e) { var _this2 = this; var value = this.getValue(e); if (value !== this.state.hoverValue) { // 延时设置 if (this.timer) { clearTimeout(this.timer); this.timer = null; } this.timer = setTimeout(function () { _this2.setState({ hoverValue: value }); }, 0); } }; Rating.prototype.onLeave = function onLeave() { // 清除延时 if (this.timer) { clearTimeout(this.timer); this.timer = null; } this.setState({ hoverValue: 0 }); }; Rating.prototype.onClick = function onClick(e) { var _this3 = this; var value = this.getValue(e); if (!('value' in this.props)) { this.setState({ value: value, clicked: true }); } this.props.onChange(value); setTimeout(function () { _this3.setState({ clicked: false }); }, 100); }; Rating.prototype.getOverlayWidth = function getOverlayWidth() { var _state3 = this.state, hoverValue = _state3.hoverValue, iconSpace = _state3.iconSpace, iconSize = _state3.iconSize; if (!iconSpace || !iconSize) { return 'auto'; } var value = hoverValue ? hoverValue : this.state.value; var floorValue = Math.floor(value); return iconSize * value + (floorValue + 1) * iconSpace; }; Rating.prototype.getInfoLeft = function getInfoLeft() { var _state4 = this.state, value = _state4.value, hoverValue = _state4.hoverValue, iconSpace = _state4.iconSpace, iconSize = _state4.iconSize; var infoValue = hoverValue || value; var ceilValue = Math.ceil(infoValue); return iconSize * (ceilValue - 1) + ceilValue * iconSpace; }; Rating.prototype._ratingUnderlayRefHandler = function _ratingUnderlayRefHandler(ref) { this.ratingUnderlay = ref; }; Rating.prototype.render = function render() { var _classNames, _classNames2; var _props2 = this.props, className = _props2.className, type = _props2.type, count = _props2.count, size = _props2.size, disabled = _props2.disabled, showInfo = _props2.showInfo, others = _objectWithoutProperties(_props2, ['className', 'type', 'count', 'size', 'disabled', 'showInfo']); var _state5 = this.state, hoverValue = _state5.hoverValue, clicked = _state5.clicked; var prefix = this.context.prefix || this.props.prefix; var pickProps = (0, _nextUtil.pickAttrs)(others); var underlay = [], overlay = []; // 获得Value var value = hoverValue || this.state.value; value = value >= count ? count : value; value = value <= 0 ? 0 : value; // icon的sizeMap var sizeMap = { small: 'xs', medium: 'small', large: 'medium' }[size]; for (var i = 0; i < count; i++) { var isCurrent = Math.ceil(value - 1) === i; var iconCls = (0, _classnames2['default'])({ hover: hoverValue > 0 && isCurrent, clicked: clicked && isCurrent }); underlay.push(_react2['default'].createElement( 'span', { ref: 'rating-icon-' + i, key: 'underlay-' + i, className: prefix + 'rating-icon' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'favorites-filling', size: sizeMap, className: iconCls }) )); overlay.push(_react2['default'].createElement( 'span', { key: 'overlay-' + i, className: prefix + 'rating-icon' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'favorites-filling', size: sizeMap, className: iconCls }) )); } var ratingCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'rating', true), _defineProperty(_classNames, prefix + 'rating-' + size, size), _defineProperty(_classNames, prefix + 'rating-grade-low', type === 'grade' && value <= count * 0.4), _defineProperty(_classNames, prefix + 'rating-grade-high', type === 'grade' && value > count * 0.4), _defineProperty(_classNames, 'hover', hoverValue > 0), _defineProperty(_classNames, className, className), _classNames)); var baseCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'rating-base', true), _defineProperty(_classNames2, prefix + 'rating-base-disabled', disabled), _classNames2)); var overlayStyle = { width: this.getOverlayWidth() }; var infoStyle = { left: this.getInfoLeft(), display: hoverValue ? 'block' : 'none' }; var finalAttrs = disabled ? {} : { onClick: this.onClick.bind(this), onMouseOver: this.onHover.bind(this), onMouseMove: this.onHover.bind(this), onMouseLeave: this.onLeave.bind(this) }; return _react2['default'].createElement( 'div', _extends({}, pickProps, { className: ratingCls }), _react2['default'].createElement( 'div', _extends({ className: baseCls }, finalAttrs), _react2['default'].createElement( 'div', { className: prefix + 'rating-underlay', ref: this._ratingUnderlayRefHandler.bind(this) }, underlay ), _react2['default'].createElement( 'div', { className: prefix + 'rating-overlay', style: overlayStyle }, overlay ) ), type === 'grade' ? _react2['default'].createElement( 'div', { className: prefix + 'rating-info', style: infoStyle }, showInfo instanceof Function ? showInfo(value) : '' + value ) : null, showInfo ? _react2['default'].createElement( 'div', { className: prefix + 'rating-text' }, showInfo instanceof Function ? showInfo(value) : '' + value ) : null ); }; return Rating; }(_react2['default'].Component), _class.propTypes = { /** * 样式的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 默认值 */ defaultValue: _propTypes2['default'].number, /** * 值 */ value: _propTypes2['default'].number, /** * 评分的总数 */ count: _propTypes2['default'].number, /** * 类型 */ type: _propTypes2['default'].oneOf(['normal', 'grade']), /** * 尺寸 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 是否允许半星评分 */ allowHalf: _propTypes2['default'].bool, /** * 用户点击评分时触发的回调 * @param {String} value 评分值 */ onChange: _propTypes2['default'].func, /** * 是否禁用 */ disabled: _propTypes2['default'].bool, /** * 是否展示文本信息 */ showInfo: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].func]), /** * 自定义样式名 */ className: _propTypes2['default'].string }, _class.defaultProps = { prefix: 'next-', type: 'normal', size: 'medium', disabled: false, count: 5, defaultValue: 0, allowHalf: false, showInfo: false, onChange: function onChange() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Rating.displayName = 'Rating'; exports['default'] = Rating; module.exports = exports['default']; /***/ }), /***/ 2653: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _search = __webpack_require__(2654); var _search2 = _interopRequireDefault(_search); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = _search2['default']; module.exports = exports['default']; /***/ }), /***/ 2654: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextSelect = __webpack_require__(1567); var _nextSelect2 = _interopRequireDefault(_nextSelect); var _nextButton = __webpack_require__(1472); var _nextButton2 = _interopRequireDefault(_nextButton); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); var _combox = __webpack_require__(2655); var _combox2 = _interopRequireDefault(_combox); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Search */ var Search = (_temp = _class = function (_React$Component) { _inherits(Search, _React$Component); function Search(props, context) { _classCallCheck(this, Search); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); var filterValue = null; if (props.filter && props.filter.length) { props.filter.forEach(function (item) { if (item['default']) { filterValue = item.value; } }); //如果没有指定filter默认选中项,则默认取第一个值 if (filterValue === null) { filterValue = props.filter[0].value; } } _this.state = { filterValue: filterValue, key: _this.props.value || props.defaultValue || '' }; return _this; } Search.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var filterValue = null; //如果filter没改变则不做改变 if (nextProps.filter && nextProps.filter.length && this.props.filter !== nextProps.filter) { nextProps.filter.forEach(function (item) { if (item['default']) { filterValue = item.value; } }); //如果没有指定filter默认选中项,则默认取第一个值 if (filterValue === null) { filterValue = nextProps.filter[0].value; } this.setState({ filterValue: filterValue }); } if (nextProps.hasOwnProperty('value')) { this.setState({ key: nextProps.value }); } }; Search.prototype.onChange = function onChange(value) { // Not Controled if (!(value in this.props)) { this.setState({ key: value }); } //默认触发搜索 //this.onSearch(); var obj = { key: value, filter: this.state.filterValue, filterValue: this.state.filterValue }; this.props.onSearch(obj); }; Search.prototype.onInputUpdate = function onInputUpdate(value) { this.setState({ key: value }); this.props.onChange(value); }; Search.prototype.onInputEnter = function onInputEnter() { //默认触发搜索 this.onSearch(); }; Search.prototype.onFilter = function onFilter(value) { this.setState({ filterValue: value }); var obj = { key: this.state.key, filterValue: value }; this.props.onFilterChange(value, obj); }; Search.prototype.onSearch = function onSearch() { this.props.onSearch({ filter: this.state.filterValue, filterValue: this.state.filterValue, key: this.state.key }); }; Search.prototype.onInputBlur = function onInputBlur(e) { var obj = { key: this.state.key, filter: this.state.filterValue, filterValue: this.state.filterValue }; this.props.onInputBlur(e, obj); }; Search.prototype.onInputFocus = function onInputFocus(e, clickByUser) { var obj = { key: this.state.key, filter: this.state.filterValue, filterValue: this.state.filterValue }; this.props.onInputFocus(e, clickByUser, obj); }; Search.prototype.render = function render() { var _classNames; var _props = this.props, filter = _props.filter, type = _props.type, searchIcon = _props.searchIcon, hasIcon = _props.hasIcon, autoWidth = _props.autoWidth, className = _props.className, style = _props.style, filterAutoWidth = _props.filterAutoWidth, others = _objectWithoutProperties(_props, ['filter', 'type', 'searchIcon', 'hasIcon', 'autoWidth', 'className', 'style', 'filterAutoWidth']); var _props2 = this.props, size = _props2.size, dataSource = _props2.dataSource, searchText = _props2.searchText, combox = _props2.combox, overlayVisible = _props2.overlayVisible, inputWidth = _props2.inputWidth; var hasSearchIcon = hasIcon; if (typeof searchIcon !== 'undefined') { hasSearchIcon = searchIcon; _nextUtil.log.deprecated('searchIcon', 'hasIcon', 'Search'); } // 支持从context上获取prefix var prefix = this.context.prefix || this.props.prefix; var searchCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'search', true), _defineProperty(_classNames, prefix + 'search-' + type, type), _defineProperty(_classNames, size, true), _defineProperty(_classNames, 'auto-width', autoWidth), _defineProperty(_classNames, className, className), _classNames)); var iconCls = (0, _classnames2['default'])(_defineProperty({}, prefix + 'icon-alone', !searchText)); var props = _extends({}, others); return _react2['default'].createElement( 'div', { className: searchCls, style: style }, _react2['default'].createElement( 'div', { className: prefix + 'search-lt' }, filter.length > 0 ? _react2['default'].createElement( _nextSelect2['default'], { shape: 'arrow-only', className: 'filter', autoWidth: filterAutoWidth, value: this.state.filterValue, onChange: this.onFilter.bind(this) }, filter.map(function (item, index) { return _react2['default'].createElement( 'div', { value: item.value, key: index }, item.text ); }) ) : null, !combox ? _react2['default'].createElement( 'div', { className: prefix + 'search-lt-input', style: { width: inputWidth, float: 'left' } }, _react2['default'].createElement(_nextSelect.Combobox, _extends({}, props, { shape: 'arrow-only', hasArrow: false, placeholder: this.props.placeholder, value: this.state.key, dataSource: dataSource, onChange: this.onChange.bind(this), onInputEnter: this.onInputEnter.bind(this), onInputUpdate: this.onInputUpdate.bind(this), onInputFocus: this.onInputFocus.bind(this), onInputBlur: this.onInputBlur.bind(this) })) ) : _react2['default'].createElement(_combox2['default'], _extends({}, props, { overlay: combox, width: inputWidth, placeholder: this.props.placeholder, value: this.state.key, overlayVisible: overlayVisible, onChange: this.onChange.bind(this), onInputEnter: this.onSearch.bind(this), onInputUpdate: this.onInputUpdate.bind(this), onInputFocus: this.onInputFocus.bind(this), onInputBlur: this.onInputBlur.bind(this) })) ), _react2['default'].createElement( 'div', { className: prefix + 'search-rt' }, _react2['default'].createElement( _nextButton2['default'], { type: this.props.type === 'normal' ? 'normal' : 'primary', size: size, onClick: this.onSearch.bind(this) }, hasSearchIcon ? _react2['default'].createElement(_nextIcon2['default'], { type: 'search', className: iconCls }) : '', ' ', searchText ) ) ); }; return Search; }(_react2['default'].Component), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * 大小,可选 `primary/secondary` 可选择 `medium/large`; `normal` 可选择 `small/medium` */ size: _propTypes2['default'].string, /** * 前置下拉框,default为默认选中项 `[{text:'Products', value:'Products',default: true},{text:'Suppliers',valuse:'Suppliers'}]` */ filter: _propTypes2['default'].array, searchIcon: _propTypes2['default'].bool, /** * 搜索按钮图标 */ hasIcon: _propTypes2['default'].bool, /** * 搜索按钮文案 */ searchText: _propTypes2['default'].string, /** * 定制下拉框,适合业务特殊定制 */ combox: _propTypes2['default'].node, /** * 搜索框宽度 */ inputWidth: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), /** * 与combox配合使用,控制定制下拉框的展现 */ overlayVisible: _propTypes2['default'].bool, /** * 下拉提示框:历史搜索/搜索建议 `[{label:'',value:'',disabled:true}]` */ dataSource: _propTypes2['default'].array, /** * 类型 */ type: _propTypes2['default'].oneOf(['primary', 'secondary', 'normal']), /** * 数值 */ value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), /** * 搜索框默认值 (不适用于Combox) */ defaultValue: _propTypes2['default'].string, /** * 样式名称 */ className: _propTypes2['default'].string, /** * 默认提示 */ placeholder: _propTypes2['default'].string, /** * input获取焦点的时候触发的回调 */ onInputFocus: _propTypes2['default'].func, /** * input失去焦点的时候触发的回调 */ onInputBlur: _propTypes2['default'].func, /** * 点击搜索按钮触发的回调 * @param {Object} object {filter:'',key:''} */ onSearch: _propTypes2['default'].func, /** * 输入关键字时的回掉 */ onChange: _propTypes2['default'].func, /** * Filter改变时的回掉(filterValue) */ onFilterChange: _propTypes2['default'].func, /** * 搜索框100%自适应父容器 */ autoWidth: _propTypes2['default'].bool, /** * filter的下拉菜单是否与选择器对齐 */ filterAutoWidth: _propTypes2['default'].bool, /** * 自定义样式 */ style: _propTypes2['default'].object, /** * 指定渲染combox的容器 */ container: _propTypes2['default'].any }, _class.defaultProps = { prefix: 'next-', type: 'primary', size: 'medium', filter: [], dataSource: [], inputWidth: 'auto', hasIcon: true, combox: false, searchText: 'Search', autoWidth: false, filterAutoWidth: true, onChange: function onChange() {}, onSearch: function onSearch() {}, onInputFocus: function onInputFocus() {}, onInputBlur: function onInputBlur() {}, onFilterChange: function onFilterChange() {} }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Search.displayName = 'Search'; exports['default'] = Search; module.exports = exports['default']; /***/ }), /***/ 2655: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _nextOverlay = __webpack_require__(1401); var _nextOverlay2 = _interopRequireDefault(_nextOverlay); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var findDOMNode = _reactDom2['default'].findDOMNode; var Combox = (_temp = _class = function (_Component) { _inherits(Combox, _Component); function Combox(props) { _classCallCheck(this, Combox); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.state = { placeholder: _this.props.placeholder || '', //key: this.props.value || '', visible: _this.props.overlayVisible, value: _this.props.value || '' }; return _this; } Combox.prototype.componentDidMount = function componentDidMount() { this.setInputWidth(); }; Combox.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { //console.log('1111',nextProps); this.setState({ visible: nextProps.overlayVisible, value: nextProps.value, placeholder: nextProps.placeholder }); }; Combox.prototype.onInputChange = function onInputChange(e) { var value = e.target.value; this.props.onInputUpdate(value); }; Combox.prototype.onInputKeyDown = function onInputKeyDown(e) { if (e.keyCode === 13) { this.props.onInputEnter(e); } }; Combox.prototype.onInputFocus = function onInputFocus(e) { //this.setState({ // placeholder: '' //}); this.props.onInputFocus(e); }; Combox.prototype.onInputBlur = function onInputBlur(e) { this.props.onInputBlur(e); }; Combox.prototype.setInputWidth = function setInputWidth() { var input = findDOMNode(this.refs.target); this._inputWidth = input.clientWidth + 16 + 'px'; //add padding width 8px }; Combox.prototype.render = function render() { var _this2 = this; var visible = this.state.visible; var _props = this.props, overlay = _props.overlay, width = _props.width, container = _props.container, others = _objectWithoutProperties(_props, ['overlay', 'width', 'container']); return _react2['default'].createElement( 'div', { className: 'search-custom', style: { width: width }, ref: 'custom' }, _react2['default'].createElement('input', _extends({}, (0, _nextUtil.pickAttrs)(others), { ref: 'target', placeholder: this.state.placeholder, value: this.state.value, onChange: this.onInputChange.bind(this), onFocus: this.onInputFocus.bind(this), onKeyDown: this.onInputKeyDown.bind(this), onBlur: this.onInputBlur.bind(this) })), _react2['default'].createElement( _nextOverlay2['default'], { visible: visible, autoFocus: false, ref: 'overlay', safeNode: function safeNode() { return _this2.refs.custom; }, target: function target() { return _this2; }, onOpen: this.afterOpen, container: container }, _react2['default'].createElement( 'div', { style: { width: width === 'auto' ? this._inputWidth : width } }, overlay ) ) ); }; return Combox; }(_react.Component), _class.propTypes = { placeholder: _propTypes2['default'].string, value: _propTypes2['default'].string, overlayVisible: _propTypes2['default'].bool, overlay: _propTypes2['default'].any, width: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), onInputUpdate: _propTypes2['default'].func, onInputEnter: _propTypes2['default'].func, onInputFocus: _propTypes2['default'].func, onInputBlur: _propTypes2['default'].func, /** * 指定渲染combox的容器 */ container: _propTypes2['default'].any }, _class.defaultProps = { overlay: null }, _temp); Combox.displayName = 'Combox'; exports['default'] = Combox; module.exports = exports['default']; /***/ }), /***/ 2656: /***/ (function(module, exports, __webpack_require__) { "use strict"; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _nextUtil = __webpack_require__(889); var _utils = __webpack_require__(1746); var _innerSlider = __webpack_require__(2657); var _innerSlider2 = _interopRequireDefault(_innerSlider); var _json2mq = __webpack_require__(2290); var _json2mq2 = _interopRequireDefault(_json2mq); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var ResponsiveMixin = {}; if (window) { __webpack_require__(2664); __webpack_require__(2665); ResponsiveMixin = __webpack_require__(2666); } /** Slider */ var Slider = (_temp = _class = function (_Component) { _inherits(Slider, _Component); function Slider(props, context) { _classCallCheck(this, Slider); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.resize = function () { _this.innerSlider.onWindowResized(); }; _this.state = { breakpoint: null }; return _this; } Slider.prototype.componentDidMount = function componentDidMount() { var _this2 = this; // TODO: 1.x remove responsive var responsive = this.props.responsive; if (responsive) { var breakpoints = responsive.map(function (breakPt) { return breakPt.breakpoint; }); breakpoints.sort(function (x, y) { return x - y; }); breakpoints.forEach(function (breakpoint, index) { var bQuery = void 0; if (index === 0) { bQuery = (0, _json2mq2['default'])({ minWidth: 0, maxWidth: breakpoint }); } else { bQuery = (0, _json2mq2['default'])({ minWidth: breakpoints[index - 1], maxWidth: breakpoint }); } _this2.media(bQuery, function () { _this2.setState({ breakpoint: breakpoint }); }); }); // Register media query for full screen. Need to support resize from small to large var query = (0, _json2mq2['default'])({ minWidth: breakpoints.slice(-1)[0] }); this.media(query, function () { _this2.setState({ breakpoint: null }); }); } }; Slider.prototype.render = function render() { var _classnames, _this3 = this; var _props = this.props, prefixCls = _props.prefixCls, responsive = _props.responsive, arrowPos = _props.arrowPos, vertical = _props.vertical, slideDirection = _props.slideDirection, style = _props.style, className = _props.className, children = _props.children; var prefix = this.context.prefix || prefixCls || this.props.prefix; var settings = void 0; var newProps = void 0; var classNames = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'slick', true), _defineProperty(_classnames, prefix + 'slick-' + arrowPos, arrowPos), _defineProperty(_classnames, prefix + 'slick-' + slideDirection, slideDirection === 'vertical' || slideDirection === 'horizontal'), _classnames), className); /* istanbul ignore if */ if (this.state.breakpoint) { newProps = responsive.filter(function (resp) { return resp.breakpoint === _this3.state.breakpoint; }); settings = newProps[0].settings === 'unslick' ? 'unslick' : _extends({}, this.props, newProps[0].settings, { prefix: prefix }); } else { settings = _extends({}, this.props, { prefix: prefix }); // for rewrite the properties var slideCount = _react2['default'].Children.count(children); if (slideCount === 1) { settings.arrows = false; settings.autoplay = false; settings.draggable = false; } else if (slideCount === 0) { return null; } } // TODO: 1.0 时取消 vertical 属性 // WARM: 1.0 时将不对外暴露 vertical ,原有 vertical 功能由 dotsDirection 取代, slideDirection 用于控制组件的滑动方向 if (vertical) { _nextUtil.log.deprecated('vertical', 'dotsDirection', 'Slider'); settings.dotsDirection = 'vertical'; settings.vertical = false; } if (slideDirection === 'vertical') { settings.vertical = true; // 向下传递时使用 vertical 属性 } // TODO: 1.0 时取消 prefixCls 属性 if (prefixCls) { _nextUtil.log.deprecated('prefixCls', 'prefix', 'Slider'); settings.prefix = prefixCls; } if (settings === 'unslick') { // if 'unslick' responsive breakpoint setting used, just return the tag nested HTML return _react2['default'].createElement( 'div', null, children ); } else { return _react2['default'].createElement( 'div', { className: classNames, style: style }, _react2['default'].createElement( _innerSlider2['default'], _extends({ ref: function ref(ins) { return _this3.innerSlider = ins; } }, settings), children ) ); } }; return Slider; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, prefixCls: _propTypes2['default'].string, // obsolete /** * 自定义传入的样式 */ className: _propTypes2['default'].string, /** * 是否使用自适应高度 */ adaptiveHeight: _propTypes2['default'].bool, /** * 是否开启动效 */ animation: _propTypes2['default'].bool, /** * 是否显示箭头 */ arrows: _propTypes2['default'].bool, /** * 导航箭头大小 */ arrowSize: _propTypes2['default'].oneOf(['medium', 'large']), /** * 导航箭头位置 */ arrowPos: _propTypes2['default'].oneOf(['inline', 'outer']), /** * 导航箭头的方向 */ arrowDirection: _propTypes2['default'].oneOf(['horizontal', 'vertical']), /** * 向后箭头 */ nextArrow: _propTypes2['default'].element, /** * 向后箭头 */ prevArrow: _propTypes2['default'].element, /** * 是否自动播放 */ autoplay: _propTypes2['default'].bool, /** * 自动播放的速度 */ autoplaySpeed: _propTypes2['default'].number, /** * 是否启用居中模式 */ centerMode: _propTypes2['default'].bool, /** * 是否显示导航锚点 */ dots: _propTypes2['default'].bool, /** * 导航锚点到位置 */ dotsDirection: _propTypes2['default'].oneOf(['horizontal', 'vertical']), dotsClass: _propTypes2['default'].string, /** * 是否可拖拽 */ draggable: _propTypes2['default'].bool, /** * 是否使用淡入淡出效果 */ fade: _propTypes2['default'].bool, /** * 是否使用无穷循环模式 */ infinite: _propTypes2['default'].bool, /** * 初始被激活的轮播图 */ initialSlide: _propTypes2['default'].number, /** * 是否启用懒加载 */ lazyLoad: _propTypes2['default'].bool, vertical: _propTypes2['default'].bool, rtl: _propTypes2['default'].bool, slide: _propTypes2['default'].string, /** * 轮播方向 */ slideDirection: _propTypes2['default'].oneOf(['horizontal', 'vertical']), /** * 同时展示的图片数量 */ slidesToShow: _propTypes2['default'].number, /** * 同时滑动到图片数量 */ slidesToScroll: _propTypes2['default'].number, /** * 轮播速度 */ speed: _propTypes2['default'].number, responsive: _propTypes2['default'].array, children: _propTypes2['default'].any, /** * 跳转到指定的轮播图(受控) */ slickGoTo: _propTypes2['default'].number, /** * 轮播切换后的回调函数 * @param {Number} index 当前幻灯片的索引 */ afterChange: _propTypes2['default'].func, /** * 轮播切换前的回调函数 * @param {Number} currentIndex 当前幻灯片的索引 * @param {Number} nextIndex 下一张幻灯片的索引 */ beforeChange: _propTypes2['default'].func, style: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-', animation: true, arrowSize: 'medium', arrowPos: 'inline', vertical: false, dots: true, dotsDirection: 'horizontal', arrows: true, arrowDirection: 'horizontal', infinite: true, autoplay: false, autoplaySpeed: 3000, speed: 500, adaptiveHeight: false, centerMode: false, centerPadding: '50px', cssEase: 'ease', draggable: true, easing: 'linear', edgeFriction: 0.35, fade: false, focusOnSelect: false, initialSlide: 0, lazyLoad: false, pauseOnHover: false, responsive: null, rtl: false, slide: 'div', slideDirection: 'horizontal', slidesToShow: 1, slidesToScroll: 1, swipe: true, swipeToSlide: false, touchMove: true, touchThreshold: 5, useCSS: true, variableWidth: false, waitForAnimate: true, afterChange: null, beforeChange: null, edgeEvent: null, swipeEvent: null, nextArrow: null, // // nextArrow, prevArrow are react components prevArrow: null, style: null }, _temp); Slider.displayName = 'Slider'; (0, _utils.mixinTo)(Slider, ResponsiveMixin); module.exports = Slider; /***/ }), /***/ 2657: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); var _nextDom2 = _interopRequireDefault(_nextDom); var _eventHandlers = __webpack_require__(2658); var _eventHandlers2 = _interopRequireDefault(_eventHandlers); var _helpers = __webpack_require__(2659); var _helpers2 = _interopRequireDefault(_helpers); var _utils = __webpack_require__(1746); var _track = __webpack_require__(2660); var _track2 = _interopRequireDefault(_track); var _dots = __webpack_require__(2661); var _dots2 = _interopRequireDefault(_dots); var _prevArrow = __webpack_require__(2662); var _prevArrow2 = _interopRequireDefault(_prevArrow); var _nextArrow = __webpack_require__(2663); var _nextArrow2 = _interopRequireDefault(_nextArrow); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; var InnerSlider = (_temp = _class = function (_React$Component) { _inherits(InnerSlider, _React$Component); function InnerSlider(props, context) { _classCallCheck(this, InnerSlider); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this.state = { animating: false, dragging: false, autoPlayTimer: null, currentDirection: 0, currentLeft: null, currentSlide: _this.props.initialSlide, direction: 1, listWidth: null, listHeight: null, slideCount: null, slideWidth: null, slideHeight: null, swipeLeft: null, touchObject: { startX: 0, startY: 0, curX: 0, curY: 0 }, lazyLoadedList: [], // added for react initialized: false, edgeDragged: false, swiped: false, // used by swipeEvent. differentites between touch and swipe. trackStyle: {}, trackWidth: 0 }; _this.onWindowResized = _this.onWindowResized.bind(_this); return _this; } InnerSlider.prototype.componentWillMount = function componentWillMount() { this.setState({ mounted: true }); var lazyLoadedList = []; for (var i = 0; i < _react2['default'].Children.count(this.props.children); i++) { if (i >= this.state.currentSlide && i < this.state.currentSlide + this.props.slidesToShow) { lazyLoadedList.push(i); } } if (this.props.lazyLoad && this.state.lazyLoadedList.length === 0) { this.setState({ lazyLoadedList: lazyLoadedList }); } }; InnerSlider.prototype.componentDidMount = function componentDidMount() { // Hack for autoplay -- Inspect Later this.initialize(this.props); this.adaptHeight(); // Fallback for IE8 this._setArrowPositonForIE8(this.props, _utils.isIE8); // 1.x TODO: remove slickGoTo if (this.props.slickGoTo) { this.slickGoTo(this.props.slickGoTo); } /* istanbul ignore if */ if (!window) { // To support server-side rendering return; } _nextDom2['default'].events.on(window, 'resize', this.onWindowResized); }; InnerSlider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if (this.props.initialSlide !== nextProps.initialSlide) { this.setState({ currentSlide: nextProps.initialSlide }); } if (this.props.slickGoTo !== nextProps.slickGoTo) { this.slickGoTo(nextProps.slickGoTo); } else if (this.state.currentSlide >= nextProps.children.length) { this.update(nextProps); this.changeSlide({ message: 'index', index: nextProps.children.length - nextProps.slidesToShow, currentSlide: this.state.currentSlide }); } else { var resetSlide = _react2['default'].Children.count(this.props.children) !== _react2['default'].Children.count(nextProps.children); this.update(nextProps, resetSlide); } }; InnerSlider.prototype.componentDidUpdate = function componentDidUpdate() { this.adaptHeight(); }; InnerSlider.prototype.componentWillUnmount = function componentWillUnmount() { if (this.animationEndCallback) { clearTimeout(this.animationEndCallback); } _nextDom2['default'].events.off(window, 'resize', this.onWindowResized); if (this.state.autoPlayTimer) { clearTimeout(this.state.autoPlayTimer); } }; InnerSlider.prototype.onWindowResized = function onWindowResized() { this.update(this.props, false); // Fallback for IE8 this._setArrowPositonForIE8(_utils.isIE8); // animating state should be cleared while resizing, otherwise autoplay stops working this.setState({ animating: false }); clearTimeout(this.animationEndCallback); delete this.animationEndCallback; }; InnerSlider.prototype.slickGoTo = function slickGoTo(slide) { typeof slide === 'number' && this.changeSlide({ message: 'index', index: slide, currentSlide: this.state.currentSlide }); }; InnerSlider.prototype.onEnterArrow = function onEnterArrow(msg) { this.arrowHoverHandler(msg); }; InnerSlider.prototype.onLeaveArrow = function onLeaveArrow() { this.arrowHoverHandler(); }; InnerSlider.prototype._instanceRefHandler = function _instanceRefHandler(attr, ref) { this[attr] = ref; }; InnerSlider.prototype._setArrowPositonForIE8 = function _setArrowPositonForIE8(_ref, isIE8) { var slideDirection = _ref.slideDirection; /* istanbul ignore if */ if (isIE8 && this.pArrow) { var listElem = (0, _reactDom.findDOMNode)(this.list); var pArrowElem = (0, _reactDom.findDOMNode)(this.pArrow); var nArrowElem = (0, _reactDom.findDOMNode)(this.nArrow); var listHeight = (0, _utils.getNodeHeight)(listElem); var listWidth = (0, _utils.getNodeWidth)(listElem); var arrowHeight = (0, _utils.getNodeHeight)(pArrowElem); var arrowWidth = (0, _utils.getNodeWidth)(pArrowElem); if (slideDirection === 'vertical') { // 垂直滑动时 var arrowHorizontalPosition = (listWidth - arrowWidth) / 2 + 'px'; pArrowElem.style.top = 0; pArrowElem.style.left = arrowHorizontalPosition; nArrowElem.style.bottom = 0; nArrowElem.style.left = arrowHorizontalPosition; } else { // 水平滑动时 var arrowVerticalPosition = (listHeight - arrowHeight) / 2 + 'px'; pArrowElem.style.top = arrowVerticalPosition; nArrowElem.style.top = arrowVerticalPosition; } } }; InnerSlider.prototype.render = function render() { var _props = this.props, prefix = _props.prefix, animation = _props.animation, arrows = _props.arrows, arrowSize = _props.arrowSize, arrowPos = _props.arrowPos, arrowDirection = _props.arrowDirection, dots = _props.dots, dotsClass = _props.dotsClass, fade = _props.fade, cssEase = _props.cssEase, speed = _props.speed, infinite = _props.infinite, centerMode = _props.centerMode, lazyLoad = _props.lazyLoad, dotsDirection = _props.dotsDirection, rtl = _props.rtl, slidesToShow = _props.slidesToShow, slidesToScroll = _props.slidesToScroll, variableWidth = _props.variableWidth, vertical = _props.vertical, focusOnSelect = _props.focusOnSelect, children = _props.children, others = _objectWithoutProperties(_props, ['prefix', 'animation', 'arrows', 'arrowSize', 'arrowPos', 'arrowDirection', 'dots', 'dotsClass', 'fade', 'cssEase', 'speed', 'infinite', 'centerMode', 'lazyLoad', 'dotsDirection', 'rtl', 'slidesToShow', 'slidesToScroll', 'variableWidth', 'vertical', 'focusOnSelect', 'children']); var trackProps = { prefix: prefix, fade: fade, cssEase: cssEase, speed: speed, infinite: infinite, centerMode: centerMode, focusOnSelect: focusOnSelect ? this.selectHandler.bind(this) : null, currentSlide: this.state.currentSlide, lazyLoad: lazyLoad, lazyLoadedList: this.state.lazyLoadedList, rtl: rtl, slideWidth: this.state.slideWidth, slideHeight: this.state.slideHeight, slidesToShow: slidesToShow, slidesToScroll: slidesToScroll, slideCount: this.state.slideCount, trackStyle: this.state.trackStyle, variableWidth: variableWidth, vertical: vertical, clickHandler: this.changeSlide.bind(this) }; var dotsEle = void 0; if (dots === true && this.state.slideCount > slidesToShow) { var dotProps = { prefix: prefix, dotsClass: dotsClass, slideCount: this.state.slideCount, slidesToShow: slidesToShow, currentSlide: this.state.currentSlide, slidesToScroll: slidesToScroll, dotsDirection: dotsDirection, clickHandler: this.changeSlide.bind(this) }; dotsEle = _react2['default'].createElement(_dots2['default'], dotProps); } var prevArrow = void 0, nextArrow = void 0; var arrowProps = { prefix: prefix, arrowSize: arrowSize, arrowPos: arrowPos, arrowDirection: arrowDirection, infinite: infinite, centerMode: centerMode, currentSlide: this.state.currentSlide, slideCount: this.state.slideCount, slidesToShow: slidesToShow, prevArrow: this.props.prevArrow, nextArrow: this.props.nextArrow, clickHandler: this.changeSlide.bind(this) }; if (arrows) { prevArrow = _react2['default'].createElement(_prevArrow2['default'], _extends({}, arrowProps, { ref: this._instanceRefHandler.bind(this, 'pArrow'), onMouseEnter: animation ? this.onEnterArrow.bind(this, 'prev') : noop, onMouseLeave: animation ? this.onLeaveArrow.bind(this, 'prev') : noop })); nextArrow = _react2['default'].createElement(_nextArrow2['default'], _extends({}, arrowProps, { ref: this._instanceRefHandler.bind(this, 'nArrow'), onMouseEnter: animation ? this.onEnterArrow.bind(this, 'next') : noop, onMouseLeave: animation ? this.onLeaveArrow.bind(this, 'next') : noop })); } var verticalHeightStyle = null; if (vertical) { verticalHeightStyle = { height: this.state.listHeight }; } var centerPaddingStyle = void 0; if (centerMode) { centerPaddingStyle = vertical ? { padding: this.props.centerPadding + ' 0px' } : { padding: '0px ' + this.props.centerPadding }; } var listStyle = _extends({}, verticalHeightStyle, centerPaddingStyle); return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: prefix + 'slick-inner ' + prefix + 'slick-initialized', onMouseEnter: this.onInnerSliderEnter.bind(this), onMouseLeave: this.onInnerSliderLeave.bind(this) }), _react2['default'].createElement( 'div', { ref: this._instanceRefHandler.bind(this, 'list'), className: prefix + 'slick-list', style: listStyle, onMouseDown: this.swipeStart.bind(this), onMouseMove: this.state.dragging ? this.swipeMove.bind(this) : null, onMouseUp: this.swipeEnd.bind(this), onMouseLeave: this.state.dragging ? this.swipeEnd.bind(this) : null, onTouchStart: this.swipeStart.bind(this), onTouchMove: this.state.dragging ? this.swipeMove.bind(this) : null, onTouchEnd: this.swipeEnd.bind(this), onTouchCancel: this.state.dragging ? this.swipeEnd.bind(this) : null }, _react2['default'].createElement( _track2['default'], _extends({ ref: this._instanceRefHandler.bind(this, 'track') }, trackProps), children ) ), prevArrow, nextArrow, dotsEle ); }; return InnerSlider; }(_react2['default'].Component), _class.propTypes = { prefix: _propTypes2['default'].string, animation: _propTypes2['default'].bool, arrows: _propTypes2['default'].bool, arrowSize: _propTypes2['default'].oneOf(['medium', 'large']), arrowPos: _propTypes2['default'].oneOf(['inline', 'outer']), arrowDirection: _propTypes2['default'].oneOf(['horizontal', 'vertical']), centerPadding: _propTypes2['default'].any, children: _propTypes2['default'].any, centerMode: _propTypes2['default'].bool, dots: _propTypes2['default'].bool, dotsDirection: _propTypes2['default'].oneOf(['horizontal', 'vertical']), dotsClass: _propTypes2['default'].string, fade: _propTypes2['default'].bool, focusOnSelect: _propTypes2['default'].bool, cssEase: _propTypes2['default'].string, speed: _propTypes2['default'].number, infinite: _propTypes2['default'].bool, initialSlide: _propTypes2['default'].number, rtl: _propTypes2['default'].bool, slidesToShow: _propTypes2['default'].number, lazyLoad: _propTypes2['default'].bool, slickGoTo: _propTypes2['default'].number, slidesToScroll: _propTypes2['default'].number, variableWidth: _propTypes2['default'].bool, vertical: _propTypes2['default'].bool, prevArrow: _propTypes2['default'].element, nextArrow: _propTypes2['default'].element }, _class.defaultProps = { prefix: 'next-', arrowDirection: 'horizontal' }, _temp); InnerSlider.displayName = 'InnerSlider'; (0, _utils.mixinTo)(InnerSlider, _helpers2['default']); (0, _utils.mixinTo)(InnerSlider, _eventHandlers2['default']); exports['default'] = InnerSlider; module.exports = exports['default']; /***/ }), /***/ 2658: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _reactDom = __webpack_require__(4); var _trackHelper = __webpack_require__(2289); var EventHandlers = { // Event handler for previous and next changeSlide: function changeSlide(options) { var previousInt = void 0, slideOffset = void 0, targetSlide = void 0; var unevenOffset = this.state.slideCount % this.props.slidesToScroll !== 0; var indexOffset = unevenOffset ? 0 : (this.state.slideCount - this.state.currentSlide) % this.props.slidesToScroll; if (options.message === 'previous') { slideOffset = indexOffset === 0 ? this.props.slidesToScroll : this.props.slidesToShow - indexOffset; targetSlide = this.state.currentSlide - slideOffset; if (this.props.lazyLoad) { previousInt = targetSlide; targetSlide = previousInt === -1 ? this.state.slideCount - 1 : previousInt; } } else if (options.message === 'next') { slideOffset = indexOffset === 0 ? this.props.slidesToScroll : indexOffset; targetSlide = this.state.currentSlide + slideOffset; if (this.props.lazyLoad) { targetSlide = (this.state.currentSlide + this.props.slidesToScroll) % this.state.slideCount + indexOffset; } } else if (options.message === 'dots' || options.message === 'children') { // Click on dots targetSlide = options.index * options.slidesToScroll; if (targetSlide === options.currentSlide) { return; } } else if (options.message === 'index') { targetSlide = options.index; if (targetSlide === options.currentSlide) { return; } } this.slideHandler(targetSlide); }, // Accessiblity handler for previous and next keyHandler: function keyHandler(e) { //Dont slide if the cursor is inside the form fields and arrow keys are pressed if (!e.target.tagName.match('TEXTAREA|INPUT|SELECT')) { if (e.keyCode === 37 && this.props.accessibility === true) { this.changeSlide({ message: this.props.rtl === true ? 'next' : 'previous' }); } else if (e.keyCode === 39 && this.props.accessibility === true) { this.changeSlide({ message: this.props.rtl === true ? 'previous' : 'next' }); } } }, // Focus on selecting a slide (click handler on track) selectHandler: function selectHandler(options) { this.changeSlide(options); }, swipeStart: function swipeStart(e) { if (this.props.swipe === false || 'ontouchend' in document && this.props.swipe === false) { return; } else if (this.props.draggable === false && e.type.indexOf('mouse') !== -1) { return; } var posX = e.touches !== undefined ? e.touches[0].pageX : e.clientX; var posY = e.touches !== undefined ? e.touches[0].pageY : e.clientY; this.setState({ dragging: true, touchObject: { startX: posX, startY: posY, curX: posX, curY: posY } }); }, swipeMove: function swipeMove(e) { if (!this.state.dragging) { return; } if (this.state.animating) { return; } var touchObject = this.state.touchObject; var curLeft = (0, _trackHelper.getTrackLeft)(_extends({ slideIndex: this.state.currentSlide, trackRef: this.refs.track }, this.props, this.state)); touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX; touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY; touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2))); var positionOffset = (this.props.rtl === false ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1); var currentSlide = this.state.currentSlide; var dotCount = Math.ceil(this.state.slideCount / this.props.slidesToScroll); var swipeDirection = this.swipeDirection(this.state.touchObject); var touchSwipeLength = touchObject.swipeLength; if (this.props.infinite === false) { if (currentSlide === 0 && swipeDirection === 'right' || currentSlide + 1 >= dotCount && swipeDirection === 'left') { touchSwipeLength = touchObject.swipeLength * this.props.edgeFriction; if (this.state.edgeDragged === false && this.props.edgeEvent) { this.props.edgeEvent(swipeDirection); this.setState({ edgeDragged: true }); } } } if (this.state.swiped === false && this.props.swipeEvent) { this.props.swipeEvent(swipeDirection); this.setState({ swiped: true }); } var swipeLeft = curLeft + touchSwipeLength * positionOffset; this.setState({ touchObject: touchObject, swipeLeft: swipeLeft, trackStyle: (0, _trackHelper.getTrackCSS)(_extends({ left: swipeLeft }, this.props, this.state)) }); if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) { return; } if (touchObject.swipeLength > 4) { e.preventDefault(); } }, getNavigableIndexes: function getNavigableIndexes() { var max = void 0; var breakPoint = 0; var counter = 0; var indexes = []; if (!this.props.infinite) { max = this.state.slideCount; } else { breakPoint = this.props.slidesToShow * -1; counter = this.props.slidesToShow * -1; max = this.state.slideCount * 2; } while (breakPoint < max) { indexes.push(breakPoint); breakPoint = counter + this.props.slidesToScroll; counter += this.props.slidesToScroll <= this.props.slidesToShow ? this.props.slidesToScroll : this.props.slidesToShow; } return indexes; }, checkNavigable: function checkNavigable(index) { var navigables = this.getNavigableIndexes(); var prevNavigable = 0; if (index > navigables[navigables.length - 1]) { index = navigables[navigables.length - 1]; } else { for (var n in navigables) { if (index < navigables[n]) { index = prevNavigable; break; } prevNavigable = navigables[n]; } } return index; }, getSlideCount: function getSlideCount() { var _this = this; var centerOffset = this.props.centerMode ? this.state.slideWidth * Math.floor(this.props.slidesToShow / 2) : 0; if (this.props.swipeToSlide) { var swipedSlide = void 0; var slickList = (0, _reactDom.findDOMNode)(this.list); var slides = slickList.querySelectorAll(this.props.prefix + 'slick-slide'); Array.from(slides).every(function (slide) { if (!_this.props.vertical) { if (slide.offsetLeft - centerOffset + _this.getWidth(slide) / 2 > _this.state.swipeLeft * -1) { swipedSlide = slide; return false; } } else if (slide.offsetTop + _this.getHeight(slide) / 2 > _this.state.swipeLeft * -1) { swipedSlide = slide; return false; } return true; }); var slidesTraversed = Math.abs(swipedSlide.dataset.index - this.state.currentSlide) || 1; return slidesTraversed; } else { return this.props.slidesToScroll; } }, swipeEnd: function swipeEnd(e) { if (!this.state.dragging) { if (this.props.swipe) { e.preventDefault(); } return; } var touchObject = this.state.touchObject; var minSwipe = this.state.listWidth / this.props.touchThreshold; var swipeDirection = this.swipeDirection(touchObject); if (this.props.verticalSwiping) { minSwipe = this.state.listHeight / this.props.touchThreshold; } // reset the state of touch related state variables. this.setState({ dragging: false, edgeDragged: false, swiped: false, swipeLeft: null, touchObject: {} }); if (!touchObject.swipeLength) { return; } if (touchObject.swipeLength > minSwipe) { e.preventDefault(); var slideCount = void 0; var newSlide = void 0; switch (swipeDirection) { case 'left': case 'down': newSlide = this.state.currentSlide + this.getSlideCount(); slideCount = this.props.swipeToSlide ? this.checkNavigable(newSlide) : newSlide; this.setState({ currentDirection: 0 }); break; case 'right': case 'up': newSlide = this.state.currentSlide - this.getSlideCount(); slideCount = this.props.swipeToSlide ? this.checkNavigable(newSlide) : newSlide; this.setState({ currentDirection: 1 }); break; default: slideCount = this.state.currentSlide; } this.slideHandler(slideCount); } else { // Adjust the track back to it's original position. var currentLeft = (0, _trackHelper.getTrackLeft)(_extends({ slideIndex: this.state.currentSlide, trackRef: this.track }, this.props, this.state)); this.setState({ trackStyle: (0, _trackHelper.getTrackAnimateCSS)(_extends({ left: currentLeft }, this.props, this.state)) }); } }, onInnerSliderEnter: function onInnerSliderEnter() { if (this.props.autoplay && this.props.pauseOnHover) { this.pause(); } }, onInnerSliderLeave: function onInnerSliderLeave() { if (this.props.autoplay && this.props.pauseOnHover) { this.autoPlay(); } } }; exports['default'] = EventHandlers; module.exports = exports['default']; /***/ }), /***/ 2659: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _trackHelper = __webpack_require__(2289); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var helpers = { initialize: function initialize(props) { var _this = this; var retsetSlide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var slickList = _reactDom2['default'].findDOMNode(this.list); var slideCount = _react2['default'].Children.count(props.children); var listWidth = this.getWidth(slickList); var trackWidth = this.getWidth(_reactDom2['default'].findDOMNode(this.track)); var slideWidth = void 0; if (!props.vertical) { var centerPaddingAdj = props.centerMode && parseInt(props.centerPadding) * 2; slideWidth = (listWidth - centerPaddingAdj) / props.slidesToShow; } else { slideWidth = listWidth; } var slideHeight = this.getHeight(slickList.querySelector('[data-index="0"]')); var listHeight = slideHeight * props.slidesToShow; var currentSlide = void 0; if (retsetSlide) { currentSlide = props.rtl ? slideCount - 1 - props.initialSlide : props.initialSlide; } else { currentSlide = this.state.currentSlide; } this.setState({ slideCount: slideCount, slideWidth: slideWidth, listWidth: listWidth, trackWidth: trackWidth, currentSlide: currentSlide, slideHeight: slideHeight, listHeight: listHeight }, function () { var targetLeft = (0, _trackHelper.getTrackLeft)(_extends({ slideIndex: _this.state.currentSlide, trackRef: _this.track }, props, _this.state)); // getCSS function needs previously set state var trackStyle = (0, _trackHelper.getTrackCSS)(_extends({ left: targetLeft }, props, _this.state)); _this.setState({ trackStyle: trackStyle }); _this.autoPlay(); // once we're set up, trigger the initial autoplay. }); }, update: function update(props) { var retsetSlide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; this.initialize(props, retsetSlide); }, getWidth: function getWidth(elem) { return elem.getBoundingClientRect().width || elem.offsetWidth; }, getHeight: function getHeight(elem) { return elem.getBoundingClientRect().height || elem.offsetHeight; }, adaptHeight: function adaptHeight() { if (this.props.adaptiveHeight) { var selector = '[data-index="' + this.state.currentSlide + '"]'; if (this.list) { var slickList = _reactDom2['default'].findDOMNode(this.list); var listHeight = slickList.querySelector(selector).offsetHeight; slickList.style.height = listHeight + 'px'; } } }, canGoNext: function canGoNext(opts) { var canGo = true; if (!opts.infinite) { if (opts.centerMode) { if (opts.currentSlide >= opts.slideCount - 1) { canGo = false; } } else if (opts.slideCount <= opts.slidesToShow || opts.currentSlide >= opts.slideCount - opts.slidesToShow) { // check if all slides are shown in slider canGo = false; } } return canGo; }, slideHandler: function slideHandler(index) { var _this2 = this; // Functionality of animateSlide and postSlide is merged into this function var targetSlide = void 0, currentSlide = void 0; var callback = void 0; if (this.props.waitForAnimate && this.state.animating) { return; } if (this.props.fade) { currentSlide = this.state.currentSlide; // don't change slide if it's not infinite and current slide is the first or last slide' if (this.props.infinite === false && (index < 0 || index >= this.state.slideCount)) { return; } // Shifting targetSlide back into the range if (index < 0) { targetSlide = index + this.state.slideCount; } else if (index >= this.state.slideCount) { targetSlide = index - this.state.slideCount; } else { targetSlide = index; } if (this.props.lazyLoad && this.state.lazyLoadedList.indexOf(targetSlide) < 0) { this.setState({ lazyLoadedList: this.state.lazyLoadedList.concat(targetSlide) }); } callback = function callback() { _this2.setState({ animating: false }); if (_this2.props.afterChange) { _this2.props.afterChange(targetSlide); } delete _this2.animationEndCallback; }; this.setState({ animating: true, currentSlide: targetSlide }, function () { this.animationEndCallback = setTimeout(callback, this.props.speed); }); if (this.props.beforeChange) { this.props.beforeChange(this.state.currentSlide, targetSlide); } this.autoPlay(); return; } targetSlide = index; if (targetSlide < 0) { if (this.props.infinite === false) { currentSlide = 0; } else if (this.state.slideCount % this.props.slidesToScroll !== 0) { currentSlide = this.state.slideCount - this.state.slideCount % this.props.slidesToScroll; } else { currentSlide = this.state.slideCount + targetSlide; } } else if (targetSlide >= this.state.slideCount) { if (this.props.infinite === false) { currentSlide = this.state.slideCount - this.props.slidesToShow; } else if (this.state.slideCount % this.props.slidesToScroll !== 0) { currentSlide = 0; } else { currentSlide = targetSlide - this.state.slideCount; } } else { currentSlide = targetSlide; } var targetLeft = (0, _trackHelper.getTrackLeft)(_extends({ slideIndex: targetSlide, trackRef: this.track }, this.props, this.state)); var currentLeft = (0, _trackHelper.getTrackLeft)(_extends({ slideIndex: currentSlide, trackRef: this.track }, this.props, this.state)); if (this.props.infinite === false) { targetLeft = currentLeft; } if (this.props.beforeChange) { this.props.beforeChange(this.state.currentSlide, currentSlide); } if (this.props.lazyLoad) { var loaded = true; var slidesToLoad = []; for (var i = targetSlide; i < targetSlide + this.props.slidesToShow; i++) { loaded = loaded && this.state.lazyLoadedList.indexOf(i) >= 0; if (!loaded) { slidesToLoad.push(i); } } if (!loaded) { this.setState({ lazyLoadedList: this.state.lazyLoadedList.concat(slidesToLoad) }); } } // Slide Transition happens here. // animated transition happens to target Slide and // non - animated transition happens to current Slide // If CSS transitions are false, directly go the current slide. /* istanbul ignore if */ if (this.props.useCSS === false) { this.setState({ currentSlide: currentSlide, trackStyle: (0, _trackHelper.getTrackCSS)(_extends({ left: currentLeft }, this.props, this.state)) }, function () { if (_this2.props.afterChange) { _this2.props.afterChange(currentSlide); } }); } else { var nextStateChanges = { animating: false, currentSlide: currentSlide, trackStyle: (0, _trackHelper.getTrackCSS)(_extends({ left: currentLeft }, this.props, this.state)), swipeLeft: null }; callback = function callback() { _this2.setState(nextStateChanges); if (_this2.props.afterChange) { _this2.props.afterChange(currentSlide); } delete _this2.animationEndCallback; }; this.setState({ animating: true, currentSlide: currentSlide, trackStyle: (0, _trackHelper.getTrackAnimateCSS)(_extends({ left: targetLeft }, this.props, this.state)) }, function () { this.animationEndCallback = setTimeout(callback, this.props.speed + 20); }); } this.autoPlay(); }, // 鼠标悬浮在 arrow 上时作出动画反馈 arrowHoverHandler: function arrowHoverHandler(msg) { var offset = 30; // slide 的位置偏移量 var targetLeft = (0, _trackHelper.getTrackLeft)(_extends({ slideIndex: this.state.currentSlide, trackRef: this.track }, this.props, this.state)); var left = void 0; if (msg === 'next') { left = targetLeft - offset; } else if (msg === 'prev') { left = targetLeft + offset; } else { left = targetLeft; } this.setState({ trackStyle: (0, _trackHelper.getTrackAnimateCSS)(_extends({ left: left }, this.props, this.state)) }); }, swipeDirection: function swipeDirection(touchObject) { var swipeAngle = void 0; var xDist = touchObject.startX - touchObject.curX; var yDist = touchObject.startY - touchObject.curY; var r = Math.atan2(yDist, xDist); swipeAngle = Math.round(r * 180 / Math.PI); if (swipeAngle < 0) { swipeAngle = 360 - Math.abs(swipeAngle); } if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) { return this.props.rtl === false ? 'left' : 'right'; } if (swipeAngle >= 135 && swipeAngle <= 225) { return this.props.rtl === false ? 'right' : 'left'; } if (this.props.verticalSwiping === true) { if (swipeAngle >= 35 && swipeAngle <= 135) { return 'down'; } else { return 'up'; } } return 'vertical'; }, play: function play() { var nextIndex = void 0; if (!this.state.mounted) { return false; } if (this.props.rtl) { nextIndex = this.state.currentSlide - this.props.slidesToScroll; } else if (this.canGoNext(_extends({}, this.props, this.state))) { nextIndex = this.state.currentSlide + this.props.slidesToScroll; } else { return false; } this.slideHandler(nextIndex); }, autoPlay: function autoPlay() { if (this.state.autoPlayTimer) { clearTimeout(this.state.autoPlayTimer); } if (this.props.autoplay) { this.setState({ autoPlayTimer: setTimeout(this.play.bind(this), this.props.autoplaySpeed) }); } }, pause: function pause() { if (this.state.autoPlayTimer) { clearTimeout(this.state.autoPlayTimer); this.setState({ autoPlayTimer: null }); } } }; exports['default'] = helpers; module.exports = exports['default']; /***/ }), /***/ 2660: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var getSlideClasses = function getSlideClasses(spec) { var _classnames; var prefix = spec.prefix; var slickActive = void 0, slickCenter = void 0; var centerOffset = void 0, index = void 0; if (spec.rtl) { index = spec.slideCount - 1 - spec.index; } else { index = spec.index; } var slickCloned = index < 0 || index >= spec.slideCount; if (spec.centerMode) { centerOffset = Math.floor(spec.slidesToShow / 2); slickCenter = (index - spec.currentSlide) % spec.slideCount === 0; if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) { slickActive = true; } } else { slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow; } return (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'slick-slide', true), _defineProperty(_classnames, prefix + 'slick-active', slickActive), _defineProperty(_classnames, prefix + 'slick-center', slickCenter), _defineProperty(_classnames, prefix + 'slick-cloned', slickCloned), _classnames)); }; var getSlideStyle = function getSlideStyle(spec) { var style = {}; if (spec.variableWidth === undefined || spec.variableWidth === false) { style.width = spec.slideWidth; } if (spec.fade) { style.position = 'relative'; style.opacity = spec.currentSlide === spec.index ? 1 : 0; style.visibility = spec.currentSlide < spec.index ? 'hidden' : 'visible'; style.transition = 'opacity ' + spec.speed + 'ms ' + spec.cssEase; style.WebkitTransition = 'opacity ' + spec.speed + 'ms ' + spec.cssEase; if (spec.vertical) { style.top = -spec.index * spec.slideHeight; } else { style.left = -spec.index * spec.slideWidth; } } return style; }; var getKey = function getKey(child, fallbackKey) { // key could be a zero return child.key === null || child.key === undefined ? fallbackKey : child.key; }; var renderSlides = function renderSlides(spec) { var key = void 0; var slides = []; var preCloneSlides = []; var postCloneSlides = []; var count = _react2['default'].Children.count(spec.children); var child = void 0; _react2['default'].Children.forEach(spec.children, function (elem, index) { var childOnClickOptions = { message: 'children', index: index, slidesToScroll: spec.slidesToScroll, currentSlide: spec.currentSlide }; if (!spec.lazyLoad | (spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0)) { child = elem; } else { child = _react2['default'].createElement('div', null); } var childStyle = getSlideStyle(_extends({}, spec, { index: index })); var slickClasses = getSlideClasses(_extends({ index: index }, spec)); var cssClasses = void 0; if (child.props.className) { cssClasses = (0, _classnames3['default'])(slickClasses, child.props.className); } else { cssClasses = slickClasses; } var onClick = function onClick(e) { child.props && child.props.onClick && elem.props.onClick(e); if (spec.focusOnSelect) { spec.focusOnSelect(childOnClickOptions); } }; slides.push(_react2['default'].cloneElement(child, { key: 'original' + getKey(child, index), 'data-index': index, className: cssClasses, tabIndex: '-1', style: _extends({ outline: 'none' }, child.props.style, childStyle), onClick: onClick })); // variableWidth doesn't wrap properly. if (spec.infinite && spec.fade === false) { var infiniteCount = spec.variableWidth ? spec.slidesToShow + 1 : spec.slidesToShow; if (index >= count - infiniteCount) { key = -(count - index); preCloneSlides.push(_react2['default'].cloneElement(child, { key: 'precloned' + getKey(child, key), 'data-index': key, className: cssClasses, style: !window ? _extends({ outline: 'none' }, childStyle, child.props.style) : _extends({ outline: 'none' }, child.props.style, childStyle) })); } if (index < infiniteCount) { key = count + index; postCloneSlides.push(_react2['default'].cloneElement(child, { key: 'postcloned' + getKey(child, key), 'data-index': key, className: cssClasses, style: _extends({}, child.props.style, childStyle) })); } } }); // To support server-side rendering. SSR should check haven`t 'window' // It will return then first view of items, and with it's own style. if (!window) { return slides.slice(0, spec.slidesToShow); } if (spec.rtl) { return preCloneSlides.concat(slides, postCloneSlides).reverse(); } else { return preCloneSlides.concat(slides, postCloneSlides); } }; // PureComponent 不支持 IE8 var Track = (_temp = _class = function (_Component) { _inherits(Track, _Component); function Track() { _classCallCheck(this, Track); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Track.prototype.render = function render() { var slides = renderSlides(this.props); return _react2['default'].createElement( 'div', { className: this.props.prefix + 'slick-track', style: this.props.trackStyle }, slides ); }; return Track; }(_react.Component), _class.propTypes = { prefix: _propTypes2['default'].string, trackStyle: _propTypes2['default'].object }, _class.defaultProps = { prefix: 'next-' }, _temp); Track.displayName = 'Track'; exports['default'] = Track; module.exports = exports['default']; /***/ }), /***/ 2661: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames3 = __webpack_require__(3); var _classnames4 = _interopRequireDefault(_classnames3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var getDotCount = function getDotCount(spec) { return Math.ceil(spec.slideCount / spec.slidesToScroll); }; var Dots = (_temp = _class = function (_React$Component) { _inherits(Dots, _React$Component); function Dots() { _classCallCheck(this, Dots); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Dots.prototype.clickHandler = function clickHandler(options, e) { // In Autoplay the focus stays on clicked button even after transition // to next slide. That only goes away by click somewhere outside e.preventDefault(); this.props.clickHandler(options); }; Dots.prototype.render = function render() { var _classnames, _this2 = this; var _props = this.props, prefix = _props.prefix, slideCount = _props.slideCount, slidesToScroll = _props.slidesToScroll, currentSlide = _props.currentSlide, dotsClass = _props.dotsClass, dotsDirection = _props.dotsDirection; var dotsClasses = (0, _classnames4['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'slick-dots', true), _defineProperty(_classnames, dotsDirection, dotsDirection === 'vertical' || dotsDirection === 'horizontal'), _classnames), dotsClass); var dotCount = getDotCount({ slideCount: slideCount, slidesToScroll: slidesToScroll }); // Apply join & split to Array to pre-fill it for IE8 // // Credit: http://stackoverflow.com/a/13735425/1849458 /*eslint prefer-spread:0*/ var dots = Array.apply(null, Array(dotCount + 1).join('0').split('')).map(function (x, i) { var _classnames2; var leftBound = i * _this2.props.slidesToScroll; var rightBound = i * _this2.props.slidesToScroll + (_this2.props.slidesToScroll - 1); var className = (0, _classnames4['default'])((_classnames2 = {}, _defineProperty(_classnames2, prefix + 'slick-dots-item', true), _defineProperty(_classnames2, 'active', _this2.props.currentSlide >= leftBound && _this2.props.currentSlide <= rightBound), _classnames2)); var dotOptions = { message: 'dots', index: i, slidesToScroll: slidesToScroll, currentSlide: currentSlide }; return _react2['default'].createElement( 'li', { key: i, className: className }, _react2['default'].createElement('button', { onClick: _this2.clickHandler.bind(_this2, dotOptions) }) ); }); return _react2['default'].createElement( 'ul', { className: dotsClasses }, dots ); }; return Dots; }(_react2['default'].Component), _class.propTypes = { prefix: _propTypes2['default'].string, currentSlide: _propTypes2['default'].number, clickHandler: _propTypes2['default'].func, dotsClass: _propTypes2['default'].string, slideCount: _propTypes2['default'].number, slidesToScroll: _propTypes2['default'].number, dotsDirection: _propTypes2['default'].oneOf(['horizontal', 'vertical']) }, _temp); Dots.displayName = 'Dots'; exports['default'] = Dots; module.exports = exports['default']; /***/ }), /***/ 2662: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; var PrevArrow = (_temp = _class = function (_React$Component) { _inherits(PrevArrow, _React$Component); function PrevArrow() { _classCallCheck(this, PrevArrow); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } PrevArrow.prototype.clickHandler = function clickHandler(options, e) { e.preventDefault(); this.props.clickHandler(options, e); }; PrevArrow.prototype.render = function render() { var _prevClasses; var _props = this.props, prefix = _props.prefix, infinite = _props.infinite, currentSlide = _props.currentSlide, slideCount = _props.slideCount, slidesToShow = _props.slidesToShow, arrowSize = _props.arrowSize, arrowPos = _props.arrowPos, arrowDirection = _props.arrowDirection, onMouseEnter = _props.onMouseEnter, onMouseLeave = _props.onMouseLeave, others = _objectWithoutProperties(_props, ['prefix', 'infinite', 'currentSlide', 'slideCount', 'slidesToShow', 'arrowSize', 'arrowPos', 'arrowDirection', 'onMouseEnter', 'onMouseLeave']); var sizeArrow = arrowSize; /* istanbul ignore if */ if (arrowSize === 'normal') { _nextUtil.log.warning('please using medium instead of normal for props arrowSize'); sizeArrow = 'medium'; } var prevClasses = (_prevClasses = {}, _defineProperty(_prevClasses, prefix + 'slick-arrow', true), _defineProperty(_prevClasses, prefix + 'slick-prev', true), _defineProperty(_prevClasses, arrowPos, arrowPos), _defineProperty(_prevClasses, sizeArrow, sizeArrow), _defineProperty(_prevClasses, arrowDirection, ['horizontal', 'vertical'].indexOf(arrowDirection) > -1), _prevClasses); var prevHandler = this.clickHandler.bind(this, { message: 'previous' }); var prevMouseEnterHandler = onMouseEnter; var prevMouseLeaveHandler = onMouseLeave; if (!infinite && (currentSlide === 0 || slideCount <= slidesToShow)) { prevClasses.disabled = true; prevHandler = null; prevMouseEnterHandler = null; prevMouseLeaveHandler = null; } var prevArrowProps = _extends({}, others, { key: '0', 'data-role': 'none', className: (0, _classnames2['default'])(prevClasses), style: { display: 'block' }, onClick: prevHandler, onMouseEnter: prevMouseEnterHandler, onMouseLeave: prevMouseLeaveHandler }); var arrowType = void 0; if (arrowDirection === 'horizontal') { arrowType = 'arrow-left'; } else { arrowType = 'arrow-up'; } var prevArrow = void 0; if (this.props.prevArrow) { prevArrow = _react2['default'].cloneElement(this.props.prevArrow, prevArrowProps); } else { prevArrow = _react2['default'].createElement( 'div', (0, _nextUtil.pickAttrs)(prevArrowProps), _react2['default'].createElement(_nextIcon2['default'], { type: arrowType }) ); } return prevArrow; }; return PrevArrow; }(_react2['default'].Component), _class.propTypes = { prefix: _propTypes2['default'].string, clickHandler: _propTypes2['default'].func, infinite: _propTypes2['default'].bool, currentSlide: _propTypes2['default'].number, slideCount: _propTypes2['default'].number, slidesToShow: _propTypes2['default'].number, prevArrow: _propTypes2['default'].element, arrowSize: _propTypes2['default'].string, arrowPos: _propTypes2['default'].string, arrowDirection: _propTypes2['default'].oneOf(['horizontal', 'vertical']), onMouseEnter: _propTypes2['default'].func, onMouseLeave: _propTypes2['default'].func }, _class.defaultProps = { onMouseEnter: noop, onMouseLeave: noop }, _temp); PrevArrow.displayName = 'PrevArrow'; exports['default'] = PrevArrow; module.exports = exports['default']; /***/ }), /***/ 2663: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; var NextArrow = (_temp = _class = function (_React$Component) { _inherits(NextArrow, _React$Component); function NextArrow() { _classCallCheck(this, NextArrow); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } NextArrow.prototype.clickHandler = function clickHandler(options, e) { e.preventDefault(); this.props.clickHandler(options, e); }; NextArrow.prototype.render = function render() { var _nextClasses; var _props = this.props, prefix = _props.prefix, infinite = _props.infinite, centerMode = _props.centerMode, currentSlide = _props.currentSlide, slideCount = _props.slideCount, slidesToShow = _props.slidesToShow, arrowSize = _props.arrowSize, arrowPos = _props.arrowPos, arrowDirection = _props.arrowDirection, onMouseEnter = _props.onMouseEnter, onMouseLeave = _props.onMouseLeave, others = _objectWithoutProperties(_props, ['prefix', 'infinite', 'centerMode', 'currentSlide', 'slideCount', 'slidesToShow', 'arrowSize', 'arrowPos', 'arrowDirection', 'onMouseEnter', 'onMouseLeave']); var sizeArrow = arrowSize; /* istanbul ignore if */ if (arrowSize === 'normal') { _nextUtil.log.warning('please using medium instead of normal for props arrowSize'); sizeArrow = 'medium'; } var nextClasses = (_nextClasses = {}, _defineProperty(_nextClasses, prefix + 'slick-arrow', true), _defineProperty(_nextClasses, prefix + 'slick-next', true), _defineProperty(_nextClasses, arrowPos, arrowPos), _defineProperty(_nextClasses, sizeArrow, sizeArrow), _defineProperty(_nextClasses, arrowDirection, ['horizontal', 'vertical'].indexOf(arrowDirection) > -1), _nextClasses); var nextHandler = this.clickHandler.bind(this, { message: 'next' }); var nextMouseEnterHandler = onMouseEnter; var nextMouseLeaveHandler = onMouseLeave; if (!infinite) { if (centerMode && currentSlide >= slideCount - 1) { nextClasses.disabled = true; nextHandler = null; nextMouseEnterHandler = null; nextMouseLeaveHandler = null; } else if (currentSlide >= slideCount - slidesToShow) { nextClasses.disabled = true; nextHandler = null; nextMouseEnterHandler = null; nextMouseLeaveHandler = null; } if (slideCount <= slidesToShow) { nextClasses.disabled = true; nextHandler = null; nextMouseEnterHandler = null; nextMouseLeaveHandler = null; } } var nextArrowProps = _extends({}, others, { key: '1', 'data-role': 'none', className: (0, _classnames2['default'])(nextClasses), style: { display: 'block' }, onClick: nextHandler, onMouseEnter: nextMouseEnterHandler, onMouseLeave: nextMouseLeaveHandler }); var arrowType = void 0; if (arrowDirection === 'horizontal') { arrowType = 'arrow-right'; } else { arrowType = 'arrow-down'; } var nextArrow = void 0; if (this.props.nextArrow) { nextArrow = _react2['default'].cloneElement(this.props.nextArrow, nextArrowProps); } else { nextArrow = _react2['default'].createElement( 'div', (0, _nextUtil.pickAttrs)(nextArrowProps), _react2['default'].createElement(_nextIcon2['default'], { type: arrowType }) ); } return nextArrow; }; return NextArrow; }(_react2['default'].Component), _class.propTypes = { prefix: _propTypes2['default'].string, centerMode: _propTypes2['default'].bool, currentSlide: _propTypes2['default'].number, infinite: _propTypes2['default'].bool, clickHandler: _propTypes2['default'].func, slideCount: _propTypes2['default'].number, slidesToShow: _propTypes2['default'].number, nextArrow: _propTypes2['default'].element, arrowSize: _propTypes2['default'].string, arrowPos: _propTypes2['default'].string, arrowDirection: _propTypes2['default'].oneOf(['horizontal', 'vertical']), onMouseEnter: _propTypes2['default'].func, onMouseLeave: _propTypes2['default'].func }, _class.defaultProps = { onMouseEnter: noop, onMouseLeave: noop }, _temp); NextArrow.displayName = 'NextArrow'; exports['default'] = NextArrow; module.exports = exports['default']; /***/ }), /***/ 2664: /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */ window.matchMedia || (window.matchMedia = function () { // For browsers that support matchMedium api such as IE 9 and webkit var styleMedia = window.styleMedia || window.media; // For those that don't support matchMedium if (!styleMedia) { var style = document.createElement('style'); var script = document.getElementsByTagName('script')[0]; var info = null; style.type = 'text/css'; style.id = 'matchmediajs-test'; script.parentNode.insertBefore(style, script); // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle; styleMedia = { matchMedium: function matchMedium(media) { var text = '@media ' + media + ' { #matchmediajs-test { width: 1px; } }'; // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers if (style.styleSheet) { style.styleSheet.cssText = text; } else { style.textContent = text; } // Test if media query is true or false return info.width === '1px'; } }; } return function (media) { return { matches: styleMedia.matchMedium(media || 'all'), media: media || 'all' }; }; }()); /***/ }), /***/ 2665: /***/ (function(module, exports, __webpack_require__) { "use strict"; /*! matchMedia() polyfill addListener/removeListener extension. Author & copyright (c) 2012: Scott Jehl. Dual MIT/BSD license */ (function () { // Bail out for browsers that have addListener support if (window.matchMedia && window.matchMedia('all').addListener) { return false; } var localMatchMedia = window.matchMedia; var hasMediaQueries = localMatchMedia('only all').matches; var isListening = false; var timeoutID = 0; // setTimeout for debouncing 'handleChange' var queries = []; // Contains each 'mql' and associated 'listeners' if 'addListener' is used var handleChange = function handleChange() { // Debounce clearTimeout(timeoutID); timeoutID = setTimeout(function () { for (var i = 0, il = queries.length; i < il; i++) { var mql = queries[i].mql, listeners = queries[i].listeners || [], matches = localMatchMedia(mql.media).matches; // Update mql.matches value and call listeners // Fire listeners only if transitioning to or from matched state if (matches !== mql.matches) { mql.matches = matches; for (var j = 0, jl = listeners.length; j < jl; j++) { listeners[j].call(window, mql); } } } }, 30); }; window.matchMedia = function (media) { var mql = localMatchMedia(media); var listeners = []; var index = 0; mql.addListener = function (listener) { // Changes would not occur to css media type so return now (Affects IE <= 8) if (!hasMediaQueries) { return; } // Set up 'resize' listener for browsers that support CSS3 media queries (Not for IE <= 8) // There should only ever be 1 resize listener running for performance if (!isListening) { isListening = true; window.addEventListener('resize', handleChange, true); } // Push object only if it has not been pushed already if (index === 0) { index = queries.push({ mql: mql, listeners: listeners }); } listeners.push(listener); }; mql.removeListener = function (listener) { for (var i = 0, il = listeners.length; i < il; i++) { if (listeners[i] === listener) { listeners.splice(i, 1); } } }; return mql; }; })(); /***/ }), /***/ 2666: /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Reference: https://github.com/akiran/react-responsive-mixin/blob/master/index.js * Author: akiran */ var utils = __webpack_require__(1746); var enquire = utils.canUseDOM && __webpack_require__(993); var json2mq = __webpack_require__(2290); var ResponsiveMixin = { media: function media(query, handler) { query = json2mq(query); if (typeof handler === 'function') { handler = { match: handler }; } enquire.register(query, handler); // Queue the handlers to unregister them at unmount if (!this._responsiveMediaHandlers) { this._responsiveMediaHandlers = []; } this._responsiveMediaHandlers.push({ query: query, handler: handler }); }, componentWillUnmount: function componentWillUnmount() { if (this._responsiveMediaHandlers) { this._responsiveMediaHandlers.forEach(function (obj) { enquire.unregister(obj.query, obj.handler); }); } } }; module.exports = ResponsiveMixin; /***/ }), /***/ 2667: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _step = __webpack_require__(2668); var _step2 = _interopRequireDefault(_step); var _stepItem = __webpack_require__(2669); var _stepItem2 = _interopRequireDefault(_stepItem); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _step2['default'].Item = _stepItem2['default']; exports['default'] = _step2['default']; module.exports = exports['default']; /***/ }), /***/ 2668: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Step */ var Step = (_temp = _class = function (_Component) { _inherits(Step, _Component); function Step(props, context) { _classCallCheck(this, Step); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { parentWidth: 'auto', parentHeight: 'auto' }; _this.resize = _this.resize.bind(_this); return _this; } Step.prototype.componentDidMount = function componentDidMount() { /* istanbul ignore if */ if (!_nextUtil.support.flex) { this.resize(); _nextDom.events.on(window, 'resize', this.resize); } }; Step.prototype.componentWillReceiveProps = function componentWillReceiveProps(newProps) { if ('current' in newProps) { this.setState({ current: newProps.current }); } }; Step.prototype.componentWillUnmount = function componentWillUnmount() { /* istanbul ignore if */ if (!_nextUtil.support.flex) { _nextDom.events.off(window, 'resize', this.resize); } }; Step.prototype.resize = function resize() { if (this.step) { this.setState({ parentWidth: this.step.offsetWidth || 0, parentHeight: this.step.offsetHeight || 0 }); } }; Step.prototype._getValidChildren = function _getValidChildren(children) { var result = []; _react2['default'].Children.forEach(children, function (child) { if (_react2['default'].isValidElement(child)) { result.push(child); } }); return result; }; Step.prototype._stepRefHandler = function _stepRefHandler(ref) { this.step = ref; }; Step.prototype.render = function render() { var _classNames; /* eslint-disable prefer-const */ var _props = this.props, className = _props.className, current = _props.current, direction = _props.direction, type = _props.type, children = _props.children, readOnly = _props.readOnly, animation = _props.animation, others = _objectWithoutProperties(_props, ['className', 'current', 'direction', 'type', 'children', 'readOnly', 'animation']); var prefix = this.context.prefix || this.props.prefix; var _state = this.state, parentWidth = _state.parentWidth, parentHeight = _state.parentHeight; // type不同对应的direction不同 direction = type === 'arrow' ? 'horizontal' : direction; // children去除null children = this._getValidChildren(children); // 修改子节点属性 var cloneChildren = _react.Children.map(children, function (child, index) { var status = index < current ? 'finish' : index === current ? 'process' : 'wait'; return _react2['default'].cloneElement(child, { prefix: prefix, key: index, index: index, total: children.length, status: child.props.status || status, type: type, direction: direction, parentWidth: parentWidth, parentHeight: parentHeight, readOnly: readOnly, animation: animation }); }); var stepCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'step', true), _defineProperty(_classNames, prefix + 'step-' + type, type), _defineProperty(_classNames, prefix + 'step-' + direction, direction), _defineProperty(_classNames, className, className), _classNames)); return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: stepCls, ref: this._stepRefHandler.bind(this) }), cloneChildren ); }; return Step; }(_react.Component), _class.propTypes = { /** * 样式的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 当前步骤 */ current: _propTypes2['default'].number, /** * 展示方向 */ direction: _propTypes2['default'].oneOf(['horizontal', 'vertical']), /** * 类型 */ type: _propTypes2['default'].oneOf(['circle', 'arrow', 'dot']), /** * 是否只读模式 */ readOnly: _propTypes2['default'].bool, /** * 是否开启动效 */ animation: _propTypes2['default'].bool, /** * 自定义样式名 */ className: _propTypes2['default'].string }, _class.defaultProps = { prefix: 'next-', current: 0, direction: 'horizontal', type: 'circle', animation: true }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Step.displayName = 'Step'; exports['default'] = Step; module.exports = exports['default']; /***/ }), /***/ 2669: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextProgress = __webpack_require__(1917); var _nextProgress2 = _interopRequireDefault(_nextProgress); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Step.Item */ var StepItem = (_temp = _class = function (_Component) { _inherits(StepItem, _Component); function StepItem(props) { _classCallCheck(this, StepItem); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.removeClickedCls = _this.removeClickedCls.bind(_this); _this.onClick = _this.onClick.bind(_this); _this._nodeRefHandler = _this._nodeRefHandler.bind(_this); return _this; } StepItem.prototype.getNode = function getNode() { var _props = this.props, prefix = _props.prefix, index = _props.index, status = _props.status, icon = _props.icon, type = _props.type, percent = _props.percent; var nodeElement = icon; if (type === 'dot') { nodeElement = icon ? _react2['default'].createElement(_nextIcon2['default'], { type: icon }) : _react2['default'].createElement('span', { className: prefix + 'step-item-node-dot' }); } else if (type === 'circle' && percent) { nodeElement = _react2['default'].createElement(_nextProgress2['default'], { shape: 'circle', percent: percent, className: prefix + 'step-item-progress' }); } else { nodeElement = _react2['default'].createElement( 'div', { className: prefix + 'step-item-node-circle' }, icon ? _react2['default'].createElement(_nextIcon2['default'], { type: icon }) : this._itemRender(index, status) ); } return nodeElement; }; StepItem.prototype.getStyle = function getStyle() { var _props2 = this.props, parentWidth = _props2.parentWidth, parentHeight = _props2.parentHeight, direction = _props2.direction, total = _props2.total, type = _props2.type; var width = 'auto'; if (!_nextUtil.support.flex && Number(parentWidth) && Number(parentHeight)) { if (type === 'arrow') { width = Math.floor(parentWidth / total - parentHeight / 2 - parentHeight / 8); } else { width = direction === 'horizontal' ? Math.floor(parentWidth / total) : 'auto'; } } return { width: width }; }; StepItem.prototype.onClick = function onClick() { var _props3 = this.props, index = _props3.index, disabled = _props3.disabled, readOnly = _props3.readOnly, animation = _props3.animation; if (disabled || readOnly) { return false; } if (animation && this.stepNode) { _nextDom.classList.hasClass(this.stepNode, 'clicked') ? _nextDom.classList.removeClass(this.stepNode, 'clicked') : _nextDom.classList.addClass(this.stepNode, 'clicked'); } this.props.onClick(index); }; StepItem.prototype.removeClickedCls = function removeClickedCls() { var _props4 = this.props, animation = _props4.animation, prefix = _props4.prefix; if (animation && this.stepNode && _nextDom.classList.hasClass(this.stepNode, 'clicked')) { _nextDom.classList.removeClass(this.stepNode, 'clicked'); } }; // 节点的渲染方法 StepItem.prototype._itemRender = function _itemRender(index, status) { var itemRender = this.props.itemRender; if (itemRender) { return itemRender(index, status); } return status === 'finish' ? _react2['default'].createElement(_nextIcon2['default'], { type: 'select' }) : index + 1; }; StepItem.prototype._nodeRefHandler = function _nodeRefHandler(ref) { this.stepNode = ref; }; StepItem.prototype.render = function render() { var _classNames; var _props5 = this.props, prefix = _props5.prefix, className = _props5.className, status = _props5.status, title = _props5.title, index = _props5.index, total = _props5.total, type = _props5.type, content = _props5.content, direction = _props5.direction, disabled = _props5.disabled, onClick = _props5.onClick, readOnly = _props5.readOnly, animation = _props5.animation, others = _objectWithoutProperties(_props5, ['prefix', 'className', 'status', 'title', 'index', 'total', 'type', 'content', 'direction', 'disabled', 'onClick', 'readOnly', 'animation']); var nodeElement = this.getNode(); var pickProps = (0, _nextUtil.pickAttrs)(others); var stepCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'step-item', true), _defineProperty(_classNames, prefix + 'step-item-' + status, status), _defineProperty(_classNames, prefix + 'step-item-first', index === 0), _defineProperty(_classNames, prefix + 'step-item-last', index === total - 1), _defineProperty(_classNames, prefix + 'step-item-disabled', disabled), _defineProperty(_classNames, prefix + 'step-item-read-only', readOnly), _defineProperty(_classNames, className, className), _classNames)); var nodeCls = (0, _classnames2['default'])(_defineProperty({}, prefix + 'step-item-node', true)); var overlayCls = status === 'finish' ? { width: '100%' } : null; var arrowElement = _react2['default'].createElement( 'div', _extends({}, pickProps, { 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 ) ) ); var otherElement = _react2['default'].createElement( 'div', _extends({}, pickProps, { style: this.getStyle(), className: stepCls }), _react2['default'].createElement( 'div', { className: prefix + 'step-item-tail' }, _react2['default'].createElement( 'div', { className: prefix + 'step-item-tail-underlay' }, _react2['default'].createElement('div', { className: prefix + 'step-item-tail-overlay', style: overlayCls }) ) ), direction === 'vertical' ? _react2['default'].createElement( 'div', { className: prefix + 'step-item-container' }, _react2['default'].createElement( 'div', { className: prefix + 'step-item-node-placeholder', onClick: this.onClick }, _react2['default'].createElement( 'div', { className: prefix + 'step-item-node', ref: this._nodeRefHandler, onTransitionEnd: this.removeClickedCls }, nodeElement ) ), _react2['default'].createElement( 'div', { className: prefix + 'step-item-body' }, _react2['default'].createElement( 'div', { className: prefix + 'step-item-title' }, title ), _react2['default'].createElement( 'div', { className: prefix + 'step-item-content' }, content ) ) ) : _react2['default'].createElement( 'div', { className: prefix + 'step-item-container' }, _react2['default'].createElement( 'div', { className: prefix + 'step-item-node', onClick: this.onClick, ref: this._nodeRefHandler, onTransitionEnd: this.removeClickedCls }, nodeElement ), _react2['default'].createElement( 'div', { className: prefix + 'step-item-title' }, title ) ) ); return type === 'arrow' ? arrowElement : otherElement; }; return StepItem; }(_react.Component), _class.propTypes = { /** * 组件的样式品牌前缀 */ prefix: _propTypes2['default'].string, /** * 步骤的状态,如不传,会根据外层的 Step 的 current 属性生成,可选值为 `wait`, `process`, `finish` */ status: _propTypes2['default'].oneOf(['wait', 'process', 'finish']), /** * 标题 */ title: _propTypes2['default'].node, direction: _propTypes2['default'].oneOf(['horizontal', 'vertical']), type: _propTypes2['default'].oneOf(['circle', 'arrow', 'dot']), /** * 图标 */ icon: _propTypes2['default'].string, /** * 内容,用于垂直状态下的内容填充 */ content: _propTypes2['default'].node, /** * StepItem 的自定义渲染 * @param {Number} index 节点索引 * @param {String} status 节点状态 * @returns {Node} 节点的渲染结果 */ itemRender: _propTypes2['default'].func, /** * 百分比 */ percent: _propTypes2['default'].number, index: _propTypes2['default'].number, total: _propTypes2['default'].number, animation: _propTypes2['default'].bool, // 是否开启动效,由父级传入 /** * 是否禁用 */ disabled: _propTypes2['default'].bool, parentWidth: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), parentHeight: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), /** * 点击步骤时的回调 * @param {Number} index 节点索引 */ onClick: _propTypes2['default'].func, /** * 自定义样式 */ className: _propTypes2['default'].string }, _class.defaultProps = { direction: 'horizontal', type: 'circle', index: 0, total: 1, onClick: function onClick() {} }, _temp); StepItem.displayName = 'StepItem'; exports['default'] = StepItem; module.exports = exports['default']; /***/ }), /***/ 2670: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Switch*/ var Switch = (_temp = _class = function (_React$Component) { _inherits(Switch, _React$Component); function Switch(props, context) { _classCallCheck(this, Switch); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); var checked = props.checked || props.defaultChecked; _this.onChange = _this.onChange.bind(_this); _this.onKeyDown = _this.onKeyDown.bind(_this); _this.state = { checked: checked }; return _this; } Switch.prototype.render = function render() { var _classNames; var _props = this.props, prefix = _props.prefix, className = _props.className, disabled = _props.disabled, size = _props.size, checkedChildren = _props.checkedChildren, unCheckedChildren = _props.unCheckedChildren, others = _objectWithoutProperties(_props, ['prefix', 'className', 'disabled', 'size', 'checkedChildren', 'unCheckedChildren']), status = this.state.checked ? 'on' : 'off', children = this.state.checked ? checkedChildren : unCheckedChildren; if (size !== 'small' && size !== 'medium') { size = 'medium'; } prefix = this.context.prefix || prefix; var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'switch', true), _defineProperty(_classNames, prefix + 'switch-' + status, true), _defineProperty(_classNames, prefix + 'switch-' + size, true), _defineProperty(_classNames, className, className), _classNames)); var attrs = void 0; var triggerCls = (0, _classnames2['default'])(_defineProperty({}, this.props.prefix + 'switch-trigger', true)); if (!disabled) { attrs = { onClick: this.onChange, tabIndex: 0, onKeyDown: this.onKeyDown, disabled: disabled }; } else { attrs = { disabled: disabled }; } if (size === 'small') { // size small不允许设置内容 children = null; } return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: classes }, attrs, { 'aria-checked': this.state.checked }), _react2['default'].createElement('div', { className: triggerCls }), _react2['default'].createElement( 'div', { className: this.props.prefix + 'switch-children' }, children ) ); }; Switch.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('checked' in nextProps) { var checked = nextProps.checked; if (checked === undefined) { checked = false; } this.setState({ checked: checked }); } }; Switch.prototype.onChange = function onChange(ev) { var checked = !this.state.checked; if (!('checked' in this.props)) { this.setState({ checked: checked }); } this.props.onChange(checked, ev); this.props.onClick && this.props.onClick(ev); }; Switch.prototype.onKeyDown = function onKeyDown(e) { if (e.keyCode === 13 || e.keyCode === 32) { this.onChange(e); } this.props.onKeyDown && this.props.onKeyDown(e); }; return Switch; }(_react2['default'].Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内敛样式 */ style: _propTypes2['default'].object, /** * 打开时的内容 */ checkedChildren: _propTypes2['default'].any, /** * 关闭时的内容 */ unCheckedChildren: _propTypes2['default'].any, /** * 开关状态改变是触发此事件 * @param {Boolean} checked 是否为打开状态 * @param {Event} e DOM事件对象 */ onChange: _propTypes2['default'].func, /** * 开关当前的值(针对受控组件) */ checked: _propTypes2['default'].bool, /** * 开关默认值 (针对非受控组件) */ defaultChecked: _propTypes2['default'].bool, /** * 表示开关被禁用 */ disabled: _propTypes2['default'].bool, /** * switch的尺寸 * @enumdesc 正常大小, 缩小版大小 */ size: _propTypes2['default'].oneOf(['medium', 'small']), /** * 鼠标点击事件 * @param {Event} e DOM事件对象 */ onClick: _propTypes2['default'].func, /** * 键盘按键事件 * @param {Event} e DOM事件对象 */ onKeyDown: _propTypes2['default'].func }, _class.defaultProps = { prefix: 'next-', disabled: false, size: 'medium', onChange: function onChange() {} }, _temp); Switch.displayName = 'Switch'; exports['default'] = Switch; module.exports = exports['default']; /***/ }), /***/ 2671: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); var _nextUtil2 = _interopRequireDefault(_nextUtil); var _tabs = __webpack_require__(2672); var _tabs2 = _interopRequireDefault(_tabs); var _tabPane = __webpack_require__(2675); var _tabPane2 = _interopRequireDefault(_tabPane); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; /** Tab */ var NextTabs = (_temp = _class = function (_Component) { _inherits(NextTabs, _Component); function NextTabs() { _classCallCheck(this, NextTabs); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } NextTabs.prototype.handleRemove = function handleRemove(key, e) { e.stopPropagation(); if (!key) { return; } this.props.onClose(key); }; NextTabs.prototype.render = function render() { var _this2 = this; var _props = this.props, prefix = _props.prefix, type = _props.type, closeable = _props.closeable, children = _props.children, others = _objectWithoutProperties(_props, ['prefix', 'type', 'closeable', 'children']); var tabPrefix = this.context.prefix || prefix; var filteredChildren = _nextUtil2['default'].children.toArray(children).filter(_react2['default'].isValidElement); // only bar and wrapped tab could closable if (/^bar|wrapped$/i.test(type) && closeable === true) { filteredChildren = filteredChildren.map(function (child, index) { var childCloseable = child.props.closeable; var tabTail = childCloseable ? _react2['default'].createElement(_nextIcon2['default'], { type: 'close', onClick: function onClick(e) { return _this2.handleRemove(child.key, e); } }) : null; var tabInnerStyle = tabPrefix + 'tabs-tab-inner-content'; return _react2['default'].cloneElement(child, { tab: _react2['default'].createElement( 'div', { className: tabInnerStyle }, child.props.tab, tabTail ), key: child.key || index }); }); } var tabsProps = _extends({ prefix: tabPrefix, type: type, closeable: closeable }, others); return _react2['default'].createElement( _tabs2['default'], tabsProps, filteredChildren ); }; return NextTabs; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, /** * 被激活的选项卡的 key(受控) */ activeKey: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string]), /** * 初始化时被激活的选项卡的 key(非受控) */ defaultActiveKey: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string]), /** * 类型 */ type: _propTypes2['default'].oneOf(['bar', 'wrapped', 'text', 'capsule']), /** * 是否开启动效 */ animation: _propTypes2['default'].bool, /** * 多余项的展现方向 */ resDirection: _propTypes2['default'].oneOf(['horizontal', 'vertical']), /** * 导航选项卡的位置,只适用于包裹型(wrapped)选项卡 */ tabPosition: _propTypes2['default'].oneOf(['top', 'bottom', 'left', 'right']), /** * 尺寸 */ size: _propTypes2['default'].oneOf(['small', 'medium']), /** * 是否可关闭选项卡,只支持 `bar` 和 `wrapped` 两种类型 */ closeable: _propTypes2['default'].bool, /** * 触发选项卡的方式 */ triggerType: _propTypes2['default'].oneOf(['hover', 'click']), /** * 是否提前渲染好所有 TabPane 的内容 */ lazyLoad: _propTypes2['default'].bool, destroyInactiveTabPane: _propTypes2['default'].bool, /** * 导航条的附加样式 */ navStyle: _propTypes2['default'].object, /** * 内容区的附加样式 */ contentStyle: _propTypes2['default'].object, /** * 导航栏附加内容 */ tabBarExtraContent: _propTypes2['default'].node, /** * 选项卡发生切换时的事件回调 * @param {String} key 改变后的 key */ onChange: _propTypes2['default'].func, /** * 选项卡被关闭时的事件回调 * @param {String} key 关闭的选项卡的 key * @param {Object} event Event 对象 */ onClose: _propTypes2['default'].func, children: _propTypes2['default'].any }, _class.defaultProps = { prefix: 'next-', type: 'bar', size: 'medium', animation: true, tabPosition: 'top', resDirection: 'horizontal', triggerType: 'click', tabBarExtraContent: null, closeable: false, lazyLoad: true, navStyle: {}, contentStyle: {}, destroyInactiveTabPane: false, style: {}, onChange: noop, onClose: noop }, _temp); NextTabs.displayName = 'NextTabs'; NextTabs.TabPane = _tabPane2['default']; exports['default'] = NextTabs; module.exports = exports['default']; /***/ }), /***/ 2672: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _keyCode = __webpack_require__(2673); var _keyCode2 = _interopRequireDefault(_keyCode); var _nav = __webpack_require__(2674); var _nav2 = _interopRequireDefault(_nav); var _utils = __webpack_require__(2291); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } function noop() {} var Tabs = (_temp = _class = function (_React$Component) { _inherits(Tabs, _React$Component); function Tabs(props, context) { _classCallCheck(this, Tabs); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this.state = { activeKey: _this._getDefaultActiveKey(props), contentHeight: 0 }; return _this; } Tabs.prototype.componentDidMount = function componentDidMount() { this._setContentHeight(this.props); }; Tabs.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('activeKey' in nextProps) { var newActiveKey = nextProps.activeKey; /* eslint-disable eqeqeq */ if (newActiveKey != undefined) { this.setState({ activeKey: newActiveKey }); } } if ('tabPosition' in nextProps && nextProps.tabPosition !== this.props.tabPosition) { this._setContentHeight(nextProps); } }; Tabs.prototype.componentDidUpdate = function componentDidUpdate() { this._setContentHeight(this.props); }; Tabs.prototype.onNavKeyDown = function onNavKeyDown(e) { var eventKeyCode = e.keyCode; if (eventKeyCode >= _keyCode2['default'].LEFT && eventKeyCode <= _keyCode2['default'].DOWN) { e.preventDefault(); } if (eventKeyCode === _keyCode2['default'].RIGHT || eventKeyCode === _keyCode2['default'].DOWN) { var nextKey = this._getNextActiveKey(true); this.handleUserBehavior(this.props.triggerType, nextKey); } else if (eventKeyCode === _keyCode2['default'].LEFT || eventKeyCode === _keyCode2['default'].UP) { var previousKey = this._getNextActiveKey(false); this.handleUserBehavior(this.props.triggerType, previousKey); } }; Tabs.prototype.handleUserBehavior = function handleUserBehavior(eventType, key) { var triggerType = this.props.triggerType; if (triggerType === eventType) { this._setActiveKey(key); if (this.state.activeKey !== key) { this.props.onChange(key); } } }; // 设置 content 的最小高度 Tabs.prototype._setContentHeight = function _setContentHeight(_ref) { var tabPosition = _ref.tabPosition, contentStyle = _ref.contentStyle; var contentHeight = (0, _utils.getHeight)(this.tabContent); if ((tabPosition === 'left' || tabPosition === 'right') && !contentStyle.minHeight) { var navHeight = (0, _utils.getHeight)(_reactDom2['default'].findDOMNode(this.tabNav)); this.tabContent.style.minHeight = navHeight + 'px'; } if (this.state.contentHeight !== contentHeight) { this.setState({ contentHeight: contentHeight }); } }; Tabs.prototype._setActiveKey = function _setActiveKey(key) { var currentActiveKey = this.state.activeKey; if (currentActiveKey === key || 'activeKey' in this.props) { return; } if (!currentActiveKey) { this.setState({ activeKey: key }); } else { var _getIndexPair2 = this._getIndexPair(this.props, currentActiveKey, key), currentIndex = _getIndexPair2.currentIndex, nextIndex = _getIndexPair2.nextIndex; var tabMovingDirection = currentIndex > nextIndex ? 'backward' : 'forward'; this.setState({ activeKey: key, tabMovingDirection: tabMovingDirection }); } }; // 获取索引对 currentIndex 和 nextIndex Tabs.prototype._getIndexPair = function _getIndexPair(props, currentActiveKey, activeKey) { var keys = []; _react2['default'].Children.forEach(props.children, function (child) { keys.push(child.key); }); var currentIndex = keys.indexOf(currentActiveKey); var nextIndex = keys.indexOf(activeKey); return { currentIndex: currentIndex, nextIndex: nextIndex }; }; Tabs.prototype._getDefaultActiveKey = function _getDefaultActiveKey(props) { var activeKey = void 0; if ('activeKey' in props) { activeKey = props.activeKey; } else if ('defaultActiveKey' in props) { activeKey = props.defaultActiveKey; } else { _react2['default'].Children.forEach(props.children, function (child) { if (activeKey == undefined && !child.props.disabled) { activeKey = child.key; } }); } return activeKey; }; // 获取 content 下的 tabpane 列表 Tabs.prototype._getTabPanes = function _getTabPanes() { var activeKey = this.state.activeKey; var _props = this.props, children = _props.children, prefix = _props.prefix, lazyLoad = _props.lazyLoad; var newChildren = []; _react2['default'].Children.forEach(children, function (child) { // react 会将整型的 key 转为字符串,而 preact 不会,这里使用 == 判断 var active = activeKey == child.key; newChildren.push(_react2['default'].cloneElement(child, { active: active, prefix: prefix, lazyLoad: lazyLoad, // reset tab-content events onClick: noop, onMouseEnter: noop, onMouseLeave: noop })); }); return newChildren; }; Tabs.prototype._getNextActiveKey = function _getNextActiveKey(isNext) { var _this2 = this; var children = []; _react2['default'].Children.forEach(this.props.children, function (child) { if (!child.props.disabled) { if (isNext) { children.push(child); } else { children.unshift(child); } } }); var length = children.length; var ret = length && children[0].key; children.forEach(function (child, i) { if (child.key === _this2.state.activeKey) { if (i === length - 1) { ret = children[0].key; } else { ret = children[i + 1].key; } } }); return ret; }; Tabs.prototype._contentRefHandler = function _contentRefHandler(ref) { this.tabContent = ref; }; Tabs.prototype._navRefHandler = function _navRefHandler(ref) { this.tabNav = ref; }; Tabs.prototype.render = function render() { var _classnames; var _props2 = this.props, prefix = _props2.prefix, type = _props2.type, size = _props2.size, animation = _props2.animation, tabPosition = _props2.tabPosition, resDirection = _props2.resDirection, tabBarExtraContent = _props2.tabBarExtraContent, navStyle = _props2.navStyle, contentStyle = _props2.contentStyle, destroyInactiveTabPane = _props2.destroyInactiveTabPane, lazyLoad = _props2.lazyLoad, style = _props2.style, className = _props2.className, children = _props2.children; var state = this.state; var tabPrefix = prefix + 'tabs'; var shape = type === 'bar' ? 'strip' : type; // bar 类型 和组件内的 bar 组件有冲突, 这里使用 strip 替代 bar var cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, tabPrefix, true), _defineProperty(_classnames, tabPrefix + '-' + shape, shape), _defineProperty(_classnames, tabPrefix + '-' + size, size), _defineProperty(_classnames, tabPrefix + '-vertical', ['left', 'right'].indexOf(tabPosition) >= 0), _defineProperty(_classnames, tabPrefix + '-' + tabPosition, true), _defineProperty(_classnames, className, !!className), _classnames)); var tabPanes = this._getTabPanes(); if (destroyInactiveTabPane) { tabPanes = tabPanes.filter(function (panel) { return panel.props.active; }); } var navProps = { prefix: tabPrefix, activeKey: state.activeKey, type: type, size: size, animation: animation, tabBarExtraContent: tabBarExtraContent, tabPosition: tabPosition, resDirection: resDirection, lazyLoad: lazyLoad, style: navStyle, panels: children, contentHeight: state.contentHeight, onKeyDown: this.onNavKeyDown.bind(this), onTabEvent: this.handleUserBehavior.bind(this) }; var contents = [_react2['default'].createElement(_nav2['default'], _extends({}, navProps, { key: 'tab-nav', ref: this._navRefHandler.bind(this) })), _react2['default'].createElement( 'div', { key: 'tab-content', className: tabPrefix + '-content', style: contentStyle, ref: this._contentRefHandler.bind(this) }, tabPanes )]; if (tabPosition === 'bottom') { contents.reverse(); } return _react2['default'].createElement( 'div', { className: cls, style: style }, contents ); }; return Tabs; }(_react2['default'].Component), _class.propTypes = { prefix: _propTypes2['default'].string, activeKey: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string]), defaultActiveKey: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string]), type: _propTypes2['default'].oneOf(['bar', 'wrapped', 'wrapped-detached', 'text', 'capsule']), animation: _propTypes2['default'].bool, resDirection: _propTypes2['default'].oneOf(['horizontal', 'vertical']), tabPosition: _propTypes2['default'].oneOf(['top', 'bottom', 'left', 'right']), size: _propTypes2['default'].oneOf(['small', 'medium']), closeable: _propTypes2['default'].bool, triggerType: _propTypes2['default'].oneOf(['hover', 'click']), lazyLoad: _propTypes2['default'].bool, /** * 销毁非活跃的 TabPane * TODO: 1.x 重构去掉或重命名 */ destroyInactiveTabPane: _propTypes2['default'].bool, navStyle: _propTypes2['default'].object, contentStyle: _propTypes2['default'].object, tabBarExtraContent: _propTypes2['default'].node, onChange: _propTypes2['default'].func, onClose: _propTypes2['default'].func, style: _propTypes2['default'].object, className: _propTypes2['default'].string, children: _propTypes2['default'].any }, _temp); Tabs.displayName = 'Tabs'; exports['default'] = Tabs; module.exports = exports['default']; /***/ }), /***/ 2673: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = { /** * LEFT */ LEFT: 37, // also NUM_WEST /** * UP */ UP: 38, // also NUM_NORTH /** * RIGHT */ RIGHT: 39, // also NUM_EAST /** * DOWN */ DOWN: 40 // also NUM_SOUTH }; module.exports = exports["default"]; /***/ }), /***/ 2674: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames6 = __webpack_require__(3); var _classnames7 = _interopRequireDefault(_classnames6); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextDropdown = __webpack_require__(1741); var _nextDropdown2 = _interopRequireDefault(_nextDropdown); var _nextMenu = __webpack_require__(1453); var _nextMenu2 = _interopRequireDefault(_nextMenu); var _nextAnimate = __webpack_require__(1503); var _nextAnimate2 = _interopRequireDefault(_nextAnimate); var _nextDom = __webpack_require__(1124); var _nextDom2 = _interopRequireDefault(_nextDom); var _nextUtil = __webpack_require__(889); var _nextUtil2 = _interopRequireDefault(_nextUtil); var _utils = __webpack_require__(2291); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var tabTriggerEvents = { CLICK: 'click', HOVER: 'hover' }; function noop() {} var Nav = (_temp = _class = function (_React$Component) { _inherits(Nav, _React$Component); function Nav(props, context) { _classCallCheck(this, Nav); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this._navRefHandler = function (ref) { _this.nav = (0, _reactDom.findDOMNode)(ref); }; _this._activeTabRefHandler = function (ref) { _this.activeTab = ref; }; _this.onPrevClick = function () { var navWrapNodeWH = _this._getOffsetWH(_this.navWrap); _this._setOffset(_this.state.offset + navWrapNodeWH); }; _this.onNextClick = function () { var navWrapNodeWH = _this._getOffsetWH(_this.navWrap); _this._setOffset(_this.state.offset - navWrapNodeWH); }; _this.handleWindowResized = function () { /* istanbul ignore if */ if (_this.updateTimer) { clearTimeout(_this.updateTimer); } /* istanbul ignore next */ _this.updateTimer = setTimeout(function () { _this._update(_this.props); _this._getDropdownItems(_this.props); _this._setupStylesForExtraContent(_this.props); }, 100); }; _this.state = { next: false, prev: false, offset: 0, dropdownTabs: [] }; return _this; } Nav.prototype.componentDidMount = function componentDidMount() { this._getDropdownItems(this.props); // 设置下拉菜单 this._setupStylesForExtraContent(this.props); _nextDom2['default'].events.on(window, 'resize', this.handleWindowResized); }; Nav.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var _props = this.props, tabPosition = _props.tabPosition, resDirection = _props.resDirection; if (nextProps.tabPosition !== tabPosition && nextProps.resDirection !== resDirection) { this._setOffset(0); this._update(); } }; Nav.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) { if (this.props.resDirection === 'horizontal' && this._isNextPrevShown(this.state) !== this._isNextPrevShown(prevState)) { this._scrollToActiveTab(); } if (this.props.resDirection === 'vertical' && prevProps.panels && this.props.panels && prevProps.panels.length !== this.props.panels.length) { this._getDropdownItems(this.props); } this._update(); }; Nav.prototype.componentWillUnmount = function componentWillUnmount() { _nextDom2['default'].events.off(window, 'resize', this.handleWindowResized); }; Nav.prototype._update = function _update() { var navNodeWH = this._getOffsetWH(this.nav); var navWrapNodeWH = this._getOffsetWH(this.navWrap); var minOffset = navWrapNodeWH - navNodeWH; var _state = this.state, next = _state.next, prev = _state.prev, offset = _state.offset; if (minOffset >= 0) { next = false; this._setOffset(0); offset = 0; } else if (minOffset < offset) { next = true; } else { next = false; this._setOffset(minOffset); offset = minOffset; } if (offset < 0) { prev = true; } else { prev = false; } this._setNext(next); this._setPrev(prev); var nextPrev = { next: next, prev: prev }; return nextPrev; }; // 如果存在 tabBarExtraContent 则为其设置默认样式,以满足其展示需求 Nav.prototype._setupStylesForExtraContent = function _setupStylesForExtraContent(_ref) { var tabPosition = _ref.tabPosition, contentHeight = _ref.contentHeight, tabBarExtraContent = _ref.tabBarExtraContent; if (tabBarExtraContent && !(0, _utils.isIE8)()) { var scrollHeight = (0, _utils.getHeight)(this.navScroll); if (tabPosition === 'left' || tabPosition === 'right') { var extraHeight = (0, _utils.getHeight)(this.extra); var newBarHeight = void 0; if (contentHeight > scrollHeight + extraHeight) { newBarHeight = contentHeight; } else { newBarHeight = scrollHeight + extraHeight; } this.tabBar.style.height = newBarHeight + 'px'; this.extra.style.position = 'absolute'; this.extra.style.bottom = 0; } else { this.extra.style.float = 'right'; this.extra.style.lineHeight = scrollHeight + 'px'; } } }; // 获取导航的项目 Nav.prototype._getTabs = function _getTabs() { var _this2 = this; var _props2 = this.props, prefix = _props2.prefix, panels = _props2.panels, activeKey = _props2.activeKey; var rst = []; _react2['default'].Children.forEach(panels, function (child) { var _classnames; /*eslint-disable eqeqeq*/ var isActive = activeKey == child.key; var cls = (0, _classnames7['default'])((_classnames = {}, _defineProperty(_classnames, prefix + '-tab', true), _defineProperty(_classnames, 'disabled', child.props.disabled), _defineProperty(_classnames, 'active', isActive), _defineProperty(_classnames, child.props.tabClassName, !!child.props.tabClassName), _classnames)); var events = {}; if (!child.props.disabled) { events = { onClick: _this2.onNavItemClick.bind(_this2, child.key, child.props.onClick), onMouseEnter: _this2.onNavItemMouseEnter.bind(_this2, child.key, child.props.onMouseEnter), onMouseLeave: _this2.onNavItemMouseLeave.bind(_this2, child.key, child.props.onMouseLeave) }; } // [1.x] itemStyle 废弃,使用 tabStyle 替代 if (child.props.itemStyle) { _nextUtil2['default'].log.deprecated('itemStyle', 'tabStyle', 'TabPane'); } var tabInnerStyle = child.props.tabStyle || child.props.itemStyle || null; rst.push(_react2['default'].createElement( 'div', _extends({ role: 'tab', key: child.key, ref: isActive ? _this2._activeTabRefHandler : undefined, 'aria-disabled': child.props.disabled ? 'true' : 'false', 'aria-selected': isActive ? 'true' : 'false', className: cls }, events), _react2['default'].createElement( 'div', { className: prefix + '-tab-inner', style: tabInnerStyle }, child.props.tab ) )); }); return rst; }; Nav.prototype._getDropdownItems = function _getDropdownItems(_ref2) { var resDirection = _ref2.resDirection, panels = _ref2.panels; if (resDirection !== 'vertical') { return; } var wrapperWidth = (0, _utils.getWidth)(this.navWrap); var childNodes = this.nav.childNodes; var index = void 0; var total = panels.length; var tabsWidth = 0; for (index = 0; index < total; index++) { tabsWidth += childNodes[index].offsetWidth; if (tabsWidth > wrapperWidth) { break; } } if (index > 1) { this.setState({ dropdownTabs: panels.slice(index) }); } }; Nav.prototype._getOffsetWH = function _getOffsetWH(node) { var tabPosition = this.props.tabPosition; var prop = void 0; if (tabPosition === 'left' || tabPosition === 'right') { prop = 'offsetHeight'; } else { prop = 'offsetWidth'; } return node[prop]; }; Nav.prototype._getOffsetLT = function _getOffsetLT(node) { var tabPosition = this.props.tabPosition; var prop = void 0; if (tabPosition === 'top' || tabPosition === 'bottom') { prop = 'left'; } else { prop = 'top'; } return node.getBoundingClientRect()[prop]; }; // 设置 nav 在点击 next/prev 时的偏移 Nav.prototype._setOffset = function _setOffset(offset) { var tabPosition = this.props.tabPosition; var state = this.state; var target = Math.min(0, offset); if (state.offset !== target) { this.setState({ offset: target }); } var navOffset = void 0; var transformPropery = (0, _utils.getTransformPropertyName)(); if (tabPosition === 'left' || tabPosition === 'right') { if (transformPropery) { navOffset = { name: transformPropery, value: 'translate3d(0, ' + target + 'px, 0)' }; } else { navOffset = { name: 'top', value: target + 'px' }; } } else if (transformPropery) { navOffset = { name: transformPropery, value: 'translate3d(' + target + 'px, 0, 0)' }; } else { navOffset = { name: 'top', value: target + 'px' }; } this.nav.style[navOffset.name] = navOffset.value; }; Nav.prototype._setNext = function _setNext(v) { if (this.state.next !== v) { this.setState({ next: v }); } }; Nav.prototype._setPrev = function _setPrev(v) { if (this.state.prev !== v) { this.setState({ prev: v }); } }; Nav.prototype._isNextPrevShown = function _isNextPrevShown(state) { if (state) { return state.next || state.prev; } return this.state.next || this.state.prev; }; Nav.prototype._setNextPrev = function _setNextPrev(nextPrev, callback) { this.setState(nextPrev, callback); }; Nav.prototype._scrollToActiveTab = function _scrollToActiveTab() { if (this.activeTab) { var activeTabWH = this._getOffsetWH(this.activeTab); var navWrapNodeWH = this._getOffsetWH(this.navWrap); var offset = this.state.offset; var wrapOffset = this._getOffsetLT(this.navWrap); var activeTabOffset = this._getOffsetLT(this.activeTab); if (wrapOffset > activeTabOffset) { offset += wrapOffset - activeTabOffset; this._setOffset(offset); } else if (wrapOffset + navWrapNodeWH < activeTabOffset + activeTabWH) { offset -= activeTabOffset + activeTabWH - (wrapOffset + navWrapNodeWH); this._setOffset(offset); } } }; Nav.prototype._instanceRefHandler = function _instanceRefHandler(attr, ref) { this[attr] = ref; }; Nav.prototype.onNavItemClick = function onNavItemClick(key, callback, e) { e.stopPropagation(); this.props.onTabEvent(tabTriggerEvents.CLICK, key); if (callback) { callback(key); } }; Nav.prototype.onMenuItemClick = function onMenuItemClick(callback, key) { this.props.onTabEvent(tabTriggerEvents.CLICK, key); if (callback) { callback(key); } }; Nav.prototype.onNavItemMouseEnter = function onNavItemMouseEnter(key, callback, e) { e.stopPropagation(); this.props.onTabEvent(tabTriggerEvents.HOVER, key); if (callback) { callback(key, e); } }; Nav.prototype.onNavItemMouseLeave = function onNavItemMouseLeave(key, callback, e) { e.stopPropagation(); if (callback) { callback(key, e); } }; Nav.prototype._renderDropdownMenus = function _renderDropdownMenus() { var _this3 = this, _classnames2; var tabs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; if (!tabs.length) { return null; } var menus = tabs.map(function (panel) { var selected = panel.key === _this3.props.activeKey; return _react2['default'].createElement( _nextMenu2['default'].Item, { key: panel.key, onClick: _this3.onMenuItemClick.bind(_this3, panel.props.onClick), selected: selected }, panel.props.tab ); }); var restBtnCls = (0, _classnames7['default'])((_classnames2 = {}, _defineProperty(_classnames2, this.props.prefix + '-tab-down', 1), _defineProperty(_classnames2, 'disabled', !this.state.next), _classnames2)); var triggerBtn = _react2['default'].createElement( 'span', { unselectable: 'unselectable', className: restBtnCls }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-down' }) ); return _react2['default'].createElement( _nextDropdown2['default'], { align: 'tr br', triggerType: 'click', trigger: triggerBtn }, _react2['default'].createElement( _nextMenu2['default'], null, menus ) ); }; Nav.prototype.render = function render() { var _classnames5; var _props3 = this.props, prefix = _props3.prefix, resDirection = _props3.resDirection, tabBarExtraContent = _props3.tabBarExtraContent, onKeyDown = _props3.onKeyDown, animation = _props3.animation, style = _props3.style; var state = this.state; var tabs = this._getTabs(); var nextButton = void 0; var prevButton = void 0; var restButton = void 0; var showNextPrev = state.prev || state.next; if (resDirection === 'vertical' && state.next) { restButton = this._renderDropdownMenus(state.dropdownTabs); prevButton = null; nextButton = null; } else if (showNextPrev) { var _classnames3, _classnames4; var prevBtnCls = (0, _classnames7['default'])((_classnames3 = {}, _defineProperty(_classnames3, prefix + '-tab-prev', 1), _defineProperty(_classnames3, 'disabled', !state.prev), _classnames3)); var nextBtnCls = (0, _classnames7['default'])((_classnames4 = {}, _defineProperty(_classnames4, prefix + '-tab-next', 1), _defineProperty(_classnames4, 'disabled', !state.next), _classnames4)); prevButton = _react2['default'].createElement( 'span', { onClick: state.prev ? this.onPrevClick : noop, unselectable: 'unselectable', className: prevBtnCls }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-left' }) ); nextButton = _react2['default'].createElement( 'span', { onClick: state.next ? this.onNextClick : noop, unselectable: 'unselectable', className: nextBtnCls }, _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-right' }) ); restButton = null; } else { nextButton = null; prevButton = null; restButton = null; } var containerCls = (0, _classnames7['default'])((_classnames5 = {}, _defineProperty(_classnames5, prefix + '-nav-container', true), _defineProperty(_classnames5, prefix + '-nav-container-scrolling', showNextPrev), _classnames5)); return _react2['default'].createElement( 'div', { role: 'tablist', className: prefix + '-bar', tabIndex: '0', onKeyDown: onKeyDown, ref: this._instanceRefHandler.bind(this, 'tabBar') }, tabBarExtraContent ? _react2['default'].createElement( 'div', { className: prefix + '-nav-extra', ref: this._instanceRefHandler.bind(this, 'extra') }, tabBarExtraContent ) : null, _react2['default'].createElement( 'div', { className: containerCls, style: style }, _react2['default'].createElement( 'div', { className: prefix + '-nav-wrap', ref: this._instanceRefHandler.bind(this, 'navWrap') }, _react2['default'].createElement( 'div', { className: prefix + '-nav-scroll', ref: this._instanceRefHandler.bind(this, 'navScroll') }, animation ? _react2['default'].createElement( _nextAnimate2['default'], { animation: prefix + '-nav', singleMode: false, component: 'div', className: prefix + '-nav', ref: this._navRefHandler }, tabs ) : _react2['default'].createElement( 'div', { className: prefix + '-nav', ref: this._navRefHandler }, tabs ) ) ), prevButton, nextButton, restButton ) ); }; return Nav; }(_react2['default'].Component), _class.propTypes = { animation: _propTypes2['default'].bool, resDirection: _propTypes2['default'].string, tabPosition: _propTypes2['default'].string, tabBarExtraContent: _propTypes2['default'].any, onTabEvent: _propTypes2['default'].func, onKeyDown: _propTypes2['default'].func, panels: _propTypes2['default'].oneOfType([_propTypes2['default'].array, _propTypes2['default'].object]), activeKey: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]), prefix: _propTypes2['default'].string, children: _propTypes2['default'].any, style: _propTypes2['default'].object, contentHeight: _propTypes2['default'].number }, _temp); Nav.displayName = 'Nav'; exports['default'] = Nav; module.exports = exports['default']; /***/ }), /***/ 2675: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = __webpack_require__(3); var _classnames3 = _interopRequireDefault(_classnames2); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; /** Tab.TabPane */ var TabPane = (_temp = _class = function (_React$Component) { _inherits(TabPane, _React$Component); function TabPane() { _classCallCheck(this, TabPane); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } TabPane.prototype.render = function render() { var _classnames; var _props = this.props, prefix = _props.prefix, active = _props.active, className = _props.className, lazyLoad = _props.lazyLoad, onClick = _props.onClick, children = _props.children, others = _objectWithoutProperties(_props, ['prefix', 'active', 'className', 'lazyLoad', 'onClick', 'children']); this._isActived = this._isActived || active; if (!this._isActived && lazyLoad) { return null; } var cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'tabs-tabpane', true), _defineProperty(_classnames, '' + (active ? 'active' : 'hidden'), true), _defineProperty(_classnames, className, !!className), _classnames)); return _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { role: 'tabpanel', 'aria-hidden': active ? 'false' : 'true', className: cls, onClick: onClick }), children ); }; return TabPane; }(_react2['default'].Component), _class.propTypes = { prefix: _propTypes2['default'].string, active: _propTypes2['default'].bool, /** * 选项卡标题 */ tab: _propTypes2['default'].any, /** * 单个选项卡是否可关闭 */ closeable: _propTypes2['default'].bool, /** * 单个选项卡的补充样式 */ tabStyle: _propTypes2['default'].object, // 用于控制 next-tabs-tab-inner 的样式 /** * 单个选项卡的附加样式类 */ tabClassName: _propTypes2['default'].string, // 用于控制 next-tabs-tab 的样式 className: _propTypes2['default'].string, // 用于控制 next-tabs-tabpane 的样式 children: _propTypes2['default'].any, /** * 点击单个选项卡时触发的回调 * @param {String} key 选项卡的 key */ onClick: _propTypes2['default'].func, /** * 鼠标进入时触发的回调 * @param {String} key 选项卡的 key */ onMouseEnter: _propTypes2['default'].func, /** * 鼠标离开时出发的回调 * @param {String} key 选项卡的 key */ onMouseLeave: _propTypes2['default'].func, lazyLoad: _propTypes2['default'].bool // 由 Tab 传入,用户不要传 }, _class.defaultProps = { prefix: 'next-', closeable: true, // 默认为可关闭,标记单个 tabpane 是否可关闭 onClick: noop, onMouseEnter: noop, onMouseLeave: noop }, _temp); TabPane.displayName = 'TabPane'; exports['default'] = TabPane; module.exports = exports['default']; /***/ }), /***/ 2676: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _table = __webpack_require__(2677); var _table2 = _interopRequireDefault(_table); var _column = __webpack_require__(2679); var _column2 = _interopRequireDefault(_column); var _columnGroup = __webpack_require__(2680); var _columnGroup2 = _interopRequireDefault(_columnGroup); var _groupHeader = __webpack_require__(2681); var _groupHeader2 = _interopRequireDefault(_groupHeader); var _index = __webpack_require__(2682); var _index2 = _interopRequireDefault(_index); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _table2['default'].Column = _column2['default']; _table2['default'].ColumnGroup = _columnGroup2['default']; _table2['default'].GroupHeader = _groupHeader2['default']; _table2['default'].LOCALE = _index2['default']; exports['default'] = _table2['default']; module.exports = exports['default']; /***/ }), /***/ 2677: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextCheckbox = __webpack_require__(1559); var _nextCheckbox2 = _interopRequireDefault(_nextCheckbox); var _nextRadio = __webpack_require__(1742); var _nextRadio2 = _interopRequireDefault(_nextRadio); var _classnames6 = __webpack_require__(3); var _classnames7 = _interopRequireDefault(_classnames6); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _filter = __webpack_require__(2678); var _filter2 = _interopRequireDefault(_filter); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var Children = _react2['default'].Children, noop = function noop() {}, findDOMNode = _reactDom2['default'].findDOMNode, getScrollbarSize = _nextUtil.scrollbar, makeChain = _nextUtil.func.makeChain; // // // // // // //
/** Table */ var Table = (_temp = _class = function (_React$Component) { _inherits(Table, _React$Component); function Table(props, context) { _classCallCheck(this, Table); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); _this.state = _extends({}, _this.normalizeChildrenState(props), { dataSource: _this.analyseDataSource(props.dataSource, props), selectedRowKeys: props.rowSelection && 'selectedRowKeys' in props.rowSelection ? props.rowSelection.selectedRowKeys || [] : [], sort: props.sort || {}, expandedRowKeys: props.expandedRowKeys || [], openRowKeys: props.openRowKeys || [] }); _this.notRenderCellIndex = false; return _this; } Table.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var state = this.normalizeChildrenState(nextProps); if ('dataSource' in nextProps) { state.dataSource = this.analyseDataSource(nextProps.dataSource, nextProps); } if ('sort' in nextProps) { state.sort = nextProps.sort || {}; } if (nextProps.rowSelection && 'selectedRowKeys' in nextProps.rowSelection) { state.selectedRowKeys = nextProps.rowSelection.selectedRowKeys || []; } if ('expandedRowKeys' in nextProps) { state.expandedRowKeys = nextProps.expandedRowKeys; } if ('openRowKeys' in nextProps) { state.openRowKeys = nextProps.openRowKeys; } this.setState(state); }; Table.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) { if (nextProps.optimization) { if (shallowEqual(this.props, nextProps) && shallowEqual(this.state, nextState)) { return false; } return true; } else { return true; } }; Table.prototype.componentWillUpdate = function componentWillUpdate() { this.notRenderCellIndex = false; // 标记是否在lock中有合并单元格的情况,如果在lock中有合并单元格的情况采用更复杂的高度同步计算方式 this.rowSpanLock = false; }; Table.prototype.normalizeChildrenState = function normalizeChildrenState(props) { var normalizeChildren = this.normalizeChildren(props.children); if (props.expandedRowRender && props.hasExpandedRowCtrl) { normalizeChildren.unshift(this.renderExpandedNode()); } if (props.rowSelection) { normalizeChildren.unshift(this.renderSelectionNode()); } var splitChildren = this.splitFromNormalizeChildren(normalizeChildren), lockLeftChildren = splitChildren.lockLeftChildren, lockRightChildren = splitChildren.lockRightChildren, children = this.mergeFromSplitLockChildren(splitChildren), state = this.fetchInfoFromBinaryChildren(children), lockLeftChildrenMeta = this.fetchInfoFromBinaryChildren(lockLeftChildren), lockRightChildrenMeta = this.fetchInfoFromBinaryChildren(lockRightChildren); state.lockLeftGroupChildren = lockLeftChildrenMeta.groupChildren; state.lockLeftChildren = lockLeftChildrenMeta.flatChildren; state.lockRightGroupChildren = lockRightChildrenMeta.groupChildren; state.lockRightChildren = lockRightChildrenMeta.flatChildren; return state; }; // 将React结构化数据提取props转换成数组 Table.prototype.normalizeChildren = function normalizeChildren(children) { var isLock = false, getChildren = function getChildren(children) { var result = []; Children.forEach(children, function (child) { if (child) { var props = _extends({}, child.props), type = child.type, mark = type._tableMark; if (['column', 'column-group', 'list-group-header'].indexOf(mark) === -1) { _nextUtil.log.warning('Use ,, as child.'); } props.__mark = mark; if ([true, 'left', 'right'].indexOf(props.lock) > -1) { isLock = true; if (!('width' in props)) { _nextUtil.log.warning('Should config width for lock column named [ ' + props.dataIndex + ' ].'); } } result.push(props); if (child.props.children) { props.children = getChildren(child.props.children); } } }); return result; }; var result = getChildren(children); this._isLock = isLock; return result; }; Table.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; //从数组中分离出lock的列和正常的列 Table.prototype.splitFromNormalizeChildren = function splitFromNormalizeChildren(children) { var originChildren = deepCopy(children), lockLeftChildren = deepCopy(children), lockRightChildren = deepCopy(children), loop = function loop(lockChildren, condition) { var result = []; lockChildren.forEach(function (child) { if (child.children) { var res = loop(child.children, condition); if (!res.length) { result.push(child); } } else { var order = condition(child); if (!order) { result.push(child); } } }); result.forEach(function (res) { var index = lockChildren.indexOf(res); lockChildren.splice(index, 1); }); return lockChildren; }; loop(lockLeftChildren, function (child) { if (child.lock === true || child.lock === 'left') { return 'left'; } }); loop(lockRightChildren, function (child) { if (child.lock === 'right') { return 'right'; } }); loop(originChildren, function (child) { return child.lock !== true && child.lock !== 'left' && child.lock !== 'right'; }); return { lockLeftChildren: lockLeftChildren, lockRightChildren: lockRightChildren, originChildren: originChildren }; }; //将左侧的锁列树和中间的普通树及右侧的锁列树进行合并 Table.prototype.mergeFromSplitLockChildren = function mergeFromSplitLockChildren(splitChildren) { var lockLeftChildren = splitChildren.lockLeftChildren, lockRightChildren = splitChildren.lockRightChildren, originChildren = splitChildren.originChildren; Array.prototype.unshift.apply(originChildren, lockLeftChildren); originChildren = originChildren.concat(lockRightChildren); return originChildren; }; // 将结构化的数据转换成适合render的数据 Table.prototype.fetchInfoFromBinaryChildren = function fetchInfoFromBinaryChildren(children) { var flatChildren = [], groupChildren = [], hasListGroupHeader = void 0, listGroupHeader = void 0, hasGroupHeader = void 0, getChildren = function getChildren(propsChildren, level) { groupChildren[level] = groupChildren[level] || []; propsChildren.forEach(function (child) { var mark = child.__mark; if (mark === 'list-group-header') { hasListGroupHeader = true; listGroupHeader = child; } else { if (mark === 'column-group') { hasGroupHeader = true; getChildren(child.children, level + 1); } else if (mark === 'column') { flatChildren.push(child); } groupChildren[level].push(child); } }); }, getColSpan = function getColSpan(children, colSpan) { colSpan = colSpan || 0; children.forEach(function (child) { if (child.children) { colSpan = getColSpan(child.children, colSpan); } else { colSpan += 1; } }); return colSpan; }; getChildren(children, 0); groupChildren.forEach(function (groupChild, i) { groupChild.forEach(function (child, j) { var children = child.children, colSpan = void 0; if (children) { colSpan = getColSpan(children); child.colSpan = colSpan; groupChildren[i][j] = child; } }); }); return { flatChildren: flatChildren, groupChildren: groupChildren, hasListGroupHeader: hasListGroupHeader, listGroupHeader: listGroupHeader, hasGroupHeader: hasGroupHeader }; }; // 渲染checkbox,直接使用序列化后的数据格式 Table.prototype.renderSelectionNode = function renderSelectionNode() { var column = { cell: this.renderSelectionCell('body'), title: this.renderSelectionCell('header'), width: 50, className: this.getPrefix() + 'table-selection', __mark: 'column', __type: 'selection' }; if (this.isOriginLock()) { column.lock = true; } return column; }; Table.prototype.renderSelectionCell = function renderSelectionCell(type) { var _this2 = this; return function (value, index, record) { var checked = void 0, onChange = void 0, attrs = {}, _props = _this2.props, rowSelection = _props.rowSelection, primaryKey = _props.primaryKey, _state = _this2.state, selectedRowKeys = _state.selectedRowKeys, dataSource = _state.dataSource, hasListGroupHeader = _state.hasListGroupHeader, mode = rowSelection.mode ? rowSelection.mode : 'multiple'; if (hasListGroupHeader) { dataSource = _this2.flatDataSource(dataSource); } if (type === 'header') { checked = !!selectedRowKeys.length; dataSource.filter(function (record, index) { if (!rowSelection.getProps) { return true; } else { return !(rowSelection.getProps(record, index) || {}).disabled; } }).map(function (record) { return record[primaryKey]; }).forEach(function (id) { if (selectedRowKeys.indexOf(id) === -1) { checked = false; } }); onChange = _this2.selectAllRow.bind(_this2); if (mode !== 'multiple') { return null; } } else { checked = _this2.state.selectedRowKeys.indexOf(record[_this2.props.primaryKey]) > -1; onChange = _this2.selectOneRow.bind(_this2, index, record); attrs = rowSelection.getProps ? rowSelection.getProps(record, index) || {} : {}; } attrs.onClick = makeChain(function (e) { e.stopPropagation(); }, attrs.onClick); return mode === 'multiple' ? _react2['default'].createElement(_nextCheckbox2['default'], _extends({ checked: checked, onChange: onChange }, attrs)) : _react2['default'].createElement(_nextRadio2['default'], _extends({ checked: checked, onChange: onChange }, attrs)); }; }; //渲染额外的控制数据的项 Table.prototype.renderExpandedNode = function renderExpandedNode() { var column = { cell: this.renderExpandedCell('body'), title: this.renderExpandedCell('header'), width: 50, className: this.getPrefix() + 'table-expanded', __mark: 'column', __type: 'expanded' }; if (this.isOriginLock()) { column.lock = true; } return column; }; Table.prototype.renderExpandedCell = function renderExpandedCell(type) { var _this3 = this; return function (value, index, record) { var getExpandedColProps = _this3.props.getExpandedColProps, prefix = _this3.getPrefix(); if (type === 'header') { return ''; } else { var _classnames; var expandedRowKeys = _this3.state.expandedRowKeys, primaryKey = _this3.props.primaryKey, switchNode = expandedRowKeys.indexOf(record[primaryKey]) > -1 ? _react2['default'].createElement(_nextIcon2['default'], { type: 'minus', size: 'xs' }) : _react2['default'].createElement(_nextIcon2['default'], { type: 'add', size: 'xs' }), attrs = getExpandedColProps(record, index) || {}, cls = void 0; if (!attrs.disabled) { attrs.onClick = _this3.onExpandedClick.bind(_this3, value, record, index); } cls = (0, _classnames7['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'table-expanded-ctrl', true), _defineProperty(_classnames, 'disabled', attrs.disabled), _defineProperty(_classnames, attrs.className, attrs.className), _classnames)); return _react2['default'].createElement( 'span', _extends({}, attrs, { className: cls }), switchNode ); } }; }; Table.prototype.onExpandedClick = function onExpandedClick(value, record, i, e) { var expandedRowKeys = [].concat(_toConsumableArray(this.state.expandedRowKeys)), primaryKey = this.props.primaryKey, id = record[primaryKey], index = expandedRowKeys.indexOf(id); if (index > -1) { expandedRowKeys.splice(index, 1); } else { expandedRowKeys.push(id); } if (!('expandedRowKeys' in this.props)) { this.setState({ expandedRowKeys: expandedRowKeys }); } this.props.onExpandedChange(expandedRowKeys, id, index === -1, record); e.stopPropagation(); }; Table.prototype.unique = function unique(arr) { var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'this'; var temp = {}, ret = []; arr.forEach(function (item) { var value = void 0; if (key === 'this') { value = item; } else { value = item[key]; } if (!temp[value]) { ret.push(item); temp[value] = true; } }); return ret; }; Table.prototype.selectAllRow = function selectAllRow(checked, e) { var ret = [].concat(_toConsumableArray(this.state.selectedRowKeys)), records = [], _props2 = this.props, rowSelection = _props2.rowSelection, primaryKey = _props2.primaryKey, _state2 = this.state, dataSource = _state2.dataSource, hasListGroupHeader = _state2.hasListGroupHeader, selectedRowKeys = _state2.selectedRowKeys, getProps = rowSelection.getProps, attrs = {}; if (hasListGroupHeader) { dataSource = this.flatDataSource(dataSource); } dataSource.forEach(function (record, index) { var id = record[primaryKey]; if (getProps) { attrs = getProps(record, index) || {}; } // 反选和全选的时候不要丢弃禁用项的选中状态 if (checked && (!attrs.disabled || selectedRowKeys.indexOf(id) > -1)) { ret.push(id); records.push(record); } else if (attrs.disabled && selectedRowKeys.indexOf(id) > -1) { ret.push(id); records.push(record); } else { var i = ret.indexOf(id); i > -1 && ret.splice(i, 1); } }); records = this.unique(records, primaryKey); if (typeof rowSelection.onSelectAll === 'function') { rowSelection.onSelectAll(checked, records); } this.triggerSelection(rowSelection, this.unique(ret), records); e.stopPropagation(); }; Table.prototype.selectOneRow = function selectOneRow(index, record, checked, e) { var dataSource = this.state.dataSource, selectedRowKeys = [].concat(_toConsumableArray(this.state.selectedRowKeys)), _props3 = this.props, primaryKey = _props3.primaryKey, rowSelection = _props3.rowSelection, mode = rowSelection.mode ? rowSelection.mode : 'multiple', records = void 0, id = record[primaryKey], i = void 0; if (mode === 'multiple') { if (checked) { selectedRowKeys.push(id); } else { i = selectedRowKeys.indexOf(id); selectedRowKeys.splice(i, 1); } } else if (checked) { selectedRowKeys = [id]; } records = dataSource.filter(function (item) { return selectedRowKeys.indexOf(item[primaryKey]) > -1; }); if (typeof rowSelection.onSelect === 'function') { rowSelection.onSelect(checked, record, records); } this.triggerSelection(rowSelection, selectedRowKeys, records); e.stopPropagation(); }; Table.prototype.triggerSelection = function triggerSelection(rowSelection, selectedRowKeys, records) { if (!('selectedRowKeys' in rowSelection)) { this.setState({ selectedRowKeys: selectedRowKeys }); } if (typeof rowSelection.onChange === 'function') { rowSelection.onChange(selectedRowKeys, records); } }; // 渲染头部 Table.prototype.renderHeaderGroup = function renderHeaderGroup(groupChildren, flatChildren, lock) { var _this4 = this; var rowSpan = groupChildren.length, _props4 = this.props, locale = _props4.locale, filterParams = _props4.filterParams, onFilter = _props4.onFilter, prefix = this.getPrefix(), header = groupChildren.map(function (cols, index) { var col = cols.map(function (col, j) { var _classnames2; /* eslint-disable no-unused-vars */ var title = col.title, colSpan = col.colSpan, sortable = col.sortable, dataIndex = col.dataIndex, filters = col.filters, filterMode = col.filterMode, width = col.width, align = col.align, className = col.className, others = _objectWithoutProperties(col, ['title', 'colSpan', 'sortable', 'dataIndex', 'filters', 'filterMode', 'width', 'align', 'className']); others = (0, _nextUtil.pickAttrs)(others); if (typeof title === 'function') { title = title(); } className = (0, _classnames7['default'])((_classnames2 = {}, _defineProperty(_classnames2, prefix + 'table-header-node', true), _defineProperty(_classnames2, 'first', j === 0 && lock !== 'right'), _defineProperty(_classnames2, 'last', j === cols.length - 1 && lock !== 'left'), _defineProperty(_classnames2, className, className), _classnames2)); others.style = others.style || {}; others.className = className; if (align) { others.style.textAlign = align; } if (col.__mark === 'column-group') { return _react2['default'].createElement( 'th', _extends({ colSpan: colSpan, key: j }, others, { ref: _this4.getHeaderRef(index, j, lock) }), _react2['default'].createElement( 'div', { className: prefix + 'table-cell-wrapper' }, title ) ); } else { var sortElement = void 0, filterElement = void 0; if (sortable) { sortElement = _this4.renderSort(dataIndex); } if (filters) { filterElement = filters.length ? _react2['default'].createElement(_filter2['default'], { dataIndex: dataIndex, filters: filters, prefix: prefix, locale: locale, filterParams: filterParams, filterMode: filterMode, onFilter: onFilter }) : null; } return _react2['default'].createElement( 'th', _extends({ rowSpan: rowSpan - index, key: j }, others, { ref: _this4.getHeaderRef(index, j, lock) }), _react2['default'].createElement( 'div', { className: prefix + 'table-cell-wrapper' }, title, sortElement, filterElement ) ); } }); return _react2['default'].createElement( 'tr', { key: index }, col ); }), colGroups = flatChildren.map(function (col, index) { var style = {}, width = col.width; if (width) { style = { width: width }; } return _react2['default'].createElement('col', { style: style, key: index }); }); return _react2['default'].createElement( 'div', { className: prefix + 'table-header-inner', ref: this.getTableRef(lock, 'innerHeader') }, _react2['default'].createElement( 'table', null, _react2['default'].createElement( 'colgroup', null, colGroups ), _react2['default'].createElement( 'tbody', null, header ) ) ); }; // 渲染排序 Table.prototype.renderSort = function renderSort(dataIndex) { var sort = this.state.sort, prefix = this.getPrefix(), sortStatus = sort[dataIndex], map = { desc: 'descending', asc: 'ascending' }; var icons = ['asc', 'desc'].map(function (sortOrder) { return _react2['default'].createElement( 'a', { href: 'javascript:;', key: sortOrder, className: sortStatus === sortOrder ? 'current' : '' }, _react2['default'].createElement(_nextIcon2['default'], { type: map[sortOrder], size: 'small' }) ); }); return _react2['default'].createElement( 'span', { className: prefix + 'table-sort', onClick: this._onSort.bind(this, dataIndex, sortStatus === 'asc' ? 'desc' : 'asc') }, icons ); }; Table.prototype._onSort = function _onSort(dataIndex, order) { var _this5 = this; var sort = {}; sort[dataIndex] = order; if (!('sort' in this.props)) { this.setState({ sort: sort }, function () { _this5.props.onSort(dataIndex, order, sort); }); } else { this.props.onSort(dataIndex, order, sort); } }; // 获取表格的ref // 主要用于渲染完表格后进行宽度和高度的一些设置 Table.prototype.getTableRef = function getTableRef(lock, type) { if (lock) { return 'lock_' + lock + type; } else { return type; } }; // 通过头部和扁平的结构渲染表格 Table.prototype.renderTable = function renderTable(groupChildren, flatChildren, lock) { var header = this.renderHeaderGroup(groupChildren, flatChildren, lock), rows = this.renderRows(flatChildren, lock), _props5 = this.props, hasHeader = _props5.hasHeader, fixedHeader = _props5.fixedHeader, maxBodyHeight = _props5.maxBodyHeight, prefix = this.getPrefix(), events = { onWheel: this.onBodyMouseWheel.bind(this) }, style = {}, bodyStyle = {}; if (!lock) { events = { onScroll: this.onBodyScroll.bind(this) }; if (fixedHeader) { style = { paddingRight: getScrollbarSize().width }; bodyStyle = { maxHeight: maxBodyHeight }; } } this.notRenderCellIndex = false; return _react2['default'].createElement( 'div', { className: prefix + 'table-inner' }, hasHeader ? _react2['default'].createElement( 'div', { className: prefix + 'table-header', ref: this.getTableRef(lock, 'header'), style: style }, header ) : null, _react2['default'].createElement( 'div', _extends({ className: prefix + 'table-body' }, events, { ref: this.getTableRef(lock, 'body'), style: bodyStyle }), rows ) ); }; Table.prototype.onBodyMouseWheel = function onBodyMouseWheel(e) { var deltaY = e.deltaY; var scrollNode = findDOMNode(this.refs[this.getTableRef(false, 'body')]); this.scrollTo(scrollNode, scrollNode.scrollLeft, scrollNode.scrollTop + deltaY); if (scrollNode.scrollTop + scrollNode.clientHeight < scrollNode.scrollHeight && scrollNode.scrollTop) { e.preventDefault(); } }; Table.prototype.onBodyScroll = function onBodyScroll() { var scrollNode = findDOMNode(this.refs[this.getTableRef(false, 'body')]); this.scrollTo(scrollNode, scrollNode.scrollLeft, scrollNode.scrollTop); }; Table.prototype.scrollTo = function scrollTo(scrollNode, x, y) { var header = findDOMNode(this.refs[this.getTableRef(false, 'innerHeader')]); if (header) { header.scrollLeft = x; } scrollNode.scrollTop = y; if (this.isLock()) { var lockRightBody = findDOMNode(this.refs[this.getTableRef('right', 'body')]), lockLeftBody = findDOMNode(this.refs[this.getTableRef('left', 'body')]), lockRightTable = findDOMNode(this.refs[this.getTableRef('right', 'lockWrapper')]), lockLeftTable = findDOMNode(this.refs[this.getTableRef('left', 'lockWrapper')]), shadowClassName = 'shadow'; if (lockLeftBody) { lockLeftBody.scrollTop = y; } if (lockRightBody) { lockRightBody.scrollTop = y; } if (x === 0) { lockLeftTable && _nextDom.classList.removeClass(lockLeftTable, shadowClassName); lockRightTable && _nextDom.classList.addClass(lockRightTable, shadowClassName); } else if (x === scrollNode.scrollWidth - scrollNode.clientWidth) { lockLeftTable && _nextDom.classList.addClass(lockLeftTable, shadowClassName); lockRightTable && _nextDom.classList.removeClass(lockRightTable, shadowClassName); } else { lockLeftTable && _nextDom.classList.addClass(lockLeftTable, shadowClassName); lockRightTable && _nextDom.classList.addClass(lockRightTable, shadowClassName); } } }; Table.prototype.renderRows = function renderRows(flatChildren, lock) { var _this6 = this; var dataSource = this.state.dataSource, _props6 = this.props, locale = _props6.locale, isLoading = _props6.isLoading, prefix = this.getPrefix(), rows = [], empty = isLoading ? null : locale.empty, needWrapper = false, colGroups = flatChildren.map(function (child, index) { return _react2['default'].createElement('col', { style: { width: child.width + 'px' }, key: index }); }); this._lastChildrenLength = 0; dataSource.forEach(function (record, index) { var row = _this6.renderRow(flatChildren, record, index, lock); if (row.needWrapper) { needWrapper = true; colGroups = row.colGroups; rows = rows.concat(row.node); } else { rows.push(row.node); } }); this._lastChildrenLength = 0; if (!rows.length) { rows = _react2['default'].createElement( 'table', null, _react2['default'].createElement( 'colgroup', null, colGroups ), _react2['default'].createElement( 'tbody', null, _react2['default'].createElement( 'tr', null, _react2['default'].createElement( 'td', { colSpan: flatChildren.length }, _react2['default'].createElement( 'div', { className: prefix + 'table-empty' }, empty ) ) ) ) ); } if (needWrapper) { return _react2['default'].createElement( 'table', null, _react2['default'].createElement( 'colgroup', null, colGroups ), _react2['default'].createElement( 'tbody', null, rows ) ); } else { return rows; } }; // Don't need recursion. Table.prototype.flatDataSource = function flatDataSource(dataSource) { var ret = [], listGroupHeader = this.state.listGroupHeader, hasSelection = listGroupHeader.hasSelection; dataSource.forEach(function (item) { var children = item.children; // 如果需要渲染selection才将这条记录插入到dataSource // 或者没有孩子节点 if (hasSelection || !children) { ret.push(item); } if (children) { ret = ret.concat(children); } }); return ret; }; Table.prototype.analyseDataSource = function analyseDataSource(dataSource, props) { var isTree = props.isTree, result = [], loop = function loop(dataSource, level) { dataSource.forEach(function (item) { item.__level = level; result.push(item); if (item.children) { loop(item.children, level + 1); } }); }; if (isTree) { loop(dataSource, 0); } else { result = dataSource; } return result; }; Table.prototype.renderRow = function renderRow(flatChildren, record, index, lock) { var _this7 = this, _classnames3; index = index + this._lastChildrenLength; var _props7 = this.props, getRowClassName = _props7.getRowClassName, getRowProps = _props7.getRowProps, primaryKey = _props7.primaryKey, isTree = _props7.isTree, prefix = this.getPrefix(), _state3 = this.state, openRowKeys = _state3.openRowKeys, dataSource = _state3.dataSource, selectedRowKeys = _state3.selectedRowKeys, colGroups = [], listHeader = this.renderListGroupHeader(record, index), col = flatChildren.map(function (child, i) { var cell = _this7.renderCell(record, child, index, i, lock, flatChildren.length, listHeader); colGroups.push(cell.col); return cell.node; }), expandedRow = void 0, treeNodeStatus = this.getTreeNodeStatus(dataSource); expandedRow = this.renderExpandedRow(record, index, flatChildren.length, lock); if (expandedRow) { expandedRow = _react2['default'].cloneElement(expandedRow, { onClick: this._onExpandedRowClick.bind(this, record, index) }); } var className = getRowClassName(record, index), otherProps = getRowProps(record, index), cls = (0, _classnames7['default'])((_classnames3 = {}, _defineProperty(_classnames3, prefix + 'table-row', true), _defineProperty(_classnames3, 'last', index === dataSource.length - 1), _defineProperty(_classnames3, 'first', index === 0), _defineProperty(_classnames3, 'hidden', isTree && !(treeNodeStatus.indexOf(record[primaryKey]) > -1) && record.__level !== 0), _defineProperty(_classnames3, prefix + 'table-row-level-' + record.__level, isTree), _defineProperty(_classnames3, 'opened', openRowKeys.indexOf(record[primaryKey]) > -1), _defineProperty(_classnames3, 'selected', !listHeader && selectedRowKeys.indexOf(record[primaryKey]) > -1), _defineProperty(_classnames3, className, className), _classnames3)); var row = {}; /* eslint-disable eqeqeq */ var rowKey = record[primaryKey] != null && record[primaryKey] != '' ? record[primaryKey] : index; if (listHeader) { if (record.children && record.children.length) { colGroups = []; col = record.children.map(function (item, childIndex) { var td = flatChildren.map(function (child, i) { var cell = _this7.renderCell(item, child, index + childIndex + 1, i, lock, flatChildren.length); if (colGroups.length !== flatChildren.length) { colGroups.push(cell.col); } return cell.node; }); return _react2['default'].createElement( 'tr', { key: childIndex }, td ); }); this._lastChildrenLength += record.children.length; } else { col = _react2['default'].createElement( 'tr', { key: index }, col ); } row.node = _react2['default'].createElement( 'table', _extends({}, otherProps, { className: cls, key: rowKey, onClick: this._onRowClick.bind(this, record, index), onMouseEnter: this._onRowHover.bind(this, record, index, true), onMouseLeave: this._onRowHover.bind(this, record, index, false) }), _react2['default'].createElement( 'colgroup', null, colGroups ), _react2['default'].createElement( 'tbody', null, listHeader, col, expandedRow ) ); } else { row.node = [_react2['default'].createElement( 'tr', _extends({}, otherProps, { className: cls, key: rowKey, onClick: this._onRowClick.bind(this, record, index), ref: this.getRowRef(index, lock), onMouseEnter: this._onRowHover.bind(this, record, index, true), onMouseLeave: this._onRowHover.bind(this, record, index, false) }), col ), expandedRow]; row.needWrapper = true; } row.colGroups = colGroups; return row; }; Table.prototype.getTreeNodeStatus = function getTreeNodeStatus(dataSource) { var openRowKeys = this.state.openRowKeys, primaryKey = this.props.primaryKey, res = []; openRowKeys.forEach(function (openKey) { dataSource.forEach(function (item) { if (item[primaryKey] === openKey) { if (item.children) { item.children.forEach(function (child) { res.push(child[primaryKey]); }); } } }); }); return res; }; Table.prototype.renderExpandedRow = function renderExpandedRow(record, index, colSpan, lock) { var expandedRowRender = this.props.expandedRowRender; if (expandedRowRender) { var _props8 = this.props, primaryKey = _props8.primaryKey, expandedRowIndent = _props8.expandedRowIndent, prefix = this.getPrefix(), _state4 = this.state, expandedRowKeys = _state4.expandedRowKeys, lockLeftChildren = _state4.lockLeftChildren, lockRightChildren = _state4.lockRightChildren, _style = { display: expandedRowKeys.indexOf(record[primaryKey]) > -1 ? '' : 'none' }, leftIndent = expandedRowIndent[0], rightIndent = expandedRowIndent[1], totalIndent = leftIndent + rightIndent, renderCols = function renderCols(number) { var result = []; for (var i = 0; i < number; i++) { result.push(_react2['default'].createElement( 'td', { key: i }, '\xA0' )); } return result; }, content = void 0; if (totalIndent > colSpan && !lock) { _nextUtil.log.warning('It\'s not allowed expandedRowIndent is more than the number of columns.'); } if (leftIndent < lockLeftChildren.length) { _nextUtil.log.warning('expandedRowIndent left is less than the number of left lock columns.'); } if (rightIndent < lockRightChildren.length) { _nextUtil.log.warning('expandedRowIndent right is less than the number of right lock columns.'); } if (lock) { return _react2['default'].createElement( 'tr', { className: prefix + 'table-expanded-row', style: _style, key: 'expanded-' + index }, _react2['default'].createElement( 'td', { colSpan: colSpan, ref: this.getExpandedCellRef(index, 0, lock) }, ' ' ) ); } content = expandedRowRender(record, index); if (!_react2['default'].isValidElement(content)) { content = _react2['default'].createElement( 'div', { className: prefix + 'table-cell-wrapper' }, content ); } return _react2['default'].createElement( 'tr', { className: prefix + 'table-expanded-row', style: _style, key: 'expanded-' + index }, renderCols(leftIndent), _react2['default'].createElement( 'td', { colSpan: colSpan - totalIndent, ref: this.getExpandedCellRef(index, 0, false) }, content ), renderCols(rightIndent) ); } else { return null; } }; Table.prototype.getRowRef = function getRowRef(i, lock) { if (lock) { return 'lock_row_' + lock + '_' + i; } else { return 'row_' + i; } }; // 主要用于锁列的时候同步锁列和正常数据的高度 Table.prototype.getCellRef = function getCellRef(i, j, lock) { if (lock) { return 'lock_' + lock + '_' + i + '_' + j; } else { return i + '_' + j; } }; Table.prototype.getExpandedCellRef = function getExpandedCellRef(i, j, lock) { if (lock) { return 'lock_expanded_' + lock + '_' + i + '_' + j; } else { return 'expanded_' + i + '_' + j; } }; Table.prototype.getHeaderRef = function getHeaderRef(i, j, lock) { if (lock) { return 'lock_header_' + lock + '_' + i + '_' + j; } else { return 'header_' + i + '_' + j; } }; // Table处理过后真实的lock状态 Table.prototype.isLock = function isLock() { if (this.state) { return !!this.state.lockLeftChildren.length || !!this.state.lockRightChildren.length; } return this._isLock; }; // 用户设置的lock状态 Table.prototype.isOriginLock = function isOriginLock() { return this._isLock; }; //index: rowIndex //i: colIndex Table.prototype.renderCell = function renderCell(record, props, index, i, lock, flatChildrenLength, listGroup) { var _classnames4; if (lock === 'right') { i = i + (this.state.flatChildren.length - this.state.lockRightChildren.length); } var value = getDataByPath(record, props.dataIndex), cellProps = { value: value, index: index, record: record, context: this }, content = void 0, style = void 0, align = props.align, _props9 = this.props, getCellProps = _props9.getCellProps, indentSize = _props9.indentSize, primaryKey = _props9.primaryKey, isTree = _props9.isTree, prefix = this.getPrefix(), ref = this.getCellRef(index, i, lock), attrs = getCellProps(index, i, record, value, props.dataIndex) || {}, firstCellStyle = void 0, treeArrowNode = void 0; if (_react2['default'].isValidElement(props.cell)) { content = _react2['default'].cloneElement(props.cell, cellProps); } else if (typeof props.cell === 'function') { content = props.cell(value, index, record, this); } if (props.width) { style = { width: props.width }; } if (this.notRenderCellIndex && !listGroup) { var matchCellIndex = this.notRenderCellIndex.map(function (cellIndex) { return cellIndex.toString(); }).indexOf([index, i].toString()); if (matchCellIndex > -1) { this.notRenderCellIndex.splice(matchCellIndex, 1); return { node: null, col: _react2['default'].createElement('col', { style: style, key: index + '_' + i }) }; } } if (attrs.colSpan && attrs.colSpan > 1 || attrs.rowSpan && attrs.rowSpan > 1) { if (lock) { this.rowSpanLock = true; } this._getNotRenderCellIndex(i, index, attrs.colSpan || 1, attrs.rowSpan || 1); } var cls = (0, _classnames7['default'])((_classnames4 = {}, _defineProperty(_classnames4, props.className, props.className), _defineProperty(_classnames4, prefix + 'table-cell', true), _defineProperty(_classnames4, 'first', lock !== 'right' && i === 0), _defineProperty(_classnames4, 'last', lock !== 'left' && (i === flatChildrenLength - 1 || i + attrs.colSpan === flatChildrenLength)), _classnames4)); var treeArrowNodeIndex = this.props.rowSelection ? 1 : 0; if (isTree && lock !== 'right' && i === treeArrowNodeIndex) { firstCellStyle = { paddingLeft: indentSize * (record.__level + 1) }; treeArrowNode = _react2['default'].createElement(_nextIcon2['default'], { size: 'xs', className: prefix + 'table-tree-placeholder' }); var treeArrowType = void 0; if (record.children && record.children.length) { if (this.state.openRowKeys.indexOf(record[primaryKey]) > -1) { treeArrowType = 'arrow-down'; } else { treeArrowType = 'arrow-right'; } treeArrowNode = _react2['default'].createElement(_nextIcon2['default'], { type: treeArrowType, size: 'xs', onClick: this.onTreeNodeClick.bind(this, record) }); } } var cellStyle = _extends({}, props.style); if (typeof align !== 'undefined') { cellStyle.textAlign = align; } return { node: _react2['default'].createElement( 'td', _extends({ className: cls, style: cellStyle, ref: ref, key: index + '_' + i }, attrs), _react2['default'].createElement( 'div', { className: prefix + 'table-cell-wrapper', style: firstCellStyle }, treeArrowNode, content ) ), col: _react2['default'].createElement('col', { style: style, key: index + '_' + i }) }; }; Table.prototype._getNotRenderCellIndex = function _getNotRenderCellIndex(colIndex, rowIndex, colSpan, rowSpan) { var maxColIndex = colSpan; var maxRowIndex = rowSpan; var notRenderCellIndex = []; for (var i = 0; i < maxColIndex; i++) { for (var j = 0; j < maxRowIndex; j++) { notRenderCellIndex.push([rowIndex + j, colIndex + i]); } } if (!this.notRenderCellIndex) { this.notRenderCellIndex = []; } this.notRenderCellIndex = this.notRenderCellIndex.concat(notRenderCellIndex); return this.notRenderCellIndex; }; Table.prototype.onTreeNodeClick = function onTreeNodeClick(record, e) { e.stopPropagation(); var primaryKey = this.props.primaryKey, id = record[primaryKey], dataSource = this.state.dataSource, openRowKeys = [].concat(_toConsumableArray(this.state.openRowKeys)), index = openRowKeys.indexOf(id), getChildrenKeyById = function getChildrenKeyById(id) { var res = [id], loop = function loop(data) { data.forEach(function (item) { res.push(item[primaryKey]); if (item.children) { loop(item.children); } }); }; dataSource.forEach(function (item) { if (item[primaryKey] === id) { if (item.children) { loop(item.children); } } }); return res; }; if (index > -1) { // 不仅要删除当前的openRowKey,还需要删除关联子节点的openRowKey var ids = getChildrenKeyById(id); ids.forEach(function (id) { var i = openRowKeys.indexOf(id); if (i > -1) { openRowKeys.splice(i, 1); } }); } else { openRowKeys.push(id); } if (!('openRowKeys' in this.props)) { this.setState({ openRowKeys: openRowKeys }); } this.props.onRowOpen(openRowKeys, id, index === -1, record); }; // 渲染List模式的header Table.prototype.renderListGroupHeader = function renderListGroupHeader(record, index) { var _state5 = this.state, listGroupHeader = _state5.listGroupHeader, flatChildren = _state5.flatChildren, prefix = this.getPrefix(), listHeader = void 0; if (listGroupHeader) { var hasSelection = listGroupHeader.hasSelection; if (_react2['default'].isValidElement(listGroupHeader.cell)) { listHeader = _react2['default'].cloneElement(listGroupHeader.cell, { record: record, index: index }); } else if (typeof listGroupHeader.cell === 'function') { listHeader = listGroupHeader.cell(record, index); } if (listHeader) { listHeader = _react2['default'].createElement( 'tr', { className: prefix + 'table-group-header' }, hasSelection ? _react2['default'].createElement( 'td', { className: prefix + 'table-selection' }, _react2['default'].createElement( 'div', { className: prefix + 'table-cell-wrapper' }, this.renderSelectionCell('body')(null, index, record) ) ) : null, _react2['default'].createElement( 'td', { colSpan: hasSelection ? flatChildren.length - 1 : flatChildren.length }, _react2['default'].createElement( 'div', { className: prefix + 'table-cell-wrapper' }, listHeader ) ) ); } } return listHeader; }; Table.prototype._onRowClick = function _onRowClick(record, index, e) { this.props.onRowClick(record, index, e); }; Table.prototype._onRowHover = function _onRowHover(record, index, isEnter, e) { var _props10 = this.props, onRowMouseEnter = _props10.onRowMouseEnter, onRowMouseLeave = _props10.onRowMouseLeave, currentTarget = e.currentTarget, isLock = this.isLock(), leftLockRow = void 0, rightLockRow = void 0, currentRow = _reactDom2['default'].findDOMNode(this.refs[this.getRowRef(index, false)]); if (isLock) { leftLockRow = _reactDom2['default'].findDOMNode(this.refs[this.getRowRef(index, 'left')]); rightLockRow = _reactDom2['default'].findDOMNode(this.refs[this.getRowRef(index, 'right')]); } if (isEnter) { onRowMouseEnter(record, index, e); currentRow && _nextDom.classList.addClass(currentRow, 'hovered'); leftLockRow && _nextDom.classList.addClass(leftLockRow, 'hovered'); rightLockRow && _nextDom.classList.addClass(rightLockRow, 'hovered'); } else { onRowMouseLeave(record, index, e); currentRow && _nextDom.classList.removeClass(currentRow, 'hovered'); leftLockRow && _nextDom.classList.removeClass(leftLockRow, 'hovered'); rightLockRow && _nextDom.classList.removeClass(rightLockRow, 'hovered'); } }; Table.prototype._onExpandedRowClick = function _onExpandedRowClick(record, index, e) { e.stopPropagation(); this.props.onExpandedRowClick(record, index, e); }; Table.prototype.render = function render() { var _classnames5; var table = this.renderTable(this.state.groupChildren, this.state.flatChildren), _props11 = this.props, className = _props11.className, fixedHeader = _props11.fixedHeader, hasBorder = _props11.hasBorder, isZebra = _props11.isZebra, isLoading = _props11.isLoading, hasHeader = _props11.hasHeader, others = _objectWithoutProperties(_props11, ['className', 'fixedHeader', 'hasBorder', 'isZebra', 'isLoading', 'hasHeader']), prefix = this.getPrefix(), isLock = this.isLock(), cls = (0, _classnames7['default'])((_classnames5 = {}, _defineProperty(_classnames5, prefix + 'table', true), _defineProperty(_classnames5, prefix + 'table-fixed', fixedHeader), _defineProperty(_classnames5, prefix + 'table-group', this.state.hasListGroupHeader), _defineProperty(_classnames5, prefix + 'table-lock', isLock), _defineProperty(_classnames5, 'only-bottom-border', !hasBorder), _defineProperty(_classnames5, 'no-header', !hasHeader), _defineProperty(_classnames5, 'zebra', isZebra), _defineProperty(_classnames5, className, className), _classnames5)), loadingNode = isLoading ? _react2['default'].createElement( 'div', { className: prefix + 'table-loading' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'loading', size: 'xl' }) ) : null; others = (0, _nextUtil.pickAttrs)(others); if (!isLock) { return _react2['default'].createElement( 'div', _extends({ className: cls }, others), table, loadingNode ); } else { return _react2['default'].createElement( 'div', _extends({ className: cls }, others), table, this.renderLockTable('left'), this.renderLockTable('right'), loadingNode ); } }; Table.prototype.renderLockTable = function renderLockTable(dir) { var prefix = this.getPrefix(), dirUpperCase = dir.charAt(0).toUpperCase() + dir.substring(1); if (this.state.dataSource.length) { return _react2['default'].createElement( 'div', { className: prefix + 'table-lock-' + dir, ref: this.getTableRef(dir, 'lockWrapper') }, this.renderTable(this.state['lock' + dirUpperCase + 'GroupChildren'], this.state['lock' + dirUpperCase + 'Children'], dir) ); } else { return null; } }; Table.prototype.componentDidMount = function componentDidMount() { this.adjustSize = this.adjustSize.bind(this); this.adjustSize(); window.onresize = this.adjustSize; }; Table.prototype.componentDidUpdate = function componentDidUpdate() { this.adjustSize(); }; Table.prototype.componentWillUnmount = function componentWillUnmount() { window.onresize = null; }; Table.prototype.adjustSize = function adjustSize() { this.adjustIfTableNotNeedLock(); this.adjustCellSize(); this.adjustBodySize(); this.adjustHeaderSize(); this.adjustFixedHeaderSize(); this.onBodyScroll(); this._notNeedAdjustLockLeft = this._notNeedAdjustLockRight = false; }; Table.prototype.adjustCellSize = function adjustCellSize() { var _this8 = this; if (this.isLock()) { this.state.dataSource.forEach(function (item, index) { if (!_this8.rowSpanLock) { _this8.setLeftCellSize(index, 0); _this8.setRightCellSize(index, 0); } else { var _state6 = _this8.state, lockLeftChildren = _state6.lockLeftChildren, lockRightChildren = _state6.lockRightChildren; // 同步最左侧的锁列 lockLeftChildren.forEach(function (child, i) { _this8.setLeftCellSize(index, i); }); // 同步最右侧的锁列 lockRightChildren.forEach(function (child, i) { _this8.setRightCellSize(index, i); }); } }); } }; Table.prototype.setLeftCellSize = function setLeftCellSize(index, i) { var lockLeftRow = findDOMNode(this.refs[this.getCellRef(index, i, 'left')]), row = this.getRowDOMNode(index, i), expandedRow = findDOMNode(this.refs[this.getExpandedCellRef(index, i, false)]), lockLeftExpandedRow = findDOMNode(this.refs[this.getExpandedCellRef(index, i, 'left')]), rowHeight = row && parseFloat(getComputedStyle(row).height) || 0; var expandedRowHeight = 0, lockLeftHeight = 0; if (lockLeftRow) { lockLeftHeight = lockLeftRow.offsetHeight; } if (expandedRow) { expandedRowHeight = expandedRow.offsetHeight; } lockLeftExpandedRow && _nextDom.style.set(lockLeftExpandedRow, 'height', expandedRowHeight + 'px'); if (lockLeftRow && rowHeight !== lockLeftHeight) { _nextDom.style.set(lockLeftRow, 'height', rowHeight + 'px'); } }; Table.prototype.setRightCellSize = function setRightCellSize(index, i) { var lockRightStart = this.state.flatChildren.length - this.state.lockRightChildren.length; var lockRightRow = findDOMNode(this.refs[this.getCellRef(index, lockRightStart + i, 'right')]), row = this.getRowDOMNode(index, lockRightStart + i), expandedRow = findDOMNode(this.refs[this.getExpandedCellRef(index, i, false)]), lockRightExpandedRow = findDOMNode(this.refs[this.getExpandedCellRef(index, i, 'right')]), rowHeight = row && parseFloat(getComputedStyle(row).height) || 0; var lockRightHeight = 0, expandedRowHeight = 0; if (lockRightRow) { lockRightHeight = lockRightRow.offsetHeight; } if (expandedRow) { expandedRowHeight = expandedRow.offsetHeight; } lockRightExpandedRow && _nextDom.style.set(lockRightExpandedRow, 'height', expandedRowHeight + 'px'); if (lockRightRow && rowHeight !== lockRightRow) { _nextDom.style.set(lockRightRow, 'height', rowHeight + 'px'); } }; Table.prototype.getRowDOMNode = function getRowDOMNode(index, i) { return findDOMNode(this.refs[this.getCellRef(index, i)]); }; Table.prototype.adjustBodySize = function adjustBodySize() { if (this.isLock()) { var body = findDOMNode(this.refs[this.getTableRef(false, 'body')]), lockLeftBody = findDOMNode(this.refs[this.getTableRef('left', 'body')]), lockRightBody = findDOMNode(this.refs[this.getTableRef('right', 'body')]), lockRightBodyWrapper = findDOMNode(this.refs[this.getTableRef('right', 'lockWrapper')]), bodyHeight = body.offsetHeight, lockBodyHeight = void 0, width = 0; if (body.scrollHeight > body.clientHeight) { width = getScrollbarSize().width; } if (bodyHeight >= this.props.maxBodyHeight && this.props.fixedHeader) { lockBodyHeight = this.props.maxBodyHeight - getScrollbarSize().height; lockLeftBody && _nextDom.style.set(lockLeftBody, 'max-height', lockBodyHeight + 'px'); lockRightBody && _nextDom.style.set(lockRightBody, 'max-height', lockBodyHeight + 'px'); lockRightBodyWrapper && _nextDom.style.set(lockRightBodyWrapper, 'right', width + 'px'); } } }; Table.prototype.adjustHeaderSize = function adjustHeaderSize() { var _this9 = this; if (this.isLock()) { this.state.groupChildren.forEach(function (child, index) { var lastIndex = _this9.state.groupChildren[index].length - 1; var headerLeftRow = findDOMNode(_this9.refs[_this9.getHeaderRef(index, 0, false)]), headerRightRow = findDOMNode(_this9.refs[_this9.getHeaderRef(index, lastIndex, false)]), headerRightLockRow = findDOMNode(_this9.refs[_this9.getHeaderRef(index, 0, 'right')]), headerLeftLockRow = findDOMNode(_this9.refs[_this9.getHeaderRef(index, 0, 'left')]), headerRightLockRowHeight = 0, headerLeftLockRowHeight = 0; // 如果不需要锁列的出现,就不要在计算锁列的header的高度 // 这在浏览器缩放的时候可能会造成高度计算的问题 if (headerRightLockRow && !_this9._notNeedAdjustLockRight) { headerRightLockRowHeight = headerRightLockRow.offsetHeight; } if (headerLeftLockRow && !_this9._notNeedAdjustLockLeft) { headerLeftLockRowHeight = headerLeftLockRow.offsetHeight; } var maxLeftRowHeight = Math.max(headerLeftLockRowHeight, headerLeftRow && headerLeftRow.offsetHeight); var maxRightRowHeight = Math.max(headerRightLockRowHeight, headerRightRow && headerRightRow.offsetHeight); headerRightLockRow && maxRightRowHeight && _nextDom.style.set(headerRightLockRow, 'height', maxRightRowHeight); headerLeftLockRow && maxLeftRowHeight && _nextDom.style.set(headerLeftLockRow, 'height', maxLeftRowHeight); }); } }; Table.prototype.adjustFixedHeaderSize = function adjustFixedHeaderSize() { var _props12 = this.props, hasHeader = _props12.hasHeader, fixedHeader = _props12.fixedHeader, maxBodyHeight = _props12.maxBodyHeight; if (hasHeader && fixedHeader) { var headerNode = findDOMNode(this.refs[this.getTableRef(false, 'header')]); var bodyNode = findDOMNode(this.refs[this.getTableRef(false, 'body')]); if (bodyNode.scrollHeight <= maxBodyHeight) { _nextDom.style.set(headerNode, 'paddingRight', 0); } else { _nextDom.style.set(headerNode, 'paddingRight', getScrollbarSize().width); } } }; Table.prototype.adjustIfTableNotNeedLock = function adjustIfTableNotNeedLock() { var _this10 = this; if (this.isLock() && this.state.dataSource.length) { var configWidths = this.state.flatChildren.map(function (item, index) { var row = findDOMNode(_this10.refs[_this10.getCellRef(0, index)]); // when lock and no dataSource, the row is undefined // you need to getHeaderRef instead of getCellRef if (!row && _this10.state.dataSource.length === 0) { var rowHeader = findDOMNode(_this10.refs[_this10.getHeaderRef(0, index)]); return rowHeader && rowHeader.clientWidth || 0; } return row && row.clientWidth || 0; }).reduce(function (a, b) { return a + b; }, 0); var node = findDOMNode(this); var width = node.clientWidth; if (configWidths <= width) { if (this.state.lockLeftChildren.length) { this.setState({ lockLeftChildren: [] }); this._notNeedAdjustLockLeft = true; } if (this.state.lockRightChildren.length) { this.setState({ lockRightChildren: [] }); this._notNeedAdjustLockRight = true; } } } }; return Table; }(_react2['default'].Component), _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 表格展示的数据源 */ dataSource: _propTypes2['default'].array, /** * 是否启用选择模式 * @property {Function} getProps `Function(record)=>Object` 获取selection的默认属性 * @property {Function} onChange `Function(selectedRowKeys:Array, records:Array)` 选择改变的时候触发的事件,**注意:** 其中records只会包含当前dataSource的数据,很可能会小于selectedRowKeys的长度。 * @property {Function} onSelect `Function(selected:Boolean, record:Object, records:Array)` 用户手动选择/取消选择某行的回调 * @property {Function} onSelectAll `Function(selected:Boolean, records:Array)` 用户手动选择/取消选择所有行的回调 * @property {Array} selectedRowKeys 设置了此属性,将rowSelection变为受控状态,接收值为该行数据的primaryKey的值 * @property {String} mode 选择selection的模式, 可选值为`single`, `multiple`,默认为`multiple` */ rowSelection: _propTypes2['default'].object, /** * 点击表格每一行触发的事件 * @param {Object} record 该行所对应的数据 * @param {Number} index 该行所对应的序列 * @param {Event} e DOM事件对象 */ onRowClick: _propTypes2['default'].func, /** * 悬浮在表格每一行的时候触发的事件 * @param {Object} record 该行所对应的数据 * @param {Number} index 该行所对应的序列 * @param {Event} e DOM事件对象 */ onRowMouseEnter: _propTypes2['default'].func, /** * 离开表格每一行的时候触发的事件 * @param {Object} record 该行所对应的数据 * @param {Number} index 该行所对应的序列 * @param {Event} e DOM事件对象 */ onRowMouseLeave: _propTypes2['default'].func, /** * 点击列排序触发的事件 * @param {String} dataIndex 指定的排序的字段 * @param {String} order 排序对应的顺序, 有`desc`和`asc`两种 */ onSort: _propTypes2['default'].func, /** * 点击过滤确认按钮触发的事件 * @param {Object} filterParams 过滤的字段信息 */ onFilter: _propTypes2['default'].func, /** * 设置每一行的样式名称 * @param {Object} record 该行所对应的数据 * @param {Number} index 该行所对应的序列 * @returns {String} 需要设置的样式名称 */ getRowClassName: _propTypes2['default'].func, /** * 设置每一行的属性,如果返回值和其他针对行操作的属性冲突则无效。 * @param {Object} record 该行所对应的数据 * @param {Number} index 该行所对应的序列 * @returns {Object} 需要设置的行属性 */ getRowProps: _propTypes2['default'].func, /** * 设置单元格的属性,通过该属性可以进行合并单元格 * @param {Number} rowIndex 该单元格所对应的序列 * @param {Number} colIndex 该单元格所对应的序列 * @param {Object} record 该单元格对应的记录 * @param {*} value 该单元格的值 * @param {String} dataIndex 该单元格对应的属性 * @returns {Object} 返回td元素的所支持的属性对象 */ getCellProps: _propTypes2['default'].func, /** * 表头是否固定,该属性配合maxBodyHeight使用,当内容区域的高度超过maxBodyHeight的时候,在内容区域会出现滚动条 */ fixedHeader: _propTypes2['default'].bool, /** * 最大内容区域的高度,在`fixedHeader`为`true`的时候,超过这个高度会出现滚动条 */ maxBodyHeight: _propTypes2['default'].number, /** * 表格是否具有边框 */ hasBorder: _propTypes2['default'].bool, /** * 表格是否具有头部 */ hasHeader: _propTypes2['default'].bool, /** * 表格是否是斑马线 */ isZebra: _propTypes2['default'].bool, /** * 表格是否在加载中 */ isLoading: _propTypes2['default'].bool, /** * dataSource当中数据的主键,如果给定的数据源中的属性不包含该主键,会造成选择状态全部选中 */ primaryKey: _propTypes2['default'].string, /** * 当前过滤的的keys,使用此属性可以控制表格的头部的过滤选项中哪个菜单被选中,格式为 {dataIndex: {selectedKeys:[]}} * 示例: * 假设要控制dataIndex为id的列的过滤菜单中key为one的菜单项选中 * `` */ filterParams: _propTypes2['default'].object, /** * 当前排序的字段,使用此属性可以控制表格的字段的排序,格式为{dataIndex: 'asc'} */ sort: _propTypes2['default'].object, /** * 额外渲染行的渲染函数 * @param {Object} record 该行所对应的数据 * @param {Number} index 该行所对应的序列 * @returns {Element} */ expandedRowRender: _propTypes2['default'].func, /** * 额外渲染行的缩进 */ expandedRowIndent: _propTypes2['default'].array, /** * 默认情况下展开的额外渲染行, 传入此属性为受控状态 */ expandedRowKeys: _propTypes2['default'].array, /** * 是否显示点击展开额外渲染行的+号按钮 */ hasExpandedRowCtrl: _propTypes2['default'].bool, /** * 设置额外渲染行的属性 */ getExpandedColProps: _propTypes2['default'].func, /** * 在额外渲染行展开或者收齐的时候触发的事件 * @param {Array} expandedRowKeys 展开的渲染行的key * @param {String} currentRowKey 当前点击的渲染行的key * @param {Boolean} expanded 当前点击是展开还是收起 * @param {Object} currentRecord 当前点击额外渲染行的记录 */ onExpandedChange: _propTypes2['default'].func, /** * 点击额外渲染行触发的事件 * @param {Object} record 该行所对应的数据 * @param {Number} index 该行所对应的序列 * @param {Event} e DOM事件对象 */ onExpandedRowClick: _propTypes2['default'].func, /** * 在tree模式下的缩进尺寸, 仅在isTree为true时候有效 */ indentSize: _propTypes2['default'].number, /** * 默认情况下展开的树形表格,传入了此属性代表tree的展开为受控操作 */ openRowKeys: _propTypes2['default'].array, /** * 点击tree展开或者关闭的时候触发的事件 * @param {Array} openRowKeys tree模式下展开的key * @param {String} currentRowKey 当前点击行的key * @param {Boolean} opened 当前点击是展开还是收起 * @param {Object} currentRecord 当前点击行的记录 */ onRowOpen: _propTypes2['default'].func, /** * 开启Table的tree模式, 接收的数据格式中包含children则渲染成tree table */ isTree: _propTypes2['default'].bool, /** * 是否开启性能优化,开启了性能优化后,会自动加入`shouldComponentUpdate` */ optimization: _propTypes2['default'].bool, /** * 自定义国际化文案对象 * @property {String} empty 没有数据时的提示文案 * @property {String} ok 过滤器中确认按钮文案 * @property {String} reset 过滤器中重置按钮文案 */ locale: _propTypes2['default'].object, /** * 自定义国际化语言 */ language: _propTypes2['default'].oneOf(['en-us', 'zh-cn', 'zh-tw']) }, _class.defaultProps = { dataSource: [], rowSelection: null, onRowClick: noop, onRowMouseEnter: noop, onRowMouseLeave: noop, onSort: noop, onExpandedChange: noop, onExpandedRowClick: noop, expandedRowIndent: [1, 0], getExpandedColProps: noop, onFilter: noop, getRowClassName: noop, getRowProps: noop, getCellProps: noop, prefix: 'next-', fixedHeader: false, maxBodyHeight: 200, hasBorder: true, hasHeader: true, isZebra: false, isLoading: false, primaryKey: 'id', indentSize: 12, hasExpandedRowCtrl: true, onRowOpen: noop, isTree: false, optimization: false }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Table.displayName = 'Table'; function getDataByPath(object, path) { if (!object || !path) { return false; } path = path.toString(); var field = path.split('.'), val = void 0, key = void 0; if (field.length) { key = field[0]; //lists[1].name if (key.indexOf('[') >= 0) { key = key.match(/(.*)\[(.*)\]/); if (key) { val = object[key[1]][key[2]]; } } else { val = object[field[0]]; } if (val) { for (var i = 1; i < field.length; i++) { val = val[field[i]]; if (typeof val === 'undefined') { break; } } } } return val; } function deepCopy(arr) { var copy = function copy(arr) { return arr.map(function (item) { var newitem = _extends({}, item); if (newitem.children) { newitem.children = copy(newitem.children); } return newitem; }); }; return copy(arr); } function shallowEqual(objA, objB, compare, compareContext) { var ret = compare ? compare.call(compareContext, objA, objB) : void 0; if (ret !== void 0) { return !!ret; } if (objA === objB) { return true; } if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) { return false; } var keysA = Object.keys(objA); var keysB = Object.keys(objB); var len = keysA.length; if (len !== keysB.length) { return false; } compareContext = compareContext || null; // Test for A's keys different from B. var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); for (var i = 0; i < len; i++) { var key = keysA[i]; if (!bHasOwnProperty(key)) { return false; } var valueA = objA[key]; var valueB = objB[key]; var _ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0; if (_ret === false || _ret === void 0 && !shallowEqual(valueA, valueB)) { return false; } } return true; } exports.shallowEqual = shallowEqual; exports['default'] = (0, _nextLocaleProvider2['default'])(Table); module.exports = exports['default']; /***/ }), /***/ 2678: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp, _initialiseProps; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextDropdown = __webpack_require__(1741); var _nextDropdown2 = _interopRequireDefault(_nextDropdown); var _nextMenu = __webpack_require__(1453); var _nextMenu2 = _interopRequireDefault(_nextMenu); var _nextButton = __webpack_require__(1472); var _nextButton2 = _interopRequireDefault(_nextButton); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } // 共享状态的组件需要变成非受控组件 var Filter = (_temp = _class = function (_React$Component) { _inherits(Filter, _React$Component); function Filter(props) { _classCallCheck(this, Filter); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); _initialiseProps.call(_this); var filterParams = props.filterParams || {}; var filterConfig = filterParams[props.dataIndex] || {}; _this.state = { visible: filterConfig.visible || false, selectedKeys: filterConfig.selectedKeys || [] }; _this._selectedKeys = [].concat(_toConsumableArray(_this.state.selectedKeys)); return _this; } Filter.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if (nextProps.hasOwnProperty('filterParams') && typeof nextProps.filterParams !== 'undefined') { var dataIndex = nextProps.dataIndex || this.props.dataIndex; var filterParams = nextProps.filterParams || {}; var filterConfig = filterParams[dataIndex] || {}; var selectedKeys = filterConfig.selectedKeys || []; this.setState({ selectedKeys: selectedKeys }); this._selectedKeys = [].concat(_toConsumableArray(selectedKeys)); } }; Filter.prototype.render = function render() { var _props = this.props, filters = _props.filters, prefix = _props.prefix, locale = _props.locale, filterMode = _props.filterMode; var _state = this.state, visible = _state.visible, selectedKeys = _state.selectedKeys; var renderMenuItem = function renderMenuItem(item) { return _react2['default'].createElement( _nextMenu2['default'].Item, { key: item.value }, item.label ); }, renderMenuContent = function renderMenuContent(list) { return list.map(function (item) { return renderMenuItem(item); }); }, content = filters.map(function (filter, index) { if (filter.children) { return _react2['default'].createElement( _nextMenu2['default'].SubMenu, { label: filter.label, key: 'popup' + index, selectable: false }, renderMenuContent(filter.children) ); } else { return renderMenuItem(filter); } }), footer = _react2['default'].createElement( 'div', { className: prefix + 'table-filter-footer' }, _react2['default'].createElement( _nextButton2['default'], { type: 'primary', onClick: this.onFilterConfirm }, locale.ok ), _react2['default'].createElement( _nextButton2['default'], { onClick: this.onFilterClear }, locale.reset ) ); return _react2['default'].createElement( _nextDropdown2['default'], { trigger: _react2['default'].createElement( 'span', { className: prefix + 'table-filter' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'filter', size: 'small' }) ), triggerType: 'click', visible: visible, container: function container(node) { return node.parentNode; }, onVisibleChange: this.onFilterVisible }, _react2['default'].createElement( _nextMenu2['default'], { footer: footer, selectedKeys: selectedKeys, selectMode: filterMode, onSelect: this.onFilterSelect }, content ) ); }; return Filter; }(_react2['default'].Component), _class.propTypes = { dataIndex: _propTypes2['default'].string, filters: _propTypes2['default'].array, filterMode: _propTypes2['default'].string, filterParams: _propTypes2['default'].object, locale: _propTypes2['default'].object, onFilter: _propTypes2['default'].func, prefix: _propTypes2['default'].string }, _class.defaultProps = { onFilter: function onFilter() {} }, _initialiseProps = function _initialiseProps() { var _this2 = this; this.onFilterVisible = function (visible, reason) { if (!reason) { _this2.setState({ visible: visible }); if (!visible) { var selectedKeys = [].concat(_toConsumableArray(_this2._selectedKeys)); _this2.setState({ selectedKeys: selectedKeys }); } } }; this.onFilterSelect = function (selectedKeys) { _this2.setState({ visible: true, selectedKeys: selectedKeys }); }; this.onFilterConfirm = function () { var selectedKeys = _this2.state.selectedKeys; var filterParams = {}, dataIndex = _this2.props.dataIndex; filterParams[dataIndex] = { visible: false, selectedKeys: selectedKeys }; _this2._selectedKeys = [].concat(_toConsumableArray(selectedKeys)); _this2.setState({ visible: false }); // 兼容之前的格式 _this2.props.onFilter(filterParams); }; this.onFilterClear = function () { var filterParams = {}, dataIndex = _this2.props.dataIndex; filterParams[dataIndex] = { visible: false, selectedKeys: [] }; _this2._selectedKeys = []; _this2.setState({ selectedKeys: [], visible: false }); // 兼容之前的格式 _this2.props.onFilter(filterParams); }; }, _temp); Filter.displayName = 'Filter'; exports['default'] = Filter; module.exports = exports['default']; /***/ }), /***/ 2679: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Table.Column */ var Column = (_temp = _class = function (_React$Component) { _inherits(Column, _React$Component); function Column() { _classCallCheck(this, Column); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } Column.prototype.render = function render() { return null; }; return Column; }(_react2['default'].Component), _class.propTypes = { /** * 指定列对应的字段,支持`a.b`形式的快速取值 */ dataIndex: _propTypes2['default'].string, /** * 行渲染的逻辑 * Function(value, index, record) => Element */ cell: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].node, _propTypes2['default'].func]), /** * 表头显示的内容 */ title: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].node, _propTypes2['default'].func]), /** * 是否支持排序 */ sortable: _propTypes2['default'].bool, /** * 在锁列的情况下需要配置的宽度 */ width: _propTypes2['default'].node, /** * 单元格的对齐方式 */ align: _propTypes2['default'].oneOf(['left', 'center', 'right']), /** * 生成标题过滤的菜单, 格式为`[{label:'xxx', value:'xxx'}]` */ filters: _propTypes2['default'].arrayOf(_propTypes2['default'].shape({ label: _propTypes2['default'].string, value: _propTypes2['default'].oneOfType([_propTypes2['default'].node, _propTypes2['default'].string]) })), /** * 过滤的模式是单选还是多选 */ filterMode: _propTypes2['default'].oneOf(['single', 'multiple']), /** * 是否支持锁列,可选值为`left`,`right`, `true` */ lock: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].string]) }, _class._tableMark = 'column', _class.contextTypes = { parent: _propTypes2['default'].any }, _class.defaultProps = { cell: function cell(value) { return value; }, filterMode: 'multiple', title: 'column' }, _temp); Column.displayName = 'Column'; exports['default'] = Column; module.exports = exports['default']; /***/ }), /***/ 2680: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Table.ColumnGroup */ var ColumnGroup = (_temp = _class = function (_React$Component) { _inherits(ColumnGroup, _React$Component); function ColumnGroup() { _classCallCheck(this, ColumnGroup); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } ColumnGroup.prototype.getChildContext = function getChildContext() { return { parent: this }; }; ColumnGroup.prototype.render = function render() { return null; }; return ColumnGroup; }(_react2['default'].Component), _class.propTypes = { /** * 表头显示的内容 */ title: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].node, _propTypes2['default'].func]) }, _class._tableMark = 'column-group', _class.childContextTypes = { parent: _propTypes2['default'].any }, _class.defaultProps = { title: 'column-group' }, _temp); ColumnGroup.displayName = 'ColumnGroup'; exports['default'] = ColumnGroup; module.exports = exports['default']; /***/ }), /***/ 2681: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Table.GroupHeader */ var GroupHeader = (_temp = _class = function (_React$Component) { _inherits(GroupHeader, _React$Component); function GroupHeader() { _classCallCheck(this, GroupHeader); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } GroupHeader.prototype.render = function render() { return null; }; return GroupHeader; }(_react2['default'].Component), _class.propTypes = { /** * 行渲染的逻辑 */ cell: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].node, _propTypes2['default'].func]), /** * 是否在GroupHeader上面渲染selection */ hasSelection: _propTypes2['default'].bool }, _class._tableMark = 'list-group-header', _class.defaultProps = { cell: function cell() { return ''; }, hasSelection: false }, _temp); GroupHeader.displayName = 'GroupHeader'; exports['default'] = GroupHeader; module.exports = exports['default']; /***/ }), /***/ 2682: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = { 'en-us': { empty: 'No data', ok: 'Ok', reset: 'Reset' }, 'zh-cn': { empty: '没有数据', ok: '确认', reset: '重置' }, 'zh-tw': { empty: '沒有數據', ok: '確認', reset: '重置' } }; module.exports = exports['default']; /***/ }), /***/ 2683: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextAnimate = __webpack_require__(1503); var _nextAnimate2 = _interopRequireDefault(_nextAnimate); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; function normalize(number) { if (number > 99) { return '99+'; } return number; } /** Tag */ var Tag = (_temp = _class = function (_Component) { _inherits(Tag, _Component); function Tag(props, context) { _classCallCheck(this, Tag); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { selected: props.selected || props.defaultSelected, closed: props.closed || props.defaultClosed, count: props.count ? Number(props.count) : 0, marked: props.marked, clickInteractiveIcon: false // 是否点击了交互型的 Icon }; return _this; } Tag.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('selected' in nextProps && this.props.selected !== nextProps.selected) { this.setState({ selected: nextProps.selected }); } if ('closed' in nextProps) { this.setState({ closed: nextProps.closed }); } }; Tag.prototype.onToggle = function onToggle() { var _this2 = this; this.setState(function (prevState) { return { marked: !prevState.marked, count: prevState.marked ? --prevState.count : ++prevState.count, clickInteractiveIcon: true }; }); this.props.onChange(this.state.count); // +/- 的移除动效 if (this.props.animation) { setTimeout(function () { _this2.setState({ clickInteractiveIcon: false }); }, 300); } }; Tag.prototype.onClose = function onClose() { if (!('closed' in this.props)) { this.setState({ closed: true }); } this.props.onClose(this.props.value, this.state.closed); this.props.onChange(this.state.closed); }; Tag.prototype.onSelect = function onSelect() { var _props = this.props, shape = _props.shape, onSelect = _props.onSelect, onChange = _props.onChange; if (shape === 'selectable') { var selected = !this.state.selected; if (!('selected' in this.props)) { this.setState({ selected: selected }); } onSelect(selected); onChange(selected); } }; Tag.prototype.animationInit = function animationInit() { this.props.afterAppear(); }; Tag.prototype.animationEnd = function animationEnd() { this.props.afterClose(); }; Tag.prototype._getClosableSelectable = function _getClosableSelectable(shape) { var closable = false; var selectable = false; if (shape === 'selectable') { closable = false; selectable = true; } else if (shape === 'deletable') { closable = true; selectable = false; } return { closable: closable, selectable: selectable }; }; Tag.prototype._animatedTag = function _animatedTag(children, animation, style) { if (animation) { return _react2['default'].createElement( _nextAnimate2['default'], { animation: style, afterLeave: this.animationEnd.bind(this), afterAppear: this.animationInit.bind(this) }, children ); } return children; }; Tag.prototype.render = function render() { var _classNames; // Hint: 根据设计稿暂时不支持 large ,如果用户取 size = 'large' ,则使用 medium 的样式 // Discussion: http://gitlab.alibaba-inc.com/next/tag/issues/10#note_2884687 var _props2 = this.props, prefixCls = _props2.prefixCls, shape = _props2.shape, type = _props2.type, size = _props2.size, className = _props2.className, disabled = _props2.disabled, children = _props2.children, animation = _props2.animation, others = _objectWithoutProperties(_props2, ['prefixCls', 'shape', 'type', 'size', 'className', 'disabled', 'children', 'animation']); var prefix = this.context.prefix || prefixCls || this.props.prefix; if (prefixCls) { _nextUtil.log.deprecated('prefixCls', 'prefix', 'Tag'); } var state = this.state; var _getClosableSelectabl = this._getClosableSelectable(shape), closable = _getClosableSelectabl.closable, selectable = _getClosableSelectabl.selectable; var classes = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'tag', true), _defineProperty(_classNames, prefix + 'tag-' + shape, shape), _defineProperty(_classNames, prefix + 'tag-level-' + type, type), _defineProperty(_classNames, prefix + 'tag-' + size, size), _defineProperty(_classNames, prefix + 'tag-deletable', closable), _defineProperty(_classNames, prefix + 'tag-selectable', selectable), _defineProperty(_classNames, 'selected', state.selected), _defineProperty(_classNames, 'disabled', disabled), _defineProperty(_classNames, className, className), _classNames)); var body = void 0, tail = void 0; if (shape === 'interactive') { body = children; var iconCls = animation && state.clickInteractiveIcon ? 'clicked' : ''; tail = _react2['default'].createElement( 'div', { className: prefix + 'tag-tail' }, state.count ? _react2['default'].createElement( 'span', { className: prefix + 'tag-number' }, normalize(state.count) ) : null, _react2['default'].createElement( 'span', { className: prefix + 'tag-opt', onClick: this.onToggle.bind(this) }, _react2['default'].createElement(_nextIcon2['default'], { type: state.marked ? 'subtract' : 'add', className: iconCls }) ) ); } else { body = [children]; state.count && body.push(_react2['default'].createElement( 'span', { className: prefix + 'tag-number', key: 'tag-tail-number' }, '(', state.count, ')' )); tail = closable ? _react2['default'].createElement( 'div', { className: prefix + 'tag-tail', onClick: this.onClose.bind(this) }, _react2['default'].createElement( 'span', { className: prefix + 'tag-opt' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'close' }) ) ) : null; } var realTag = state.closed ? null : _react2['default'].createElement( 'div', _extends({}, (0, _nextUtil.pickAttrs)(others), { className: classes, onClick: this.onSelect.bind(this) }), _react2['default'].createElement( 'div', { className: prefix + 'tag-body' }, _react2['default'].Children.map(body, function (el, i) { return typeof el === 'function' ? _react2['default'].cloneElement(el, { key: i }) : el; }) ), tail ); return this._animatedTag(realTag, animation, prefix + 'tag-zoom'); }; return Tag; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, prefixCls: _propTypes2['default'].string, // for compatibility /** * 标签的形态 */ shape: _propTypes2['default'].oneOf(['selectable', 'deletable', 'interactive', 'link', 'readonly']), /** * 标签的类型 */ type: _propTypes2['default'].oneOf(['normal', 'primary', 'secondary']), /** * 标签的尺寸(large 尺寸为兼容表单场景 large = medium) */ size: _propTypes2['default'].oneOf(['medium', 'small', 'large']), /** * 标签是否禁用 */ disabled: _propTypes2['default'].bool, /** * 标签附加显示的重复次数 */ count: _propTypes2['default'].number, /** * 选择型标签是否被选中(受控) */ selected: _propTypes2['default'].bool, /** * 选型型标签默认是否被选中(非受控) */ defaultSelected: _propTypes2['default'].bool, /** * 可删除标签是否被关闭(受控) */ closed: _propTypes2['default'].bool, /** * 可删除标签默认是否被关闭(非受控) */ defaultClosed: _propTypes2['default'].bool, /** * 互动型标签是否被标记过(受控) */ marked: _propTypes2['default'].bool, /** * 标签暂存的值 */ value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].array, _propTypes2['default'].object, _propTypes2['default'].bool]), /** * 是否开启动效 */ animation: _propTypes2['default'].bool, /** * 互动型标签被 mark 的数量变化时的回调 * @param {Number} count 被标记的次数 */ onChange: _propTypes2['default'].func, /** * 可删除标签被关闭时的回调 * @param {String} value 值 * @param {Boolean} closed 是否关闭状态 */ onClose: _propTypes2['default'].func, /** * 可选择标签被选中时的回调 * @param {Boolean} selected 是否被选择 */ onSelect: _propTypes2['default'].func, /** * 标签出现后执行的回调 * Function() => void */ afterAppear: _propTypes2['default'].func, /** * 标签关闭后执行的回调 * Function() => void */ afterClose: _propTypes2['default'].func, className: _propTypes2['default'].string, children: _propTypes2['default'].any }, _class.defaultProps = { prefix: 'next-', shape: 'selectable', type: 'normal', size: 'medium', disabled: false, defaultSelected: false, defaultClosed: false, marked: false, animation: true, onChange: noop, onClose: noop, onSelect: noop, afterAppear: noop, afterClose: noop }, _temp); Tag.displayName = 'Tag'; exports['default'] = Tag; module.exports = exports['default']; /***/ }), /***/ 2684: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _timeline = __webpack_require__(2685); var _timeline2 = _interopRequireDefault(_timeline); var _timelineItem = __webpack_require__(2686); var _timelineItem2 = _interopRequireDefault(_timelineItem); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _timeline2['default'].Item = _timelineItem2['default']; exports['default'] = _timeline2['default']; module.exports = exports['default']; /***/ }), /***/ 2685: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Timeline */ var Timeline = (_temp = _class = function (_Component) { _inherits(Timeline, _Component); function Timeline(props, context) { _classCallCheck(this, Timeline); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { fold: props.fold }; return _this; } Timeline.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('fold' in nextProps) { this.setState({ fold: nextProps.fold }); } }; Timeline.prototype.toggleFold = function toggleFold(folderIndex, total) { var fold = this.state.fold.map(function (item) { return _extends({}, item); }); if (folderIndex) { for (var i = 0; i < fold.length; i++) { var _fold$i = fold[i], foldArea = _fold$i.foldArea, foldShow = _fold$i.foldShow; if (foldArea[1] && folderIndex === foldArea[1] || !foldArea[1] && folderIndex === total - 1) { fold[i].foldShow = !foldShow; } } this.setState({ fold: fold }); } }; Timeline.prototype.render = function render() { var _this2 = this, _classNames; var _props = this.props, className = _props.className, children = _props.children; var prefix = this.context.prefix || this.props.prefix; var fold = this.state.fold; // 修改子节点属性 var childrenCount = _react2['default'].Children.count(children); var cloneChildren = _react.Children.map(children, function (child, i) { var ref = 'timeline-item-' + i.toString(); var folderIndex = null; var foldNodeShow = false; fold.forEach(function (item) { var foldArea = item.foldArea, foldShow = item.foldShow; if (foldArea[0] && i >= foldArea[0] && (i <= foldArea[1] || !foldArea[1])) { folderIndex = foldArea[1] || childrenCount - 1; foldNodeShow = foldShow; } }); return _react2['default'].cloneElement(child, { prefix: prefix, ref: ref, total: childrenCount, index: i, folderIndex: folderIndex, foldShow: foldNodeShow, toggleFold: folderIndex === i ? _this2.toggleFold.bind(_this2, folderIndex, childrenCount) : function () {} }); }); var timelineCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'timeline', true), _defineProperty(_classNames, className, className), _classNames)); return _react2['default'].createElement( 'ul', { className: timelineCls }, cloneChildren ); }; return Timeline; }(_react.Component), _class.propTypes = { /** * 样式的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义折叠选项 示例`[{foldArea: [startIndex, endIndex], foldShow: boolean}]` */ fold: _propTypes2['default'].array, /** * 自定义类名 */ className: _propTypes2['default'].string, children: _propTypes2['default'].any }, _class.defaultProps = { prefix: 'next-', fold: [] }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); Timeline.displayName = 'Timeline'; exports['default'] = Timeline; module.exports = exports['default']; /***/ }), /***/ 2686: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** Timeline.Item */ var TimelineItem = (_temp = _class = function (_Component) { _inherits(TimelineItem, _Component); function TimelineItem() { _classCallCheck(this, TimelineItem); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } TimelineItem.prototype.toggleFold = function toggleFold(folderIndex) { this.props.toggleFold(folderIndex); }; TimelineItem.prototype.render = function render() { var _classNames; var _props = this.props, prefix = _props.prefix, className = _props.className, state = _props.state, icon = _props.icon, time = _props.time, title = _props.title, content = _props.content, index = _props.index, total = _props.total, folderIndex = _props.folderIndex, foldShow = _props.foldShow; var itemCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'timeline-item', true), _defineProperty(_classNames, prefix + 'timeline-item-first', index === 0), _defineProperty(_classNames, prefix + 'timeline-item-last', index === total - 1), _defineProperty(_classNames, prefix + 'timeline-item-' + state, state), _defineProperty(_classNames, prefix + 'timeline-item-folded', folderIndex), _defineProperty(_classNames, prefix + 'timeline-item-unfolded', foldShow), _defineProperty(_classNames, 'className', className), _classNames)); return _react2['default'].createElement( 'li', null, _react2['default'].createElement( 'div', { className: itemCls, ref: 'timeline-item' }, _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: prefix + 'timeline-item-node' }, icon ? _react2['default'].createElement( 'span', { className: prefix + 'timeline-item-icon' }, _react2['default'].createElement(_nextIcon2['default'], { type: icon, size: 'xs' }) ) : _react2['default'].createElement('span', { className: prefix + 'timeline-item-dot' }) ) ), _react2['default'].createElement( 'div', { className: prefix + 'timeline-item-content' }, _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 ) ) ), folderIndex === index ? _react2['default'].createElement( 'div', { className: prefix + 'timeline-item-folder' }, _react2['default'].createElement( 'a', { className: prefix + 'timeline-item-folder-trigger', onClick: this.toggleFold.bind(this, folderIndex, total) }, foldShow ? _react2['default'].createElement( 'span', null, '\u6536\u8D77 ', _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-up', size: 'xs' }) ) : _react2['default'].createElement( 'span', null, '\u5C55\u5F00 ', _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-down', size: 'xs' }) ) ) ) : null ); }; return TimelineItem; }(_react.Component), _class.propTypes = { prefix: _propTypes2['default'].string, index: _propTypes2['default'].number, total: _propTypes2['default'].number, folderIndex: _propTypes2['default'].number, foldShow: _propTypes2['default'].bool, /** * 节点状态 */ state: _propTypes2['default'].oneOf(['done', 'process', 'error', 'success']), /** * 图标 */ icon: _propTypes2['default'].string, /** * 格式化后的时间 */ time: _propTypes2['default'].node, /** * 标题 */ title: _propTypes2['default'].node, /** * 内容 */ content: _propTypes2['default'].node, toggleFold: _propTypes2['default'].func, className: _propTypes2['default'].string }, _class.defaultProps = { prefix: 'next-', state: 'done', toggleFold: function toggleFold() {} }, _temp); TimelineItem.displayName = 'TimelineItem'; exports['default'] = TimelineItem; module.exports = exports['default']; /***/ }), /***/ 2687: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _transfer = __webpack_require__(2688); var _transfer2 = _interopRequireDefault(_transfer); var _locale = __webpack_require__(2691); var _locale2 = _interopRequireDefault(_locale); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _transfer2['default'].LOCALE = _locale2['default']; exports['default'] = _transfer2['default']; module.exports = exports['default']; /***/ }), /***/ 2688: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextButton = __webpack_require__(1472); var _nextButton2 = _interopRequireDefault(_nextButton); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _nextUtil = __webpack_require__(889); var _transferPanel = __webpack_require__(2689); var _transferPanel2 = _interopRequireDefault(_transferPanel); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Transfer */ var Transfer = (_temp = _class = function (_Component) { _inherits(Transfer, _Component); function Transfer(props, context) { _classCallCheck(this, Transfer); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); var value = props.value, defaultValue = props.defaultValue, defaultLeftChecked = props.defaultLeftChecked, defaultRightChecked = props.defaultRightChecked, dataSource = props.dataSource; var _this$filterCheckedVa = _this.filterCheckedValue(_this.normalizeValue(defaultLeftChecked), _this.normalizeValue(defaultRightChecked), dataSource), left = _this$filterCheckedVa.left, right = _this$filterCheckedVa.right; _this.state = { value: _this.normalizeValue('value' in props ? value : defaultValue), leftCheckedValue: left, rightCheckedValue: right }; _this.leftValue = _this.getLeftValue(dataSource, _this.state.value); return _this; } Transfer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var st = {}; if ('value' in nextProps) { var value = this.normalizeValue(nextProps.value); st.value = value; this.leftValue = this.getLeftValue(nextProps.dataSource, value); } else { this.leftValue = this.getLeftValue(nextProps.dataSource, this.state.value); } var _filterCheckedValue = this.filterCheckedValue(this.state.leftCheckedValue, this.state.rightCheckedValue, nextProps.dataSource), left = _filterCheckedValue.left, right = _filterCheckedValue.right; st.leftCheckedValue = left; st.rightCheckedValue = right; this.setState(st); }; Transfer.prototype.normalizeValue = function normalizeValue(value) { if (value) { if (Array.isArray(value)) { return value; } return [value]; } return []; }; Transfer.prototype.filterCheckedValue = function filterCheckedValue(left, right, dataSource) { var result = { left: [], right: [] }; if (left.length || right.length) { var value = dataSource.map(function (item) { return item.value; }); value.forEach(function (itemValue) { if (left.indexOf(itemValue) > -1) { result.left.push(itemValue); } else if (right.indexOf(itemValue) > -1) { result.right.push(itemValue); } }); } return result; }; Transfer.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; Transfer.prototype.getLeftValue = function getLeftValue(dataSource, value) { return dataSource.map(function (item) { return item.value; }).filter(function (itemValue) { return value.indexOf(itemValue) === -1; }); }; Transfer.prototype.groupDatasource = function groupDatasource(value, itemValues, dataSource) { return value.reduce(function (ret, itemValue) { var index = itemValues.indexOf(itemValue); if (index > -1) { ret.push(dataSource[index]); } return ret; }, []); }; Transfer.prototype.handlePanelChange = function handlePanelChange(position, value) { var valuePropName = position === 'left' ? 'leftCheckedValue' : 'rightCheckedValue'; this.setState(_defineProperty({}, valuePropName, value)); }; Transfer.prototype.handleMoveItem = function handleMoveItem(direction) { var _this2 = this; var rightValue = void 0; var leftValue = void 0; var movedValue = void 0; var valuePropName = void 0; var dataSource = this.props.dataSource; var _state = this.state, value = _state.value, leftCheckedValue = _state.leftCheckedValue, rightCheckedValue = _state.rightCheckedValue; if (direction === 'right') { rightValue = leftCheckedValue.concat(value); leftValue = this.leftValue.filter(function (itemValue) { return leftCheckedValue.indexOf(itemValue) === -1; }); movedValue = leftCheckedValue; valuePropName = 'leftCheckedValue'; } else { rightValue = value.filter(function (itemValue) { return rightCheckedValue.indexOf(itemValue) === -1; }); leftValue = rightCheckedValue.concat(this.leftValue); movedValue = rightCheckedValue; valuePropName = 'rightCheckedValue'; } var st = _defineProperty({}, valuePropName, []); if (!('value' in this.props)) { st.value = rightValue; this.leftValue = leftValue; } this.setState(st, function () { if ('onChange' in _this2.props) { var itemValues = dataSource.map(function (item) { return item.value; }); var rightData = _this2.groupDatasource(rightValue, itemValues, dataSource); var leftData = _this2.groupDatasource(leftValue, itemValues, dataSource); var movedData = _this2.groupDatasource(movedValue, itemValues, dataSource); _this2.props.onChange(rightValue, rightData, { leftValue: leftValue, leftData: leftData, movedValue: movedValue, movedData: movedData, direction: direction }); } }); }; Transfer.prototype.render = function render() { var prefix = this.getPrefix(); var _props = this.props, className = _props.className, dataSource = _props.dataSource, locale = _props.locale, showSearch = _props.showSearch, searchPlaceholder = _props.searchPlaceholder, titles = _props.titles, operations = _props.operations, listStyle = _props.listStyle; var _state2 = this.state, value = _state2.value, leftCheckedValue = _state2.leftCheckedValue, rightCheckedValue = _state2.rightCheckedValue; var itemValues = dataSource.map(function (item) { return item.value; }); var leftDatasource = this.groupDatasource(this.leftValue, itemValues, dataSource); var rightDatasource = this.groupDatasource(value, itemValues, dataSource); var panelProps = { prefix: prefix, locale: locale, showSearch: showSearch, searchPlaceholder: searchPlaceholder, listStyle: listStyle }; var others = (0, _nextUtil.pickOthers)(Transfer, this.props); return _react2['default'].createElement( 'div', _extends({ className: (0, _classnames2['default'])(prefix + 'transfer', className) }, others), _react2['default'].createElement(_transferPanel2['default'], _extends({}, panelProps, { dataSource: leftDatasource, value: leftCheckedValue, title: titles[0], onChange: this.handlePanelChange.bind(this, 'left') })), _react2['default'].createElement( 'div', { className: prefix + 'transfer-operations' }, _react2['default'].createElement( _nextButton2['default'], { className: prefix + 'transfer-operation', type: leftCheckedValue.length ? 'primary' : 'normal', disabled: !leftCheckedValue.length, onClick: this.handleMoveItem.bind(this, 'right') }, operations[0] ), _react2['default'].createElement( _nextButton2['default'], { className: prefix + 'transfer-operation', type: rightCheckedValue.length ? 'primary' : 'normal', disabled: !rightCheckedValue.length, onClick: this.handleMoveItem.bind(this, 'left') }, operations[1] ) ), _react2['default'].createElement(_transferPanel2['default'], _extends({}, panelProps, { dataSource: rightDatasource, value: rightCheckedValue, title: titles[1], onChange: this.handlePanelChange.bind(this, 'right') })) ); }; return Transfer; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 数据源 */ dataSource: _propTypes2['default'].arrayOf(_propTypes2['default'].object), /** * (用于受控)当前值 */ value: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * (用于非受控)初始值 */ defaultValue: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * 值发生改变的时候触发的回调函数 * @param {Array} value 右面板值 * @param {Array} data 右面板数据 * @param {Object} extra 额外参数 * @param {Array} extra.leftValue 左面板值 * @param {Array} extra.leftData 左面板数据 * @param {Array} extra.movedValue 发生移动的值 * @param {Object} extra.movedData 发生移动的数据 * @param {String} extra.direction 移动的方向,值为'left'或'right' */ onChange: _propTypes2['default'].func, /** * 是否显示搜索框 */ showSearch: _propTypes2['default'].bool, /** * 搜索框占位符 */ searchPlaceholder: _propTypes2['default'].string, /** * 左右面板标题 */ titles: _propTypes2['default'].arrayOf(_propTypes2['default'].node), /** * 向右向左移动按钮显示内容 */ operations: _propTypes2['default'].arrayOf(_propTypes2['default'].node), /** * 左面板默认选中值 */ defaultLeftChecked: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * 右面板默认选中值 */ defaultRightChecked: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * 左右面板列表自定义样式 */ listStyle: _propTypes2['default'].object, /** * 自定义国际化文案对象 */ locale: _propTypes2['default'].object, /** * 自定义国际化语言 */ language: _propTypes2['default'].oneOf(['zh-cn', 'en-us', 'zh-tw']) }, _class.defaultProps = { prefix: 'next-', dataSource: [], defaultValue: [], showSearch: false, searchPlaceholder: 'Search', titles: [], // eslint-disable-next-line operations: [_react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-right' }), _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-left' })], defaultLeftChecked: [], defaultRightChecked: [] }, _temp); Transfer.displayName = 'Transfer'; exports['default'] = (0, _nextLocaleProvider2['default'])(Transfer); module.exports = exports['default']; /***/ }), /***/ 2689: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextCheckbox = __webpack_require__(1559); var _nextCheckbox2 = _interopRequireDefault(_nextCheckbox); var _nextInput = __webpack_require__(1448); var _nextInput2 = _interopRequireDefault(_nextInput); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _transferItem = __webpack_require__(2690); var _transferItem2 = _interopRequireDefault(_transferItem); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var TransferPanel = (_temp = _class = function (_Component) { _inherits(TransferPanel, _Component); function TransferPanel(props, context) { _classCallCheck(this, TransferPanel); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { searchedValue: '' }; _this.handleAllCheck = _this.handleAllCheck.bind(_this); _this.getListContainerDOM = _this.getListContainerDOM.bind(_this); _this.handleSearch = _this.handleSearch.bind(_this); _this.firstRender = true; return _this; } TransferPanel.prototype.componentDidMount = function componentDidMount() { this.firstRender = false; }; TransferPanel.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { if (prevProps.dataSource.length !== this.props.dataSource.length) { if (this.listContainer.scrollTop > 0) { this.listContainer.scrollTop = 0; } } }; TransferPanel.prototype.getListContainerDOM = function getListContainerDOM(ref) { this.listContainer = ref; }; TransferPanel.prototype.isSearched = function isSearched(label, searchedValue) { var labelString = ''; var loop = function loop(arg) { if (_react2['default'].isValidElement(arg) && arg.props.children) { _react2['default'].Children.forEach(arg.props.children, loop); } else if (typeof arg === 'string') { labelString += arg; } }; loop(label); if (labelString.length >= searchedValue.length && labelString.indexOf(searchedValue) > -1) { return true; } return false; }; TransferPanel.prototype.handleAllCheck = function handleAllCheck(allChecked) { var onChange = this.props.onChange; var newValue = void 0; if (allChecked) { newValue = this.enabledDatasource.map(function (item) { return item.value; }); } else { newValue = []; } onChange && onChange(newValue); }; TransferPanel.prototype.handleCheck = function handleCheck(itemValue, checked) { var _props = this.props, value = _props.value, onChange = _props.onChange; var newValue = [].concat(_toConsumableArray(value)); var index = value.indexOf(itemValue); if (checked && index === -1) { newValue.push(itemValue); } else if (!checked && index > -1) { newValue.splice(index, 1); } onChange && onChange(newValue); }; TransferPanel.prototype.handleSearch = function handleSearch(searchedValue) { this.setState({ searchedValue: searchedValue }); }; TransferPanel.prototype.renderHeader = function renderHeader() { var _props2 = this.props, prefix = _props2.prefix, locale = _props2.locale, title = _props2.title, value = _props2.value, dataSource = _props2.dataSource; var checkedCount = value.length; var totalCount = dataSource.length; var totalEnabledCount = this.enabledDatasource.length; var checked = checkedCount > 0 && checkedCount >= totalEnabledCount; var indeterminate = checkedCount > 0 && checkedCount < totalEnabledCount; var items = totalCount > 1 ? locale.items : locale.item; var countLabel = checkedCount === 0 ? totalCount + ' ' + items : checkedCount + '/' + totalCount + ' ' + items; return _react2['default'].createElement( 'div', { className: prefix + 'transfer-panel-header' }, _react2['default'].createElement(_nextCheckbox2['default'], { checked: checked, indeterminate: indeterminate, onChange: this.handleAllCheck }), _react2['default'].createElement( 'span', { className: prefix + 'transfer-panel-count' }, countLabel ), title ? _react2['default'].createElement( 'span', { className: prefix + 'transfer-panel-title' }, title ) : null ); }; TransferPanel.prototype.renderSearch = function renderSearch() { var _props3 = this.props, prefix = _props3.prefix, searchPlaceholder = _props3.searchPlaceholder; return _react2['default'].createElement( 'div', { className: prefix + 'transfer-panel-search' }, _react2['default'].createElement(_nextIcon2['default'], { type: 'search', size: 'xs' }), _react2['default'].createElement(_nextInput2['default'], { placeholder: searchPlaceholder, onChange: this.handleSearch }) ); }; TransferPanel.prototype.renderList = function renderList(dataSource) { var _this2 = this; var _props4 = this.props, prefix = _props4.prefix, value = _props4.value, listStyle = _props4.listStyle; return _react2['default'].createElement( 'div', { className: prefix + 'transfer-panel-list', style: listStyle, ref: this.getListContainerDOM }, _react2['default'].createElement( 'ul', { className: prefix + 'transfer-panel-list-content' }, dataSource.map(function (item) { return _react2['default'].createElement(_transferItem2['default'], { key: item.value, prefix: prefix, value: value, item: item, onCheck: _this2.handleCheck.bind(_this2), playTransition: !_this2.firstRender }); }) ) ); }; TransferPanel.prototype.render = function render() { var _this3 = this; var _props5 = this.props, prefix = _props5.prefix, showSearch = _props5.showSearch; var searchedValue = this.state.searchedValue; var dataSource = this.props.dataSource; this.enabledDatasource = dataSource.filter(function (item) { return !item.disabled; }); if (showSearch && searchedValue) { dataSource = dataSource.filter(function (item) { return _this3.isSearched(item.label, searchedValue); }); } return _react2['default'].createElement( 'div', { className: prefix + 'transfer-panel' }, this.renderHeader(), showSearch ? this.renderSearch() : null, this.renderList(dataSource) ); }; return TransferPanel; }(_react.Component), _class.propTypes = { prefix: _propTypes2['default'].string, dataSource: _propTypes2['default'].array, value: _propTypes2['default'].array, onChange: _propTypes2['default'].func, locale: _propTypes2['default'].object, title: _propTypes2['default'].string, showSearch: _propTypes2['default'].bool, searchPlaceholder: _propTypes2['default'].string, listStyle: _propTypes2['default'].object }, _temp); TransferPanel.displayName = 'TransferPanel'; exports['default'] = TransferPanel; module.exports = exports['default']; /***/ }), /***/ 2690: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextCheckbox = __webpack_require__(1559); var _nextCheckbox2 = _interopRequireDefault(_nextCheckbox); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var TransferItem = (_temp = _class = function (_Component) { _inherits(TransferItem, _Component); function TransferItem(props) { _classCallCheck(this, TransferItem); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.state = { highlight: false }; _this.getItemDOM = _this.getItemDOM.bind(_this); return _this; } TransferItem.prototype.componentDidMount = function componentDidMount() { var _this2 = this; if (this.props.playTransition) { this.addHighlightTimer = setTimeout(function () { _this2.setState({ highlight: true }); }, 1); this.removeHighlightTimer = setTimeout(function () { _this2.setState({ highlight: false }); }, 201); } }; TransferItem.prototype.componentWillUnmount = function componentWillUnmount() { clearTimeout(this.addHighlightTimer); clearTimeout(this.removeHighlightTimer); }; TransferItem.prototype.getItemDOM = function getItemDOM(ref) { this.item = ref; }; TransferItem.prototype.render = function render() { var _cx; var _props = this.props, prefix = _props.prefix, value = _props.value, item = _props.item, onCheck = _props.onCheck; var highlight = this.state.highlight; var itemPrefix = prefix + 'transfer-panel-item'; var classNames = (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, itemPrefix, true), _defineProperty(_cx, 'item-highlight', highlight), _defineProperty(_cx, 'disabled', item.disabled), _cx)); return _react2['default'].createElement( 'li', { className: classNames, ref: this.getItemDOM }, _react2['default'].createElement( 'label', { className: itemPrefix + '-label' }, _react2['default'].createElement(_nextCheckbox2['default'], { checked: value.indexOf(item.value) > -1, disabled: item.disabled, onChange: onCheck.bind(this, item.value) }), _react2['default'].createElement( 'span', { className: itemPrefix + '-text', title: item.label }, item.label ) ) ); }; return TransferItem; }(_react.Component), _class.propTypes = { prefix: _propTypes2['default'].string, value: _propTypes2['default'].array, item: _propTypes2['default'].object, onCheck: _propTypes2['default'].func, playTransition: _propTypes2['default'].bool }, _temp); TransferItem.displayName = 'TransferItem'; exports['default'] = TransferItem; module.exports = exports['default']; /***/ }), /***/ 2691: /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { 'en-us': { items: 'items', item: 'item' }, 'zh-cn': { items: '项', item: '项' }, 'zh-tw': { items: '項', item: '項' } }; /***/ }), /***/ 2692: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _util = __webpack_require__(1918); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } // TODO 1.x halfChecked => indeterminate /** * Tree */ var Tree = (_temp = _class = function (_Component) { _inherits(Tree, _Component); function Tree(props, context) { _classCallCheck(this, Tree); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); ['onKeyDown', 'onCheck'].forEach(function (m) { _this[m] = _this[m].bind(_this); }); _this.checkedKeysChange = true; _this.state = { expandedKeys: _this.getDefaultExpandedKeys(props), checkedKeys: _this.getDefaultCheckedKeys(props), selectedKeys: _this.getDefaultSelectedKeys(props), dragNodesKeys: '', dragOverNodeKey: '', dropNodeKey: '' }; return _this; } Tree.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var expandedKeys = this.getDefaultExpandedKeys(nextProps, true); var checkedKeys = this.getDefaultCheckedKeys(nextProps, true); var selectedKeys = this.getDefaultSelectedKeys(nextProps, true); var st = {}; if (expandedKeys) { st.expandedKeys = expandedKeys; } if (checkedKeys) { if (nextProps.checkedKeys === this.props.checkedKeys) { this.checkedKeysChange = false; } else { this.checkedKeysChange = true; } st.checkedKeys = checkedKeys; } if (selectedKeys) { st.selectedKeys = selectedKeys; } this.setState(st); }; Tree.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; Tree.prototype.onDragStart = function onDragStart(e, treeNode) { this.dragNode = treeNode; this.dragNodesKeys = this.getDragNodes(treeNode); var st = { dragNodesKeys: this.dragNodesKeys }; var expandedKeys = this.getExpandedKeys(treeNode, false); if (expandedKeys) { this.getRawExpandedKeys(); st.expandedKeys = expandedKeys; } this.setState(st); this.props.onDragStart({ event: e, node: treeNode }); }; Tree.prototype.onDragEnd = function onDragEnd() { this.setState({ dragOverNodeKey: '' }); }; Tree.prototype.onDragEnterGap = function onDragEnterGap(e, treeNode) { var offsetTop = (0, _util.getOffset)(treeNode.refs.selectHandle).top; var offsetHeight = treeNode.refs.selectHandle.offsetHeight; var pageY = e.pageY; var gapHeight = 2; if (pageY > offsetTop + offsetHeight - gapHeight) { this.dropPosition = 1; return 1; } if (pageY < offsetTop + gapHeight - 1) { this.dropPosition = -1; return -1; } this.dropPosition = 0; return 0; }; Tree.prototype.onDragEnter = function onDragEnter(e, treeNode) { var enterGap = this.onDragEnterGap(e, treeNode); if (this.dragNode.props.eventKey === treeNode.props.eventKey && enterGap === 0) { this.setState({ dragOverNodeKey: '' }); return; } var st = { dragOverNodeKey: treeNode.props.eventKey }; var expandedKeys = this.getExpandedKeys(treeNode, true); if (expandedKeys) { this.getRawExpandedKeys(); st.expandedKeys = expandedKeys; } this.setState(st); this.props.onDragEnter({ event: e, node: treeNode, expandedKeys: expandedKeys && [].concat(_toConsumableArray(expandedKeys)) || [].concat(_toConsumableArray(this.state.expandedKeys)) }); }; Tree.prototype.onDragOver = function onDragOver(e, treeNode) { this.props.onDragOver({ event: e, node: treeNode }); }; Tree.prototype.onDragLeave = function onDragLeave(e, treeNode) { this.props.onDragLeave({ event: e, node: treeNode }); }; Tree.prototype.onDrop = function onDrop(e, treeNode) { var key = treeNode.props.eventKey; this.setState({ dragOverNodeKey: '', dropNodeKey: key }); if (this.dragNodesKeys.indexOf(key) > -1) { return false; } var res = _extends({ event: e }, this.generateDropParams(treeNode)); if ('expandedKeys' in this.props) { res.rawExpandedKeys = this._rawExpandedKeys && [].concat(_toConsumableArray(this._rawExpandedKeys)) || [].concat(_toConsumableArray(this.state.expandedKeys)); } this.props.onDrop(res); }; Tree.prototype.canDrop = function canDrop(treeNode) { var params = this.generateDropParams(treeNode); return this.props.canDrop(params); }; Tree.prototype.generateDropParams = function generateDropParams(treeNode) { var posArr = treeNode.props.pos.split('-'); return { dragNode: this.dragNode, dragNodesKeys: [].concat(_toConsumableArray(this.dragNodesKeys)), node: treeNode, dropPosition: this.dropPosition + Number(posArr[posArr.length - 1]), dropToGap: this.dropPosition !== 0 }; }; Tree.prototype.onExpand = function onExpand(treeNode) { var _this2 = this; var expanded = !treeNode.props.expanded; var controlled = 'expandedKeys' in this.props; var expandedKeys = [].concat(_toConsumableArray(this.state.expandedKeys)); var index = expandedKeys.indexOf(treeNode.props.eventKey); if (expanded && index === -1) { expandedKeys.push(treeNode.props.eventKey); } else if (!expanded && index > -1) { expandedKeys.splice(index, 1); } if (!controlled) { this.setState({ expandedKeys: expandedKeys }); } this.props.onExpand(expandedKeys, { node: treeNode, expanded: expanded }); if (expanded && this.props.loadData) { return this.props.loadData(treeNode).then(function () { if (!controlled) { _this2.setState({ expandedKeys: expandedKeys }); } }); } }; Tree.prototype.onCheck = function onCheck(treeNode) { var _this3 = this; var checked = !treeNode.props.checked; if (treeNode.props.halfChecked) { checked = true; } var key = treeNode.props.eventKey; var checkedKeys = [].concat(_toConsumableArray(this.state.checkedKeys)); var index = checkedKeys.indexOf(key); var newSt = { event: 'check', node: treeNode, checked: checked }; if (this.props.checkStrictly && 'checkedKeys' in this.props) { if (checked && index === -1) { checkedKeys.push(key); } if (!checked && index > -1) { checkedKeys.splice(index, 1); } newSt.checkedNodes = []; (0, _util.loopAllChildren)(this.props.children, function (item, ind, pos, keyOrPos) { if (checkedKeys.indexOf(keyOrPos) !== -1) { newSt.checkedNodes.push(item); } }); this.props.onCheck((0, _util.getStrictlyValue)(checkedKeys, this.props.checkedKeys.halfChecked), newSt); } else { if (checked && index === -1) { this.treeNodesStates[treeNode.props.pos].checked = true; var checkedPositions = []; Object.keys(this.treeNodesStates).forEach(function (i) { if (_this3.treeNodesStates[i].checked) { checkedPositions.push(i); } }); (0, _util.handleCheckState)(this.treeNodesStates, (0, _util.filterParentPosition)(checkedPositions), true); } if (!checked) { this.treeNodesStates[treeNode.props.pos].checked = false; this.treeNodesStates[treeNode.props.pos].halfChecked = false; (0, _util.handleCheckState)(this.treeNodesStates, [treeNode.props.pos], false); } var checkKeys = (0, _util.getCheck)(this.treeNodesStates); newSt.checkedNodes = checkKeys.checkedNodes; newSt.checkedNodesPositions = checkKeys.checkedNodesPositions; newSt.halfCheckedKeys = checkKeys.halfCheckedKeys; this.checkKeys = checkKeys; checkedKeys = checkKeys.checkedKeys; this._checkedKeys = [].concat(_toConsumableArray(checkedKeys)); if (!('checkedKeys' in this.props)) { this.setState({ checkedKeys: checkedKeys }); } this.props.onCheck(checkedKeys, newSt); } }; Tree.prototype.onSelect = function onSelect(treeNode) { var props = this.props; var selectedKeys = [].concat(_toConsumableArray(this.state.selectedKeys)); var eventKey = treeNode.props.eventKey; var index = selectedKeys.indexOf(eventKey); var selected = void 0; if (index !== -1) { selected = false; selectedKeys.splice(index, 1); } else { selected = true; if (!props.multiple) { selectedKeys.length = 0; } selectedKeys.push(eventKey); } var selectedNodes = []; if (selectedKeys.length) { (0, _util.loopAllChildren)(this.props.children, function (item) { if (selectedKeys.indexOf(item.key) !== -1) { selectedNodes.push(item); } }); } var newSt = { event: 'select', node: treeNode, selected: selected, selectedNodes: selectedNodes }; if (!('selectedKeys' in this.props)) { this.setState({ selectedKeys: selectedKeys }); } props.onSelect(selectedKeys, newSt); }; Tree.prototype.onEditFinish = function onEditFinish(info) { this.props.onEditFinish(info); }; Tree.prototype.onMouseEnter = function onMouseEnter(e, treeNode) { this.props.onMouseEnter({ event: e, node: treeNode }); }; Tree.prototype.onMouseLeave = function onMouseLeave(e, treeNode) { this.props.onMouseLeave({ event: e, node: treeNode }); }; Tree.prototype.onContextMenu = function onContextMenu(e, treeNode) { this.props.onRightClick({ event: e, node: treeNode }); }; Tree.prototype.onKeyDown = function onKeyDown(e) { e.preventDefault(); }; Tree.prototype.getFilterExpandedKeys = function getFilterExpandedKeys(props, expandKeyProp, expandAll) { var keys = props[expandKeyProp]; var expandedPositionArr = []; if (props.autoExpandParent) { (0, _util.loopAllChildren)(props.children, function (item, index, pos, newKey) { if (keys.indexOf(newKey) > -1) { expandedPositionArr.push(pos); } }); } var filterExpandedKeys = []; (0, _util.loopAllChildren)(props.children, function (item, index, pos, newKey) { if (expandAll) { filterExpandedKeys.push(newKey); } else if (props.autoExpandParent) { expandedPositionArr.forEach(function (p) { if ((p.split('-').length > pos.split('-').length && (0, _util.isInclude)(pos.split('-'), p.split('-')) || pos === p) && filterExpandedKeys.indexOf(newKey) === -1) { filterExpandedKeys.push(newKey); } }); } }); return filterExpandedKeys.length ? filterExpandedKeys : keys; }; Tree.prototype.getDefaultExpandedKeys = function getDefaultExpandedKeys(props, willReceiveProps) { var expandedKeys = willReceiveProps ? undefined : this.getFilterExpandedKeys(props, 'defaultExpandedKeys', props.defaultExpandAll); if ('expandedKeys' in props) { expandedKeys = (props.autoExpandParent ? this.getFilterExpandedKeys(props, 'expandedKeys', false) : props.expandedKeys) || []; } return expandedKeys; }; Tree.prototype.getDefaultCheckedKeys = function getDefaultCheckedKeys(props, willReceiveProps) { var checkedKeys = willReceiveProps ? undefined : props.defaultCheckedKeys; if ('checkedKeys' in props) { checkedKeys = props.checkedKeys || []; if (props.checkStrictly) { if (props.checkedKeys.checked) { checkedKeys = props.checkedKeys.checked; } else if (!Array.isArray(props.checkedKeys)) { checkedKeys = []; } } } return checkedKeys; }; Tree.prototype.getDefaultSelectedKeys = function getDefaultSelectedKeys(props, willReceiveProps) { var getKeys = function getKeys(keys) { if (props.multiple) { return [].concat(_toConsumableArray(keys)); } if (keys.length) { return [keys[0]]; } return keys; }; var selectedKeys = willReceiveProps ? undefined : getKeys(props.defaultSelectedKeys); if ('selectedKeys' in props) { selectedKeys = getKeys(props.selectedKeys); } return selectedKeys; }; Tree.prototype.getRawExpandedKeys = function getRawExpandedKeys() { if (!this._rawExpandedKeys && 'expandedKeys' in this.props) { this._rawExpandedKeys = [].concat(_toConsumableArray(this.state.expandedKeys)); } }; Tree.prototype.getDragNodes = function getDragNodes(treeNode) { var dragNodesKeys = []; var tPArr = treeNode.props.pos.split('-'); (0, _util.loopAllChildren)(this.props.children, function (item, index, pos, newKey) { var pArr = pos.split('-'); if (treeNode.props.pos === pos || tPArr.length < pArr.length && (0, _util.isInclude)(tPArr, pArr)) { dragNodesKeys.push(newKey); } }); return dragNodesKeys; }; Tree.prototype.getExpandedKeys = function getExpandedKeys(treeNode, expand) { var key = treeNode.props.eventKey; var expandedKeys = this.state.expandedKeys; var expandedIndex = expandedKeys.indexOf(key); var exKeys = void 0; if (expandedIndex > -1 && !expand) { exKeys = [].concat(_toConsumableArray(expandedKeys)); exKeys.splice(expandedIndex, 1); return exKeys; } if (expand && expandedKeys.indexOf(key) === -1) { return expandedKeys.concat([key]); } }; Tree.prototype.filterTreeNode = function filterTreeNode(treeNode) { var filterTreeNode = this.props.filterTreeNode; if (typeof filterTreeNode !== 'function' || treeNode.props.disabled) { return false; } return filterTreeNode.call(this, treeNode); }; Tree.prototype.renderTreeNode = function renderTreeNode(child, index) { var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; var pos = level + '-' + index; var key = child.key || pos; var state = this.state; var props = this.props; var selectable = props.selectable; var editable = props.editable; var draggable = props.draggable; if (child.props.hasOwnProperty('selectable')) { selectable = child.props.selectable; } if (child.props.hasOwnProperty('editable')) { editable = child.props.editable; } if (child.props.hasOwnProperty('draggable')) { draggable = child.props.draggable; } var cloneProps = { ref: 'treeNode-' + key, root: this, eventKey: key, pos: pos, selectable: selectable, editable: editable, loadData: props.loadData, onMouseEnter: props.onMouseEnter, onMouseLeave: props.onMouseLeave, onRightClick: props.onRightClick, prefix: this.getPrefix(), showLine: props.showLine, showIcon: props.showIcon, draggable: draggable, dragOver: state.dragOverNodeKey === key && this.dropPosition === 0, dragOverGapTop: state.dragOverNodeKey === key && this.dropPosition === -1, dragOverGapBottom: state.dragOverNodeKey === key && this.dropPosition === 1, expanded: state.expandedKeys.indexOf(key) !== -1, selected: state.selectedKeys.indexOf(key) !== -1, filterTreeNode: this.filterTreeNode.bind(this) }; if (props.checkable) { cloneProps.checkable = _react2['default'].createElement('span', { className: 'next-tree-checkbox-inner' }); if (props.checkStrictly) { if (state.checkedKeys) { cloneProps.checked = state.checkedKeys.indexOf(key) !== -1 || false; } if (props.checkedKeys.halfChecked) { cloneProps.halfChecked = props.checkedKeys.halfChecked.indexOf(key) !== -1 || false; } else { cloneProps.halfChecked = false; } } else { if (this.checkedKeys) { cloneProps.checked = this.checkedKeys.indexOf(key) !== -1 || false; } cloneProps.halfChecked = this.halfCheckedKeys.indexOf(key) !== -1; } if (this.treeNodesStates[pos]) { cloneProps = _extends({}, cloneProps, this.treeNodesStates[pos].siblingPosition); } } return _react2['default'].cloneElement(child, cloneProps); }; Tree.prototype.render = function render() { var _classNames, _this4 = this; var prefix = this.getPrefix(); // eslint-disable-next-line var _props = this.props, propsPrefix = _props.prefix, className = _props.className, focusable = _props.focusable, checkable = _props.checkable, loadData = _props.loadData, showLine = _props.showLine, checkStrictly = _props.checkStrictly, children = _props.children, _treeNodesStates = _props._treeNodesStates, enableCheckedCache = _props.enableCheckedCache, draggable = _props.draggable; var domProps = { className: (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'tree', true), _defineProperty(_classNames, prefix + 'tree-with-line', showLine), _defineProperty(_classNames, prefix + 'tree-draggable', draggable), _defineProperty(_classNames, className, className), _classNames)), role: 'tree-node' }; if (focusable) { domProps.tabIndex = '0'; domProps.onKeyDown = this.onKeyDown; } if (checkable && (this.checkedKeysChange || loadData || !enableCheckedCache)) { if (checkStrictly) { this.treeNodesStates = {}; (0, _util.loopAllChildren)(children, function (item, index, pos, keyOrPos, siblingPosition) { _this4.treeNodesStates[pos] = { siblingPosition: siblingPosition }; }); } else if (_treeNodesStates) { this.treeNodesStates = _treeNodesStates.treeNodesStates; this.halfCheckedKeys = _treeNodesStates.halfCheckedKeys; this.checkedKeys = _treeNodesStates.checkedKeys; } else { var checkedKeys = this.state.checkedKeys; var checkKeys = void 0; if (enableCheckedCache && !loadData && this.checkKeys && this._checkedKeys && (0, _util.arraysEqual)(this._checkedKeys, checkedKeys)) { checkKeys = this.checkKeys; } else { var checkedPositions = []; this.treeNodesStates = {}; (0, _util.loopAllChildren)(children, function (item, index, pos, keyOrPos, siblingPosition) { _this4.treeNodesStates[pos] = { node: item, key: keyOrPos, checked: false, halfChecked: false, siblingPosition: siblingPosition }; if (checkedKeys.indexOf(keyOrPos) !== -1) { _this4.treeNodesStates[pos].checked = true; checkedPositions.push(pos); } }); (0, _util.handleCheckState)(this.treeNodesStates, (0, _util.filterParentPosition)(checkedPositions), true); checkKeys = (0, _util.getCheck)(this.treeNodesStates); } this.halfCheckedKeys = checkKeys.halfCheckedKeys; this.checkedKeys = checkKeys.checkedKeys; } } return _react2['default'].createElement( 'ul', _extends({}, domProps, { ref: 'tree' }), _react2['default'].Children.map(children, function (child, index) { return _this4.renderTreeNode(child, index); }) ); }; return Tree; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 树节点 */ children: _propTypes2['default'].node, /** * 是否显示树的线 */ showLine: _propTypes2['default'].bool, /** * 是否支持选中节点 */ selectable: _propTypes2['default'].bool, /** * (用于受控)当前选中节点key的数组 */ selectedKeys: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * (用于非受控)默认选中节点key的数组 */ defaultSelectedKeys: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * 选中或取消选中节点时触发的回调函数 * @param {Array} selectedKeys 选中节点key的数组 * @param {Object} extra 额外参数 * @param {Array} extra.selectedNodes 选中节点的数组 * @param {ReactElement} extra.node 当前操作的节点 * @param {Boolean} extra.selected 当前操作是否是选中 * @param {String} extra.event 当前操作的类型,值为'select' */ onSelect: _propTypes2['default'].func, /** * 是否支持多选 */ multiple: _propTypes2['default'].bool, /** * 是否支持勾选节点的复选框 */ checkable: _propTypes2['default'].bool, /** * (用于受控)当前勾选复选框节点key的数组或`{checked: Array, halfChecked: Array}`的对象 */ checkedKeys: _propTypes2['default'].oneOfType([_propTypes2['default'].arrayOf(_propTypes2['default'].string), _propTypes2['default'].object]), /** * (用于非受控)默认勾选复选框节点key的数组 */ defaultCheckedKeys: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * 勾选节点复选框是否完全受控(父子节点选中状态不再关联) */ checkStrictly: _propTypes2['default'].bool, /** * 是否启用勾选节点复选框的缓存来提高性能,如果dataSource需要被动态更新,请将其设置为false */ enableCheckedCache: _propTypes2['default'].bool, /** * 勾选或取消勾选复选框时触发的回调函数 * @param {Array} checkedKeys 勾选复选框节点key的数组 * @param {Object} extra 额外参数 * @param {Array} extra.checkedNodes 勾选复选框节点的数组 * @param {Array} extra.checkedNodesPositions 包含有勾选复选框节点和其位置的对象的数组 * @param {Array} extra.halfCheckedKeys 半选复选框节点key的数组 * @param {ReactElement} extra.node 当前操作的节点 * @param {Boolean} extra.checked 当前操作是否是勾选 * @param {String} extra.event 当前操作的类型,值为'check' */ onCheck: _propTypes2['default'].func, /** * (用于受控)当前展开的节点key的数组 */ expandedKeys: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * (用于非受控)默认展开的节点key的数组 */ defaultExpandedKeys: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * 是否默认展开所有节点 */ defaultExpandAll: _propTypes2['default'].bool, /** * 是否自动展开父节点 */ autoExpandParent: _propTypes2['default'].bool, /** * 展开或收起节点时触发的回调函数 * @param {Array} expandedKeys 展开的节点key的数组 * @param {Object} extra 额外参数 * @param {ReactElement} extra.node 当前操作的节点 * @param {Boolean} extra.expanded 当前操作是否是展开 */ onExpand: _propTypes2['default'].func, /** * 是否支持编辑节点内容 */ editable: _propTypes2['default'].bool, /** * 编辑节点内容完成时触发的回调函数 * @param {String} key 编辑节点的key * @param {String} label 编辑节点完成时节点的文本 */ onEditFinish: _propTypes2['default'].func, /** * 是否支持拖拽节点 */ draggable: _propTypes2['default'].bool, /** * 开始拖拽节点时触发的回调函数 * @param {Object} info 拖拽信息 * @param {Object} info.event 事件对象 * @param {ReactElement} info.node 拖拽的节点 */ onDragStart: _propTypes2['default'].func, /** * 拖拽节点进入目标节点时触发的回调函数 * @param {Object} info 拖拽信息 * @param {Object} info.event 事件对象 * @param {ReactElement} info.node 目标节点 * @param {Array} info.expandedKeys 当前展开的节点key的数组 */ onDragEnter: _propTypes2['default'].func, /** * 拖拽节点在目标节点上移动的时候触发的回调函数 * @param {Object} info 拖拽信息 * @param {Object} info.event 事件对象 * @param {ReactElement} info.node 目标节点 */ onDragOver: _propTypes2['default'].func, /** * 拖拽节点离开目标节点时触发的回调函数 * @param {Object} info 拖拽信息 * @param {Object} info.event 事件对象 * @param {ReactElement} info.node 目标节点 */ onDragLeave: _propTypes2['default'].func, /** * 拖拽节点放入目标节点内或前后触发的回调函数 * @param {Object} info 拖拽信息 * @param {Object} info.event 事件对象 * @param {ReactElement} info.node 目标节点 * @param {ReactElement} info.dragNode 拖拽的节点 * @param {Array} info.dragNodesKeys 拖拽的节点和其子节点key的数组 * @param {Number} info.dropPosition 拖拽的节点在拖拽后被放置在当前层级的位置 * @param {Boolean} info.dropToGap 是否被放置在目标节点的前后(没有被放置在目标节点内部) */ onDrop: _propTypes2['default'].func, /** * 节点是否可被作为拖拽的目标节点 * @param {Object} info 拖拽信息 * @param {ReactElement} info.node 目标节点 * @param {ReactElement} info.dragNode 拖拽的节点 * @param {Array} info.dragNodesKeys 拖拽的节点和其子节点key的数组 * @param {Number} info.dropPosition 拖拽的节点在拖拽后被放置在当前层级的位置 * @param {Boolean} info.dropToGap 是否被放置在目标节点的前后(没有被放置在目标节点内部) * @return {Boolean} 是否可以被当作目标节点 */ canDrop: _propTypes2['default'].func, /** * 异步加载数据的函数 * @param {ReactElement} node 被点击展开的节点 */ loadData: _propTypes2['default'].func, /** * 按需筛选高亮节点 * @param {ReactElement} node 待筛选的节点 * @return {Boolean} 是否被筛选中 */ filterTreeNode: _propTypes2['default'].func, /** * 右键点击节点时触发的回调函数 * @param {Object} event 事件对象 * @param {ReactElement} node 点击的节点 */ onRightClick: _propTypes2['default'].func, /** * 设置节点是否占满剩余空间,一般用于统一在各节点右侧添加元素(借助flex实现,暂时只支持ie10+) */ isLabelBlock: _propTypes2['default'].bool, /** * 是否开启展开收起动画 */ animation: _propTypes2['default'].bool, showIcon: _propTypes2['default'].bool, _treeNodesStates: _propTypes2['default'].object, onMouseEnter: _propTypes2['default'].func, onMouseLeave: _propTypes2['default'].func }, _class.defaultProps = { prefix: 'next-', showLine: false, showIcon: false, selectable: true, editable: false, multiple: false, checkable: false, checkStrictly: false, enableCheckedCache: true, draggable: false, autoExpandParent: true, defaultExpandAll: false, defaultExpandedKeys: [], defaultCheckedKeys: [], defaultSelectedKeys: [], onExpand: function onExpand() {}, onCheck: function onCheck() {}, onSelect: function onSelect() {}, onDragStart: function onDragStart() {}, onDragEnter: function onDragEnter() {}, onDragOver: function onDragOver() {}, onDragLeave: function onDragLeave() {}, onDrop: function onDrop() {}, canDrop: function canDrop() { return true; }, onEditFinish: function onEditFinish() {}, isLabelBlock: false, animation: true }, _temp); Tree.displayName = 'Tree'; exports['default'] = Tree; module.exports = exports['default']; /***/ }), /***/ 2693: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextCheckbox = __webpack_require__(1559); var _nextCheckbox2 = _interopRequireDefault(_nextCheckbox); var _nextAnimate = __webpack_require__(1503); var _nextAnimate2 = _interopRequireDefault(_nextAnimate); var _nextUtil = __webpack_require__(889); var _nextDom = __webpack_require__(1124); var _util = __webpack_require__(1918); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var browserUa = typeof window !== 'undefined' ? (0, _util.browser)(window.navigator) : ''; var ieOrEdge = /.*(IE|Edge).+/.test(browserUa); var isRoot = function isRoot(pos) { return (/^0-(\d)+$/.test(pos) ); }; /** * Tree.Node */ var TreeNode = (_temp = _class = function (_Component) { _inherits(TreeNode, _Component); function TreeNode(props, context) { _classCallCheck(this, TreeNode); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); ['onExpand', 'onCheck', 'onContextMenu', 'onMouseEnter', 'onMouseLeave', 'onDragStart', 'onDragEnd', 'onDragEnter', 'onDragOver', 'onDragLeave', 'onDrop', 'onSelect', 'onEditFinish'].forEach(function (m) { _this[m] = _this[m].bind(_this); }); _this.clickTimer = null; _this.state = { dataLoading: false, editMode: false, title: props.title || props.label }; return _this; } TreeNode.prototype.componentDidMount = function componentDidMount() { if (!this.props.root._treeNodeInstances) { this.props.root._treeNodeInstances = []; } this.props.root._treeNodeInstances.push(this); }; TreeNode.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('title' in nextProps) { this.setState({ title: nextProps.title }); } else if ('label' in nextProps) { this.setState({ title: nextProps.label }); } this.expandedChanged = nextProps.expanded !== this.props.expanded; }; TreeNode.prototype.componentDidUpdate = function componentDidUpdate() { if (this.refs.selectInput) { this.refs.selectInput.focus(); } }; TreeNode.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; TreeNode.prototype.onCheck = function onCheck() { this.props.root.onCheck(this); }; TreeNode.prototype.onSelect = function onSelect() { this.props.root.onSelect(this); }; TreeNode.prototype.onEditFinish = function onEditFinish(info) { this.props.root.onEditFinish(info); }; TreeNode.prototype.onMouseEnter = function onMouseEnter(e) { e.preventDefault(); this.props.root.onMouseEnter(e, this); }; TreeNode.prototype.onMouseLeave = function onMouseLeave(e) { e.preventDefault(); this.props.root.onMouseLeave(e, this); }; TreeNode.prototype.onContextMenu = function onContextMenu(e) { e.preventDefault(); this.props.root.onContextMenu(e, this); }; TreeNode.prototype.onDragStart = function onDragStart(e) { e.stopPropagation(); this.props.root.onDragStart(e, this); e.dataTransfer.setData('text/plain', 'firefox-need-it'); }; TreeNode.prototype.onDragEnd = function onDragEnd(e) { e.stopPropagation(); this.props.root.onDragEnd(e, this); }; TreeNode.prototype.onDragEnter = function onDragEnter(e) { e.preventDefault(); e.stopPropagation(); this.props.root.onDragEnter(e, this); }; TreeNode.prototype.onDragOver = function onDragOver(e) { if (this.props.root.canDrop(this)) { e.preventDefault(); e.stopPropagation(); this.props.root.onDragOver(e, this); return false; } }; TreeNode.prototype.onDragLeave = function onDragLeave(e) { e.stopPropagation(); this.props.root.onDragLeave(e, this); }; TreeNode.prototype.onDrop = function onDrop(e) { e.preventDefault(); e.stopPropagation(); this.props.root.onDrop(e, this); }; TreeNode.prototype.onExpand = function onExpand() { var _this2 = this; var callbackPromise = this.props.root.onExpand(this); if (callbackPromise && (typeof callbackPromise === 'undefined' ? 'undefined' : _typeof(callbackPromise)) === 'object') { var setLoading = function setLoading(dataLoading) { _this2.setState({ dataLoading: dataLoading }); }; setLoading(true); callbackPromise.then(function () { setLoading(false); }, function () { setLoading(false); }); } }; TreeNode.prototype.onKeyDown = function onKeyDown(e) { e.preventDefault(); }; TreeNode.prototype.renderRightAngle = function renderRightAngle() { var prefix = this.getPrefix(); var _props = this.props, showLine = _props.showLine, pos = _props.pos; return showLine && !isRoot(pos) ? _react2['default'].createElement('span', { className: prefix + 'tree-right-angle' }) : null; }; TreeNode.prototype.renderSwitcher = function renderSwitcher() { var _classNames; var prefix = this.getPrefix(); var _props2 = this.props, showLine = _props2.showLine, disabled = _props2.disabled, expanded = _props2.expanded; var lineState = showLine ? 'line' : 'noline'; var wrapperProps = { className: (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'tree-switcher', true), _defineProperty(_classNames, prefix + 'tree-switcher-' + lineState, true), _defineProperty(_classNames, prefix + 'tree-switcher-' + lineState + '-close', !showLine && !expanded), _defineProperty(_classNames, 'disabled', disabled), _classNames)), onClick: disabled ? null : this.onExpand, key: 'switcher' }; var iconProps = { className: prefix + 'tree-switcher-icon', type: showLine ? expanded ? 'minus' : 'add' : 'arrow-down' }; return _react2['default'].createElement( 'span', wrapperProps, this.renderRightAngle(), _react2['default'].createElement(_nextIcon2['default'], iconProps) ); }; TreeNode.prototype.renderNoopSwitcher = function renderNoopSwitcher() { var _classNames2; var prefix = this.getPrefix(); var _props3 = this.props, showLine = _props3.showLine, pos = _props3.pos; var lineState = showLine ? 'line' : 'noline'; var switcherCls = (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefix + 'tree-switcher', true), _defineProperty(_classNames2, prefix + 'tree-switcher-noop-' + lineState, true), _defineProperty(_classNames2, prefix + 'tree-switcher-noop-line-noroot', showLine && !isRoot(pos)), _classNames2)); return _react2['default'].createElement( 'span', { className: switcherCls, key: 'noopSwitcher' }, this.renderRightAngle() ); }; TreeNode.prototype.renderCheckbox = function renderCheckbox() { var _props4 = this.props, checked = _props4.checked, halfChecked = _props4.halfChecked, disabled = _props4.disabled, disableCheckbox = _props4.disableCheckbox; return _react2['default'].createElement(_nextCheckbox2['default'], { key: 'checkbox', checked: checked, indeterminate: halfChecked, disabled: disableCheckbox || disabled, onChange: this.onCheck }); }; TreeNode.prototype.renderSelectHandle = function renderSelectHandle() { var _classNames3, _classNames4, _this3 = this; var prefix = this.getPrefix(); var _props5 = this.props, expanded = _props5.expanded, loadData = _props5.loadData, showIcon = _props5.showIcon, editable = _props5.editable, disabled = _props5.disabled, selected = _props5.selected, draggable = _props5.draggable, selectable = _props5.selectable, onRightClick = _props5.onRightClick, onMouseEnter = _props5.onMouseEnter, onMouseLeave = _props5.onMouseLeave; var _state = this.state, dataLoading = _state.dataLoading, editMode = _state.editMode, title = _state.title; var expandedState = expanded ? 'open' : 'close'; var iconEleCls = (0, _classnames2['default'])((_classNames3 = {}, _defineProperty(_classNames3, prefix + 'tree-icon', true), _defineProperty(_classNames3, prefix + 'tree-icon-loading', dataLoading), _defineProperty(_classNames3, prefix + 'tree-icon-' + expandedState, true), _classNames3)); var domProps = {}; var inputProps = {}; domProps.className = (0, _classnames2['default'])((_classNames4 = {}, _defineProperty(_classNames4, prefix + 'tree-node-handle', true), _defineProperty(_classNames4, prefix + 'tree-node-handle-selected', !disabled && selected), _defineProperty(_classNames4, prefix + 'tree-node-handle-disabled', disabled), _classNames4)); inputProps.className = prefix + 'tree-node-input'; if (!disabled) { if (editable) { domProps.onDoubleClick = function (e) { e.preventDefault(); _this3.setState({ title: e.currentTarget.textContent, editMode: true }); }; } if (selectable) { domProps.onClick = function (e) { e.preventDefault(); _this3.onSelect(); }; } if (onRightClick) { domProps.onContextMenu = this.onContextMenu; } if (onMouseEnter) { domProps.onMouseEnter = this.onMouseEnter; } if (onMouseLeave) { domProps.onMouseLeave = this.onMouseLeave; } if (draggable) { if (ieOrEdge) { domProps.href = '#'; } domProps.draggable = true; domProps['aria-grabbed'] = true; domProps.onDragStart = this.onDragStart; domProps.onDragEnd = this.onDragEnd; } inputProps.defaultValue = title; inputProps.onBlur = function (e) { _this3.setState({ editMode: false, title: e.currentTarget.value || title }); _this3.onEditFinish({ key: _this3.props.eventKey, title: e.currentTarget.value || title, label: e.currentTarget.value || title }); }; } var icon = showIcon || loadData && dataLoading ? _react2['default'].createElement('span', { className: iconEleCls }) : null; return editMode ? _react2['default'].createElement('input', _extends({ ref: 'selectInput', key: 'selectInput' }, inputProps)) : draggable ? _react2['default'].createElement( 'a', _extends({ ref: 'selectHandle', key: 'selectHandle' }, domProps, { title: typeof title === 'string' ? title : '' }), _react2['default'].createElement( 'span', { className: prefix + 'tree-node-handle-inner' }, icon, title ) ) : _react2['default'].createElement( 'a', _extends({ ref: 'selectHandle', key: 'selectHandle' }, domProps, { title: typeof title === 'string' ? title : '' }), icon, title ); }; TreeNode.prototype.isTreeNode = function isTreeNode(child) { return child && typeof child.type === 'function' && !!child.type.isTreeNode; }; TreeNode.prototype.renderChildren = function renderChildren() { var _this4 = this; var prefix = this.getPrefix(); var _props6 = this.props, expanded = _props6.expanded, children = _props6.children, showLine = _props6.showLine, last = _props6.last, root = _props6.root, pos = _props6.pos; var animation = this.props.root.props.animation; this.renderFirst = 1; var newChildren = children; var allTreeNode = void 0; if (Array.isArray(children)) { allTreeNode = children.every(function (item) { return _this4.isTreeNode(item); }); } if (!children || this.isTreeNode(children) || allTreeNode) { var _classNames5; var cls = (0, _classnames2['default'])((_classNames5 = {}, _defineProperty(_classNames5, prefix + 'tree-child-tree', true), _defineProperty(_classNames5, prefix + 'tree-line', showLine && !last), _defineProperty(_classNames5, 'temp-hide', animation && this.expandedChanged && expanded), _classNames5)); newChildren = expanded && children ? _react2['default'].createElement( 'ul', { className: cls }, _react.Children.map(children, function (item, index) { return root.renderTreeNode(item, index, pos); }, root) ) : null; if (animation) { var animationHooks = { enter: function enter(node, done) { _nextDom.classList.addClass(node, 'out-screen'); _nextDom.classList.removeClass(node, 'temp-hide'); var height = node.offsetHeight + 'px'; _nextDom.classList.addClass(node, 'child-tree-enter'); _nextDom.classList.removeClass(node, 'out-screen'); setTimeout(function () { _nextDom.classList.addClass(node, 'child-tree-enter-active'); _nextDom.style.set(node, 'height', height); }, 10); var called = false; // eslint-disable-next-line var timer = void 0; var onExpandInDownTransitionEnd = function onExpandInDownTransitionEnd(e) { if (e.target === node) { if (timer) { clearTimeout(timer); } if (called) { return; } called = true; ['child-tree-enter', 'child-tree-enter-active', 'child-tree-leave', 'child-tree-leave-active'].forEach(function (className) { _nextDom.classList.removeClass(node, className); }); _nextDom.style.set(node, 'height', null); _nextDom.events.off(node, _nextUtil.support.transition.end, onExpandInDownTransitionEnd); done(); } }; _nextDom.events.on(node, _nextUtil.support.transition.end, onExpandInDownTransitionEnd); timer = setTimeout(onExpandInDownTransitionEnd.bind(null, { target: node }), 260); }, leave: function leave(node, done) { var height = node.offsetHeight + 'px'; _nextDom.style.set(node, 'height', height); _nextDom.classList.addClass(node, 'child-tree-leave'); setTimeout(function () { _nextDom.classList.addClass(node, 'child-tree-leave-active'); _nextDom.style.set(node, 'height', 0); }, 10); var called = false; // eslint-disable-next-line var timer = void 0; var onExpandOutUpTransitionEnd = function onExpandOutUpTransitionEnd(e) { if (e.target === node) { if (timer) { clearTimeout(timer); } if (called) { return; } called = true; ['child-tree-enter', 'child-tree-enter-active', 'child-tree-leave', 'child-tree-leave-active'].forEach(function (className) { _nextDom.classList.removeClass(node, className); }); _nextDom.style.set(node, 'height', null); _nextDom.events.off(node, _nextUtil.support.transition.end, onExpandOutUpTransitionEnd); done(); } }; _nextDom.events.on(node, _nextUtil.support.transition.end, onExpandOutUpTransitionEnd); timer = setTimeout(onExpandOutUpTransitionEnd.bind(null, { target: node }), 310); } }; newChildren = _react2['default'].createElement( _nextAnimate2['default'], { useTransition: true, animation: animationHooks, animationAppear: false }, newChildren ); } } return newChildren; }; TreeNode.prototype.render = function render() { var _classNames6; var prefix = this.getPrefix(); var _props7 = this.props, className = _props7.className, loadData = _props7.loadData, isLeaf = _props7.isLeaf, title = _props7.title, children = _props7.children, disabled = _props7.disabled, filterTreeNode = _props7.filterTreeNode, dragOver = _props7.dragOver, dragOverGapTop = _props7.dragOverGapTop, dragOverGapBottom = _props7.dragOverGapBottom, checkable = _props7.checkable, root = _props7.root, others = _objectWithoutProperties(_props7, ['className', 'loadData', 'isLeaf', 'title', 'children', 'disabled', 'filterTreeNode', 'dragOver', 'dragOverGapTop', 'dragOverGapBottom', 'checkable', 'root']); var _root$props = root.props, draggable = _root$props.draggable, isLabelBlock = _root$props.isLabelBlock; title && _nextUtil.log.deprecated('title', 'label', 'Tree.Node'); var canRenderSwitcher = children && _react.Children.count(children) || loadData && !isLeaf; var newChildren = this.renderChildren(); var liProps = {}; if (draggable) { liProps.onDragEnter = this.onDragEnter; liProps.onDragOver = this.onDragOver; liProps.onDragLeave = this.onDragLeave; liProps.onDrop = this.onDrop; } var liCls = (0, _classnames2['default'])((_classNames6 = {}, _defineProperty(_classNames6, prefix + 'tree-node', true), _defineProperty(_classNames6, prefix + 'tree-node-disabled', disabled), _defineProperty(_classNames6, className, className), _defineProperty(_classNames6, 'drag-over', dragOver), _defineProperty(_classNames6, 'drag-over-gap-top', dragOverGapTop), _defineProperty(_classNames6, 'drag-over-gap-bottom', dragOverGapBottom), _defineProperty(_classNames6, 'filter-node', filterTreeNode(this)), _classNames6)); var topHalf = [canRenderSwitcher ? this.renderSwitcher() : this.renderNoopSwitcher(), checkable ? this.renderCheckbox() : null, this.renderSelectHandle()]; if (isLabelBlock || draggable) { var _classNames7; var _className = (0, _classnames2['default'])((_classNames7 = {}, _defineProperty(_classNames7, prefix + 'tree-node-top-half', isLabelBlock), _defineProperty(_classNames7, prefix + 'tree-node-draggable-inner', draggable), _classNames7)); topHalf = _react2['default'].createElement( 'div', { className: _className }, topHalf ); } return _react2['default'].createElement( 'li', _extends({}, (0, _nextUtil.pickAttrs)(others), liProps, { ref: 'li', className: liCls }), topHalf, newChildren ); }; return TreeNode; }(_react.Component), _class.isTreeNode = 1, _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 树节点 */ children: _propTypes2['default'].node, // TODO: deprecated in 1.0 release title: _propTypes2['default'].node, /** * 节点文本内容 */ label: _propTypes2['default'].node, /** * 单独设置是否支持选中,覆盖Tree的selectable */ selectable: _propTypes2['default'].bool, /** * 单独设置是否支持编辑,覆盖Tree的editable */ editable: _propTypes2['default'].bool, /** * 单独设置是否支持拖拽,覆盖Tree的draggable */ draggable: _propTypes2['default'].bool, /** * 是否禁止节点响应 */ disabled: _propTypes2['default'].bool, /** * 是否禁止勾选节点复选框 */ disableCheckbox: _propTypes2['default'].bool, /** * 是否是叶子节点,设置loadData时生效 */ isLeaf: _propTypes2['default'].bool, expanded: _propTypes2['default'].bool, root: _propTypes2['default'].object }, _class.defaultProps = { label: '---', disabled: false, disableCheckbox: false, isLeaf: false }, _temp); TreeNode.displayName = 'TreeNode'; exports['default'] = TreeNode; module.exports = exports['default']; /***/ }), /***/ 2694: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextSelect = __webpack_require__(1567); var _nextSelect2 = _interopRequireDefault(_nextSelect); var _nextInput = __webpack_require__(1448); var _nextInput2 = _interopRequireDefault(_nextInput); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextTree = __webpack_require__(2292); var _nextTree2 = _interopRequireDefault(_nextTree); var _util = __webpack_require__(1918); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; /** * TreeSelect */ var TreeSelect = (_temp = _class = function (_Component) { _inherits(TreeSelect, _Component); function TreeSelect(props, context) { _classCallCheck(this, TreeSelect); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); var defaultVisible = props.defaultVisible, defaultValue = props.defaultValue, value = props.value; _this.state = { visible: defaultVisible, value: _this.normalizeValue(typeof value === 'undefined' ? defaultValue : value), searchedValue: '', expandedKeys: [], autoExpandParent: false }; ['handleSelect', 'handleCheck', 'handleSearch', 'handleVisibleChange', 'handleRemove', 'handleExpand'].forEach(function (methodName) { _this[methodName] = _this[methodName].bind(_this); }); _this.updateCache(props); _this.checked = false; return _this; } TreeSelect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { this.updateCache(nextProps); if ('value' in nextProps) { this.setState({ value: this.normalizeValue(nextProps.value) }); } }; TreeSelect.prototype.normalizeValue = function normalizeValue(value) { if (value !== undefined && value !== null) { if (Array.isArray(value)) { return value; } return [value]; } return []; }; TreeSelect.prototype.updateCache = function updateCache(props) { var _this2 = this; this._k2n = {}; this._v2k = {}; this._p2v = {}; var update = function update(key, value, pos, label) { _this2._k2n[key] = { value: value, pos: pos, label: label }; _this2._v2k[value] = key; _this2._p2v[pos] = value; }; if ('dataSource' in props) { var loop = function loop(data) { var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0'; return data.forEach(function (item, index) { var key = item.key, value = item.value, label = item.label, children = item.children; var pos = prefix + '-' + index; update(typeof key !== 'undefined' ? key : pos, value, pos, label); if (children && children.length) { loop(children, pos); } }); }; loop(props.dataSource); } else if ('children' in props) { var _loop = function _loop(children) { var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0'; return _react2['default'].Children.forEach(children, function (node, index) { var key = node.key; var _node$props = node.props, value = _node$props.value, label = _node$props.label, children = _node$props.children; var pos = prefix + '-' + index; update(key, value, pos, label); if (children && _react2['default'].Children.count(children)) { _loop(children, pos); } }); }; _loop(props.children); } }; TreeSelect.prototype.getPrefix = function getPrefix() { return this.context.prefix || this.props.prefix; }; TreeSelect.prototype.getKeys = function getKeys(value) { var _this3 = this; return value.reduce(function (ret, v) { if (v in _this3._v2k) { ret.push(_this3._v2k[v]); } return ret; }, []); }; TreeSelect.prototype.getValueFromSelectedKeys = function getValueFromSelectedKeys(keys) { var _this4 = this; return keys.map(function (k) { return _this4._k2n[k].value; }); }; TreeSelect.prototype.getValueFromCheckedKeys = function getValueFromCheckedKeys(keys) { var _this5 = this; if (!this.props.treeCheckStrictly) { var posArr = keys.map(function (k) { return _this5._k2n[k].pos; }); posArr = (0, _util.filterParentPosition)(posArr); return posArr.map(function (p) { return _this5._p2v[p]; }); } return keys.map(function (k) { return _this5._k2n[k].value; }); }; TreeSelect.prototype.getSelectValue = function getSelectValue(value) { var _this6 = this; var filterValue = value.filter(function (v) { return typeof _this6._v2k[v] !== 'undefined'; }); var flatValue = this.flatValue(filterValue); var newValue = [].concat(_toConsumableArray(flatValue)); for (var i = 0; i < flatValue.length; i++) { if (newValue.indexOf(flatValue[i]) === -1) { continue; } var pos = this.getPos(flatValue[i]); var nums = pos.split('-'); if (nums.length === 2) { continue; } for (var j = nums.length - 2; j > 0; j--) { var parent = this.getDataByPosition(nums.slice(1, j + 1)); var parentChecked = parent.children.every(function (child) { return newValue.indexOf(child.value) > -1; }); if (parentChecked) { parent.children.forEach(function (child) { newValue.splice(newValue.indexOf(child.value), 1); }); newValue.push(parent.value); } else { break; } } } return newValue; }; TreeSelect.prototype.getDataByPosition = function getDataByPosition(posNums) { if ('dataSource' in this.props) { return posNums.reduce(function (ret, num) { return ret.children[num]; }, { children: this.props.dataSource }); } if ('children' in this.props) { var node = posNums.reduce(function (ret, num) { return _react2['default'].Children.toArray(ret.props.children)[num]; }, this); return { value: node.props.value, children: _react2['default'].Children.map(node.props.children, function (node) { return { value: node.props.value }; }) }; } }; TreeSelect.prototype.flatValue = function flatValue(value) { var _this7 = this; var getDepth = function getDepth(v) { return _this7.getPos(v).split('-').length; }; var newValue = value.slice(0).sort(function (prev, next) { return getDepth(next) - getDepth(prev); }); for (var i = 0; i < newValue.length; i++) { for (var j = i + 1; j < newValue.length; j++) { if (this.isDescendantOrSelf(this.getPos(newValue[j]), this.getPos(newValue[i]))) { newValue.splice(i, 1); i--; break; } } } return newValue; }; TreeSelect.prototype.getPos = function getPos(value) { return this._k2n[this._v2k[value]].pos; }; TreeSelect.prototype.isDescendantOrSelf = function isDescendantOrSelf(currentPos, targetPos) { if (!currentPos || !targetPos) { return false; } var currentNums = currentPos.split('-'); var targetNums = targetPos.split('-'); return currentNums.length <= targetNums.length && currentNums.every(function (num, index) { return num === targetNums[index]; }); }; TreeSelect.prototype.getData = function getData(value, isSelect) { var _this8 = this; var _props = this.props, treeCheckable = _props.treeCheckable, treeCheckStrictly = _props.treeCheckStrictly; if (isSelect && !this.checked && treeCheckable && !treeCheckStrictly) { value = this.getSelectValue(value); } return value.reduce(function (ret, v) { if (v in _this8._v2k) { var k = _this8._v2k[v]; var _k2n$k = _this8._k2n[k], label = _k2n$k.label, pos = _k2n$k.pos; var d = { value: v, label: label, pos: pos }; if (!isSelect) { d.key = k; } ret.push(d); } return ret; }, []); }; TreeSelect.prototype.handleVisibleChange = function handleVisibleChange(visible) { this.setState({ visible: visible }); }; TreeSelect.prototype.handleSelect = function handleSelect(selectedKeys, extra) { var _props2 = this.props, multiple = _props2.multiple, onChange = _props2.onChange; var selected = extra.selected; if (multiple || selected) { var st = {}; var value = this.getValueFromSelectedKeys(selectedKeys); if (!('value' in this.props)) { st.value = value; } if (!multiple) { st.visible = false; } if (Object.keys(st).length) { this.setState(st); } var data = this.getData(value); multiple ? onChange(value, data) : onChange(value[0], data[0]); } else { this.setState({ visible: false }); } }; TreeSelect.prototype.handleCheck = function handleCheck(checkedKeys) { var onChange = this.props.onChange; var value = this.getValueFromCheckedKeys(checkedKeys); if (!('value' in this.props)) { this.setState({ value: value }); } onChange(value, this.getData(value)); this.checked = true; }; TreeSelect.prototype.handleRemove = function handleRemove(value) { var _props3 = this.props, multiple = _props3.multiple, treeCheckable = _props3.treeCheckable, onChange = _props3.onChange; value = this.normalizeValue(value); if (!('value' in this.props)) { this.setState({ value: value }); } var data = this.getData(value); if (!multiple && !treeCheckable) { value = value.length ? value[0] : null; data = data.length ? data[0] : null; } onChange(value, data); }; TreeSelect.prototype.handleSearch = function handleSearch(searchedValue) { var _this9 = this; var searchedKeys = []; var retainedKeys = []; Object.keys(this._k2n).forEach(function (k) { var _k2n$k2 = _this9._k2n[k], label = _k2n$k2.label, pos = _k2n$k2.pos; if (_this9.isSearched(label, searchedValue)) { searchedKeys.push(k); var posArr = pos.split('-'); posArr.forEach(function (n, i) { if (i > 0) { var p = posArr.slice(0, i + 1).join('-'); var kk = _this9._v2k[_this9._p2v[p]]; if (retainedKeys.indexOf(kk) === -1) { retainedKeys.push(kk); } } }); } }); this.setState({ searchedValue: searchedValue, expandedKeys: searchedKeys, autoExpandParent: true }); this.searchedKeys = searchedKeys; this.retainedKeys = retainedKeys; this.props.onSearch(searchedValue); }; TreeSelect.prototype.handleExpand = function handleExpand(expandedKeys) { this.setState({ expandedKeys: expandedKeys, autoExpandParent: false }); }; TreeSelect.prototype.isSearched = function isSearched(label, searchedValue) { var labelString = ''; var loop = function loop(arg) { if (_react2['default'].isValidElement(arg) && arg.props.children) { _react2['default'].Children.forEach(arg.props.children, loop); } else if (typeof arg === 'string') { labelString += arg; } }; loop(label); if (labelString.length >= searchedValue.length && labelString.indexOf(searchedValue) > -1) { return true; } return false; }; TreeSelect.prototype.searchNodes = function searchNodes(children) { var _this10 = this; var loop = function loop(children) { var retainedNodes = []; _react2['default'].Children.forEach(children, function (child) { if (_this10.searchedKeys.indexOf(child.key) > -1) { retainedNodes.push(child); } else if (_this10.retainedKeys.indexOf(child.key) > -1) { var retainedNode = child.props.children ? _react2['default'].cloneElement(child, {}, loop(child.props.children)) : child; retainedNodes.push(retainedNode); } else { var hideNode = _react2['default'].cloneElement(child, { style: { display: 'none' } }); retainedNodes.push(hideNode); } }); return retainedNodes; }; return loop(children); }; TreeSelect.prototype.createNodesByData = function createNodesByData(data, isSearched) { var _this11 = this; var loop = function loop(data, isParentMatched) { var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0'; var retainedNodes = []; data.forEach(function (item, index) { var label = item.label, value = item.value, disabled = item.disabled, selectable = item.selectable, disableCheckbox = item.disableCheckbox, isLeaf = item.isLeaf, children = item.children; var props = { label: label, value: value, disabled: disabled, disableCheckbox: disableCheckbox, isLeaf: isLeaf, selectable: typeof selectable === 'undefined' ? true : !!selectable }; var pos = prefix + '-' + index; var addNode = function addNode(isParentMatched, hide) { if (hide) { props.style = { display: 'none' }; } retainedNodes.push(_react2['default'].createElement( _nextTree.Node, _extends({}, props, { key: _this11._v2k[_this11._p2v[pos]] }), children && children.length ? loop(children, isParentMatched, pos) : null )); }; var key = _this11._v2k[_this11._p2v[pos]]; if (isSearched) { if (_this11.searchedKeys.indexOf(key) > -1 || isParentMatched) { addNode(true); } else if (_this11.retainedKeys.indexOf(key) > -1) { addNode(false); } else { addNode(false, true); } } else { addNode(); } }); return retainedNodes; }; return loop(data, false); }; TreeSelect.prototype.renderOverlay = function renderOverlay() { var _this12 = this; var prefix = this.getPrefix(); var treeSelectPrefix = prefix + 'tree-select-'; if (!this.state.visible) { return _react2['default'].createElement('div', { className: treeSelectPrefix + 'dropdown', ref: 'menu' }); } var _props4 = this.props, multiple = _props4.multiple, treeCheckable = _props4.treeCheckable, treeCheckStrictly = _props4.treeCheckStrictly, treeEnableCheckedCache = _props4.treeEnableCheckedCache, treeDefaultExpandAll = _props4.treeDefaultExpandAll, treeDefaultExpandedKeys = _props4.treeDefaultExpandedKeys, treeLoadData = _props4.treeLoadData, showSearch = _props4.showSearch, dataSource = _props4.dataSource, children = _props4.children; var _state = this.state, value = _state.value, searchedValue = _state.searchedValue, expandedKeys = _state.expandedKeys, autoExpandParent = _state.autoExpandParent; var treeProps = { multiple: multiple, loadData: treeLoadData, defaultExpandAll: treeDefaultExpandAll, defaultExpandedKeys: treeDefaultExpandedKeys }; var keys = this.getKeys(value); if (treeCheckable) { treeProps.checkable = treeCheckable; treeProps.checkStrictly = treeCheckStrictly; treeProps.onCheck = this.handleCheck; treeProps.checkedKeys = keys; treeProps.enableCheckedCache = treeEnableCheckedCache; } else { treeProps.onSelect = this.handleSelect; treeProps.selectedKeys = keys; } var newChildren = void 0; if (showSearch && searchedValue) { treeProps.expandedKeys = expandedKeys; treeProps.autoExpandParent = autoExpandParent; treeProps.onExpand = this.handleExpand; treeProps.filterTreeNode = function (node) { return _this12.searchedKeys.indexOf(node.props.eventKey) > -1; }; newChildren = dataSource ? this.createNodesByData(dataSource, true) : this.searchNodes(children); } else { newChildren = dataSource ? this.createNodesByData(dataSource) : children; } return _react2['default'].createElement( 'div', { className: treeSelectPrefix + 'dropdown', ref: 'menu' }, showSearch ? _react2['default'].createElement( 'div', { className: prefix + 'select-search' }, _react2['default'].createElement(_nextInput2['default'], { defaultValue: this.state.searchedValue, onChange: this.handleSearch }), _react2['default'].createElement(_nextIcon2['default'], { type: 'search', size: 'small' }) ) : null, _react2['default'].createElement( _nextTree2['default'], treeProps, newChildren ) ); }; TreeSelect.prototype.render = function render() { var prefix = this.getPrefix(); /* eslint-disable no-unused-vars */ var _props5 = this.props, propsPrefix = _props5.prefix, size = _props5.size, shape = _props5.shape, placeholder = _props5.placeholder, defaultValue = _props5.defaultValue, propsValue = _props5.value, dataSource = _props5.dataSource, onChange = _props5.onChange, defaultVisible = _props5.defaultVisible, disabled = _props5.disabled, hasArrow = _props5.hasArrow, hasClear = _props5.hasClear, autoWidth = _props5.autoWidth, popupClassName = _props5.popupClassName, showSearch = _props5.showSearch, onSearch = _props5.onSearch, multiple = _props5.multiple, treeCheckable = _props5.treeCheckable, treeCheckStrictly = _props5.treeCheckStrictly, treeDefaultExpandAll = _props5.treeDefaultExpandAll, treeLoadData = _props5.treeLoadData, className = _props5.className, children = _props5.children, container = _props5.container, others = _objectWithoutProperties(_props5, ['prefix', 'size', 'shape', 'placeholder', 'defaultValue', 'value', 'dataSource', 'onChange', 'defaultVisible', 'disabled', 'hasArrow', 'hasClear', 'autoWidth', 'popupClassName', 'showSearch', 'onSearch', 'multiple', 'treeCheckable', 'treeCheckStrictly', 'treeDefaultExpandAll', 'treeLoadData', 'className', 'children', 'container']); /* eslint-enable */ var _state2 = this.state, value = _state2.value, visible = _state2.visible; return _react2['default'].createElement(_nextSelect2['default'], _extends({ prefix: prefix, className: className, size: size, shape: shape, placeholder: placeholder, disabled: disabled, hasArrow: hasArrow, hasClear: hasClear, autoWidth: autoWidth, popupClassName: popupClassName, multiple: treeCheckable || multiple, value: this.getData(value, true), onChange: this.handleRemove, visible: visible, onVisibleChange: this.handleVisibleChange, overlay: this.renderOverlay(), container: container }, others)); }; return TreeSelect; }(_react.Component), _class.contextTypes = { prefix: _propTypes2['default'].string }, _class.propTypes = { /** * 样式类名的品牌前缀 */ prefix: _propTypes2['default'].string, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 树节点 */ children: _propTypes2['default'].node, /** * 选择框大小 */ size: _propTypes2['default'].oneOf(['small', 'medium', 'large']), /** * 选择框形状 */ shape: _propTypes2['default'].oneOf(['normal', 'arrow-only']), /** * 选择框占位符 */ placeholder: _propTypes2['default'].string, /** * 是否禁用 */ disabled: _propTypes2['default'].bool, /** * 是否显示右侧的箭头 */ hasArrow: _propTypes2['default'].bool, /** * 是否显示清空按钮,该按钮可以清空当前选中的值,该属性仅在单选模式下有效 */ hasClear: _propTypes2['default'].bool, /** * 下拉框是否与选择器对齐 */ autoWidth: _propTypes2['default'].bool, /** * 数据源,该属性优先级高于 children */ dataSource: _propTypes2['default'].arrayOf(_propTypes2['default'].object), /** * (受控)当前值 */ value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number, _propTypes2['default'].array]), /** * (非受控)默认值 */ defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number, _propTypes2['default'].array]), /** * 选中值改变时触发的回调函数 * @param {String|Array} value 选中的值,单选时返回单个值,多选时返回数组 * @param {Object|Array} data 选中的数据,包括 value, label, pos, key属性,单选时返回单个值,多选时返回数组,父子节点选中关联时,同时选中,只返回父节点 */ onChange: _propTypes2['default'].func, /** * 初始下拉框是否显示 */ defaultVisible: _propTypes2['default'].bool, /** * 是否显示搜索框 */ showSearch: _propTypes2['default'].bool, /** * 在搜索框中输入时触发的回调函数 * @param {String} keyword 输入的关键字 */ onSearch: _propTypes2['default'].func, /** * 是否支持多选 */ multiple: _propTypes2['default'].bool, /** * 下拉框中的树是否支持勾选节点的复选框 */ treeCheckable: _propTypes2['default'].bool, /** * 下拉框中的树勾选节点复选框是否完全受控(父子节点选中状态不再关联) */ treeCheckStrictly: _propTypes2['default'].bool, /** * 是否启用勾选节点复选框的缓存来提高性能,如果 dataSource 需要被动态更新,请将其设置为 false */ treeEnableCheckedCache: _propTypes2['default'].bool, /** * 下拉框中的树是否默认展开所有节点 */ treeDefaultExpandAll: _propTypes2['default'].bool, /** * 下拉框中的树默认展开节点key的数组 */ treeDefaultExpandedKeys: _propTypes2['default'].arrayOf(_propTypes2['default'].string), /** * 下拉框中的树异步加载数据的函数,使用请参考[Tree的异步加载数据Demo](http://fusion-demo.alibaba-inc.com/components?type=next&themeId=next&name=tree#tree-4) * @param {ReactElement} node 被点击展开的节点 */ treeLoadData: _propTypes2['default'].func, /** * 下拉框样式自定义类名 */ popupClassName: _propTypes2['default'].string, /** * 下拉框挂载的容器节点 */ container: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]) }, _class.defaultProps = { prefix: 'next-', size: 'medium', shape: 'normal', disabled: false, hasArrow: true, hasClear: false, autoWidth: false, defaultValue: null, defaultVisible: false, onChange: noop, showSearch: false, onSearch: noop, multiple: false, treeCheckable: false, treeCheckStrictly: false, treeEnableCheckedCache: true, treeDefaultExpandAll: false, treeDefaultExpandedKeys: [] }, _temp); TreeSelect.displayName = 'TreeSelect'; exports['default'] = TreeSelect; TreeSelect.Node = _nextTree.Node; module.exports = exports['default']; /***/ }), /***/ 2695: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _fileUpload = __webpack_require__(1919); var _fileUpload2 = _interopRequireDefault(_fileUpload); var _uploadList = __webpack_require__(2296); var _uploadList2 = _interopRequireDefault(_uploadList); var _imageUpload = __webpack_require__(2706); var _imageUpload2 = _interopRequireDefault(_imageUpload); var _dragUpload = __webpack_require__(2707); var _dragUpload2 = _interopRequireDefault(_dragUpload); var _cropUpload = __webpack_require__(2708); var _cropUpload2 = _interopRequireDefault(_cropUpload); var _upload = __webpack_require__(2293); var _upload2 = _interopRequireDefault(_upload); var _locale = __webpack_require__(2711); var _locale2 = _interopRequireDefault(_locale); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _fileUpload2['default'].List = _uploadList2['default']; _fileUpload2['default'].ImageUpload = _imageUpload2['default']; _fileUpload2['default'].DragUpload = _dragUpload2['default']; _fileUpload2['default'].CropUpload = _cropUpload2['default']; _fileUpload2['default'].Core = _upload2['default']; // 多语言设置 _fileUpload2['default'].LOCALE = _locale2['default']; _fileUpload2['default'].ImageUpload.LOCALE = _locale2['default']; _fileUpload2['default'].DragUpload.LOCALE = _locale2['default']; _fileUpload2['default'].CropUpload.LOCALE = _locale2['default']; exports['default'] = _fileUpload2['default']; module.exports = exports['default']; /***/ }), /***/ 2696: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IframeUploader = exports.Html5Uploader = undefined; var _html5Uploader = __webpack_require__(2697); var _html5Uploader2 = _interopRequireDefault(_html5Uploader); var _iframeUploader = __webpack_require__(2701); var _iframeUploader2 = _interopRequireDefault(_iframeUploader); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports.Html5Uploader = _html5Uploader2['default']; exports.IframeUploader = _iframeUploader2['default']; /***/ }), /***/ 2697: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextUtil = __webpack_require__(889); var _request = __webpack_require__(2294); var _request2 = _interopRequireDefault(_request); var _util = __webpack_require__(1668); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var empty = function empty() {}; /** * Upload.Core * @description 为了开放基础上传能力,独立向外提供了 Core 模块。使用该模块可以实现基本的上传功能,跟业务 UI 分离,满足业务自定义 UI 的需求 */ var Html5Uploader = (_temp = _class = function (_Component) { _inherits(Html5Uploader, _Component); function Html5Uploader(props) { _classCallCheck(this, Html5Uploader); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _this.reqs = {}; _this.state = { uid: (0, _util.uid)() }; /* eslint-disable */ ['onClick', 'onKeyDown', 'onFileDrop', 'onChange'].map(function (fn) { _this[fn] = _this[fn].bind(_this); }); /* eslint-enable */ return _this; } Html5Uploader.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if (nextProps.dataTransfer && nextProps.dataTransfer !== this.props.dataTransfer) { this.uploadFiles(nextProps.dataTransfer); } }; Html5Uploader.prototype.componentWillUnmount = function componentWillUnmount() { this.abort(); }; /** * 上传文件变化 * @param {SyntheticEvent} e * @return {void} */ Html5Uploader.prototype.onChange = function onChange(e) { var files = e.target.files; this.uploadFiles(files); this.reset(); }; Html5Uploader.prototype.reset = function reset() { this.setState({ uid: (0, _util.uid)() }); }; Html5Uploader.prototype.abort = function abort(file) { var reqs = this.reqs; if (file) { var _uid = file; if (file && file.uid) { _uid = file.uid; } if (reqs[_uid]) { reqs[_uid].abort(); delete reqs[_uid]; } } else { Object.keys(reqs).forEach(function (uid) { if (reqs[uid]) { reqs[uid].abort(); } delete reqs[uid]; }); } }; /** * 点击上传按钮 * @return {void} */ Html5Uploader.prototype.onClick = function onClick() { var el = this.refs.file; if (!el) { return; } el.click(); el.value = ''; }; /** * 键盘事件 * @param {SyntheticEvent} e * @return {void} */ Html5Uploader.prototype.onKeyDown = function onKeyDown(e) { if (e.key === 'Enter') { this.onClick(); } }; /** * 拖拽 * @param {SyntheticEvent} e * @return {void} */ Html5Uploader.prototype.onFileDrop = function onFileDrop(e) { if (e.type === 'dragover') { return e.preventDefault(); } var files = e.dataTransfer.files; this.uploadFiles(files); e.preventDefault(); }; /** * 上传文件列表 * @param {File} files - 文件列表 * @return {void} */ Html5Uploader.prototype.uploadFiles = function uploadFiles(files) { var _this2 = this; // TODO: fileList 只是给最大上传个数做控制的, 1.X版本看看是否有其他控制方式 var _props = this.props, limit = _props.limit, fileList = _props.fileList; var len = files.length; var filesArr = Array.prototype.slice.call(files); var filesTemp = []; // 控制最大上传个数 if (limit && limit > len + fileList.length) { filesTemp = filesArr.slice(0, len); } else if (limit && limit > fileList.length) { filesTemp = filesArr.slice(0, limit - fileList.length); } else if (limit) { filesTemp = []; } else { // 不限制上传个数情况 filesTemp = filesArr; } if (len > 0) { filesTemp.forEach(function (file) { file.uid = file.uid || (0, _util.uid)(); _this2.upload(file); }); } }; /** * 上传文件 * @param {File} file - 文件 * @return {void} */ Html5Uploader.prototype.upload = function upload(file) { var _this3 = this; var _props2 = this.props, beforeUpload = _props2.beforeUpload, onError = _props2.onError, maxSize = _props2.maxSize, locale = _props2.locale, checkMaxSizeBeforeUpload = _props2.checkMaxSizeBeforeUpload; if (checkMaxSizeBeforeUpload && maxSize && file.size && file.size > maxSize) { return onError(new Error(locale.error.maxSize), null, file); } if (!beforeUpload) { return this.post(file); } var before = beforeUpload(file); if (before && before.then) { before.then(function (result) { if (result !== false) { _this3.post(file); } })['catch'](function () {}); } else if (before !== false) { this.post(file); } else if (before === false) { file.status = 'error'; } }; Html5Uploader.prototype.resize = function resize(file, cb) { var resize = this.props.resize; if (resize && /\.(png|jpg|jpeg)$/i.test(file.name)) { var imageType = /\.png$/i.test(file.name) ? 'image/png' : 'image/jpeg'; return (0, _util.scaleImage)(file, resize, imageType, cb); } cb(file); }; Html5Uploader.prototype.post = function post(file) { var _this4 = this; var _props3 = this.props, action = _props3.action, name = _props3.name, multipart = _props3.multipart, headers = _props3.headers, withCredentials = _props3.withCredentials, _onProgress = _props3.onProgress, _onSuccess = _props3.onSuccess, _onError = _props3.onError, _onAbort = _props3.onAbort; var data = this.props.data || multipart; if (typeof data === 'function') { data = data(file); } var uid = file.uid; this.resize(file, function (bin) { _this4.reqs[uid] = (0, _request2['default'])({ action: action, filename: name, file: file, bin: bin, data: data, headers: headers, withCredentials: withCredentials, onProgress: function onProgress(e) { _onProgress(e, file); }, onSuccess: function onSuccess(ret) { delete _this4.reqs[uid]; _onSuccess(ret, file); }, onError: function onError(err, ret) { delete _this4.reqs[uid]; _onError(err, ret, file); }, onAbort: function onAbort(e) { _onAbort(e, file); } }); }); this.props.onStart([file]); }; Html5Uploader.prototype.render = function render() { var _props4 = this.props, accept = _props4.accept, multiple = _props4.multiple, children = _props4.children, id = _props4.id, disabled = _props4.disabled, dragable = _props4.dragable, others = _objectWithoutProperties(_props4, ['accept', 'multiple', 'children', 'id', 'disabled', 'dragable']); var cleanOthers = (0, _nextUtil.pickAttrs)(others); var events = disabled ? {} : dragable ? { onClick: this.onClick, onKeyDown: this.onKeyDown, onDrop: this.onFileDrop, onDragOver: this.onFileDrop, tabIndex: '0' } : { onClick: this.onClick, onKeyDown: this.onKeyDown, tabIndex: '0' }; return _react2['default'].createElement( 'span', _extends({ role: 'upload' }, events, cleanOthers), _react2['default'].createElement('input', { type: 'file', id: id, key: this.state.uid, ref: 'file', style: { display: 'none' }, accept: accept, multiple: multiple, onChange: this.onChange, disabled: disabled }), children ); }; return Html5Uploader; }(_react.Component), _class.propTypes = { id: _propTypes2['default'].string, /** * 可选参数,自定义样式 */ style: _propTypes2['default'].object, /** * 必选参数,上传的地址 */ action: _propTypes2['default'].string.isRequired, resize: _propTypes2['default'].object, /** * 可选参数,传递给服务器的文件参数 */ name: _propTypes2['default'].string.isRequired, /** * 可选参数,是否禁用上传功能 */ disabled: _propTypes2['default'].bool, /** * 可选参数,是否支持多选文件,`ie10+` 支持。开启后按住 ctrl 可选择多个文件 */ multiple: _propTypes2['default'].bool, /** * 可选参数,是否支持拖拽上传,`ie10+` 支持。 */ dragable: _propTypes2['default'].bool, limit: _propTypes2['default'].number, children: _propTypes2['default'].node, fileList: _propTypes2['default'].array, /** * 可选参数,接受上传的文件类型,详见 [input accept attribute](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input#attr-accept), [兼容性见](http://caniuse.com/#feat=input-file-accept) */ accept: _propTypes2['default'].string, /** * 上传额外传参 */ data: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].func]), multipart: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].func]), /** * 可选参数,设置上传的请求头部 */ headers: _propTypes2['default'].object, /** * 可选参数,是否允许请求携带 cookie */ withCredentials: _propTypes2['default'].bool, /** * 可选参数,上传文件之前的钩子,参数为上传的文件,若返回 `false` 则停止上传 */ beforeUpload: _propTypes2['default'].func, /** * 可选参数,开始上传文件的钩子,参数为上传的文件。如果开启了 `multiple`,参数为文件列表 */ onStart: _propTypes2['default'].func, /** * 可选参数,正在上传文件的钩子,参数为上传的事件以及文件 */ onProgress: _propTypes2['default'].func, /** * 可选参数,上传成功回调函数,参数为请求下响应信息以及文件 */ onSuccess: _propTypes2['default'].func, /** * 可选参数,上传失败回调函数,参数为上传失败的信息、响应信息以及文件 */ onError: _propTypes2['default'].func, /** * 可选参数,中断上传请求回调函数,参数为中断事件以及文件 */ onAbort: _propTypes2['default'].func, dataTransfer: _propTypes2['default'].object, locale: _propTypes2['default'].object, maxSize: _propTypes2['default'].number, checkMaxSizeBeforeUpload: _propTypes2['default'].bool }, _class.defaultProps = { name: 'file', multiple: false, withCredentials: false, beforeUpload: empty, onStart: empty, onProgress: empty, onSuccess: empty, onError: empty, onAbort: empty, maxSize: Infinity, checkMaxSizeBeforeUpload: false, fileList: [] }, _temp); Html5Uploader.displayName = 'Html5Uploader'; exports['default'] = Html5Uploader; module.exports = exports['default']; /***/ }), /***/ 2698: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _binaryReader = __webpack_require__(2295); var _binaryReader2 = _interopRequireDefault(_binaryReader); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var JPEGHeaders = function () { function JPEGHeaders(data) { _classCallCheck(this, JPEGHeaders); var markers = { 0xFFE1: { app: 'EXIF', name: 'APP1', signature: 'Exif\0' }, 0xFFE2: { app: 'ICC', name: 'APP2', signature: 'ICC_PROFILE\0' }, 0xFFED: { app: 'IPTC', name: 'APP13', signature: 'Photoshop 3.0\0' } }; var headers = this.headers = []; var read = void 0, idx = void 0, marker = void 0, length = 0; this.read = read = new _binaryReader2['default'](); read.init(data); // Check if data is jpeg if (read.SHORT(0) !== 0xFFD8) { return; } idx = 2; var limit = Math.min(1048576, data.length); while (idx <= limit) { marker = read.SHORT(idx); // omit RST (restart) markers if (marker >= 0xFFD0 && marker <= 0xFFD7) { idx += 2; continue; } // no headers allowed after SOS marker if (marker === 0xFFDA || marker === 0xFFD9) { break; } length = read.SHORT(idx + 2) + 2; if (markers[marker] && read.STRING(idx + 4, markers[marker].signature.length) === markers[marker].signature) { headers.push({ hex: marker, app: markers[marker].app.toUpperCase(), name: markers[marker].name.toUpperCase(), start: idx, length: length, segment: read.SEGMENT(idx, length) }); } idx += length; } this.idx = idx; read.init(null); // free memory } JPEGHeaders.prototype.restore = function restore(data) { var headers = this.headers, read = this.read; read.init(data); // Check if data is jpeg var jpegHeaders = new JPEGHeaders(data); if (!jpegHeaders.headers) { return false; } // Delete any existing headers that need to be replaced for (var i = jpegHeaders.headers.length; i > 0; i--) { var hdr = jpegHeaders.headers[i - 1]; read.SEGMENT(hdr.start, hdr.length, ''); } jpegHeaders.purge(); this.idx = read.SHORT(2) === 0xFFE0 ? 4 + read.SHORT(4) : 2; for (var _i = 0, l = headers.length; _i < l; _i++) { read.SEGMENT(this.idx, 0, headers[_i].segment); this.idx += headers[_i].length; } return read.SEGMENT(); }; JPEGHeaders.prototype.get = function get(app) { var headers = this.headers; var array = []; for (var i = 0, l = headers.length; i < l; i++) { if (headers[i].app === app.toUpperCase()) { array.push(headers[i].segment); } } return array; }; JPEGHeaders.prototype.set = function set(app, segment) { var headers = this.headers; var array = []; if (typeof segment === 'string') { array.push(segment); } else { array = segment; } for (var i = 0, j = 0, l = headers.length; i < l; i++) { if (headers[i].app === app.toUpperCase()) { headers[i].segment = array[j]; headers[i].length = array[j].length; j++; } if (j >= array.length) { break; } } }; JPEGHeaders.prototype.purge = function purge() { this.headers = []; this.read.init(null); }; return JPEGHeaders; }(); exports['default'] = JPEGHeaders; module.exports = exports['default']; /***/ }), /***/ 2699: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _binaryReader = __webpack_require__(2295); var _binaryReader2 = _interopRequireDefault(_binaryReader); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /* eslint-disable */ var ExifParser = function () { function ExifParser() { _classCallCheck(this, ExifParser); // Private ExifParser fields this.data = new _binaryReader2['default'](); this.offsets = {}; this.tags = { tiff: { /* The image orientation viewed in terms of rows and columns. 1 - The 0th row is at the visual top of the image, and the 0th column is the visual left-hand side. 2 - The 0th row is at the visual top of the image, and the 0th column is the visual left-hand side. 3 - The 0th row is at the visual top of the image, and the 0th column is the visual right-hand side. 4 - The 0th row is at the visual bottom of the image, and the 0th column is the visual right-hand side. 5 - The 0th row is at the visual bottom of the image, and the 0th column is the visual left-hand side. 6 - The 0th row is the visual left-hand side of the image, and the 0th column is the visual top. 7 - The 0th row is the visual right-hand side of the image, and the 0th column is the visual top. 8 - The 0th row is the visual right-hand side of the image, and the 0th column is the visual bottom. 9 - The 0th row is the visual left-hand side of the image, and the 0th column is the visual bottom. */ 0x0112: 'Orientation', 0x8769: 'ExifIFDPointer', 0x8825: 'GPSInfoIFDPointer' }, exif: { 0x9000: 'ExifVersion', 0xA001: 'ColorSpace', 0xA002: 'PixelXDimension', 0xA003: 'PixelYDimension', 0x9003: 'DateTimeOriginal', 0x829A: 'ExposureTime', 0x829D: 'FNumber', 0x8827: 'ISOSpeedRatings', 0x9201: 'ShutterSpeedValue', 0x9202: 'ApertureValue', 0x9207: 'MeteringMode', 0x9208: 'LightSource', 0x9209: 'Flash', 0xA402: 'ExposureMode', 0xA403: 'WhiteBalance', 0xA406: 'SceneCaptureType', 0xA404: 'DigitalZoomRatio', 0xA408: 'Contrast', 0xA409: 'Saturation', 0xA40A: 'Sharpness' }, gps: { 0x0000: 'GPSVersionID', 0x0001: 'GPSLatitudeRef', 0x0002: 'GPSLatitude', 0x0003: 'GPSLongitudeRef', 0x0004: 'GPSLongitude' } }; this.tagDescs = { 'ColorSpace': { 1: 'sRGB', 0: 'Uncalibrated' }, 'MeteringMode': { 0: 'Unknown', 1: 'Average', 2: 'CenterWeightedAverage', 3: 'Spot', 4: 'MultiSpot', 5: 'Pattern', 6: 'Partial', 255: 'Other' }, 'LightSource': { 1: 'Daylight', 2: 'Fliorescent', 3: 'Tungsten', 4: 'Flash', 9: 'Fine weather', 10: 'Cloudy weather', 11: 'Shade', 12: 'Daylight fluorescent (D 5700 - 7100K)', 13: 'Day white fluorescent (N 4600 -5400K)', 14: 'Cool white fluorescent (W 3900 - 4500K)', 15: 'White fluorescent (WW 3200 - 3700K)', 17: 'Standard light A', 18: 'Standard light B', 19: 'Standard light C', 20: 'D55', 21: 'D65', 22: 'D75', 23: 'D50', 24: 'ISO studio tungsten', 255: 'Other' }, 'Flash': { 0x0000: 'Flash did not fire.', 0x0001: 'Flash fired.', 0x0005: 'Strobe return light not detected.', 0x0007: 'Strobe return light detected.', 0x0009: 'Flash fired, compulsory flash mode', 0x000D: 'Flash fired, compulsory flash mode, return light not detected', 0x000F: 'Flash fired, compulsory flash mode, return light detected', 0x0010: 'Flash did not fire, compulsory flash mode', 0x0018: 'Flash did not fire, auto mode', 0x0019: 'Flash fired, auto mode', 0x001D: 'Flash fired, auto mode, return light not detected', 0x001F: 'Flash fired, auto mode, return light detected', 0x0020: 'No flash function', 0x0041: 'Flash fired, red-eye reduction mode', 0x0045: 'Flash fired, red-eye reduction mode, return light not detected', 0x0047: 'Flash fired, red-eye reduction mode, return light detected', 0x0049: 'Flash fired, compulsory flash mode, red-eye reduction mode', 0x004D: 'Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected', 0x004F: 'Flash fired, compulsory flash mode, red-eye reduction mode, return light detected', 0x0059: 'Flash fired, auto mode, red-eye reduction mode', 0x005D: 'Flash fired, auto mode, return light not detected, red-eye reduction mode', 0x005F: 'Flash fired, auto mode, return light detected, red-eye reduction mode' }, 'ExposureMode': { 0: 'Auto exposure', 1: 'Manual exposure', 2: 'Auto bracket' }, 'WhiteBalance': { 0: 'Auto white balance', 1: 'Manual white balance' }, 'SceneCaptureType': { 0: 'Standard', 1: 'Landscape', 2: 'Portrait', 3: 'Night scene' }, 'Contrast': { 0: 'Normal', 1: 'Soft', 2: 'Hard' }, 'Saturation': { 0: 'Normal', 1: 'Low saturation', 2: 'High saturation' }, 'Sharpness': { 0: 'Normal', 1: 'Soft', 2: 'Hard' }, // GPS related 'GPSLatitudeRef': { N: 'North latitude', S: 'South latitude' }, 'GPSLongitudeRef': { E: 'East longitude', W: 'West longitude' } }; } ExifParser.prototype._extractTags = function _extractTags(IFD_offset, tags2extract) { var data = this.data, offsets = this.offsets, tagDescs = this.tagDescs; var length = data.SHORT(IFD_offset), i = void 0, ii = void 0, tag = void 0, type = void 0, count = void 0, tagOffset = void 0, offset = void 0, value = void 0, values = [], hash = {}; for (i = 0; i < length; i++) { // Set binary reader pointer to beginning of the next tag offset = tagOffset = IFD_offset + 12 * i + 2; tag = tags2extract[data.SHORT(offset)]; if (tag === undefined) { continue; // Not the tag we requested } type = data.SHORT(offset += 2); count = data.LONG(offset += 2); offset += 4; values = []; switch (type) { case 1: // BYTE case 7: // UNDEFINED if (count > 4) { offset = data.LONG(offset) + offsets.tiffHeader; } for (ii = 0; ii < count; ii++) { values[ii] = data.BYTE(offset + ii); } break; case 2: // STRING if (count > 4) { offset = data.LONG(offset) + offsets.tiffHeader; } hash[tag] = data.STRING(offset, count - 1); continue; case 3: // SHORT if (count > 2) { offset = data.LONG(offset) + offsets.tiffHeader; } for (ii = 0; ii < count; ii++) { values[ii] = data.SHORT(offset + ii * 2); } break; case 4: // LONG if (count > 1) { offset = data.LONG(offset) + offsets.tiffHeader; } for (ii = 0; ii < count; ii++) { values[ii] = data.LONG(offset + ii * 4); } break; case 5: // RATIONAL offset = data.LONG(offset) + offsets.tiffHeader; for (ii = 0; ii < count; ii++) { values[ii] = data.LONG(offset + ii * 4) / data.LONG(offset + ii * 4 + 4); } break; case 9: // SLONG offset = data.LONG(offset) + offsets.tiffHeader; for (ii = 0; ii < count; ii++) { values[ii] = data.SLONG(offset + ii * 4); } break; case 10: // SRATIONAL offset = data.LONG(offset) + offsets.tiffHeader; for (ii = 0; ii < count; ii++) { values[ii] = data.SLONG(offset + ii * 4) / data.SLONG(offset + ii * 4 + 4); } break; default: continue; } value = count == 1 ? values[0] : values; if (tagDescs.hasOwnProperty(tag) && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) != 'object') { hash[tag] = tagDescs[tag][value]; } else { hash[tag] = value; } } return hash; }; ExifParser.prototype.init = function init(segment) { var data = this.data, offsets = this.offsets, tags = this.tags; // Reset internal data offsets = { tiffHeader: 10 }; if (segment === undefined || !segment.length) { return false; } data.init(segment); // Check if that's APP1 and that it has EXIF if (data.SHORT(0) === 0xFFE1 && this.data.STRING(4, 5).toUpperCase() === 'EXIF\0') { var Tiff = undefined; var idx = this.offsets.tiffHeader; // Set read order of multi-byte data this.data.II(data.SHORT(idx) == 0x4949); // Check if always present bytes are indeed present if (data.SHORT(idx += 2) !== 0x002A) return false; offsets['IFD0'] = offsets.tiffHeader + data.LONG(idx += 2); Tiff = this._extractTags(offsets['IFD0'], tags.tiff); offsets['exifIFD'] = 'ExifIFDPointer' in Tiff ? offsets.tiffHeader + Tiff.ExifIFDPointer : undefined; offsets['gpsIFD'] = 'GPSInfoIFDPointer' in Tiff ? offsets.tiffHeader + Tiff.GPSInfoIFDPointer : undefined; return true; } return false; }; ExifParser.prototype.EXIF = function EXIF() { var offsets = this.offsets, tags = this.tags; // Populate EXIF hash var Exif = this._extractTags(offsets.exifIFD, tags.exif); // Fix formatting of some tags if (Exif.ExifVersion && Array.isArray(Exif.ExifVersion)) { for (var i = 0, _exifVersion = ''; i < Exif.ExifVersion.length; i++) { _exifVersion += String.fromCharCode(Exif.ExifVersion[i]); } Exif.ExifVersion = exifVersion; } return Exif; }; ExifParser.prototype.GPS = function GPS() { var offsets = this.offsets, tags = this.tags; var GPS = this._extractTags(offsets.gpsIFD, tags.gps); // iOS devices (and probably some others) do not put in GPSVersionID tag (why?..) // fixbug GPS.GPSVersionID maybe string add by david.chenz 2015.01.13 if (GPS.GPSVersionID && Array.isArray(GPS.GPSVersionID)) { GPS.GPSVersionID = GPS.GPSVersionID.join('.'); } return GPS; }; ExifParser.prototype.setExif = function setExif(tag, value) { var data = this.data, offsets = this.offsets, tags = this.tags; // Right now only setting of width/height is possible if (tag !== 'PixelXDimension' && tag !== 'PixelYDimension') { return false; } var offset = void 0, length = void 0, tagOffset = void 0, valueOffset = 0; // If tag name passed translate into hex key if (typeof tag === 'string') { var tmpTags = tags['exif']; for (var hex in tmpTags) { if (tmpTags[hex] === tag) { tag = hex; break; } } } offset = offsets['exifIFD']; length = data.SHORT(offset); for (var i = 0; i < length; i++) { tagOffset = offset + 12 * i + 2; if (data.SHORT(tagOffset) == tag) { valueOffset = tagOffset + 8; break; } } if (!valueOffset) { return false; } data.LONG(valueOffset, value); return true; }; ExifParser.prototype.getBinary = function getBinary() { return this.data.SEGMENT(); }; return ExifParser; }(); exports['default'] = ExifParser; module.exports = exports['default']; /***/ }), /***/ 2700: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = { '3g2': 'video/3gpp2', '3gp': 'video/3gpp', ai: 'application/postscript', asc: 'text/plain', avi: 'video/avi', bmp: 'image/bmp', css: 'text/css', csv: 'text/csv', diff: 'text/plain', doc: 'application/msword', docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', dot: 'application/msword', dotx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', eps: 'application/postscript', exe: 'application/octet-stream', flv: 'video/x-flv', gif: 'image/gif', htm: 'text/html', html: 'text/html', jpe: 'image/jpeg', jpeg: 'image/jpeg', jpg: 'image/jpeg', js: 'application/x-javascript', json: 'application/json', log: 'text/plain', m2v: 'video/mpeg', m4a: 'audio/mp4', m4v: 'video/x-m4v', mov: 'video/quicktime', mp2: 'audio/mpeg', mp3: 'audio/mpeg', mp4: 'video/mp4', mpe: 'video/mpeg', mpeg: 'video/mpeg', mpega: 'audio/mpeg', mpg: 'video/mpeg', mpga: 'audio/mpeg', otf: 'application/vnd.oasis.opendocument.formula-template', pdf: 'application/pdf', pgp: 'application/pgp-signature', png: 'image/png', pot: 'application/vnd.ms-powerpoint', potx: 'application/vnd.openxmlformats-officedocument.presentationml.template', pps: 'application/vnd.ms-powerpoint', ppsx: 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', ppt: 'application/vnd.ms-powerpoint', pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation', ps: 'application/postscript', psd: 'image/photoshop', qt: 'video/quicktime', rtf: 'text/rtf', rv: 'video/vnd.rn-realvideo', svg: 'image/svg+xml', svgz: 'image/svg+xml', swf: 'application/x-shockwave-flash', swfl: 'application/x-shockwave-flash', text: 'text/plain', tif: 'image/tiff', tiff: 'image/tiff', txt: 'text/plain', wav: 'audio/x-wav', webm: 'video/webm', wmv: 'video/x-ms-wmv', xhtml: 'text/html', xlb: 'application/vnd.ms-excel', xls: 'application/vnd.ms-excel', xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', zip: 'application/zip' }; module.exports = exports['default']; /***/ }), /***/ 2701: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp, _initialiseProps; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _nextUtil = __webpack_require__(889); var _util = __webpack_require__(1668); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var INPUT_STYLE = { position: 'absolute', top: 0, right: 0, fontSize: 9999, zIndex: 9999, opacity: 0, outline: 'none', cursor: 'pointer' }; var noop = function noop() {}; var IframeUploader = (_temp = _class = function (_Component) { _inherits(IframeUploader, _Component); function IframeUploader(props) { _classCallCheck(this, IframeUploader); var _this = _possibleConstructorReturn(this, _Component.call(this, props)); _initialiseProps.call(_this); _this.domain = typeof document !== 'undefined' && document.domain ? document.domain : ''; return _this; } IframeUploader.prototype.componentDidMount = function componentDidMount() { this.updateInputWH(); }; IframeUploader.prototype.componentDidUpdate = function componentDidUpdate() { this.updateInputWH(); }; IframeUploader.prototype.endUpload = function endUpload() { if (this.state.uploading) { this.file = {}; // eslint-disable-next-line this.state.uploading = false; this.setState({ uploading: false }); } }; IframeUploader.prototype.startUpload = function startUpload() { if (!this.state.uploading) { // eslint-disable-next-line this.state.uploading = true; this.setState({ uploading: true }); } }; IframeUploader.prototype.updateInputWH = function updateInputWH() { var rootNode = _reactDom2['default'].findDOMNode(this); var inputNode = this.refs.input; inputNode.style.height = rootNode.offsetHeight + 'px'; inputNode.style.width = rootNode.offsetWidth + 'px'; }; IframeUploader.prototype.abort = function abort(file) { if (file) { var _uid = file; if (file && file.uid) { _uid = file.uid; } if (_uid === this.file.uid) { this.endUpload(); } } else { this.endUpload(); } }; IframeUploader.prototype.post = function post(file) { var formNode = this.refs.form; var dataSpan = this.refs.data; var data = this.props.data || this.props.multipart; if (typeof data === 'function') { data = data(file); } var inputs = document.createDocumentFragment(); for (var key in data) { if (data.hasOwnProperty(key)) { var input = document.createElement('input'); input.setAttribute('name', key); input.value = data[key]; inputs.appendChild(input); } } dataSpan.appendChild(inputs); formNode.submit(); dataSpan.innerHTML = ''; this.props.onStart([file]); }; IframeUploader.prototype.render = function render() { var _props = this.props, disabled = _props.disabled, className = _props.className, children = _props.children, accept = _props.accept, name = _props.name, style = _props.style; var iframeName = name + '-iframe'; return _react2['default'].createElement( 'span', { className: className, style: _extends({ position: 'relative', zIndex: 0, display: 'inline-block' }, style) }, !disabled ? _react2['default'].createElement('iframe', { ref: 'iframe', name: iframeName, onLoad: this.onLoad, style: { display: 'none' } }) : null, _react2['default'].createElement( 'form', { ref: 'form', method: 'post', action: this.props.action, encType: 'multipart/form-data', target: iframeName }, _react2['default'].createElement('input', { ref: 'input', type: 'file', accept: accept, name: name, onChange: this.onChange, style: INPUT_STYLE }), _react2['default'].createElement('input', { name: '_documentDomain', value: this.domain, type: 'hidden' }), _react2['default'].createElement('span', { ref: 'data' }) ), children ); }; return IframeUploader; }(_react.Component), _class.propTypes = { style: _propTypes2['default'].object, action: _propTypes2['default'].string.isRequired, name: _propTypes2['default'].string.isRequired, data: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].func]), multipart: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].func]), disabled: _propTypes2['default'].bool, className: _propTypes2['default'].string, children: _propTypes2['default'].node, fileList: _propTypes2['default'].array, headers: _propTypes2['default'].object, beforeUpload: _propTypes2['default'].func, onStart: _propTypes2['default'].func, onSuccess: _propTypes2['default'].func, onError: _propTypes2['default'].func, accept: _propTypes2['default'].string }, _class.defaultProps = { name: 'file', beforeUpload: noop, onStart: noop, onSuccess: noop, onError: noop, onAbort: noop }, _initialiseProps = function _initialiseProps() { var _this2 = this; this.state = { uploading: false }; this.file = {}; this.onLoad = function () { if (!_this2.state.uploading) { return; } var props = _this2.props, file = _this2.file; var response = void 0; try { var doc = _this2.refs.iframe.contentDocument; var script = doc.getElementsByTagName('script')[0]; if (script && script.parentNode === doc.body) { doc.body.removeChild(script); } response = doc.body.innerHTML; props.onSuccess(response, file); } catch (err) { _nextUtil.log.warning('cross domain error for Upload. Maybe server should return document.domain script.'); response = 'cross-domain'; props.onError(err, null, file); } _this2.endUpload(); }; this.onChange = function (e) { var file = _this2.file = { uid: (0, _util.uid)(), name: e.target.value }; _this2.startUpload(); var props = _this2.props; if (!props.beforeUpload) { return _this2.post(file); } var before = props.beforeUpload(file); if (before && before.then) { before.then(function () { _this2.post(file); }, function () { _this2.endUpload(); }); } else if (before !== false) { _this2.post(file); } else { _this2.endUpload(); } }; }, _temp); IframeUploader.displayName = 'IframeUploader'; exports['default'] = IframeUploader; module.exports = exports['default']; /***/ }), /***/ 2702: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = getFileItem; function getFileItem(file, fileList) { var matchWay = !file.uid ? 'byName' : 'byUid'; var target = fileList.filter(function (item) { if (matchWay === 'byName') { return item.name === file.name; } return item.uid === file.uid; })[0]; return target; } module.exports = exports['default']; /***/ }), /***/ 2703: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = normalize; var _objectAssign = __webpack_require__(76); var _objectAssign2 = _interopRequireDefault(_objectAssign); var _index = __webpack_require__(1668); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function normalize(file) { var tempObj = { originFileObj: file, fileName: file.name }; for (var prop in file) { if (file[prop] && typeof file[prop] !== 'function') { tempObj[prop] = file[prop]; } } return (0, _objectAssign2['default'])({}, tempObj, { uid: file.uid || (0, _index.uid)(), percent: file.percent || 0 }); } module.exports = exports['default']; /***/ }), /***/ 2704: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* eslint-disable */ var _kf_ = '/kf/'; var dot = '.'; var slash = '/'; var underScore = '_'; var questionMark = '?'; var alibabaImageDomainList = ['g01.s.alicdn.com', 'g02.s.alicdn.com', 'g03.s.alicdn.com', 'g04.s.alicdn.com']; var alibabaContentDomainList = ['f01.s.alicdn.com', 'f02.s.alicdn.com', 'f03.s.alicdn.com', 'f04.s.alicdn.com']; var alibabaV2DomainList = ['sc01.alicdn.com', 'sc02.alicdn.com']; var aliexpressImageDomainList = ['g01.a.alicdn.com', 'g02.a.alicdn.com', 'g03.a.alicdn.com', 'g04.a.alicdn.com']; var aliexpressContentDomainList = ['f01.a.alicdn.com', 'f02.a.alicdn.com', 'f03.a.alicdn.com', 'f04.a.alicdn.com']; var itaoImageDomainList = ['g01.t.alicdn.com', 'g02.t.alicdn.com', 'g03.t.alicdn.com', 'g04.t.alicdn.com']; var itaoContentDomainList = ['f01.t.alicdn.com', 'f02.t.alicdn.com', 'f03.t.alicdn.com', 'f04.t.alicdn.com']; var taobaoImageDomainList = ['g01.b.alicdn.com', 'g02.b.alicdn.com', 'g03.b.alicdn.com', 'g04.b.alicdn.com']; var taobaoContentDomainList = ['f01.b.alicdn.com', 'f02.b.alicdn.com', 'f03.b.alicdn.com', 'f04.b.alicdn.com']; var aliexpressSkipCdnDomain = 'kfdown.a.aliimg.com'; var alibabaSkipCdnDomain = 'kfdown.s.aliimg.com'; var itaoSkipCdnDomain = 'kfdown.t.aliimg.com'; var imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'tif', 'tiff', 'webp']; var imageSize = ['_50x50', '_80x80', '_100x100', '_120x120', '_140x140', '_200x200', '_220x220', '_250x250', '_350x350', '_640x640', '_220x10000', '_640x10000']; var resizableImageExtensions = ['jpg', 'jpeg', 'png']; var consistentHashCycle = {}; var commonParams = { site: 'alibaba', resize: '_140x140', fileName: '', skipCDN: false, withAddition: '', asAttachment: '', useDomainGroup: '', fileProtocol: '' }; function isImage(ext) { return imageExtensions.indexOf(ext) !== -1; } function getProtocol(site, fileProtocol) { if (!fileProtocol || fileProtocol === 'http') { return 'http://'; } if (fileProtocol === 'https') { if (site === 'alibaba_v2') { return 'https://'; } return null; // This site does not support https. } if (fileProtocol === 'empty') { return '//'; } return null; // Unsupported protocol. } function isResizableImage(ext, size) { return resizableImageExtensions.indexOf(ext) !== -1 && imageSize.indexOf(size) !== -1; } function parseFileName(fileName) { var fileNameIndex = fileName.indexOf('.'); var fileExtensionIndex = fileName.lastIndexOf('.'); var file = ''; var extension = ''; if (fileNameIndex === -1) { file = fileName; extension = ''; } else { file = fileName.substring(0, fileNameIndex); extension = fileName.substring(fileExtensionIndex + 1, fileName.length); } return { file: file, extension: extension }; } function initType(num) { var maxValue = 0x7fffffff; var minValue = -0x80000000; if (num > maxValue || num < minValue) { return num &= 0xFFFFFFFF; } return num; } function hashCode(str) { var hashCode = 0; if (str) { for (var i = 0; i < str.length; i++) { hashCode = hashCode * 31 + str.charCodeAt(i); hashCode = initType(hashCode); } } return hashCode; } function binarySearch(arrayList, fileHashCode) { var start = 0; var stop = arrayList.length - 1; var middleIndex = Math.floor((stop + start) / 2); while (arrayList[middleIndex]['hashCode'] != fileHashCode && start < stop) { if (fileHashCode < arrayList[middleIndex]['hashCode']) { stop = middleIndex - 1; } else if (fileHashCode > arrayList[middleIndex]['hashCode']) { start = middleIndex + 1; } middleIndex = Math.floor((stop + start) / 2); } return arrayList[middleIndex]['hashCode'] != fileHashCode ? -1 : middleIndex; } function quickSort(array) { var i = 0; var j = array.length - 1; var sortArray = function sortArray(i, j) { if (i === j) return; var key = array[i]['hashCode']; var keyObj = array[i]; var stepi = i; var stepj = j; while (j > i) { if (array[j]['hashCode'] >= key) { j--; } else { array[i] = array[j]; while (j > ++i) { if (array[i]['hashCode'] > key) { array[j] = array[i]; break; } } } } if (stepi === i) { sortArray(++i, stepj); return; } array[i] = keyObj; sortArray(stepi, i); sortArray(j, stepj); }; sortArray(i, j); return array; } function tailMap(cycleName, fileHashCode) { var array = consistentHashCycle[cycleName]; if (array[array.length - 1]['hashCode'] < fileHashCode) { return array[0]['domain']; } else { var hashCodeIndex = binarySearch(array, fileHashCode); if (hashCodeIndex == -1) { var arrayObj = {}; arrayObj.hashCode = fileHashCode; arrayObj.domain = 'mock'; array.push(arrayObj); var sortArray = quickSort(array); var fileIndex = binarySearch(sortArray, fileHashCode); array.splice(fileIndex, 1); return array[fileIndex]['domain']; } else { return array[hashCodeIndex]['domain']; } } } function consistentHash(filename, cycleName, domainList) { var fileHashCode = hashCode(filename); if (!consistentHashCycle[cycleName]) { var numberOfReplicase = 20; var domainArray = []; for (var i = 0; i < domainList.length; i++) { for (var j = 0; j < numberOfReplicase; j++) { var elementObj = {}; elementObj.hashCode = hashCode(domainList[i] + j); elementObj.domain = domainList[i]; domainArray.push(elementObj); } } consistentHashCycle[cycleName] = quickSort(domainArray); } return tailMap(cycleName, fileHashCode); } var siteMap = { 'alibaba': { skipDomain: alibabaSkipCdnDomain, f: ['alibabaContentDomainList', alibabaContentDomainList], g: ['alibabaImageDomainList', alibabaImageDomainList], image: ['alibabaImageDomainList', alibabaImageDomainList], content: ['alibabaContentDomainList', alibabaContentDomainList] }, 'alibaba_v2': { skipDomain: null, f: ['alibabaV2DomainList', alibabaV2DomainList], g: ['alibabaV2DomainList', alibabaV2DomainList], image: ['alibabaV2DomainList', alibabaV2DomainList], content: ['alibabaV2DomainList', alibabaV2DomainList] }, 'aliexpress': { skipDomain: aliexpressSkipCdnDomain, f: ['aliexpressContentDomainList', aliexpressContentDomainList], g: ['aliexpressImageDomainList', aliexpressImageDomainList], image: ['aliexpressImageDomainList', aliexpressImageDomainList], content: ['aliexpressContentDomainList', aliexpressContentDomainList] }, 'itao': { skipDomain: null, f: ['itaoContentDomainList', itaoContentDomainList], g: ['itaoImageDomainList', itaoImageDomainList], image: ['itaoImageDomainList', itaoImageDomainList], content: ['itaoContentDomainList', itaoContentDomainList] }, 'taobao': { skipDomain: null, f: ['taobaoContentDomainList', taobaoContentDomainList], g: ['taobaoImageDomainList', taobaoImageDomainList], image: ['taobaoImageDomainList', taobaoImageDomainList], content: ['taobaoContentDomainList', taobaoContentDomainList] } }; function switchDomain(fileKey, site, isSkip, group, isImage) { var config = siteMap[site]; if (!config) { return null; } if (isSkip) { return config.skipDomain; } if (group) { if (group === 'f') { return consistentHash(fileKey, config.f[0], config.f[1]); } else if (group === 'g') { return consistentHash(fileKey, config.g[0], config.g[1]); } } else { return isImage ? consistentHash(fileKey, config.image[0], config.image[1]) : consistentHash(fileKey, config.content[0], config.content[1]); } return null; } var setCommonParams = exports.setCommonParams = function setCommonParams(params) { commonParams = _extends({}, commonParams, params); }; var getCommonParams = exports.getCommonParams = function getCommonParams() { return commonParams; }; var buildUrl = exports.buildUrl = function buildUrl(customParams) { var params = _extends({}, commonParams, customParams); var site = params.site, fileName = params.fileName, resize = params.resize, skipCDN = params.skipCDN, withAddition = params.withAddition, asAttachment = params.asAttachment, useDomainGroup = params.useDomainGroup, fileProtocol = params.fileProtocol; resize = resize ? resize.indexOf(underScore) === -1 ? underScore + resize : resize : ''; if (!site || !fileName) { return null; } var fileObj = parseFileName(fileName); var fileKey = fileObj.file; var fileExtension = fileObj.extension; if (!fileExtension) { return null; } var domain = ''; if (skipCDN == true) { domain = switchDomain(fileName, site, true); } else { if (useDomainGroup) { if (useDomainGroup === 'f') { domain = switchDomain(fileName, site, false, 'f', false); } else if (useDomainGroup === 'g') { domain = switchDomain(fileName, site, false, 'g', false); } else { return null; // Unsupported domain group. } } else { if (isImage(fileExtension)) { domain = switchDomain(fileName, site, false, null, true); } else { domain = switchDomain(fileName, site, false, null, false); } } } if (!domain) { return null; } var formatHead = getProtocol(site, fileProtocol); if (!formatHead) { return null; } if (resize && !isResizableImage(fileExtension, resize)) { //error can not resize return null; //{ error: 'Only image files ' + resizableImageExtensions.join(',') + ' have resize information in the URL. And only image sizes ' + imageSize.join(',') + ' are resizable.' }; } else { var url = withAddition ? formatHead + domain + _kf_ + fileKey + withAddition + dot + fileExtension : formatHead + domain + _kf_ + fileName; if (resize) { url = url + resize + dot + fileExtension; } if (asAttachment) { url = url + '?attachment=' + asAttachment; } return url; } }; /***/ }), /***/ 2705: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = filter; // 过滤掉 `status === error` 的文件 function filter(fileList) { var list = []; fileList.forEach(function (file) { file.status !== 'error' && list.push(file); }); return list; } module.exports = exports['default']; /***/ }), /***/ 2706: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _nextUtil = __webpack_require__(889); var _fileUpload = __webpack_require__(1919); var _fileUpload2 = _interopRequireDefault(_fileUpload); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Upload.ImageUpload * @order 1 * @description 继承 Upload 的 API,除非特别说明 */ var ImageUpload = (_temp = _class = function (_Component) { _inherits(ImageUpload, _Component); function ImageUpload() { _classCallCheck(this, ImageUpload); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } ImageUpload.prototype.render = function render() { var _props = this.props, locale = _props.locale, disabled = _props.disabled, triggerDisable = _props.triggerDisable; var prefix = this.context.prefix || this.props.prefix; var prefixCls = prefix + 'upload-text'; // API `triggerDisable` -> `disabled` 提醒 triggerDisable && _nextUtil.log.deprecated('triggerDisable', 'disabled', 'ImageUpload'); return _react2['default'].createElement( _fileUpload2['default'], _extends({}, this.props, { disabled: disabled || triggerDisable }), _react2['default'].createElement(_nextIcon2['default'], { type: 'add', size: 'large' }), _react2['default'].createElement( 'div', { className: prefixCls }, locale.image.addPhoto ) ); }; return ImageUpload; }(_react.Component), _class.propTypes = { prefix: _propTypes2['default'].string, language: _propTypes2['default'].string, locale: _propTypes2['default'].object, triggerDisable: _propTypes2['default'].bool, disabled: _propTypes2['default'].bool }, _class.defaultProps = { prefix: 'next-' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); ImageUpload.displayName = 'ImageUpload'; ImageUpload.displayName = 'ImageUpload'; exports['default'] = (0, _nextLocaleProvider2['default'])(ImageUpload); module.exports = exports['default']; /***/ }), /***/ 2707: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _nextIcon = __webpack_require__(917); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _fileUpload = __webpack_require__(1919); var _fileUpload2 = _interopRequireDefault(_fileUpload); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /** * Upload.DragUpload * @order 2 * @description IE10+ 支持。继承 Upload 的 API,除非特别说明 */ var DragUpload = (_temp = _class = function (_React$Component) { _inherits(DragUpload, _React$Component); function DragUpload(props) { _classCallCheck(this, DragUpload); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); _this.state = { dragOver: props.dragOver || false, listEmpty: true, fileLen: 0, dataTransfer: null }; /* eslint-disable */ ['onFileDrop', 'onListChange', 'dropEnd'].map(function (fn) { _this[fn] = _this[fn].bind(_this); }); /* eslint-enable */ return _this; } DragUpload.prototype.componentDidMount = function componentDidMount() { this.onListChange(this.props.defaultFileList || []); }; /** * 控制拖拽状态 */ DragUpload.prototype.onFileDrop = function onFileDrop(e) { var _props = this.props, onDragOver = _props.onDragOver, onDrop = _props.onDrop; if (e.type === 'dragover') { this.setState({ dragOver: true }); onDragOver && onDragOver(); } else if (e.type === 'drop') { var transFiles = void 0; if ('limit' in this.props) { transFiles = this.props.limit > this.state.fileLen ? e.dataTransfer.files : null; } else { transFiles = e.dataTransfer.files; } this.setState({ dragOver: false, dataTransfer: transFiles }); onDrop && onDrop(e.dataTransfer.files); } else { this.setState({ dragOver: false }); } e.preventDefault(); }; /** * `drop`类型事件触发后重置拖拽状态及清空传递的数据,防止子组件中`nextProps`继续获取重复数据 */ DragUpload.prototype.dropEnd = function dropEnd() { this.setState({ dragOver: false, dataTransfer: null }); }; /** * 当上传列表不为空时,不需要展示拖拽提示文案 */ DragUpload.prototype.onListChange = function onListChange(fileList) { this.setState({ listEmpty: !fileList.length, fileLen: fileList.length }); }; DragUpload.prototype.render = function render() { var _classNames, _classNames2, _classNames3; var _props2 = this.props, className = _props2.className, style = _props2.style, locale = _props2.locale, others = _objectWithoutProperties(_props2, ['className', 'style', 'locale']); var prefix = this.context.prefix || this.props.prefix; var prefixCls = prefix + 'upload-drag'; return _react2['default'].createElement( 'div', { className: (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, '' + prefixCls, true), _defineProperty(_classNames, prefixCls + '-over', this.state.dragOver), _defineProperty(_classNames, className, !!className), _classNames)), style: style, onDrop: this.onFileDrop, onDragOver: this.onFileDrop, onDragLeave: this.onFileDrop }, _react2['default'].createElement( _fileUpload2['default'], _extends({}, others, { prefix: prefix, locale: locale, listType: 'picture-card', showUploadList: true, dragable: false, style: { zIndex: 1 }, dataTransfer: this.state.dataTransfer, onListChange: this.onListChange, dropEnd: this.dropEnd }), _react2['default'].createElement(_nextIcon2['default'], { type: 'add', size: 'large' }), _react2['default'].createElement( 'div', { className: 'next-upload-text' }, locale.image.addPhoto ) ), _react2['default'].createElement( 'span', { className: (0, _classnames2['default'])((_classNames2 = {}, _defineProperty(_classNames2, prefixCls + '-tips', true), _defineProperty(_classNames2, prefixCls + '-tips-hide', !this.state.listEmpty || this.state.dragOver), _classNames2)) }, locale.drag.dragTips ), _react2['default'].createElement( 'div', { className: (0, _classnames2['default'])((_classNames3 = {}, _defineProperty(_classNames3, prefixCls + '-tips-over', true), _defineProperty(_classNames3, prefixCls + '-tips-hide', !this.state.listEmpty || !this.state.dragOver), _classNames3)) }, _react2['default'].createElement( 'span', null, locale.drag.dropTips ) ) ); }; return DragUpload; }(_react2['default'].Component), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, locale: _propTypes2['default'].object, language: _propTypes2['default'].string, dragOver: _propTypes2['default'].bool, /** * 可选参数,拖拽到达拖拽区域回调函数 */ onDragOver: _propTypes2['default'].func, /** * 可选参数,拖拽释放回调函数,参数为拖拽的文件 */ onDrop: _propTypes2['default'].func, limit: _propTypes2['default'].number, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, defaultFileList: _propTypes2['default'].array }, _class.defaultProps = { prefix: 'next-' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); DragUpload.displayName = 'DragUpload'; exports['default'] = (0, _nextLocaleProvider2['default'])(DragUpload); module.exports = exports['default']; /***/ }), /***/ 2708: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _class, _temp; // import { log } from '@alife/next-util'; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = __webpack_require__(3); var _classnames2 = _interopRequireDefault(_classnames); var _nextButton = __webpack_require__(1472); var _nextButton2 = _interopRequireDefault(_nextButton); var _nextDialog = __webpack_require__(2278); var _nextDialog2 = _interopRequireDefault(_nextDialog); var _nextLocaleProvider = __webpack_require__(1218); var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider); var _request = __webpack_require__(2294); var _request2 = _interopRequireDefault(_request); var _reactCropper = __webpack_require__(2709); var _reactCropper2 = _interopRequireDefault(_reactCropper); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } var noop = function noop() {}; // const errorMap = { // 1: 'IO_ERROR_SERVER', // 2: 'FORMAT_ERROR', // 3: 'FILE_SIZE_ERROR_SERVER', // 4: 'FILE_TYPE_ERROR_SERVER' // }; /** * Upload.CropUpload * @order 3 * @description IE10+ 支持 */ var CropUpload = (_temp = _class = function (_React$Component) { _inherits(CropUpload, _React$Component); function CropUpload(props) { _classCallCheck(this, CropUpload); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); _this.state = { src: '', file: null, showPopup: false }; ['cropImage', 'onChange', 'onClick', 'onPopupClose'].forEach(function (fn) { _this[fn] = _this[fn].bind(_this); }); return _this; } CropUpload.prototype.onPopupClose = function onPopupClose() { this.setState({ showPopup: false }); }; CropUpload.prototype.cropImage = function cropImage() { if (typeof this.refs.cropper.getCroppedCanvas() === 'undefined') { return; } var imageType = /\.png$/i.test(this.state.file.name) ? 'image/png' : 'image/jpeg'; var canvasOrigin = this.refs.cropper.getCroppedCanvas(); var _props = this.props, size = _props.size, cropSize = _props.cropSize; var dataUrl = void 0; // 设置裁剪后图片的尺寸,`cropSize` 代替 `size`,这里为了向上兼容 var newSize = cropSize; if (!newSize && typeof size === 'number') { newSize = size; } if (newSize) { var newWidth = 0; var newHeight = 0; var canvasResize = document.createElement('canvas'); canvasResize.style.display = 'none'; document.body.appendChild(canvasResize); if (typeof newSize === 'number') { newWidth = newSize; newHeight = newSize; } else if ((typeof newSize === 'undefined' ? 'undefined' : _typeof(newSize)) === 'object') { newWidth = newSize.width; newHeight = newSize.height; } canvasResize.width = newWidth; canvasResize.height = newHeight; var context2d = canvasResize.getContext('2d'); context2d.drawImage(canvasOrigin, 0, 0, newWidth, newHeight); dataUrl = canvasResize.toDataURL(imageType); } else { dataUrl = canvasOrigin.toDataURL(imageType); } // 触发裁剪回调函数 this.props.onCrop(dataUrl); // 图片上传 var decodeData = dataUrl.substring(dataUrl.indexOf('base64,') + 7); decodeData = atob(decodeData); this.upload(decodeData, dataUrl); }; /** * @param {String} decodeData 解编码后,用于上传服务器的数据 * @param {String} dataUrl base64 用于预览图片的数据 */ CropUpload.prototype.upload = function upload(decodeData, dataUrl) { var _this2 = this; var beforeUpload = this.props.beforeUpload; if (!beforeUpload) { return this.post(decodeData, dataUrl); } var before = beforeUpload(this.state.file); if (before && before.then) { before.then(function (result) { if (result !== false) { _this2.post(decodeData, dataUrl); } })['catch'](function () {}); } else if (before !== false) { this.post(decodeData, dataUrl); } }; CropUpload.prototype.post = function post(decodeData, dataUrl) { var _this3 = this; var _props2 = this.props, action = _props2.action, name = _props2.name, headers = _props2.headers, withCredentials = _props2.withCredentials, multipart = _props2.multipart, formatter = _props2.formatter, _onProgress = _props2.onProgress, _onSuccess = _props2.onSuccess, _onError = _props2.onError; var data = this.props.data || multipart; if (typeof data === 'function') { data = data(this.state.file); } (0, _request2['default'])({ action: action, filename: name, file: this.state.file, bin: decodeData, data: data, headers: headers, withCredentials: withCredentials, onProgress: function onProgress(e) { _onProgress(e, dataUrl); }, onSuccess: function onSuccess(res) { if (formatter) { res = formatter(res); } // 组件没有做 code 值判断,导致请求成功但是其实上传失败的情况也会通过,考虑会产生BR,留待 1.0 BR版本再放开下面的修复 // try { // if (typeof res === 'string') { // res = JSON.parse(res); // } // } catch (e) { // onError(new Error('服务器需要返回标准 JSON 字符串'), res, this.state.file); // return; // } // // /* eslint-disable */ // if (!res || res.code != '0') { // onError(new Error(errorMap[res && res.code || '1']), res, this.state.file); // return; // } // /* eslint-disable */ _onSuccess(res, dataUrl); _this3.onPopupClose(); }, onError: function onError(err, res) { _onError(err, res, dataUrl); } }); }; // TODO: 这里只是选择完文件,并没有真正的上传, 没有对结果产生影响。 1.x 需要考虑是否要等文件上传完成再调用 CropUpload.prototype.onChange = function onChange(e) { var _this4 = this; var beforeCrop = this.props.beforeCrop; var callback = function callback(file) { var reader = new FileReader(); reader.onload = function () { _this4.setState({ src: reader.result, file: file, showPopup: true }); }; reader.readAsDataURL(file); _this4.props.onChange(file); }; e.preventDefault(); var file = void 0; if (e.dataTransfer) { file = e.dataTransfer.files[0]; } else if (e.target) { file = e.target.files[0]; } if (!beforeCrop) { callback(file); return; } var before = beforeCrop(file); if (before && before.then) { before.then(function (result) { if (result !== false) { callback(file); } })['catch'](function () { // do nothing }); } else if (before !== false) { callback(file); } }; CropUpload.prototype.onClick = function onClick() { var el = this.refs.file; if (!el) { return; } el.click(); el.value = ''; }; CropUpload.prototype.previewListValid = function previewListValid(list) { var defaultList = [80, 60, 40]; list.forEach(function (item) { if (defaultList.indexOf(item) === -1) { return false; } }); return true; }; CropUpload.prototype.previewArea = function previewArea(prefixCls) { var _props3 = this.props, preview = _props3.preview, previewList = _props3.previewList; var previewTpl = []; if (!preview || !previewList || !previewList.length || !this.previewListValid(previewList)) { return; } previewList.forEach(function (item, index) { /* eslint-disable */ var styles = { width: item + 'px', height: item + 'px' }; /* eslint-enable */ previewTpl.push(_react2['default'].createElement( 'div', { key: index }, _react2['default'].createElement('div', { className: 'img-preview', style: styles }), _react2['default'].createElement( 'span', { className: 'img-preview-size' }, item, '*', item ) )); }); return _react2['default'].createElement( 'div', { className: prefixCls + '-inner-preview' }, previewTpl ); }; CropUpload.prototype.cropperPopup = function cropperPopup(prefixCls) { var _props4 = this.props, locale = _props4.locale, minCropBoxSize = _props4.minCropBoxSize, popupClassName = _props4.popupClassName, aspectRatio = _props4.aspectRatio, _props4$viewMode = _props4.viewMode, viewMode = _props4$viewMode === undefined ? 1 : _props4$viewMode, _props4$autoCropArea = _props4.autoCropArea, autoCropArea = _props4$autoCropArea === undefined ? 0.8 : _props4$autoCropArea, _props4$zoomable = _props4.zoomable, zoomable = _props4$zoomable === undefined ? true : _props4$zoomable; var preview = aspectRatio && aspectRatio !== 1 ? null : this.previewArea(prefixCls); // 为了配置平台 start /* eslint-disable */ if (this.props.demoDefault) { return _react2['default'].createElement( _nextDialog2['default'].Inner, { style: { position: 'relative' } }, _react2['default'].createElement( _nextDialog2['default'].Header, null, locale.crop.title ), _react2['default'].createElement( _nextDialog2['default'].Body, null, _react2['default'].createElement( 'div', { className: (0, _classnames2['default'])(_defineProperty({}, '' + prefixCls, true)) }, _react2['default'].createElement( 'div', { className: (0, _classnames2['default'])(_defineProperty({}, prefixCls + '-inner', true)) }, _react2['default'].createElement( 'div', null, _react2['default'].createElement( 'div', { className: prefixCls + '-inner-cropper' }, _react2['default'].createElement(_reactCropper2['default'], { style: { height: '100%', width: '100%' }, viewMode: 1, aspectRatio: 1 / 1, preview: '.img-preview', guides: false, center: false, background: false, ref: 'cropper', src: this.props.defaultAvatar }) ), preview, _react2['default'].createElement('div', { style: { clear: 'both' } }) ), _react2['default'].createElement( 'span', { className: prefixCls + '-inner-reset', onClick: this.onClick }, '+ ', locale.crop.reset ) ) ) ), _react2['default'].createElement( _nextDialog2['default'].Footer, { style: { textAlign: 'left' } }, _react2['default'].createElement( _nextButton2['default'], { type: 'primary' }, locale.crop.save ) ) ); } /* eslint-enable */ // 为了配置平台 end return _react2['default'].createElement( _nextDialog2['default'], { className: popupClassName, animation: false, visible: this.state.showPopup, title: locale.crop.title, onClose: this.onPopupClose, footer: _react2['default'].createElement( 'span', { onClick: this.cropImage }, _react2['default'].createElement( _nextButton2['default'], { type: 'primary' }, locale.crop.save ) ), footerAlign: 'left' }, _react2['default'].createElement( 'div', { className: (0, _classnames2['default'])(_defineProperty({}, '' + prefixCls, true)) }, _react2['default'].createElement( 'div', { className: (0, _classnames2['default'])(_defineProperty({}, prefixCls + '-inner', true)) }, _react2['default'].createElement( 'div', null, _react2['default'].createElement( 'div', { className: prefixCls + '-inner-cropper' }, _react2['default'].createElement(_reactCropper2['default'], { style: { height: '100%', width: '100%' }, viewMode: viewMode, autoCropArea: autoCropArea, aspectRatio: aspectRatio || 1 / 1, minCropBoxWidth: minCropBoxSize, preview: '.img-preview', guides: false, center: false, background: false, zoomable: zoomable, ref: 'cropper', src: this.state.src }) ), preview, _react2['default'].createElement('div', { style: { clear: 'both' } }) ), _react2['default'].createElement( 'span', { className: prefixCls + '-inner-reset', onClick: this.onClick }, '+ ', locale.crop.reset ) ) ) ); }; CropUpload.prototype.render = function render() { var _props5 = this.props, className = _props5.className, style = _props5.style, children = _props5.children, id = _props5.id; var prefix = this.context.prefix || this.props.prefix; var prefixCls = prefix + 'upload-crop'; // API `size` -> `cropSize` 提醒 // size && log.deprecated('size', 'cropSize', 'CropUpload'); var popup = this.cropperPopup(prefixCls); return _react2['default'].createElement( 'div', { id: 'upload_' + id, className: className, style: style }, _react2['default'].createElement( 'span', { role: 'upload', onClick: this.onClick }, _react2['default'].createElement('input', { id: id, type: 'file', ref: 'file', accept: this.props.accept, multiple: false, style: { display: 'none' }, onChange: this.onChange }), children ), popup ); }; return CropUpload; }(_react2['default'].Component), _class.propTypes = { /** * 样式前缀 */ prefix: _propTypes2['default'].string, id: _propTypes2['default'].string, /** * 必选参数,上传的地址。使用 fileserver,跨域解决方案参考 [fileserver 接入](#fileserver),[`非 fileserver` 使用说明](#not-fileserver) */ action: _propTypes2['default'].string, /** * 可选参数,传递给服务器的文件参数 */ name: _propTypes2['default'].string, /** * 可选参数,设置裁剪图片生成的尺寸,如设置 `100`,会生成 `100*100` 的图片 */ cropSize: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object]), size: _propTypes2['default'].any, /** * 可选参数,设置裁剪框的最小尺寸 */ minCropBoxSize: _propTypes2['default'].number, /** * 自定义类名 */ className: _propTypes2['default'].string, /** * 自定义内联样式 */ style: _propTypes2['default'].object, /** * 可选参数,设置上传的请求头部 */ headers: _propTypes2['default'].object, withCredentials: _propTypes2['default'].bool, /** * 可选参数,数据格式化函数,配合自定义 `action` 使用,参数为服务器的响应数据,详见 [formatter](#formatter) */ formatter: _propTypes2['default'].func, /** * 上传额外传参(如果使用 `fileserver` 上传,参数格式为 { scene: '场景名' }) */ data: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].func]), multipart: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].func]), language: _propTypes2['default'].string, /** * 自定义语言包,会与默认提供的语言包做合并操作,请严格按照默认语言包的格式,参考 [demo](http://next.alibaba-inc.com/demo/pc/upload#react-Upload-2) */ locale: _propTypes2['default'].object, /** * 是否使用预览功能 */ preview: _propTypes2['default'].bool, /** * 预览展示列表,用来配置预览元素。目前仅支持 `80`、`60`、`40` 三种,例如,配置 `[80, 40]`,会展示 `80*80` 以及 `40*40` 两种尺寸 */ previewList: _propTypes2['default'].array, /** * 裁剪弹层自定义类名 */ popupClassName: _propTypes2['default'].string, /** * 裁剪比例,例如 `1 / 2` 表示 `宽 / 高`。**注意:1、设置了裁剪比例,而且值不等于 `1` 时,不能使用预览功能;2、设置成 'auto' 可以支持任意裁剪比例** */ aspectRatio: _propTypes2['default'].number, /** * 可选参数,[定义裁剪框的模式](https://github.com/fengyuanchen/cropperjs#viewmode) */ viewMode: _propTypes2['default'].number, /** * 可选参数,[定义自动裁剪区域的尺寸(百分比)](https://github.com/fengyuanchen/cropperjs#autocroparea),介于 `0` 与 `1` 之间的值 */ autoCropArea: _propTypes2['default'].number, /** * 图片是否可以伸缩 */ zoomable: _propTypes2['default'].bool, children: _propTypes2['default'].node, /** * 可选参数,选择文件后、唤起裁剪框前的钩子,参数为上传的文件。若返回 `false`、`Promise.reject()` 或者 `Promise.resolve(false)` 都会阻断后续流程,不会唤起裁剪框及后续动作 */ beforeCrop: _propTypes2['default'].func, /** * 完成裁剪并上传的回调函数,参数为裁剪后的文件的base64字符串数据 */ onCrop: _propTypes2['default'].func, /** * 可选参数,裁剪文件改变时触发 */ onChange: _propTypes2['default'].func, /** * 可选参数,点击裁剪之后、上传文件之前的钩子,参数为上传的文件,若返回 `false` 则停止上传 */ beforeUpload: _propTypes2['default'].func, onProgress: _propTypes2['default'].func, /** * 上传成功回调函数,`res` 为后台响应,`dataUrl` 为裁剪后的文件的base64字符串数据(注意与 `Upload` 的参数区别) */ onSuccess: _propTypes2['default'].func, /** * 可选参数,上传失败回调函数,参数为上传失败的文件信息 */ onError: _propTypes2['default'].func, /** * 图片类型 */ accept: _propTypes2['default'].string }, _class.defaultProps = { prefix: 'next-', action: '//kfupload.alibaba.com/mupload', withCredentials: false, name: 'avatar', onCrop: noop, beforeUpload: noop, onChange: noop, onProgress: noop, onSuccess: noop, onError: noop, accept: 'image/png,image/jpg,image/jpeg,image/bmp,image/gif' }, _class.contextTypes = { prefix: _propTypes2['default'].string }, _temp); CropUpload.displayName = 'CropUpload'; exports['default'] = (0, _nextLocaleProvider2['default'])(CropUpload); module.exports = exports['default']; /***/ }), /***/ 2709: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactDom = __webpack_require__(4); var _reactDom2 = _interopRequireDefault(_reactDom); var _cropperjs = __webpack_require__(2710); var _cropperjs2 = _interopRequireDefault(_cropperjs); var _objectAssign = __webpack_require__(76); var _objectAssign2 = _interopRequireDefault(_objectAssign); var _nextUtil = __webpack_require__(889); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /* eslint-disable */ /** * Fork from https://github.com/roadmanfong/react-cropper */ var optionProps = ['dragMode', 'aspectRatio', 'data', 'minCropBoxWidth', 'minCropBoxHeight', // unchangeable props start from here 'viewMode', 'preview', 'responsive', 'restore', 'checkCrossOrigin', 'checkOrientation', 'modal', 'guides', 'center', 'highlight', 'background', 'autoCrop', 'autoCropArea', 'movable', 'rotatable', 'scalable', 'zoomable', 'zoomOnTouch', 'zoomOnWheel', 'wheelZoomRation', 'cropBoxMovable', 'cropBoxResizable', 'toggleDragModeOnDblclick', 'minContainerWidth', 'minContainerHeight', 'minCanvasWidth', 'minCanvasHeight', 'build', 'built', 'cropstart', 'cropmove', 'cropend', 'crop', 'zoom']; var unchangeableProps = optionProps.slice(3); var ReactCropper = function (_Component) { _inherits(ReactCropper, _Component); function ReactCropper() { _classCallCheck(this, ReactCropper); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } ReactCropper.prototype.componentDidMount = function componentDidMount() { var _this2 = this; var options = Object.keys(this.props).filter(function (propKey) { return optionProps.indexOf(propKey) !== -1; }).reduce(function (prevOptions, propKey) { return (0, _objectAssign2['default'])({}, prevOptions, _defineProperty({}, propKey, _this2.props[propKey])); }, {}); this.img = _reactDom2['default'].findDOMNode(this.refs.img); this.cropper = new _cropperjs2['default'](this.img, options); }; ReactCropper.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if (nextProps.src !== this.props.src) { this.cropper.reset().clear().replace(nextProps.src); } if (nextProps.aspectRatio !== this.props.aspectRatio) { this.setAspectRatio(nextProps.aspectRatio); } if (nextProps.data !== this.props.data) { this.setData(nextProps.data); } if (nextProps.dragMode !== this.props.dragMode) { this.setDragMode(nextProps.dragMode); } if (nextProps.cropBoxData !== this.props.cropBoxData) { this.setCropBoxData(nextProps.cropBoxData); } if (nextProps.canvasData !== this.props.canvasData) { this.setCanvasData(nextProps.canvasData); } if (nextProps.moveTo !== this.props.moveTo) { if (nextProps.moveTo.length > 1) { this.moveTo(nextProps.moveTo[0], nextProps.moveTo[1]); } else { this.moveTo(nextProps.moveTo[0]); } } if (nextProps.zoomTo !== this.props.zoomTo) { this.zoomTo(nextProps.zoomTo); } if (nextProps.rotateTo !== this.props.rotateTo) { this.rotateTo(nextProps.rotateTo); } if (nextProps.scaleX !== this.props.scaleX) { this.scaleX(nextProps.scaleX); } if (nextProps.scaleY !== this.props.scaleY) { this.scaleY(nextProps.scaleY); } if (nextProps.enable !== this.props.enable) { if (nextProps.enable) { this.enable(); } else { this.disable(); } } for (var propKey in nextProps) { if (nextProps[propKey] !== this.props[propKey] && unchangeableProps.indexOf(propKey) !== -1) { throw new Error('prop: ' + propKey + ' can\'t be change after componentDidMount'); } } }; ReactCropper.prototype.componentWillUnmount = function componentWillUnmount() { if (this.img) { // Destroy the cropper, this makes sure events such as resize are cleaned up and do not leak this.cropper.destroy(); delete this.img; delete this.cropper; } }; ReactCropper.prototype.setDragMode = function setDragMode(mode) { return this.cropper.setDragMode(mode); }; ReactCropper.prototype.setAspectRatio = function setAspectRatio(aspectRatio) { return this.cropper.setAspectRatio(aspectRatio); }; ReactCropper.prototype.getCroppedCanvas = function getCroppedCanvas(options) { return this.cropper.getCroppedCanvas(options); }; ReactCropper.prototype.setCropBoxData = function setCropBoxData(data) { return this.cropper.setCropBoxData(data); }; ReactCropper.prototype.getCropBoxData = function getCropBoxData() { return this.cropper.getCropBoxData(); }; ReactCropper.prototype.setCanvasData = function setCanvasData(data) { return this.cropper.setCanvasData(data); }; ReactCropper.prototype.getCanvasData = function getCanvasData() { return this.cropper.getCanvasData(); }; ReactCropper.prototype.getImageData = function getImageData() { return this.cropper.getImageData(); }; ReactCropper.prototype.getContainerData = function getContainerData() { return this.cropper.getContainerData(); }; ReactCropper.prototype.setData = function setData(data) { return this.cropper.setData(data); }; ReactCropper.prototype.getData = function getData(rounded) { return this.cropper.getData(rounded); }; ReactCropper.prototype.crop = function crop() { return this.cropper.crop(); }; ReactCropper.prototype.move = function move(offsetX, offsetY) { return this.cropper.move(offsetX, offsetY); }; ReactCropper.prototype.moveTo = function moveTo(x, y) { return this.cropper.moveTo(x, y); }; ReactCropper.prototype.zoom = function zoom(ratio) { return this.cropper.zoom(ratio); }; ReactCropper.prototype.zoomTo = function zoomTo(ratio) { return this.cropper.zoomTo(ratio); }; ReactCropper.prototype.rotate = function rotate(degree) { return this.cropper.rotate(degree); }; ReactCropper.prototype.rotateTo = function rotateTo(degree) { return this.cropper.rotateTo(degree); }; ReactCropper.prototype.enable = function enable() { return this.cropper.enable(); }; ReactCropper.prototype.disable = function disable() { return this.cropper.disable(); }; ReactCropper.prototype.reset = function reset() { return this.cropper.reset(); }; ReactCropper.prototype.clear = function clear() { return this.cropper.clear(); }; ReactCropper.prototype.replace = function replace(url, onlyColorChanged) { return this.cropper.replace(url, onlyColorChanged); }; ReactCropper.prototype.scale = function scale(scaleX, scaleY) { return this.cropper.scale(scaleX, scaleY); }; ReactCropper.prototype.scaleX = function scaleX(_scaleX) { return this.cropper.scaleX(_scaleX); }; ReactCropper.prototype.scaleY = function scaleY(_scaleY) { return this.cropper.scaleY(_scaleY); }; ReactCropper.prototype.render = function render() { var _props = this.props, src = _props.src, alt = _props.alt, crossOrigin = _props.crossOrigin; var cleanProps = (0, _nextUtil.pickAttrs)(this.props); return _react2['default'].createElement( 'div', _extends({}, cleanProps, { src: null, crossOrigin: null, alt: null }), _react2['default'].createElement('img', { crossOrigin: crossOrigin, ref: 'img', src: src, alt: alt === undefined ? 'picture' : alt, style: { opacity: 0 } }) ); }; return ReactCropper; }(_react.Component); ReactCropper.displayName = 'ReactCropper'; ReactCropper.propTypes = { // react cropper options crossOrigin: _propTypes2['default'].string, src: _propTypes2['default'].string, alt: _propTypes2['default'].string, // props of option can be changed after componentDidmount aspectRatio: _propTypes2['default'].number, dragMode: _propTypes2['default'].oneOf(['crop', 'move', 'none']), data: _propTypes2['default'].shape({ x: _propTypes2['default'].number, y: _propTypes2['default'].number, width: _propTypes2['default'].number, height: _propTypes2['default'].number, rotate: _propTypes2['default'].number, scaleX: _propTypes2['default'].number, scaleY: _propTypes2['default'].number }), scaleX: _propTypes2['default'].number, scaleY: _propTypes2['default'].number, enable: _propTypes2['default'].bool, cropBoxData: _propTypes2['default'].shape({ left: _propTypes2['default'].number, top: _propTypes2['default'].number, width: _propTypes2['default'].number, hegiht: _propTypes2['default'].number }), canvasData: _propTypes2['default'].shape({ left: _propTypes2['default'].number, top: _propTypes2['default'].number, width: _propTypes2['default'].number, hegiht: _propTypes2['default'].number }), zoomTo: _propTypes2['default'].number, moveTo: _propTypes2['default'].arrayOf(_propTypes2['default'].number), rotateTo: _propTypes2['default'].number, // cropperjs options // https://github.com/fengyuanchen/cropperjs#options // aspectRatio, dragMode, data viewMode: _propTypes2['default'].oneOf([0, 1, 2, 3]), preview: _propTypes2['default'].string, responsive: _propTypes2['default'].bool, restore: _propTypes2['default'].bool, checkCrossOrigin: _propTypes2['default'].bool, checkOrientation: _propTypes2['default'].bool, modal: _propTypes2['default'].bool, guides: _propTypes2['default'].bool, center: _propTypes2['default'].bool, highlight: _propTypes2['default'].bool, background: _propTypes2['default'].bool, autoCrop: _propTypes2['default'].bool, autoCropArea: _propTypes2['default'].number, movable: _propTypes2['default'].bool, rotatable: _propTypes2['default'].bool, scalable: _propTypes2['default'].bool, zoomable: _propTypes2['default'].bool, zoomOnTouch: _propTypes2['default'].bool, zoomOnWheel: _propTypes2['default'].bool, wheelZoomRation: _propTypes2['default'].number, cropBoxMovable: _propTypes2['default'].bool, cropBoxResizable: _propTypes2['default'].bool, toggleDragModeOnDblclick: _propTypes2['default'].bool, minContainerWidth: _propTypes2['default'].number, minContainerHeight: _propTypes2['default'].number, minCanvasWidth: _propTypes2['default'].number, minCanvasHeight: _propTypes2['default'].number, minCropBoxWidth: _propTypes2['default'].number, minCropBoxHeight: _propTypes2['default'].number, build: _propTypes2['default'].func, built: _propTypes2['default'].func, cropstart: _propTypes2['default'].func, cropmove: _propTypes2['default'].func, cropend: _propTypes2['default'].func, crop: _propTypes2['default'].func, zoom: _propTypes2['default'].func }; ReactCropper.defaultProps = { src: null, dragMode: 'crop', data: null, scaleX: 1, scaleY: 1, enable: true, zoomTo: 1, rotateTo: 0 }; exports['default'] = ReactCropper; module.exports = exports['default']; /***/ }), /***/ 2710: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! * Cropper.js v0.7.2 * https://github.com/fengyuanchen/cropperjs * * Copyright (c) 2015-2016 Fengyuan Chen * Released under the MIT license * * Date: 2016-06-08T12:25:05.932Z */ (function (global, factory) { if (typeof module === 'object' && typeof module.exports === 'object') { module.exports = global.document ? factory(global, true) : function (window) { if (!window.document) { throw new Error('Cropper requires a window with a document'); } return factory(window); }; } else { factory(global); } })(typeof window !== 'undefined' ? window : this, function (window, noGlobal) { 'use strict'; // Globals var document = window.document; var location = window.location; var navigator = window.navigator; var ArrayBuffer = window.ArrayBuffer; var Object = window.Object; var Array = window.Array; var String = window.String; var Number = window.Number; var Math = window.Math; // Constants var NAMESPACE = 'cropper'; // Classes var CLASS_MODAL = NAMESPACE + '-modal'; var CLASS_HIDE = NAMESPACE + '-hide'; var CLASS_HIDDEN = NAMESPACE + '-hidden'; var CLASS_INVISIBLE = NAMESPACE + '-invisible'; var CLASS_MOVE = NAMESPACE + '-move'; var CLASS_CROP = NAMESPACE + '-crop'; var CLASS_DISABLED = NAMESPACE + '-disabled'; var CLASS_BG = NAMESPACE + '-bg'; // Events var EVENT_MOUSE_DOWN = 'mousedown touchstart pointerdown MSPointerDown'; var EVENT_MOUSE_MOVE = 'mousemove touchmove pointermove MSPointerMove'; var EVENT_MOUSE_UP = 'mouseup touchend touchcancel pointerup pointercancel MSPointerUp MSPointerCancel'; var EVENT_WHEEL = 'wheel mousewheel DOMMouseScroll'; var EVENT_DBLCLICK = 'dblclick'; var EVENT_RESIZE = 'resize'; var EVENT_ERROR = 'error'; var EVENT_LOAD = 'load'; var EVENT_BUILD = 'build'; var EVENT_BUILT = 'built'; var EVENT_CROP_START = 'cropstart'; var EVENT_CROP_MOVE = 'cropmove'; var EVENT_CROP_END = 'cropend'; var EVENT_CROP = 'crop'; var EVENT_ZOOM = 'zoom'; // RegExps var REGEXP_ACTIONS = /e|w|s|n|se|sw|ne|nw|all|crop|move|zoom/; var REGEXP_SUFFIX = /width|height|left|top|marginLeft|marginTop/; var REGEXP_ORIGINS = /^(https?:)\/\/([^\:\/\?#]+):?(\d*)/i; var REGEXP_TRIM = /^\s+(.*)\s+$/; var REGEXP_SPACES = /\s+/; var REGEXP_DATA_URL = /^data\:/; var REGEXP_DATA_URL_HEAD = /^data\:([^\;]+)\;base64,/; var REGEXP_DATA_URL_JPEG = /^data\:image\/jpeg.*;base64,/; var REGEXP_HYPHENATE = /([a-z\d])([A-Z])/g; // Data var DATA_PREVIEW = 'preview'; var DATA_ACTION = 'action'; // Actions var ACTION_EAST = 'e'; var ACTION_WEST = 'w'; var ACTION_SOUTH = 's'; var ACTION_NORTH = 'n'; var ACTION_SOUTH_EAST = 'se'; var ACTION_SOUTH_WEST = 'sw'; var ACTION_NORTH_EAST = 'ne'; var ACTION_NORTH_WEST = 'nw'; var ACTION_ALL = 'all'; var ACTION_CROP = 'crop'; var ACTION_MOVE = 'move'; var ACTION_ZOOM = 'zoom'; var ACTION_NONE = 'none'; // Supports var SUPPORT_CANVAS = !!document.createElement('canvas').getContext; var IS_SAFARI_OR_UIWEBVIEW = navigator && /(Macintosh|iPhone|iPod|iPad).*AppleWebKit/i.test(navigator.userAgent); // Maths var min = Math.min; var max = Math.max; var abs = Math.abs; var sin = Math.sin; var cos = Math.cos; var sqrt = Math.sqrt; var round = Math.round; var floor = Math.floor; var PI = Math.PI; // Utilities var objectProto = Object.prototype; var toString = objectProto.toString; var hasOwnProperty = objectProto.hasOwnProperty; var slice = Array.prototype.slice; var fromCharCode = String.fromCharCode; function typeOf(obj) { return toString.call(obj).slice(8, -1).toLowerCase(); } function isNumber(num) { return typeof num === 'number' && !isNaN(num); } function isUndefined(obj) { return typeof obj === 'undefined'; } function isObject(obj) { return typeof obj === 'object' && obj !== null; } function isPlainObject(obj) { var constructor; var prototype; if (!isObject(obj)) { return false; } try { constructor = obj.constructor; prototype = constructor.prototype; return constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf'); } catch (e) { return false; } } function isFunction(fn) { return typeOf(fn) === 'function'; } function isArray(arr) { return Array.isArray ? Array.isArray(arr) : typeOf(arr) === 'array'; } function toArray(obj, offset) { offset = offset >= 0 ? offset : 0; if (Array.from) { return Array.from(obj).slice(offset); } return slice.call(obj, offset); } function trim(str) { if (typeof str === 'string') { str = str.trim ? str.trim() : str.replace(REGEXP_TRIM, '$1'); } return str; } function each(obj, callback) { var length; var i; if (obj && isFunction(callback)) { if (isArray(obj) || isNumber(obj.length)/* array-like */) { for (i = 0, length = obj.length; i < length; i++) { if (callback.call(obj, obj[i], i, obj) === false) { break; } } } else if (isObject(obj)) { for (i in obj) { if (obj.hasOwnProperty(i)) { if (callback.call(obj, obj[i], i, obj) === false) { break; } } } } } return obj; } function extend(obj) { var args; if (arguments.length > 1) { args = toArray(arguments); if (Object.assign) { return Object.assign.apply(Object, args); } args.shift(); each(args, function (arg) { each(arg, function (prop, i) { obj[i] = prop; }); }); } return obj; } function proxy(fn, context) { var args = toArray(arguments, 2); return function () { return fn.apply(context, args.concat(toArray(arguments))); }; } function setStyle(element, styles) { var style = element.style; each(styles, function (value, property) { if (REGEXP_SUFFIX.test(property) && isNumber(value)) { value += 'px'; } style[property] = value; }); } function hasClass(element, value) { return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1; } function addClass(element, value) { var className; if (isNumber(element.length)) { return each(element, function (elem) { addClass(elem, value); }); } if (element.classList) { return element.classList.add(value); } className = trim(element.className); if (!className) { element.className = value; } else if (className.indexOf(value) < 0) { element.className = className + ' ' + value; } } function removeClass(element, value) { if (isNumber(element.length)) { return each(element, function (elem) { removeClass(elem, value); }); } if (element.classList) { return element.classList.remove(value); } if (element.className.indexOf(value) >= 0) { element.className = element.className.replace(value, ''); } } function toggleClass(element, value, added) { if (isNumber(element.length)) { return each(element, function (elem) { toggleClass(elem, value, added); }); } // IE10-11 doesn't support the second parameter of `classList.toggle` if (added) { addClass(element, value); } else { removeClass(element, value); } } function hyphenate(str) { return str.replace(REGEXP_HYPHENATE, '$1-$2').toLowerCase(); } function getData(element, name) { if (isObject(element[name])) { return element[name]; } else if (element.dataset) { return element.dataset[name]; } return element.getAttribute('data-' + hyphenate(name)); } function setData(element, name, data) { if (isObject(data)) { element[name] = data; } else if (element.dataset) { element.dataset[name] = data; } else { element.setAttribute('data-' + hyphenate(name), data); } } function removeData(element, name) { if (isObject(element[name])) { delete element[name]; } else if (element.dataset) { delete element.dataset[name]; } else { element.removeAttribute('data-' + hyphenate(name)); } } function removeListener(element, type, handler) { var types = trim(type).split(REGEXP_SPACES); if (types.length > 1) { return each(types, function (type) { removeListener(element, type, handler); }); } if (element.removeEventListener) { element.removeEventListener(type, handler, false); } else if (element.detachEvent) { element.detachEvent('on' + type, handler); } } function addListener(element, type, handler, once) { var types = trim(type).split(REGEXP_SPACES); var originalHandler = handler; if (types.length > 1) { return each(types, function (type) { addListener(element, type, handler); }); } if (once) { handler = function () { removeListener(element, type, handler); return originalHandler.apply(element, arguments); }; } if (element.addEventListener) { element.addEventListener(type, handler, false); } else if (element.attachEvent) { element.attachEvent('on' + type, handler); } } function dispatchEvent(element, type, data) { var event; if (element.dispatchEvent) { // Event and CustomEvent on IE9-11 are global objects, not constructors if (isFunction(Event) && isFunction(CustomEvent)) { if (isUndefined(data)) { event = new Event(type, { bubbles: true, cancelable: true }); } else { event = new CustomEvent(type, { detail: data, bubbles: true, cancelable: true }); } } else { // IE9-11 if (isUndefined(data)) { event = document.createEvent('Event'); event.initEvent(type, true, true); } else { event = document.createEvent('CustomEvent'); event.initCustomEvent(type, true, true, data); } } // IE9+ return element.dispatchEvent(event); } else if (element.fireEvent) { // IE6-10 (native events only) return element.fireEvent('on' + type); } } function preventDefault(e) { if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } } function getEvent(event) { var e = event || window.event; var doc; // Fix target property (IE8) if (!e.target) { e.target = e.srcElement || document; } if (!isNumber(e.pageX)) { doc = document.documentElement; e.pageX = e.clientX + (window.scrollX || doc && doc.scrollLeft || 0) - (doc && doc.clientLeft || 0); e.pageY = e.clientY + (window.scrollY || doc && doc.scrollTop || 0) - (doc && doc.clientTop || 0); } return e; } function getOffset(element) { var doc = document.documentElement; var box = element.getBoundingClientRect(); return { left: box.left + (window.scrollX || doc && doc.scrollLeft || 0) - (doc && doc.clientLeft || 0), top: box.top + (window.scrollY || doc && doc.scrollTop || 0) - (doc && doc.clientTop || 0) }; } function getTouchesCenter(touches) { var length = touches.length; var pageX = 0; var pageY = 0; if (length) { each(touches, function (touch) { pageX += touch.pageX; pageY += touch.pageY; }); pageX /= length; pageY /= length; } return { pageX: pageX, pageY: pageY }; } function getByTag(element, tagName) { return element.getElementsByTagName(tagName); } function getByClass(element, className) { return element.getElementsByClassName ? element.getElementsByClassName(className) : element.querySelectorAll('.' + className); } function createElement(tagName) { return document.createElement(tagName); } function appendChild(element, elem) { element.appendChild(elem); } function removeChild(element) { if (element.parentNode) { element.parentNode.removeChild(element); } } function empty(element) { while (element.firstChild) { element.removeChild(element.firstChild); } } function isCrossOriginURL(url) { var parts = url.match(REGEXP_ORIGINS); return parts && ( parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port ); } function addTimestamp(url) { var timestamp = 'timestamp=' + (new Date()).getTime(); return (url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp); } function getImageSize(image, callback) { var newImage; // Modern browsers (ignore Safari) if (image.naturalWidth && !IS_SAFARI_OR_UIWEBVIEW) { return callback(image.naturalWidth, image.naturalHeight); } // IE8: Don't use `new Image()` here newImage = createElement('img'); newImage.onload = function () { callback(this.width, this.height); }; newImage.src = image.src; } function getTransform(data) { var transforms = []; var rotate = data.rotate; var scaleX = data.scaleX; var scaleY = data.scaleY; // Scale should come first before rotate if (isNumber(scaleX) && isNumber(scaleY)) { transforms.push('scale(' + scaleX + ',' + scaleY + ')'); } if (isNumber(rotate)) { transforms.push('rotate(' + rotate + 'deg)'); } return transforms.length ? transforms.join(' ') : 'none'; } function getRotatedSizes(data, reversed) { var deg = abs(data.degree) % 180; var arc = (deg > 90 ? (180 - deg) : deg) * PI / 180; var sinArc = sin(arc); var cosArc = cos(arc); var width = data.width; var height = data.height; var aspectRatio = data.aspectRatio; var newWidth; var newHeight; if (!reversed) { newWidth = width * cosArc + height * sinArc; newHeight = width * sinArc + height * cosArc; } else { newWidth = width / (cosArc + sinArc / aspectRatio); newHeight = newWidth / aspectRatio; } return { width: newWidth, height: newHeight }; } function getSourceCanvas(image, data) { var canvas = createElement('canvas'); var context = canvas.getContext('2d'); var dstX = 0; var dstY = 0; var dstWidth = data.naturalWidth; var dstHeight = data.naturalHeight; var rotate = data.rotate; var scaleX = data.scaleX; var scaleY = data.scaleY; var scalable = isNumber(scaleX) && isNumber(scaleY) && (scaleX !== 1 || scaleY !== 1); var rotatable = isNumber(rotate) && rotate !== 0; var advanced = rotatable || scalable; var canvasWidth = dstWidth * abs(scaleX || 1); var canvasHeight = dstHeight * abs(scaleY || 1); var translateX; var translateY; var rotated; if (scalable) { translateX = canvasWidth / 2; translateY = canvasHeight / 2; } if (rotatable) { rotated = getRotatedSizes({ width: canvasWidth, height: canvasHeight, degree: rotate }); canvasWidth = rotated.width; canvasHeight = rotated.height; translateX = canvasWidth / 2; translateY = canvasHeight / 2; } canvas.width = canvasWidth; canvas.height = canvasHeight; if (advanced) { dstX = -dstWidth / 2; dstY = -dstHeight / 2; context.save(); context.translate(translateX, translateY); } // Scale should come first before rotate as in the "getTransform" function if (scalable) { context.scale(scaleX, scaleY); } if (rotatable) { context.rotate(rotate * PI / 180); } context.drawImage(image, floor(dstX), floor(dstY), floor(dstWidth), floor(dstHeight)); if (advanced) { context.restore(); } return canvas; } function getStringFromCharCode(dataView, start, length) { var str = ''; var i = start; for (length += start; i < length; i++) { str += fromCharCode(dataView.getUint8(i)); } return str; } function getOrientation(arrayBuffer) { var dataView = new DataView(arrayBuffer); var length = dataView.byteLength; var orientation; var exifIDCode; var tiffOffset; var firstIFDOffset; var littleEndian; var endianness; var app1Start; var ifdStart; var offset; var i; // Only handle JPEG image (start by 0xFFD8) if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) { offset = 2; while (offset < length) { if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) { app1Start = offset; break; } offset++; } } if (app1Start) { exifIDCode = app1Start + 4; tiffOffset = app1Start + 10; if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') { endianness = dataView.getUint16(tiffOffset); littleEndian = endianness === 0x4949; if (littleEndian || endianness === 0x4D4D /* bigEndian */) { if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) { firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian); if (firstIFDOffset >= 0x00000008) { ifdStart = tiffOffset + firstIFDOffset; } } } } } if (ifdStart) { length = dataView.getUint16(ifdStart, littleEndian); for (i = 0; i < length; i++) { offset = ifdStart + i * 12 + 2; if (dataView.getUint16(offset, littleEndian) === 0x0112 /* Orientation */) { // 8 is the offset of the current tag's value offset += 8; // Get the original orientation value orientation = dataView.getUint16(offset, littleEndian); // Override the orientation with its default value for Safari if (IS_SAFARI_OR_UIWEBVIEW) { dataView.setUint16(offset, 1, littleEndian); } break; } } } return orientation; } function dataURLToArrayBuffer(dataURL) { var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, ''); var binary = atob(base64); var length = binary.length; var arrayBuffer = new ArrayBuffer(length); var dataView = new Uint8Array(arrayBuffer); var i; for (i = 0; i < length; i++) { dataView[i] = binary.charCodeAt(i); } return arrayBuffer; } // Only available for JPEG image function arrayBufferToDataURL(arrayBuffer) { var dataView = new Uint8Array(arrayBuffer); var length = dataView.length; var base64 = ''; var i; for (i = 0; i < length; i++) { base64 += fromCharCode(dataView[i]); } return 'data:image/jpeg;base64,' + btoa(base64); } function Cropper(element, options) { var _this = this; _this.element = element; _this.options = extend({}, Cropper.DEFAULTS, isPlainObject(options) && options); _this.ready = false; _this.built = false; _this.complete = false; _this.rotated = false; _this.cropped = false; _this.disabled = false; _this.replaced = false; _this.limited = false; _this.wheeling = false; _this.isImg = false; _this.originalUrl = ''; _this.canvasData = null; _this.cropBoxData = null; _this.previews = null; _this.init(); } Cropper.prototype = { constructor: Cropper, init: function () { var _this = this; var element = _this.element; var tagName = element.tagName.toLowerCase(); var url; if (getData(element, NAMESPACE)) { return; } setData(element, NAMESPACE, _this); if (tagName === 'img') { _this.isImg = true; // e.g.: "img/picture.jpg" _this.originalUrl = url = element.getAttribute('src'); // Stop when it's a blank image if (!url) { return; } // e.g.: "http://example.com/img/picture.jpg" url = element.src; } else if (tagName === 'canvas' && SUPPORT_CANVAS) { url = element.toDataURL(); } _this.load(url); }, load: function (url) { var _this = this; var options = _this.options; var element = _this.element; var xhr; if (!url) { return; } if (isFunction(options.build)) { addListener(element, EVENT_BUILD, options.build, true); } if (dispatchEvent(element, EVENT_BUILD) === false) { return; } _this.url = url; _this.imageData = {}; if (!options.checkOrientation || !ArrayBuffer) { return _this.clone(); } // XMLHttpRequest disallows to open a Data URL in some browsers like IE11 and Safari if (REGEXP_DATA_URL.test(url)) { return REGEXP_DATA_URL_JPEG.test(url) ? _this.read(dataURLToArrayBuffer(url)) : _this.clone(); } xhr = new XMLHttpRequest(); xhr.onerror = xhr.onabort = function () { _this.clone(); }; xhr.onload = function () { _this.read(this.response); }; if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) { url = addTimestamp(url); } xhr.open('get', url); xhr.responseType = 'arraybuffer'; xhr.send(); }, read: function (arrayBuffer) { var _this = this; var options = _this.options; var orientation = getOrientation(arrayBuffer); var imageData = _this.imageData; var rotate; var scaleX; var scaleY; if (orientation > 1) { _this.url = arrayBufferToDataURL(arrayBuffer); switch (orientation) { // flip horizontal case 2: scaleX = -1; break; // rotate left 180° case 3: rotate = -180; break; // flip vertical case 4: scaleY = -1; break; // flip vertical + rotate right 90° case 5: rotate = 90; scaleY = -1; break; // rotate right 90° case 6: rotate = 90; break; // flip horizontal + rotate right 90° case 7: rotate = 90; scaleX = -1; break; // rotate left 90° case 8: rotate = -90; break; } } if (options.rotatable) { imageData.rotate = rotate; } if (options.scalable) { imageData.scaleX = scaleX; imageData.scaleY = scaleY; } _this.clone(); }, clone: function () { var _this = this; var element = _this.element; var url = _this.url; var crossOrigin; var crossOriginUrl; var image; var start; var stop; if (_this.options.checkCrossOrigin && isCrossOriginURL(url)) { crossOrigin = element.crossOrigin; if (crossOrigin) { crossOriginUrl = url; } else { crossOrigin = 'anonymous'; // Bust cache when there is not a "crossOrigin" property crossOriginUrl = addTimestamp(url); } } _this.crossOrigin = crossOrigin; _this.crossOriginUrl = crossOriginUrl; image = createElement('img'); if (crossOrigin) { image.crossOrigin = crossOrigin; } image.src = crossOriginUrl || url; _this.image = image; _this._start = start = proxy(_this.start, _this); _this._stop = stop = proxy(_this.stop, _this); if (_this.isImg) { if (element.complete) { _this.start(); } else { addListener(element, EVENT_LOAD, start); } } else { addListener(image, EVENT_LOAD, start); addListener(image, EVENT_ERROR, stop); addClass(image, CLASS_HIDE); element.parentNode.insertBefore(image, element.nextSibling); } }, start: function (event) { var _this = this; var image = _this.isImg ? _this.element : _this.image; if (event) { removeListener(image, EVENT_LOAD, _this._start); removeListener(image, EVENT_ERROR, _this._stop); } getImageSize(image, function (naturalWidth, naturalHeight) { extend(_this.imageData, { naturalWidth: naturalWidth, naturalHeight: naturalHeight, aspectRatio: naturalWidth / naturalHeight }); _this.ready = true; _this.build(); }); }, stop: function () { var _this = this; var image = _this.image; removeListener(image, EVENT_LOAD, _this._start); removeListener(image, EVENT_ERROR, _this._stop); removeChild(image); _this.image = null; }, build: function () { var _this = this; var options = _this.options; var element = _this.element; var image = _this.image; var container; var template; var cropper; var canvas; var dragBox; var cropBox; var face; if (!_this.ready) { return; } // Unbuild first when replace if (_this.built) { _this.unbuild(); } template = createElement('div'); template.innerHTML = Cropper.TEMPLATE; // Create cropper elements _this.container = container = element.parentNode; _this.cropper = cropper = getByClass(template, 'cropper-container')[0]; _this.canvas = canvas = getByClass(cropper, 'cropper-canvas')[0]; _this.dragBox = dragBox = getByClass(cropper, 'cropper-drag-box')[0]; _this.cropBox = cropBox = getByClass(cropper, 'cropper-crop-box')[0]; _this.viewBox = getByClass(cropper, 'cropper-view-box')[0]; _this.face = face = getByClass(cropBox, 'cropper-face')[0]; appendChild(canvas, image); // Hide the original image addClass(element, CLASS_HIDDEN); // Inserts the cropper after to the current image container.insertBefore(cropper, element.nextSibling); // Show the image if is hidden if (!_this.isImg) { removeClass(image, CLASS_HIDE); } _this.initPreview(); _this.bind(); options.aspectRatio = max(0, options.aspectRatio) || NaN; options.viewMode = max(0, min(3, round(options.viewMode))) || 0; if (options.autoCrop) { _this.cropped = true; if (options.modal) { addClass(dragBox, CLASS_MODAL); } } else { addClass(cropBox, CLASS_HIDDEN); } if (!options.guides) { addClass(getByClass(cropBox, 'cropper-dashed'), CLASS_HIDDEN); } if (!options.center) { addClass(getByClass(cropBox, 'cropper-center'), CLASS_HIDDEN); } if (options.background) { addClass(cropper, CLASS_BG); } if (!options.highlight) { addClass(face, CLASS_INVISIBLE); } if (options.cropBoxMovable) { addClass(face, CLASS_MOVE); setData(face, DATA_ACTION, ACTION_ALL); } if (!options.cropBoxResizable) { addClass(getByClass(cropBox, 'cropper-line'), CLASS_HIDDEN); addClass(getByClass(cropBox, 'cropper-point'), CLASS_HIDDEN); } _this.setDragMode(options.dragMode); _this.render(); _this.built = true; _this.setData(options.data); // Call the built asynchronously to keep "image.cropper" is defined setTimeout(function () { if (isFunction(options.built)) { addListener(element, EVENT_BUILT, options.built, true); } dispatchEvent(element, EVENT_BUILT); dispatchEvent(element, EVENT_CROP, _this.getData()); _this.complete = true; }, 0); }, unbuild: function () { var _this = this; if (!_this.built) { return; } _this.built = false; _this.complete = false; _this.initialImageData = null; // Clear `initialCanvasData` is necessary when replace _this.initialCanvasData = null; _this.initialCropBoxData = null; _this.containerData = null; _this.canvasData = null; // Clear `cropBoxData` is necessary when replace _this.cropBoxData = null; _this.unbind(); _this.resetPreview(); _this.previews = null; _this.viewBox = null; _this.cropBox = null; _this.dragBox = null; _this.canvas = null; _this.container = null; removeChild(_this.cropper); _this.cropper = null; }, render: function () { var _this = this; _this.initContainer(); _this.initCanvas(); _this.initCropBox(); _this.renderCanvas(); if (_this.cropped) { _this.renderCropBox(); } }, initContainer: function () { var _this = this; var options = _this.options; var element = _this.element; var container = _this.container; var cropper = _this.cropper; var containerData; addClass(cropper, CLASS_HIDDEN); removeClass(element, CLASS_HIDDEN); _this.containerData = containerData = { width: max( container.offsetWidth, Number(options.minContainerWidth) || 200 ), height: max( container.offsetHeight, Number(options.minContainerHeight) || 100 ) }; setStyle(cropper, { width: containerData.width, height: containerData.height }); addClass(element, CLASS_HIDDEN); removeClass(cropper, CLASS_HIDDEN); }, // Canvas (image wrapper) initCanvas: function () { var _this = this; var viewMode = _this.options.viewMode; var containerData = _this.containerData; var imageData = _this.imageData; var rotated = abs(imageData.rotate) === 90; var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth; var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight; var aspectRatio = naturalWidth / naturalHeight; var canvasWidth = containerData.width; var canvasHeight = containerData.height; var canvasData; if (containerData.height * aspectRatio > containerData.width) { if (viewMode === 3) { canvasWidth = containerData.height * aspectRatio; } else { canvasHeight = containerData.width / aspectRatio; } } else { if (viewMode === 3) { canvasHeight = containerData.width / aspectRatio; } else { canvasWidth = containerData.height * aspectRatio; } } canvasData = { naturalWidth: naturalWidth, naturalHeight: naturalHeight, aspectRatio: aspectRatio, width: canvasWidth, height: canvasHeight }; canvasData.oldLeft = canvasData.left = (containerData.width - canvasWidth) / 2; canvasData.oldTop = canvasData.top = (containerData.height - canvasHeight) / 2; _this.canvasData = canvasData; _this.limited = (viewMode === 1 || viewMode === 2); _this.limitCanvas(true, true); _this.initialImageData = extend({}, imageData); _this.initialCanvasData = extend({}, canvasData); }, limitCanvas: function (sizeLimited, positionLimited) { var _this = this; var options = _this.options; var viewMode = options.viewMode; var containerData = _this.containerData; var canvasData = _this.canvasData; var aspectRatio = canvasData.aspectRatio; var cropBoxData = _this.cropBoxData; var cropped = _this.cropped && cropBoxData; var minCanvasWidth; var minCanvasHeight; var newCanvasLeft; var newCanvasTop; if (sizeLimited) { minCanvasWidth = Number(options.minCanvasWidth) || 0; minCanvasHeight = Number(options.minCanvasHeight) || 0; if (viewMode > 1) { minCanvasWidth = max(minCanvasWidth, containerData.width); minCanvasHeight = max(minCanvasHeight, containerData.height); if (viewMode === 3) { if (minCanvasHeight * aspectRatio > minCanvasWidth) { minCanvasWidth = minCanvasHeight * aspectRatio; } else { minCanvasHeight = minCanvasWidth / aspectRatio; } } } else if (viewMode > 0) { if (minCanvasWidth) { minCanvasWidth = max( minCanvasWidth, cropped ? cropBoxData.width : 0 ); } else if (minCanvasHeight) { minCanvasHeight = max( minCanvasHeight, cropped ? cropBoxData.height : 0 ); } else if (cropped) { minCanvasWidth = cropBoxData.width; minCanvasHeight = cropBoxData.height; if (minCanvasHeight * aspectRatio > minCanvasWidth) { minCanvasWidth = minCanvasHeight * aspectRatio; } else { minCanvasHeight = minCanvasWidth / aspectRatio; } } } if (minCanvasWidth && minCanvasHeight) { if (minCanvasHeight * aspectRatio > minCanvasWidth) { minCanvasHeight = minCanvasWidth / aspectRatio; } else { minCanvasWidth = minCanvasHeight * aspectRatio; } } else if (minCanvasWidth) { minCanvasHeight = minCanvasWidth / aspectRatio; } else if (minCanvasHeight) { minCanvasWidth = minCanvasHeight * aspectRatio; } canvasData.minWidth = minCanvasWidth; canvasData.minHeight = minCanvasHeight; canvasData.maxWidth = Infinity; canvasData.maxHeight = Infinity; } if (positionLimited) { if (viewMode) { newCanvasLeft = containerData.width - canvasData.width; newCanvasTop = containerData.height - canvasData.height; canvasData.minLeft = min(0, newCanvasLeft); canvasData.minTop = min(0, newCanvasTop); canvasData.maxLeft = max(0, newCanvasLeft); canvasData.maxTop = max(0, newCanvasTop); if (cropped && _this.limited) { canvasData.minLeft = min( cropBoxData.left, cropBoxData.left + cropBoxData.width - canvasData.width ); canvasData.minTop = min( cropBoxData.top, cropBoxData.top + cropBoxData.height - canvasData.height ); canvasData.maxLeft = cropBoxData.left; canvasData.maxTop = cropBoxData.top; if (viewMode === 2) { if (canvasData.width >= containerData.width) { canvasData.minLeft = min(0, newCanvasLeft); canvasData.maxLeft = max(0, newCanvasLeft); } if (canvasData.height >= containerData.height) { canvasData.minTop = min(0, newCanvasTop); canvasData.maxTop = max(0, newCanvasTop); } } } } else { canvasData.minLeft = -canvasData.width; canvasData.minTop = -canvasData.height; canvasData.maxLeft = containerData.width; canvasData.maxTop = containerData.height; } } }, renderCanvas: function (changed) { var _this = this; var canvasData = _this.canvasData; var imageData = _this.imageData; var rotate = imageData.rotate; var aspectRatio; var rotatedData; if (_this.rotated) { _this.rotated = false; // Computes rotated sizes with image sizes rotatedData = getRotatedSizes({ width: imageData.width, height: imageData.height, degree: rotate }); aspectRatio = rotatedData.width / rotatedData.height; if (aspectRatio !== canvasData.aspectRatio) { canvasData.left -= (rotatedData.width - canvasData.width) / 2; canvasData.top -= (rotatedData.height - canvasData.height) / 2; canvasData.width = rotatedData.width; canvasData.height = rotatedData.height; canvasData.aspectRatio = aspectRatio; canvasData.naturalWidth = imageData.naturalWidth; canvasData.naturalHeight = imageData.naturalHeight; // Computes rotated sizes with natural image sizes if (rotate % 180) { rotatedData = getRotatedSizes({ width: imageData.naturalWidth, height: imageData.naturalHeight, degree: rotate }); canvasData.naturalWidth = rotatedData.width; canvasData.naturalHeight = rotatedData.height; } _this.limitCanvas(true, false); } } if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) { canvasData.left = canvasData.oldLeft; } if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) { canvasData.top = canvasData.oldTop; } canvasData.width = min( max(canvasData.width, canvasData.minWidth), canvasData.maxWidth ); canvasData.height = min( max(canvasData.height, canvasData.minHeight), canvasData.maxHeight ); _this.limitCanvas(false, true); canvasData.oldLeft = canvasData.left = min( max(canvasData.left, canvasData.minLeft), canvasData.maxLeft ); canvasData.oldTop = canvasData.top = min( max(canvasData.top, canvasData.minTop), canvasData.maxTop ); setStyle(_this.canvas, { width: canvasData.width, height: canvasData.height, left: canvasData.left, top: canvasData.top }); _this.renderImage(); if (_this.cropped && _this.limited) { _this.limitCropBox(true, true); } if (changed) { _this.output(); } }, renderImage: function (changed) { var _this = this; var canvasData = _this.canvasData; var imageData = _this.imageData; var newImageData; var reversedData; var reversedWidth; var reversedHeight; var transform; if (imageData.rotate) { reversedData = getRotatedSizes({ width: canvasData.width, height: canvasData.height, degree: imageData.rotate, aspectRatio: imageData.aspectRatio }, true); reversedWidth = reversedData.width; reversedHeight = reversedData.height; newImageData = { width: reversedWidth, height: reversedHeight, left: (canvasData.width - reversedWidth) / 2, top: (canvasData.height - reversedHeight) / 2 }; } extend(imageData, newImageData || { width: canvasData.width, height: canvasData.height, left: 0, top: 0 }); transform = getTransform(imageData); setStyle(_this.image, { width: imageData.width, height: imageData.height, marginLeft: imageData.left, marginTop: imageData.top, WebkitTransform: transform, msTransform: transform, transform: transform }); if (changed) { _this.output(); } }, initCropBox: function () { var _this = this; var options = _this.options; var aspectRatio = options.aspectRatio; var autoCropArea = Number(options.autoCropArea) || 0.8; var canvasData = _this.canvasData; var cropBoxData = { width: canvasData.width, height: canvasData.height }; if (aspectRatio) { if (canvasData.height * aspectRatio > canvasData.width) { cropBoxData.height = cropBoxData.width / aspectRatio; } else { cropBoxData.width = cropBoxData.height * aspectRatio; } } _this.cropBoxData = cropBoxData; _this.limitCropBox(true, true); // Initialize auto crop area cropBoxData.width = min( max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth ); cropBoxData.height = min( max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight ); // The width/height of auto crop area must large than "minWidth/Height" cropBoxData.width = max( cropBoxData.minWidth, cropBoxData.width * autoCropArea ); cropBoxData.height = max( cropBoxData.minHeight, cropBoxData.height * autoCropArea ); cropBoxData.oldLeft = cropBoxData.left = ( canvasData.left + (canvasData.width - cropBoxData.width) / 2 ); cropBoxData.oldTop = cropBoxData.top = ( canvasData.top + (canvasData.height - cropBoxData.height) / 2 ); _this.initialCropBoxData = extend({}, cropBoxData); }, limitCropBox: function (sizeLimited, positionLimited) { var _this = this; var options = _this.options; var aspectRatio = options.aspectRatio; var containerData = _this.containerData; var canvasData = _this.canvasData; var cropBoxData = _this.cropBoxData; var limited = _this.limited; var minCropBoxWidth; var minCropBoxHeight; var maxCropBoxWidth; var maxCropBoxHeight; if (sizeLimited) { minCropBoxWidth = Number(options.minCropBoxWidth) || 0; minCropBoxHeight = Number(options.minCropBoxHeight) || 0; // The min/maxCropBoxWidth/Height must be less than containerWidth/Height minCropBoxWidth = min(minCropBoxWidth, containerData.width); minCropBoxHeight = min(minCropBoxHeight, containerData.height); maxCropBoxWidth = min( containerData.width, limited ? canvasData.width : containerData.width ); maxCropBoxHeight = min( containerData.height, limited ? canvasData.height : containerData.height ); if (aspectRatio) { if (minCropBoxWidth && minCropBoxHeight) { if (minCropBoxHeight * aspectRatio > minCropBoxWidth) { minCropBoxHeight = minCropBoxWidth / aspectRatio; } else { minCropBoxWidth = minCropBoxHeight * aspectRatio; } } else if (minCropBoxWidth) { minCropBoxHeight = minCropBoxWidth / aspectRatio; } else if (minCropBoxHeight) { minCropBoxWidth = minCropBoxHeight * aspectRatio; } if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) { maxCropBoxHeight = maxCropBoxWidth / aspectRatio; } else { maxCropBoxWidth = maxCropBoxHeight * aspectRatio; } } // The minWidth/Height must be less than maxWidth/Height cropBoxData.minWidth = min(minCropBoxWidth, maxCropBoxWidth); cropBoxData.minHeight = min(minCropBoxHeight, maxCropBoxHeight); cropBoxData.maxWidth = maxCropBoxWidth; cropBoxData.maxHeight = maxCropBoxHeight; } if (positionLimited) { if (limited) { cropBoxData.minLeft = max(0, canvasData.left); cropBoxData.minTop = max(0, canvasData.top); cropBoxData.maxLeft = min( containerData.width, canvasData.left + canvasData.width ) - cropBoxData.width; cropBoxData.maxTop = min( containerData.height, canvasData.top + canvasData.height ) - cropBoxData.height; } else { cropBoxData.minLeft = 0; cropBoxData.minTop = 0; cropBoxData.maxLeft = containerData.width - cropBoxData.width; cropBoxData.maxTop = containerData.height - cropBoxData.height; } } }, renderCropBox: function () { var _this = this; var options = _this.options; var containerData = _this.containerData; var cropBoxData = _this.cropBoxData; if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) { cropBoxData.left = cropBoxData.oldLeft; } if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) { cropBoxData.top = cropBoxData.oldTop; } cropBoxData.width = min( max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth ); cropBoxData.height = min( max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight ); _this.limitCropBox(false, true); cropBoxData.oldLeft = cropBoxData.left = min( max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft ); cropBoxData.oldTop = cropBoxData.top = min( max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop ); if (options.movable && options.cropBoxMovable) { // Turn to move the canvas when the crop box is equal to the container setData(_this.face, DATA_ACTION, cropBoxData.width === containerData.width && cropBoxData.height === containerData.height ? ACTION_MOVE : ACTION_ALL); } setStyle(_this.cropBox, { width: cropBoxData.width, height: cropBoxData.height, left: cropBoxData.left, top: cropBoxData.top }); if (_this.cropped && _this.limited) { _this.limitCanvas(true, true); } if (!_this.disabled) { _this.output(); } }, output: function () { var _this = this; _this.preview(); if (_this.complete) { dispatchEvent(_this.element, EVENT_CROP, _this.getData()); } }, initPreview: function () { var _this = this; var preview = _this.options.preview; var image = createElement('img'); var crossOrigin = _this.crossOrigin; var url = crossOrigin ? _this.crossOriginUrl : _this.url; var previews; if (crossOrigin) { image.crossOrigin = crossOrigin; } image.src = url; appendChild(_this.viewBox, image); _this.image2 = image; if (!preview) { return; } _this.previews = previews = document.querySelectorAll(preview); each(previews, function (element) { var image = createElement('img'); // Save the original size for recover setData(element, DATA_PREVIEW, { width: element.offsetWidth, height: element.offsetHeight, html: element.innerHTML }); if (crossOrigin) { image.crossOrigin = crossOrigin; } image.src = url; /** * Override img element styles * Add `display:block` to avoid margin top issue * Add `height:auto` to override `height` attribute on IE8 * (Occur only when margin-top <= -height) */ image.style.cssText = ( 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;"' ); empty(element); appendChild(element, image); }); }, resetPreview: function () { each(this.previews, function (element) { var data = getData(element, DATA_PREVIEW); setStyle(element, { width: data.width, height: data.height }); element.innerHTML = data.html; removeData(element, DATA_PREVIEW); }); }, preview: function () { var _this = this; var imageData = _this.imageData; var canvasData = _this.canvasData; var cropBoxData = _this.cropBoxData; var cropBoxWidth = cropBoxData.width; var cropBoxHeight = cropBoxData.height; var width = imageData.width; var height = imageData.height; var left = cropBoxData.left - canvasData.left - imageData.left; var top = cropBoxData.top - canvasData.top - imageData.top; var transform = getTransform(imageData); var transforms = { WebkitTransform: transform, msTransform: transform, transform: transform }; if (!_this.cropped || _this.disabled) { return; } setStyle(_this.image2, extend({ width: width, height: height, marginLeft: -left, marginTop: -top }, transforms)); each(_this.previews, function (element) { var data = getData(element, DATA_PREVIEW); var originalWidth = data.width; var originalHeight = data.height; var newWidth = originalWidth; var newHeight = originalHeight; var ratio = 1; if (cropBoxWidth) { ratio = originalWidth / cropBoxWidth; newHeight = cropBoxHeight * ratio; } if (cropBoxHeight && newHeight > originalHeight) { ratio = originalHeight / cropBoxHeight; newWidth = cropBoxWidth * ratio; newHeight = originalHeight; } setStyle(element, { width: newWidth, height: newHeight }); setStyle(getByTag(element, 'img')[0], extend({ width: width * ratio, height: height * ratio, marginLeft: -left * ratio, marginTop: -top * ratio }, transforms)); }); }, bind: function () { var _this = this; var options = _this.options; var element = _this.element; var cropper = _this.cropper; if (isFunction(options.cropstart)) { addListener(element, EVENT_CROP_START, options.cropstart); } if (isFunction(options.cropmove)) { addListener(element, EVENT_CROP_MOVE, options.cropmove); } if (isFunction(options.cropend)) { addListener(element, EVENT_CROP_END, options.cropend); } if (isFunction(options.crop)) { addListener(element, EVENT_CROP, options.crop); } if (isFunction(options.zoom)) { addListener(element, EVENT_ZOOM, options.zoom); } addListener(cropper, EVENT_MOUSE_DOWN, (_this._cropStart = proxy(_this.cropStart, _this))); if (options.zoomable && options.zoomOnWheel) { addListener(cropper, EVENT_WHEEL, (_this._wheel = proxy(_this.wheel, _this))); } if (options.toggleDragModeOnDblclick) { addListener(cropper, EVENT_DBLCLICK, (_this._dblclick = proxy(_this.dblclick, _this))); } addListener(document, EVENT_MOUSE_MOVE, (_this._cropMove = proxy(_this.cropMove, _this))); addListener(document, EVENT_MOUSE_UP, (_this._cropEnd = proxy(_this.cropEnd, _this))); if (options.responsive) { addListener(window, EVENT_RESIZE, (_this._resize = proxy(_this.resize, _this))); } }, unbind: function () { var _this = this; var options = _this.options; var element = _this.element; var cropper = _this.cropper; if (isFunction(options.cropstart)) { removeListener(element, EVENT_CROP_START, options.cropstart); } if (isFunction(options.cropmove)) { removeListener(element, EVENT_CROP_MOVE, options.cropmove); } if (isFunction(options.cropend)) { removeListener(element, EVENT_CROP_END, options.cropend); } if (isFunction(options.crop)) { removeListener(element, EVENT_CROP, options.crop); } if (isFunction(options.zoom)) { removeListener(element, EVENT_ZOOM, options.zoom); } removeListener(cropper, EVENT_MOUSE_DOWN, _this._cropStart); if (options.zoomable && options.zoomOnWheel) { removeListener(cropper, EVENT_WHEEL, _this._wheel); } if (options.toggleDragModeOnDblclick) { removeListener(cropper, EVENT_DBLCLICK, _this._dblclick); } removeListener(document, EVENT_MOUSE_MOVE, _this._cropMove); removeListener(document, EVENT_MOUSE_UP, _this._cropEnd); if (options.responsive) { removeListener(window, EVENT_RESIZE, _this._resize); } }, resize: function () { var _this = this; var restore = _this.options.restore; var container = _this.container; var containerData = _this.containerData; var canvasData; var cropBoxData; var ratio; // Check `container` is necessary for IE8 if (_this.disabled || !containerData) { return; } ratio = container.offsetWidth / containerData.width; // Resize when width changed or height changed if (ratio !== 1 || container.offsetHeight !== containerData.height) { if (restore) { canvasData = _this.getCanvasData(); cropBoxData = _this.getCropBoxData(); } _this.render(); if (restore) { _this.setCanvasData(each(canvasData, function (n, i) { canvasData[i] = n * ratio; })); _this.setCropBoxData(each(cropBoxData, function (n, i) { cropBoxData[i] = n * ratio; })); } } }, dblclick: function () { var _this = this; if (_this.disabled) { return; } _this.setDragMode(hasClass(_this.dragBox, CLASS_CROP) ? ACTION_MOVE : ACTION_CROP); }, wheel: function (event) { var _this = this; var e = getEvent(event); var ratio = Number(_this.options.wheelZoomRatio) || 0.1; var delta = 1; if (_this.disabled) { return; } preventDefault(e); // Limit wheel speed to prevent zoom too fast (#21) if (_this.wheeling) { return; } _this.wheeling = true; setTimeout(function () { _this.wheeling = false; }, 50); if (e.deltaY) { delta = e.deltaY > 0 ? 1 : -1; } else if (e.wheelDelta) { delta = -e.wheelDelta / 120; } else if (e.detail) { delta = e.detail > 0 ? 1 : -1; } _this.zoom(-delta * ratio, e); }, cropStart: function (event) { var _this = this; var options = _this.options; var e = getEvent(event); var touches = e.touches; var touchesLength; var touch; var action; if (_this.disabled) { return; } if (touches) { touchesLength = touches.length; if (touchesLength > 1) { if (options.zoomable && options.zoomOnTouch && touchesLength === 2) { touch = touches[1]; _this.startX2 = touch.pageX; _this.startY2 = touch.pageY; action = ACTION_ZOOM; } else { return; } } touch = touches[0]; } action = action || getData(e.target, DATA_ACTION); if (REGEXP_ACTIONS.test(action)) { if (dispatchEvent(_this.element, EVENT_CROP_START, { originalEvent: e, action: action }) === false) { return; } preventDefault(e); _this.action = action; _this.cropping = false; _this.startX = touch ? touch.pageX : e.pageX; _this.startY = touch ? touch.pageY : e.pageY; if (action === ACTION_CROP) { _this.cropping = true; addClass(_this.dragBox, CLASS_MODAL); } } }, cropMove: function (event) { var _this = this; var options = _this.options; var e = getEvent(event); var touches = e.touches; var action = _this.action; var touchesLength; var touch; if (_this.disabled) { return; } if (touches) { touchesLength = touches.length; if (touchesLength > 1) { if (options.zoomable && options.zoomOnTouch && touchesLength === 2) { touch = touches[1]; _this.endX2 = touch.pageX; _this.endY2 = touch.pageY; } else { return; } } touch = touches[0]; } if (action) { if (dispatchEvent(_this.element, EVENT_CROP_MOVE, { originalEvent: e, action: action }) === false) { return; } preventDefault(e); _this.endX = touch ? touch.pageX : e.pageX; _this.endY = touch ? touch.pageY : e.pageY; _this.change(e.shiftKey, action === ACTION_ZOOM ? e : null); } }, cropEnd: function (event) { var _this = this; var options = _this.options; var e = getEvent(event); var action = _this.action; if (_this.disabled) { return; } if (action) { preventDefault(e); if (_this.cropping) { _this.cropping = false; toggleClass(_this.dragBox, CLASS_MODAL, _this.cropped && options.modal); } _this.action = ''; dispatchEvent(_this.element, EVENT_CROP_END, { originalEvent: e, action: action }); } }, change: function (shiftKey, originalEvent) { var _this = this; var options = _this.options; var aspectRatio = options.aspectRatio; var action = _this.action; var containerData = _this.containerData; var canvasData = _this.canvasData; var cropBoxData = _this.cropBoxData; var width = cropBoxData.width; var height = cropBoxData.height; var left = cropBoxData.left; var top = cropBoxData.top; var right = left + width; var bottom = top + height; var minLeft = 0; var minTop = 0; var maxWidth = containerData.width; var maxHeight = containerData.height; var renderable = true; var offset; var range; // Locking aspect ratio in "free mode" by holding shift key if (!aspectRatio && shiftKey) { aspectRatio = width && height ? width / height : 1; } if (_this.limited) { minLeft = cropBoxData.minLeft; minTop = cropBoxData.minTop; maxWidth = minLeft + min(containerData.width, canvasData.left + canvasData.width); maxHeight = minTop + min(containerData.height, canvasData.top + canvasData.height); } range = { x: _this.endX - _this.startX, y: _this.endY - _this.startY }; if (aspectRatio) { range.X = range.y * aspectRatio; range.Y = range.x / aspectRatio; } switch (action) { // Move crop box case ACTION_ALL: left += range.x; top += range.y; break; // Resize crop box case ACTION_EAST: if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) { renderable = false; break; } width += range.x; if (aspectRatio) { height = width / aspectRatio; top -= range.Y / 2; } if (width < 0) { action = ACTION_WEST; width = 0; } break; case ACTION_NORTH: if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) { renderable = false; break; } height -= range.y; top += range.y; if (aspectRatio) { width = height * aspectRatio; left += range.X / 2; } if (height < 0) { action = ACTION_SOUTH; height = 0; } break; case ACTION_WEST: if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) { renderable = false; break; } width -= range.x; left += range.x; if (aspectRatio) { height = width / aspectRatio; top += range.Y / 2; } if (width < 0) { action = ACTION_EAST; width = 0; } break; case ACTION_SOUTH: if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) { renderable = false; break; } height += range.y; if (aspectRatio) { width = height * aspectRatio; left -= range.X / 2; } if (height < 0) { action = ACTION_NORTH; height = 0; } break; case ACTION_NORTH_EAST: if (aspectRatio) { if (range.y <= 0 && (top <= minTop || right >= maxWidth)) { renderable = false; break; } height -= range.y; top += range.y; width = height * aspectRatio; } else { if (range.x >= 0) { if (right < maxWidth) { width += range.x; } else if (range.y <= 0 && top <= minTop) { renderable = false; } } else { width += range.x; } if (range.y <= 0) { if (top > minTop) { height -= range.y; top += range.y; } } else { height -= range.y; top += range.y; } } if (width < 0 && height < 0) { action = ACTION_SOUTH_WEST; height = 0; width = 0; } else if (width < 0) { action = ACTION_NORTH_WEST; width = 0; } else if (height < 0) { action = ACTION_SOUTH_EAST; height = 0; } break; case ACTION_NORTH_WEST: if (aspectRatio) { if (range.y <= 0 && (top <= minTop || left <= minLeft)) { renderable = false; break; } height -= range.y; top += range.y; width = height * aspectRatio; left += range.X; } else { if (range.x <= 0) { if (left > minLeft) { width -= range.x; left += range.x; } else if (range.y <= 0 && top <= minTop) { renderable = false; } } else { width -= range.x; left += range.x; } if (range.y <= 0) { if (top > minTop) { height -= range.y; top += range.y; } } else { height -= range.y; top += range.y; } } if (width < 0 && height < 0) { action = ACTION_SOUTH_EAST; height = 0; width = 0; } else if (width < 0) { action = ACTION_NORTH_EAST; width = 0; } else if (height < 0) { action = ACTION_SOUTH_WEST; height = 0; } break; case ACTION_SOUTH_WEST: if (aspectRatio) { if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) { renderable = false; break; } width -= range.x; left += range.x; height = width / aspectRatio; } else { if (range.x <= 0) { if (left > minLeft) { width -= range.x; left += range.x; } else if (range.y >= 0 && bottom >= maxHeight) { renderable = false; } } else { width -= range.x; left += range.x; } if (range.y >= 0) { if (bottom < maxHeight) { height += range.y; } } else { height += range.y; } } if (width < 0 && height < 0) { action = ACTION_NORTH_EAST; height = 0; width = 0; } else if (width < 0) { action = ACTION_SOUTH_EAST; width = 0; } else if (height < 0) { action = ACTION_NORTH_WEST; height = 0; } break; case ACTION_SOUTH_EAST: if (aspectRatio) { if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) { renderable = false; break; } width += range.x; height = width / aspectRatio; } else { if (range.x >= 0) { if (right < maxWidth) { width += range.x; } else if (range.y >= 0 && bottom >= maxHeight) { renderable = false; } } else { width += range.x; } if (range.y >= 0) { if (bottom < maxHeight) { height += range.y; } } else { height += range.y; } } if (width < 0 && height < 0) { action = ACTION_NORTH_WEST; height = 0; width = 0; } else if (width < 0) { action = ACTION_SOUTH_WEST; width = 0; } else if (height < 0) { action = ACTION_NORTH_EAST; height = 0; } break; // Move canvas case ACTION_MOVE: _this.move(range.x, range.y); renderable = false; break; // Zoom canvas case ACTION_ZOOM: _this.zoom((function (x1, y1, x2, y2) { var z1 = sqrt(x1 * x1 + y1 * y1); var z2 = sqrt(x2 * x2 + y2 * y2); return (z2 - z1) / z1; })( abs(_this.startX - _this.startX2), abs(_this.startY - _this.startY2), abs(_this.endX - _this.endX2), abs(_this.endY - _this.endY2) ), originalEvent); _this.startX2 = _this.endX2; _this.startY2 = _this.endY2; renderable = false; break; // Create crop box case ACTION_CROP: if (!range.x || !range.y) { renderable = false; break; } offset = getOffset(_this.cropper); left = _this.startX - offset.left; top = _this.startY - offset.top; width = cropBoxData.minWidth; height = cropBoxData.minHeight; if (range.x > 0) { action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST; } else if (range.x < 0) { left -= width; action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST; } if (range.y < 0) { top -= height; } // Show the crop box if is hidden if (!_this.cropped) { removeClass(_this.cropBox, CLASS_HIDDEN); _this.cropped = true; if (_this.limited) { _this.limitCropBox(true, true); } } break; // No default } if (renderable) { cropBoxData.width = width; cropBoxData.height = height; cropBoxData.left = left; cropBoxData.top = top; _this.action = action; _this.renderCropBox(); } // Override _this.startX = _this.endX; _this.startY = _this.endY; }, // Show the crop box manually crop: function () { var _this = this; if (_this.built && !_this.disabled) { if (!_this.cropped) { _this.cropped = true; _this.limitCropBox(true, true); if (_this.options.modal) { addClass(_this.dragBox, CLASS_MODAL); } removeClass(_this.cropBox, CLASS_HIDDEN); } _this.setCropBoxData(_this.initialCropBoxData); } return _this; }, // Reset the image and crop box to their initial states reset: function () { var _this = this; if (_this.built && !_this.disabled) { _this.imageData = extend({}, _this.initialImageData); _this.canvasData = extend({}, _this.initialCanvasData); _this.cropBoxData = extend({}, _this.initialCropBoxData); _this.renderCanvas(); if (_this.cropped) { _this.renderCropBox(); } } return _this; }, // Clear the crop box clear: function () { var _this = this; if (_this.cropped && !_this.disabled) { extend(_this.cropBoxData, { left: 0, top: 0, width: 0, height: 0 }); _this.cropped = false; _this.renderCropBox(); _this.limitCanvas(); // Render canvas after crop box rendered _this.renderCanvas(); removeClass(_this.dragBox, CLASS_MODAL); addClass(_this.cropBox, CLASS_HIDDEN); } return _this; }, /** * Replace the image's src and rebuild the cropper * * @param {String} url * @param {Boolean} onlyColorChanged (optional) */ replace: function (url, onlyColorChanged) { var _this = this; if (!_this.disabled && url) { if (_this.isImg) { _this.element.src = url; } if (onlyColorChanged) { _this.url = url; _this.image.src = url; if (_this.built) { _this.image2.src = url; each(_this.previews, function (element) { getByTag(element, 'img')[0].src = url; }); } } else { if (_this.isImg) { _this.replaced = true; } // Clear previous data _this.options.data = null; _this.load(url); } } return _this; }, // Enable (unfreeze) the cropper enable: function () { var _this = this; if (_this.built) { _this.disabled = false; removeClass(_this.cropper, CLASS_DISABLED); } return _this; }, // Disable (freeze) the cropper disable: function () { var _this = this; if (_this.built) { _this.disabled = true; addClass(_this.cropper, CLASS_DISABLED); } return _this; }, // Destroy the cropper and remove the instance from the image destroy: function () { var _this = this; var element = _this.element; var image = _this.image; if (_this.ready) { if (_this.isImg && _this.replaced) { element.src = _this.originalUrl; } _this.unbuild(); removeClass(element, CLASS_HIDDEN); } else { if (_this.isImg) { removeListener(element, EVENT_LOAD, _this.start); } else if (image) { removeChild(image); } } removeData(element, NAMESPACE); return _this; }, /** * Move the canvas with relative offsets * * @param {Number} offsetX * @param {Number} offsetY (optional) */ move: function (offsetX, offsetY) { var _this = this; var canvasData = _this.canvasData; return _this.moveTo( isUndefined(offsetX) ? offsetX : canvasData.left + Number(offsetX), isUndefined(offsetY) ? offsetY : canvasData.top + Number(offsetY) ); }, /** * Move the canvas to an absolute point * * @param {Number} x * @param {Number} y (optional) */ moveTo: function (x, y) { var _this = this; var canvasData = _this.canvasData; var changed = false; // If "y" is not present, its default value is "x" if (isUndefined(y)) { y = x; } x = Number(x); y = Number(y); if (_this.built && !_this.disabled && _this.options.movable) { if (isNumber(x)) { canvasData.left = x; changed = true; } if (isNumber(y)) { canvasData.top = y; changed = true; } if (changed) { _this.renderCanvas(true); } } return _this; }, /** * Zoom the canvas with a relative ratio * * @param {Number} ratio * @param {Event} _originalEvent (private) */ zoom: function (ratio, _originalEvent) { var _this = this; var canvasData = _this.canvasData; ratio = Number(ratio); if (ratio < 0) { ratio = 1 / (1 - ratio); } else { ratio = 1 + ratio; } return _this.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, _originalEvent); }, /** * Zoom the canvas to an absolute ratio * * @param {Number} ratio * @param {Event} _originalEvent (private) */ zoomTo: function (ratio, _originalEvent) { var _this = this; var options = _this.options; var canvasData = _this.canvasData; var width = canvasData.width; var height = canvasData.height; var naturalWidth = canvasData.naturalWidth; var naturalHeight = canvasData.naturalHeight; var newWidth; var newHeight; var offset; var center; ratio = Number(ratio); if (ratio >= 0 && _this.built && !_this.disabled && options.zoomable) { newWidth = naturalWidth * ratio; newHeight = naturalHeight * ratio; if (dispatchEvent(_this.element, EVENT_ZOOM, { originalEvent: _originalEvent, oldRatio: width / naturalWidth, ratio: newWidth / naturalWidth }) === false) { return _this; } if (_originalEvent) { offset = getOffset(_this.cropper); center = _originalEvent.touches ? getTouchesCenter(_originalEvent.touches) : { pageX: _originalEvent.pageX, pageY: _originalEvent.pageY }; // Zoom from the triggering point of the event canvasData.left -= (newWidth - width) * ( ((center.pageX - offset.left) - canvasData.left) / width ); canvasData.top -= (newHeight - height) * ( ((center.pageY - offset.top) - canvasData.top) / height ); } else { // Zoom from the center of the canvas canvasData.left -= (newWidth - width) / 2; canvasData.top -= (newHeight - height) / 2; } canvasData.width = newWidth; canvasData.height = newHeight; _this.renderCanvas(true); } return _this; }, /** * Rotate the canvas with a relative degree * * @param {Number} degree */ rotate: function (degree) { var _this = this; return _this.rotateTo((_this.imageData.rotate || 0) + Number(degree)); }, /** * Rotate the canvas to an absolute degree * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function#rotate() * * @param {Number} degree */ rotateTo: function (degree) { var _this = this; degree = Number(degree); if (isNumber(degree) && _this.built && !_this.disabled && _this.options.rotatable) { _this.imageData.rotate = degree % 360; _this.rotated = true; _this.renderCanvas(true); } return _this; }, /** * Scale the image * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function#scale() * * @param {Number} scaleX * @param {Number} scaleY (optional) */ scale: function (scaleX, scaleY) { var _this = this; var imageData = _this.imageData; var changed = false; // If "scaleY" is not present, its default value is "scaleX" if (isUndefined(scaleY)) { scaleY = scaleX; } scaleX = Number(scaleX); scaleY = Number(scaleY); if (_this.built && !_this.disabled && _this.options.scalable) { if (isNumber(scaleX)) { imageData.scaleX = scaleX; changed = true; } if (isNumber(scaleY)) { imageData.scaleY = scaleY; changed = true; } if (changed) { _this.renderImage(true); } } return _this; }, /** * Scale the abscissa of the image * * @param {Number} scaleX */ scaleX: function (scaleX) { var _this = this; var scaleY = _this.imageData.scaleY; return _this.scale(scaleX, isNumber(scaleY) ? scaleY : 1); }, /** * Scale the ordinate of the image * * @param {Number} scaleY */ scaleY: function (scaleY) { var _this = this; var scaleX = _this.imageData.scaleX; return _this.scale(isNumber(scaleX) ? scaleX : 1, scaleY); }, /** * Get the cropped area position and size data (base on the original image) * * @param {Boolean} rounded (optional) * @return {Object} data */ getData: function (rounded) { var _this = this; var options = _this.options; var imageData = _this.imageData; var canvasData = _this.canvasData; var cropBoxData = _this.cropBoxData; var ratio; var data; if (_this.built && _this.cropped) { data = { x: cropBoxData.left - canvasData.left, y: cropBoxData.top - canvasData.top, width: cropBoxData.width, height: cropBoxData.height }; ratio = imageData.width / imageData.naturalWidth; each(data, function (n, i) { n = n / ratio; data[i] = rounded ? round(n) : n; }); } else { data = { x: 0, y: 0, width: 0, height: 0 }; } if (options.rotatable) { data.rotate = imageData.rotate || 0; } if (options.scalable) { data.scaleX = imageData.scaleX || 1; data.scaleY = imageData.scaleY || 1; } return data; }, /** * Set the cropped area position and size with new data * * @param {Object} data */ setData: function (data) { var _this = this; var options = _this.options; var imageData = _this.imageData; var canvasData = _this.canvasData; var cropBoxData = {}; var rotated; var scaled; var ratio; if (isFunction(data)) { data = data.call(_this.element); } if (_this.built && !_this.disabled && isPlainObject(data)) { if (options.rotatable) { if (isNumber(data.rotate) && data.rotate !== imageData.rotate) { imageData.rotate = data.rotate; _this.rotated = rotated = true; } } if (options.scalable) { if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) { imageData.scaleX = data.scaleX; scaled = true; } if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) { imageData.scaleY = data.scaleY; scaled = true; } } if (rotated) { _this.renderCanvas(); } else if (scaled) { _this.renderImage(); } ratio = imageData.width / imageData.naturalWidth; if (isNumber(data.x)) { cropBoxData.left = data.x * ratio + canvasData.left; } if (isNumber(data.y)) { cropBoxData.top = data.y * ratio + canvasData.top; } if (isNumber(data.width)) { cropBoxData.width = data.width * ratio; } if (isNumber(data.height)) { cropBoxData.height = data.height * ratio; } _this.setCropBoxData(cropBoxData); } return _this; }, /** * Get the container size data * * @return {Object} data */ getContainerData: function () { var _this = this; return _this.built ? _this.containerData : {}; }, /** * Get the image position and size data * * @return {Object} data */ getImageData: function () { var _this = this; return _this.ready ? _this.imageData : {}; }, /** * Get the canvas position and size data * * @return {Object} data */ getCanvasData: function () { var _this = this; var canvasData = _this.canvasData; var data = {}; if (_this.built) { each([ 'left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight' ], function (n) { data[n] = canvasData[n]; }); } return data; }, /** * Set the canvas position and size with new data * * @param {Object} data */ setCanvasData: function (data) { var _this = this; var canvasData = _this.canvasData; var aspectRatio = canvasData.aspectRatio; if (isFunction(data)) { data = data.call(_this.element); } if (_this.built && !_this.disabled && isPlainObject(data)) { if (isNumber(data.left)) { canvasData.left = data.left; } if (isNumber(data.top)) { canvasData.top = data.top; } if (isNumber(data.width)) { canvasData.width = data.width; canvasData.height = data.width / aspectRatio; } else if (isNumber(data.height)) { canvasData.height = data.height; canvasData.width = data.height * aspectRatio; } _this.renderCanvas(true); } return _this; }, /** * Get the crop box position and size data * * @return {Object} data */ getCropBoxData: function () { var _this = this; var cropBoxData = _this.cropBoxData; var data; if (_this.built && _this.cropped) { data = { left: cropBoxData.left, top: cropBoxData.top, width: cropBoxData.width, height: cropBoxData.height }; } return data || {}; }, /** * Set the crop box position and size with new data * * @param {Object} data */ setCropBoxData: function (data) { var _this = this; var cropBoxData = _this.cropBoxData; var aspectRatio = _this.options.aspectRatio; var widthChanged; var heightChanged; if (isFunction(data)) { data = data.call(_this.element); } if (_this.built && _this.cropped && !_this.disabled && isPlainObject(data)) { if (isNumber(data.left)) { cropBoxData.left = data.left; } if (isNumber(data.top)) { cropBoxData.top = data.top; } if (isNumber(data.width)) { widthChanged = true; cropBoxData.width = data.width; } if (isNumber(data.height)) { heightChanged = true; cropBoxData.height = data.height; } if (aspectRatio) { if (widthChanged) { cropBoxData.height = cropBoxData.width / aspectRatio; } else if (heightChanged) { cropBoxData.width = cropBoxData.height * aspectRatio; } } _this.renderCropBox(); } return _this; }, /** * Get a canvas drawn the cropped image * * @param {Object} options (optional) * @return {HTMLCanvasElement} canvas */ getCroppedCanvas: function (options) { var _this = this; var originalWidth; var originalHeight; var canvasWidth; var canvasHeight; var scaledWidth; var scaledHeight; var scaledRatio; var aspectRatio; var canvas; var context; var data; if (!_this.built || !SUPPORT_CANVAS) { return; } // Return the whole canvas if not cropped if (!_this.cropped) { return getSourceCanvas(_this.image, _this.imageData); } if (!isPlainObject(options)) { options = {}; } data = _this.getData(); originalWidth = data.width; originalHeight = data.height; aspectRatio = originalWidth / originalHeight; if (isPlainObject(options)) { scaledWidth = options.width; scaledHeight = options.height; if (scaledWidth) { scaledHeight = scaledWidth / aspectRatio; scaledRatio = scaledWidth / originalWidth; } else if (scaledHeight) { scaledWidth = scaledHeight * aspectRatio; scaledRatio = scaledHeight / originalHeight; } } // The canvas element will use `Math.floor` on a float number, so floor first canvasWidth = floor(scaledWidth || originalWidth); canvasHeight = floor(scaledHeight || originalHeight); canvas = createElement('canvas'); canvas.width = canvasWidth; canvas.height = canvasHeight; context = canvas.getContext('2d'); if (options.fillColor) { context.fillStyle = options.fillColor; context.fillRect(0, 0, canvasWidth, canvasHeight); } // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage context.drawImage.apply(context, (function () { var source = getSourceCanvas(_this.image, _this.imageData); var sourceWidth = source.width; var sourceHeight = source.height; var canvasData = _this.canvasData; var params = [source]; // Source canvas var srcX = data.x + canvasData.naturalWidth * (abs(data.scaleX || 1) - 1) / 2; var srcY = data.y + canvasData.naturalHeight * (abs(data.scaleY || 1) - 1) / 2; var srcWidth; var srcHeight; // Destination canvas var dstX; var dstY; var dstWidth; var dstHeight; if (srcX <= -originalWidth || srcX > sourceWidth) { srcX = srcWidth = dstX = dstWidth = 0; } else if (srcX <= 0) { dstX = -srcX; srcX = 0; srcWidth = dstWidth = min(sourceWidth, originalWidth + srcX); } else if (srcX <= sourceWidth) { dstX = 0; srcWidth = dstWidth = min(originalWidth, sourceWidth - srcX); } if (srcWidth <= 0 || srcY <= -originalHeight || srcY > sourceHeight) { srcY = srcHeight = dstY = dstHeight = 0; } else if (srcY <= 0) { dstY = -srcY; srcY = 0; srcHeight = dstHeight = min(sourceHeight, originalHeight + srcY); } else if (srcY <= sourceHeight) { dstY = 0; srcHeight = dstHeight = min(originalHeight, sourceHeight - srcY); } params.push(floor(srcX), floor(srcY), floor(srcWidth), floor(srcHeight)); // Scale destination sizes if (scaledRatio) { dstX *= scaledRatio; dstY *= scaledRatio; dstWidth *= scaledRatio; dstHeight *= scaledRatio; } // Avoid "IndexSizeError" in IE and Firefox if (dstWidth > 0 && dstHeight > 0) { params.push(floor(dstX), floor(dstY), floor(dstWidth), floor(dstHeight)); } return params; }).call(_this)); return canvas; }, /** * Change the aspect ratio of the crop box * * @param {Number} aspectRatio */ setAspectRatio: function (aspectRatio) { var _this = this; var options = _this.options; if (!_this.disabled && !isUndefined(aspectRatio)) { // 0 -> NaN options.aspectRatio = max(0, aspectRatio) || NaN; if (_this.built) { _this.initCropBox(); if (_this.cropped) { _this.renderCropBox(); } } } return _this; }, /** * Change the drag mode * * @param {String} mode (optional) */ setDragMode: function (mode) { var _this = this; var options = _this.options; var dragBox = _this.dragBox; var face = _this.face; var croppable; var movable; if (_this.ready && !_this.disabled) { croppable = mode === ACTION_CROP; movable = options.movable && mode === ACTION_MOVE; mode = (croppable || movable) ? mode : ACTION_NONE; setData(dragBox, DATA_ACTION, mode); toggleClass(dragBox, CLASS_CROP, croppable); toggleClass(dragBox, CLASS_MOVE, movable); if (!options.cropBoxMovable) { // Sync drag mode to crop box when it is not movable setData(face, DATA_ACTION, mode); toggleClass(face, CLASS_CROP, croppable); toggleClass(face, CLASS_MOVE, movable); } } return _this; } }; Cropper.DEFAULTS = { // Define the view mode of the cropper viewMode: 0, // 0, 1, 2, 3 // Define the dragging mode of the cropper dragMode: 'crop', // 'crop', 'move' or 'none' // Define the aspect ratio of the crop box aspectRatio: NaN, // An object with the previous cropping result data data: null, // A selector for adding extra containers to preview preview: '', // Re-render the cropper when resize the window responsive: true, // Restore the cropped area after resize the window restore: true, // Check if the current image is a cross-origin image checkCrossOrigin: true, // Check the current image's Exif Orientation information checkOrientation: true, // Show the black modal modal: true, // Show the dashed lines for guiding guides: true, // Show the center indicator for guiding center: true, // Show the white modal to highlight the crop box highlight: true, // Show the grid background background: true, // Enable to crop the image automatically when initialize autoCrop: true, // Define the percentage of automatic cropping area when initializes autoCropArea: 0.8, // Enable to move the image movable: true, // Enable to rotate the image rotatable: true, // Enable to scale the image scalable: true, // Enable to zoom the image zoomable: true, // Enable to zoom the image by dragging touch zoomOnTouch: true, // Enable to zoom the image by wheeling mouse zoomOnWheel: true, // Define zoom ratio when zoom the image by wheeling mouse wheelZoomRatio: 0.1, // Enable to move the crop box cropBoxMovable: true, // Enable to resize the crop box cropBoxResizable: true, // Toggle drag mode between "crop" and "move" when click twice on the cropper toggleDragModeOnDblclick: true, // Size limitation minCanvasWidth: 0, minCanvasHeight: 0, minCropBoxWidth: 0, minCropBoxHeight: 0, minContainerWidth: 200, minContainerHeight: 100, // Shortcuts of events build: null, built: null, cropstart: null, cropmove: null, cropend: null, crop: null, zoom: null }; Cropper.TEMPLATE = (function (source, words) { words = words.split(','); return source.replace(/\d+/g, function (i) { return words[i]; }); })('<0 6="5-container"><0 6="5-wrap-9"><0 6="5-canvas"><0 6="5-drag-9"><0 6="5-crop-9"><1 6="5-view-9"><1 6="5-8 8-h"><1 6="5-8 8-v"><1 6="5-center"><1 6="5-face"><1 6="5-7 7-e" 3-2="e"><1 6="5-7 7-n" 3-2="n"><1 6="5-7 7-w" 3-2="w"><1 6="5-7 7-s" 3-2="s"><1 6="5-4 4-e" 3-2="e"><1 6="5-4 4-n" 3-2="n"><1 6="5-4 4-w" 3-2="w"><1 6="5-4 4-s" 3-2="s"><1 6="5-4 4-ne" 3-2="ne"><1 6="5-4 4-nw" 3-2="nw"><1 6="5-4 4-sw" 3-2="sw"><1 6="5-4 4-se" 3-2="se">', 'div,span,action,data,point,cropper,class,line,dashed,box'); /*Cropper.TEMPLATE = ( '
' + '
' + '
' + '
' + '
' + '
' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
' + '
' );*/ var _Cropper = window.Cropper; Cropper.noConflict = function () { window.Cropper = _Cropper; return Cropper; }; Cropper.setDefaults = function (options) { extend(Cropper.DEFAULTS, options); }; if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () { return Cropper; }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } if (!noGlobal) { window.Cropper = Cropper; } return Cropper; }); /***/ }), /***/ 2711: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = { 'en-us': { file: { addPhoto: 'Add Photo' }, image: { cancel: 'Cancel', addPhoto: 'Add Photo' }, crop: { title: 'Upload', reset: 'Reset', save: 'Save and Close' }, drag: { dragTips: 'Drag the file to the dashed box directly can be uploaded', dropTips: 'Drop it now' }, error: { maxSize: 'file size exceeds limit', parseJson: 'The server needs to return a standard JSON string' } }, 'zh-cn': { file: { addPhoto: '上传照片' }, image: { cancel: '取消', addPhoto: '上传照片' }, crop: { title: '上传', reset: '重新选择', save: '保存并关闭' }, drag: { dragTips: '直接拖动文件到虚线框内即可上传', dropTips: '可以放手了' }, error: { maxSize: '文件尺寸超过限制', parseJson: '服务器需要返回标准 JSON 字符串' } }, 'zh-tw': { file: { addPhoto: '上傳照片' }, image: { cancel: '取消', addPhoto: '上傳照片' }, crop: { title: '上傳', reset: '重新選擇', save: '保存並關閉' }, drag: { dragTips: '直接拖動文件到虛線框內即可上傳', dropTips: '可以放手了' }, error: { maxSize: '文件尺寸超過限制', parseJson: '服務器需要返回標準 JSON 字符串' } } }; module.exports = exports['default']; /***/ }), /***/ 4771: /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a