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