webpackJsonp([142],{ /***/ 1201: /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = { classList: __webpack_require__(2001), events: __webpack_require__(2002), position: __webpack_require__(2003), style: __webpack_require__(1800) }; /***/ }), /***/ 1223: /***/ (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__(2012); 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']; /***/ }), /***/ 1402: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _overlay = __webpack_require__(1801); var _overlay2 = _interopRequireDefault(_overlay); var _gateway = __webpack_require__(1802); var _gateway2 = _interopRequireDefault(_gateway); var _position = __webpack_require__(1803); var _position2 = _interopRequireDefault(_position); var _popup = __webpack_require__(2009); 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']; /***/ }), /***/ 1449: /***/ (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__(943); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(897); 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']; /***/ }), /***/ 1454: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _menu = __webpack_require__(2015); var _menu2 = _interopRequireDefault(_menu); var _menuItem = __webpack_require__(1522); var _menuItem2 = _interopRequireDefault(_menuItem); var _popupMenuItem = __webpack_require__(2016); var _popupMenuItem2 = _interopRequireDefault(_popupMenuItem); var _menuDivider = __webpack_require__(2017); var _menuDivider2 = _interopRequireDefault(_menuDivider); var _checkboxMenuItem = __webpack_require__(2018); var _checkboxMenuItem2 = _interopRequireDefault(_checkboxMenuItem); var _radioMenuItem = __webpack_require__(2020); var _radioMenuItem2 = _interopRequireDefault(_radioMenuItem); var _menuGroup = __webpack_require__(2021); var _menuGroup2 = _interopRequireDefault(_menuGroup); var _subMenu = __webpack_require__(1809); var _subMenu2 = _interopRequireDefault(_subMenu); var _container = __webpack_require__(1496); 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']; /***/ }), /***/ 1476: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _button = __webpack_require__(1804); var _button2 = _interopRequireDefault(_button); var _group = __webpack_require__(1805); var _group2 = _interopRequireDefault(_group); var _split = __webpack_require__(2011); 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']; /***/ }), /***/ 1496: /***/ (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']; /***/ }), /***/ 1509: /***/ (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__(2004); var _TransitionGroup2 = _interopRequireDefault(_TransitionGroup); var _nextUtil = __webpack_require__(897); var _nextDom = __webpack_require__(1201); var _names = __webpack_require__(2007); 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']; /***/ }), /***/ 1522: /***/ (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__(943); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(897); var _nextOverlay = __webpack_require__(1402); var _nextAnimate = __webpack_require__(1509); var _nextAnimate2 = _interopRequireDefault(_nextAnimate); var _container = __webpack_require__(1496); 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']; /***/ }), /***/ 1563: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _checkbox = __webpack_require__(1810); var _checkbox2 = _interopRequireDefault(_checkbox); var _checkboxGroup = __webpack_require__(2019); 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']; /***/ }), /***/ 1572: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _select = __webpack_require__(2014); var _select2 = _interopRequireDefault(_select); var _combobox = __webpack_require__(2022); var _combobox2 = _interopRequireDefault(_combobox); var _option = __webpack_require__(2023); var _option2 = _interopRequireDefault(_option); var _optionGroup = __webpack_require__(1811); var _optionGroup2 = _interopRequireDefault(_optionGroup); var _index = __webpack_require__(2024); 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']; /***/ }), /***/ 1744: /***/ (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__(1402); var _nextOverlay2 = _interopRequireDefault(_nextOverlay); var _func = __webpack_require__(1799); 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']; /***/ }), /***/ 1745: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _radio = __webpack_require__(1806); var _radio2 = _interopRequireDefault(_radio); var _radioGroup = __webpack_require__(2013); 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']; /***/ }), /***/ 1799: /***/ (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); } } }; }; /***/ }), /***/ 1800: /***/ (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 }; /***/ }), /***/ 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 _nextDom = __webpack_require__(1201); var _nextUtil = __webpack_require__(897); var _classnames3 = __webpack_require__(3); var _classnames4 = _interopRequireDefault(_classnames3); var _manager = __webpack_require__(2008); var _manager2 = _interopRequireDefault(_manager); var _gateway = __webpack_require__(1802); var _gateway2 = _interopRequireDefault(_gateway); var _position = __webpack_require__(1803); 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']; /***/ }), /***/ 1802: /***/ (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']; /***/ }), /***/ 1803: /***/ (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__(1201); 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']; /***/ }), /***/ 1804: /***/ (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__(897); 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']; /***/ }), /***/ 1805: /***/ (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__(897); 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']; /***/ }), /***/ 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; 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__(1807); var _nextMixinUiState2 = _interopRequireDefault(_nextMixinUiState); var _nextUtil = __webpack_require__(897); 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']; /***/ }), /***/ 1807: /***/ (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__(897); 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']; /***/ }), /***/ 1808: /***/ (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__(1454); var _nextMenu2 = _interopRequireDefault(_nextMenu); var _nextInput = __webpack_require__(1449); var _nextInput2 = _interopRequireDefault(_nextInput); var _nextIcon = __webpack_require__(943); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextDom = __webpack_require__(1201); var _nextUtil = __webpack_require__(897); var _optionGroup = __webpack_require__(1811); 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']; /***/ }), /***/ 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 _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__(897); var _nextDom = __webpack_require__(1201); var _nextIcon = __webpack_require__(943); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextAnimate = __webpack_require__(1509); var _nextAnimate2 = _interopRequireDefault(_nextAnimate); var _container = __webpack_require__(1496); 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']; /***/ }), /***/ 1810: /***/ (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__(1807); var _nextMixinUiState2 = _interopRequireDefault(_nextMixinUiState); var _nextIcon = __webpack_require__(943); var _nextIcon2 = _interopRequireDefault(_nextIcon); var _nextUtil = __webpack_require__(897); 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']; /***/ }), /***/ 1811: /***/ (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']; /***/ }), /***/ 1901: /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a