webpackJsonp([125],{
/***/ 1044:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = {
classList: __webpack_require__(1762),
events: __webpack_require__(1763),
position: __webpack_require__(1764),
style: __webpack_require__(1608)
};
/***/ }),
/***/ 1069:
/***/ (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__(1773);
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'];
/***/ }),
/***/ 1134:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = getDataOrAriaProps;
function getDataOrAriaProps(props) {
return Object.keys(props).reduce(function (prev, key) {
if ((key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') && key.substr(0, 7) !== 'data-__') {
prev[key] = props[key];
}
return prev;
}, {});
}
//# sourceMappingURL=getDataOrAriaProps.js.map
/***/ }),
/***/ 1256:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _overlay = __webpack_require__(1609);
var _overlay2 = _interopRequireDefault(_overlay);
var _gateway = __webpack_require__(1610);
var _gateway2 = _interopRequireDefault(_gateway);
var _position = __webpack_require__(1611);
var _position2 = _interopRequireDefault(_position);
var _popup = __webpack_require__(1770);
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'];
/***/ }),
/***/ 1296:
/***/ (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__(849);
var _nextIcon2 = _interopRequireDefault(_nextIcon);
var _nextUtil = __webpack_require__(831);
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'];
/***/ }),
/***/ 1302:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _menu = __webpack_require__(1776);
var _menu2 = _interopRequireDefault(_menu);
var _menuItem = __webpack_require__(1358);
var _menuItem2 = _interopRequireDefault(_menuItem);
var _popupMenuItem = __webpack_require__(1777);
var _popupMenuItem2 = _interopRequireDefault(_popupMenuItem);
var _menuDivider = __webpack_require__(1778);
var _menuDivider2 = _interopRequireDefault(_menuDivider);
var _checkboxMenuItem = __webpack_require__(1779);
var _checkboxMenuItem2 = _interopRequireDefault(_checkboxMenuItem);
var _radioMenuItem = __webpack_require__(1781);
var _radioMenuItem2 = _interopRequireDefault(_radioMenuItem);
var _menuGroup = __webpack_require__(1782);
var _menuGroup2 = _interopRequireDefault(_menuGroup);
var _subMenu = __webpack_require__(1617);
var _subMenu2 = _interopRequireDefault(_subMenu);
var _container = __webpack_require__(1328);
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'];
/***/ }),
/***/ 1313:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _button = __webpack_require__(1612);
var _button2 = _interopRequireDefault(_button);
var _group = __webpack_require__(1613);
var _group2 = _interopRequireDefault(_group);
var _split = __webpack_require__(1772);
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'];
/***/ }),
/***/ 1328:
/***/ (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'];
/***/ }),
/***/ 1342:
/***/ (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__(1765);
var _TransitionGroup2 = _interopRequireDefault(_TransitionGroup);
var _nextUtil = __webpack_require__(831);
var _nextDom = __webpack_require__(1044);
var _names = __webpack_require__(1768);
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'];
/***/ }),
/***/ 1358:
/***/ (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__(849);
var _nextIcon2 = _interopRequireDefault(_nextIcon);
var _nextUtil = __webpack_require__(831);
var _nextOverlay = __webpack_require__(1256);
var _nextAnimate = __webpack_require__(1342);
var _nextAnimate2 = _interopRequireDefault(_nextAnimate);
var _container = __webpack_require__(1328);
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'];
/***/ }),
/***/ 1388:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _checkbox = __webpack_require__(1618);
var _checkbox2 = _interopRequireDefault(_checkbox);
var _checkboxGroup = __webpack_require__(1780);
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'];
/***/ }),
/***/ 1406:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _select = __webpack_require__(1775);
var _select2 = _interopRequireDefault(_select);
var _combobox = __webpack_require__(1783);
var _combobox2 = _interopRequireDefault(_combobox);
var _option = __webpack_require__(1784);
var _option2 = _interopRequireDefault(_option);
var _optionGroup = __webpack_require__(1619);
var _optionGroup2 = _interopRequireDefault(_optionGroup);
var _index = __webpack_require__(1785);
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'];
/***/ }),
/***/ 1545:
/***/ (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__(1256);
var _nextOverlay2 = _interopRequireDefault(_nextOverlay);
var _func = __webpack_require__(1607);
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'];
/***/ }),
/***/ 1546:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _radio = __webpack_require__(1614);
var _radio2 = _interopRequireDefault(_radio);
var _radioGroup = __webpack_require__(1774);
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'];
/***/ }),
/***/ 1607:
/***/ (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);
}
}
};
};
/***/ }),
/***/ 1608:
/***/ (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
};
/***/ }),
/***/ 1609:
/***/ (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__(1044);
var _nextUtil = __webpack_require__(831);
var _classnames3 = __webpack_require__(3);
var _classnames4 = _interopRequireDefault(_classnames3);
var _manager = __webpack_require__(1769);
var _manager2 = _interopRequireDefault(_manager);
var _gateway = __webpack_require__(1610);
var _gateway2 = _interopRequireDefault(_gateway);
var _position = __webpack_require__(1611);
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'];
/***/ }),
/***/ 1610:
/***/ (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'];
/***/ }),
/***/ 1611:
/***/ (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__(1044);
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'];
/***/ }),
/***/ 1612:
/***/ (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__(831);
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'];
/***/ }),
/***/ 1613:
/***/ (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__(831);
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'];
/***/ }),
/***/ 1614:
/***/ (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__(1615);
var _nextMixinUiState2 = _interopRequireDefault(_nextMixinUiState);
var _nextUtil = __webpack_require__(831);
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'];
/***/ }),
/***/ 1615:
/***/ (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__(831);
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'];
/***/ }),
/***/ 1616:
/***/ (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__(1302);
var _nextMenu2 = _interopRequireDefault(_nextMenu);
var _nextInput = __webpack_require__(1296);
var _nextInput2 = _interopRequireDefault(_nextInput);
var _nextIcon = __webpack_require__(849);
var _nextIcon2 = _interopRequireDefault(_nextIcon);
var _nextDom = __webpack_require__(1044);
var _nextUtil = __webpack_require__(831);
var _optionGroup = __webpack_require__(1619);
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'];
/***/ }),
/***/ 1617:
/***/ (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__(831);
var _nextDom = __webpack_require__(1044);
var _nextIcon = __webpack_require__(849);
var _nextIcon2 = _interopRequireDefault(_nextIcon);
var _nextAnimate = __webpack_require__(1342);
var _nextAnimate2 = _interopRequireDefault(_nextAnimate);
var _container = __webpack_require__(1328);
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'];
/***/ }),
/***/ 1618:
/***/ (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__(1615);
var _nextMixinUiState2 = _interopRequireDefault(_nextMixinUiState);
var _nextIcon = __webpack_require__(849);
var _nextIcon2 = _interopRequireDefault(_nextIcon);
var _nextUtil = __webpack_require__(831);
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'];
/***/ }),
/***/ 1619:
/***/ (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'];
/***/ }),
/***/ 1729:
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(3028);
/***/ }),
/***/ 1752:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
function hidden(node) {
return node.style.display == 'none';
}
function visible(node) {
while (node) {
if (node === document.body) {
break;
}
if (hidden(node)) {
return false;
}
node = node.parentNode;
}
return true;
}
function focusable(node) {
var nodeName = node.nodeName.toLowerCase(),
tabIndex = parseInt(node.getAttribute('tabindex'), 10),
hasTabIndex = !isNaN(tabIndex) && tabIndex > -1;
if (visible(node)) {
if (['input', 'select', 'textarea', 'button'].indexOf(nodeName) > -1) {
return !node.disabled;
} else if (nodeName == 'a') {
return node.getAttribute('href') || hasTabIndex;
} else {
return hasTabIndex;
}
}
}
function getFocusNodeList(node) {
var res = [],
nodeList = node.querySelectorAll('*'),
length = nodeList.length;
for (var i = 0; i < length; i++) {
var item = nodeList[i];
if (focusable(item)) {
var method = item.getAttribute('data-auto-focus') ? 'unshift' : 'push';
res[method](item);
}
}
if (focusable(node)) {
res.unshift(node);
}
return res;
}
var lastFocusElement = null;
function saveLastFocusNode() {
lastFocusElement = document.activeElement;
}
function clearLastFocusNode() {
lastFocusElement = null;
}
function backLastFocusNode() {
if (lastFocusElement) {
try {
// 元素可能已经被移动了
lastFocusElement.focus();
} catch (e) {}
}
}
function limitTabRange(node, e) {
if (e.keyCode == 9) {
var tabNodeList = getFocusNodeList(node),
lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1],
leavingTab = lastTabNode === document.activeElement || node === document.activeElement;
if (leavingTab) {
var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];
target.focus();
e.preventDefault();
}
}
}
exports.saveLastFocusNode = saveLastFocusNode;
exports.clearLastFocusNode = clearLastFocusNode;
exports.backLastFocusNode = backLastFocusNode;
exports.getFocusNodeList = getFocusNodeList;
exports.limitTabRange = limitTabRange;
/***/ }),
/***/ 1753:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = {
TAB: 9,
ENTER: 13,
SHIFT: 16,
CTRL: 17,
ALT: 18,
ESCAPE: 27,
SPACE: 32,
END: 35,
HOME: 36,
LEFT_ARROW: 37,
UP_ARROW: 38,
RIGHT_ARROW: 39,
DOWN_ARROW: 40
};
/***/ }),
/***/ 1754:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var attributes = 'accept acceptCharset accessKey action allowFullScreen allowTransparency\nalt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\ncharSet checked classID className colSpan cols content contentEditable contextMenu\ncontrols coords crossOrigin data dateTime default defer dir disabled download draggable\nencType form formAction formEncType formMethod formNoValidate formTarget frameBorder\nheaders height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\nis keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\nmediaGroup method min minLength multiple muted name noValidate nonce open\noptimum pattern placeholder poster preload radioGroup readOnly rel required\nreversed role rowSpan rows sandbox scope scoped scrolling seamless selected\nshape size sizes span spellCheck src srcDoc srcLang srcSet start step style\nsummary tabIndex target title type useMap value width wmode wrap'.replace(/\s+/g, ' ').replace(/\t|\n|\r/g, '').split(' ');
var eventsName = 'onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError'.replace(/\s+/g, ' ').replace(/\t|\n|\r/g, '').split(' ');
var attrsPrefix = ['data-', 'aria-'];
module.exports = function (props) {
var attrs = {};
for (var key in props) {
if (attributes.indexOf(key) > -1 || eventsName.indexOf(key) > -1) {
attrs[key] = props[key];
} else if (attrsPrefix.map(function (prefix) {
return new RegExp('^' + prefix);
}).some(function (reg) {
return key.replace(reg, '') != key;
})) {
attrs[key] = props[key];
}
}
return attrs;
};
/***/ }),
/***/ 1755:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = function () {
var scrollDiv = document.createElement('div'),
scrollbarWidth,
scrollbarHeight;
scrollDiv.style.position = 'absolute';
scrollDiv.style.width = '100px';
scrollDiv.style.height = '100px';
scrollDiv.style.overflow = 'scroll';
scrollDiv.style.top = '-9999px';
document.body.appendChild(scrollDiv);
scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv);
//TODO: adapter old verison.
return {
width: scrollbarWidth,
height: scrollbarWidth
};
};
/***/ }),
/***/ 1756:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var canUseDOM = __webpack_require__(1757);
var animationEndEventNames = {
'WebkitAnimation': 'webkitAnimationEnd',
'OAnimation': 'oAnimationEnd',
'animation': 'animationend'
};
var transitionEventNames = {
'WebkitTransition': 'webkitTransitionEnd',
'OTransition': 'oTransitionEnd',
'transition': 'transitionend'
};
function supportEnd(names) {
var el = document.createElement('div');
for (var name in names) {
if (names.hasOwnProperty(name) && el.style[name] !== undefined) {
return {
end: names[name]
};
}
}
return false;
}
function supportCss(names) {
var el = document.createElement('div');
var ret = false;
for (var key in names) {
names[key].forEach(function (item) {
// It will be throw error when set unknown property under IE8.
try {
el.style[key] = item;
ret = ret || el.style[key] == item;
} catch (e) {}
});
}
return ret;
}
var support = exports;
if (canUseDOM()) {
support.animation = supportEnd(animationEndEventNames);
support.transition = supportEnd(transitionEventNames);
support.flex = supportCss({
'display': ['flex', '-webkit-flex', '-moz-flex', '-ms-flexbox']
});
} else {
support.animation = false;
support.transition = false;
support.flex = false;
}
/***/ }),
/***/ 1757:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = function () {
return !!(typeof window !== 'undefined' && window.document && window.document.createElement);
};
/***/ }),
/***/ 1758:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.deprecated = function (props, instead, component) {
if (window && window.console && window.console.error) {
window.console.error('Warning: ' + props + ' is deprecated at [ ' + component + ' ], use [ ' + instead + ' ] instead of it.');
}
};
exports.warning = function (msg) {
if (window && window.console && window.console.error) {
window.console.error('Warning: ' + msg);
}
};
/***/ }),
/***/ 1759:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = function (Class, props) {
var propTypes = Class.propTypes;
var others = {};
for (var key in props) {
if (!(key in propTypes)) {
others[key] = props[key];
}
}
return others;
};
/***/ }),
/***/ 1760:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function getPrototype(value) {
if (Object.getPrototypeOf) {
return Object.getPrototypeOf(value);
}
if (_typeof('test'.__proto__) === 'object') {
return value.__proto__;
}
return false;
}
var toString = Object.prototype.toString;
var hasOwn = Object.prototype.hasOwnProperty;
function isPlainObject(o) {
if (!o || toString.call(o) !== '[object Object]' || o.nodeType || o === o.window) {
return false;
}
var proto = getPrototype(o),
funcToString = Function.prototype.toString,
objectCtorString = funcToString.call(Object),
constructor = void 0;
if (proto === null) {
return true;
}
var Ctor = hasOwn.call(proto, 'constructor') && proto.constructor;
return typeof Ctor === 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
}
exports.isPlainObject = isPlainObject;
function equal(objA, objB, compare, compareContext, deep) {
var ret = compare ? compare.call(compareContext, objA, objB) : void 0;
if (ret !== void 0) {
return !!ret;
}
if (objA === objB) {
return true;
}
if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {
return false;
}
var keysA = Object.keys(objA);
var keysB = Object.keys(objB);
var len = keysA.length;
if (len !== keysB.length) {
return false;
}
compareContext = compareContext || null;
// Test for A's keys different from B.
var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);
for (var i = 0; i < len; i++) {
var key = keysA[i];
if (!bHasOwnProperty(key)) {
return false;
}
var valueA = objA[key];
var valueB = objB[key];
var _ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;
if (deep) {
if (_ret === false || _ret === void 0 && equal(valueA, valueB, compare, compareContext, deep)) {
return false;
}
} else {
if (_ret === false || _ret === void 0 && valueA !== valueB) {
return false;
}
}
}
return true;
}
exports.shallowEqual = function (objA, objB, compare, compareContext) {
return equal(objA, objB, compare, compareContext, false);
};
exports.deepEqual = function (objA, objB, compare, compareContext) {
return equal(objA, objB, compare, compareContext, true);
};
/***/ }),
/***/ 1761:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
exports.toArray = function (children) {
var ret = [];
_react2['default'].Children.forEach(children, function (child) {
ret.push(child);
});
return ret;
};
/***/ }),
/***/ 1762:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
function addClass(node, className) {
if (node.classList) {
node.classList.add(className);
} else if (!hasClass(node, className)) {
node.className = node.className + ' ' + className;
}
}
function hasClass(node, className) {
if (node.classList) {
return node.classList.contains(className);
} else {
return node.className.indexOf(className) > -1;
}
}
function removeClass(node, className) {
if (node.classList) {
node.classList.remove(className);
} else if (hasClass(node, className)) {
node.className = node.className.replace(className, '').replace(/\s+/g, ' ').trim();
}
}
module.exports = {
hasClass: hasClass,
addClass: addClass,
removeClass: removeClass
};
/***/ }),
/***/ 1763:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var EVENT_PREFIX = 'next-';
function on(node, eventName, handler, useCapture) {
if (node.addEventListener) {
node.addEventListener(eventName, handler, useCapture);
} else if (node.attachEvent) {
var nextEvent = getNextEventName(eventName);
if (Array.isArray(node[nextEvent])) {
if (node[nextEvent].indexOf(handler) === -1) {
node[nextEvent].push(handler);
}
} else {
node[nextEvent] = [handler];
node.attachEvent('on' + eventName, function () {
node[nextEvent].forEach(function (handler) {
handler && handler.call(node, shimEvent(window.event, node));
});
});
}
}
return {
off: function off() {
_off(node, eventName, handler, useCapture);
}
};
}
function _off(node, eventName, handler, useCapture) {
if (node.removeEventListener) {
node.removeEventListener(eventName, handler, useCapture);
} else {
var nextEvent = getNextEventName(eventName);
if (Array.isArray(node[nextEvent])) {
var index = node[nextEvent].indexOf(handler);
if (index > -1) {
node[nextEvent].splice(index, 1);
}
}
}
}
function shimEvent(e, currentTarget) {
if (!e.target) {
e.target = e.srcElement;
e.currentTarget = currentTarget;
e.relatedTarge = e.type === 'mouseover' ? e.fromElement : e.toElement;
e.stopPropagation = function () {
e.cancelBubble = true;
};
e.preventDefault = function () {
e.returnValue = false;
};
}
return e;
}
function getNextEventName(eventName) {
return '' + EVENT_PREFIX + eventName;
}
module.exports = {
on: on,
off: _off
};
/***/ }),
/***/ 1764:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _class, _temp;
var _css = __webpack_require__(1608);
var _css2 = _interopRequireDefault(_css);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var VIEWPORT = 'viewport';
// IE8 not support pageXOffset
var getPageX = function getPageX() {
return window.pageXOffset || document.documentElement.scrollLeft;
};
var getPageY = function getPageY() {
return window.pageYOffset || document.documentElement.scrollTop;
};
var getElementRect = function getElementRect(elem) {
var offsetTop = 0,
offsetLeft = 0,
offsetHeight = elem.offsetHeight,
offsetWidth = elem.offsetWidth;
do {
if (!isNaN(elem.offsetTop)) {
offsetTop += elem.offsetTop;
}
if (!isNaN(elem.offsetLeft)) {
offsetLeft += elem.offsetLeft;
}
} while ((elem = elem.offsetParent) !== null);
return {
top: offsetTop - (document.documentElement.scrollTop || document.body.scrollTop),
left: offsetLeft - (document.documentElement.scrollLeft || document.body.scrollLeft),
height: offsetHeight,
width: offsetWidth
};
};
var Position = (_temp = _class = function () {
function Position(config) {
_classCallCheck(this, Position);
this.pinElement = config.pinElement;
this.baseElement = config.baseElement;
this.align = config.align || 'tl tl';
this.offset = config.offset || [0, 0];
this.needAdjust = config.needAdjust || false;
this.isRtl = config.isRtl || false;
}
Position.prototype.setPosition = function setPosition() {
var pinElement = this.pinElement;
var baseElement = this.baseElement;
var expectedAlign = this._getExpectedAlign();
var isPinFixed = void 0,
isBaseFixed = void 0,
firstPositionResult = void 0;
if (pinElement === VIEWPORT) {
return;
}
if (_css2['default'].get(pinElement, 'position') !== 'fixed') {
_css2['default'].set(pinElement, 'position', 'absolute');
isPinFixed = false;
} else {
isPinFixed = true;
}
if (baseElement === VIEWPORT || _css2['default'].get(baseElement, 'position') !== 'fixed') {
isBaseFixed = false;
} else {
isBaseFixed = true;
}
// 根据期望的定位
for (var i = 0; i < expectedAlign.length; i++) {
var align = expectedAlign[i];
var pinElementPoints = this._normalizePosition(pinElement, align.split(' ')[0], isPinFixed);
var baseElementPoints = this._normalizePosition(baseElement, align.split(' ')[1], isPinFixed);
var pinElementParentOffset = this._getParentOffset(pinElement);
var baseElementOffset = isPinFixed && isBaseFixed ? this._getLeftTop(baseElement) : baseElementPoints.offset();
var top = baseElementOffset.top + baseElementPoints.y - pinElementParentOffset.top - pinElementPoints.y + this.offset[1];
var left = baseElementOffset.left + baseElementPoints.x - pinElementParentOffset.left - pinElementPoints.x + this.offset[0];
_css2['default'].set(pinElement, {
left: left + 'px',
top: top + 'px'
});
if (!firstPositionResult) {
firstPositionResult = {
left: left,
top: top
};
}
if (this._isInViewport(pinElement)) {
return align;
}
}
var inViewportLeft = this._makeElementInViewport(pinElement, firstPositionResult.left, 'Left', isPinFixed);
var inViewportTop = this._makeElementInViewport(pinElement, firstPositionResult.top, 'Top', isPinFixed);
_css2['default'].set(pinElement, {
left: inViewportLeft + 'px',
top: inViewportTop + 'px'
});
return expectedAlign[0];
};
Position.prototype._getParentOffset = function _getParentOffset(element) {
var parent = element.offsetParent || document.documentElement;
var offset = void 0;
if (parent === document.body && _css2['default'].get(parent, 'position') === 'static') {
offset = {
top: 0,
left: 0
};
} else {
offset = this._getElementOffset(parent);
}
offset.top += parseFloat(_css2['default'].get(parent, 'border-top-width'), 10);
offset.left += parseFloat(_css2['default'].get(parent, 'border-left-width'), 10);
return offset;
};
Position.prototype._makeElementInViewport = function _makeElementInViewport(pinElement, number, type, isPinFixed) {
var result = number,
docElement = document.documentElement,
offsetParent = pinElement.offsetParent || document.documentElement;
if (result < 0) {
if (isPinFixed) {
result = 0;
} else if (offsetParent === document.body && _css2['default'].get(offsetParent, 'position') === 'static') {
//Only when div's offsetParent is document.body, we set new position result.
result = Math.max(docElement['scroll' + type], document.body['scroll' + type]);
}
}
return result;
};
Position.prototype._normalizePosition = function _normalizePosition(element, align, isPinFixed) {
var points = this._normalizeElement(element, isPinFixed);
this._normalizeXY(points, align);
return points;
};
Position.prototype._normalizeXY = function _normalizeXY(points, align) {
var x = align.split('')[1];
var y = align.split('')[0];
points.x = this._xyConverter(x, points, 'width');
points.y = this._xyConverter(y, points, 'height');
return points;
};
Position.prototype._xyConverter = function _xyConverter(align, points, type) {
var res = align.replace(/t|l/gi, '0%').replace(/c/gi, '50%').replace(/b|r/gi, '100%').replace(/(\d+)%/gi, function (m, d) {
return points.size()[type] * (d / 100);
});
return parseFloat(res, 10) || 0;
};
Position.prototype._getLeftTop = function _getLeftTop(element) {
return {
left: parseFloat(_css2['default'].get(element, 'left')) || 0,
top: parseFloat(_css2['default'].get(element, 'top')) || 0
};
};
Position.prototype._normalizeElement = function _normalizeElement(element, isPinFixed) {
var _this = this;
var result = {
element: element,
x: 0,
y: 0
},
isViewport = element === VIEWPORT,
docElement = document.documentElement;
result.offset = function () {
if (isPinFixed) {
return {
left: 0,
top: 0
};
} else if (isViewport) {
return {
left: getPageX(),
top: getPageY()
};
} else {
return _this._getElementOffset(element);
}
};
result.size = function () {
if (isViewport) {
return {
width: docElement.clientWidth,
height: docElement.clientHeight
};
} else {
return {
width: element.offsetWidth,
height: element.offsetHeight
};
}
};
return result;
};
Position.prototype._getElementOffset = function _getElementOffset(element) {
var rect = element.getBoundingClientRect();
var docElement = document.documentElement;
var body = document.body;
var docClientLeft = docElement.clientLeft || body.clientLeft || 0;
var docClientTop = docElement.clientTop || body.clientTop || 0;
return {
left: rect.left + (getPageX() - docClientLeft),
top: rect.top + (getPageY() - docClientTop)
};
};
// According to the location of the overflow to calculate the desired positioning
Position.prototype._getExpectedAlign = function _getExpectedAlign() {
var align = this.isRtl ? this._replaceAlignDir(this.align, /l|r/g, { l: 'r', r: 'l' }) : this.align;
var expectedAlign = [align];
if (this.needAdjust) {
if (/t|b/g.test(align)) {
expectedAlign.push(this._replaceAlignDir(align, /t|b/g, { t: 'b', b: 't' }));
}
if (/l|r/g.test(align)) {
expectedAlign.push(this._replaceAlignDir(align, /l|r/g, { l: 'r', r: 'l' }));
}
if (/c/g.test(align)) {
expectedAlign.push(this._replaceAlignDir(align, /c(?= |$)/g, { c: 'l' }));
expectedAlign.push(this._replaceAlignDir(align, /c(?= |$)/g, { c: 'r' }));
}
expectedAlign.push(this._replaceAlignDir(align, /l|r|t|b/g, { l: 'r', r: 'l', t: 'b', b: 't' }));
}
return expectedAlign;
};
// Transform align order.
Position.prototype._replaceAlignDir = function _replaceAlignDir(align, regExp, map) {
return align.replace(regExp, function (res) {
return map[res];
});
};
// Detecting element is in the window, we want to adjust position later.
Position.prototype._isInViewport = function _isInViewport(element) {
var viewportSize = {
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight
};
//Avoid animate problem that use offsetWidth instead of getBoundingClientRect.
var elementRect = getElementRect(element);
return elementRect.left >= 0 && elementRect.left + element.offsetWidth <= viewportSize.width && elementRect.top >= 0 && elementRect.top + element.offsetHeight <= viewportSize.height;
};
return Position;
}(), _class.VIEWPORT = VIEWPORT, _temp);
Position.place = function (pinElement, baseElement, align, offset, needAdjust, isRtl) {
return new Position({
pinElement: pinElement,
baseElement: baseElement,
align: align,
offset: offset,
needAdjust: needAdjust,
isRtl: isRtl
}).setPosition();
};
exports['default'] = Position;
module.exports = exports['default'];
/***/ }),
/***/ 1765:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _chainFunction = __webpack_require__(1766);
var _chainFunction2 = _interopRequireDefault(_chainFunction);
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _warning = __webpack_require__(10);
var _warning2 = _interopRequireDefault(_warning);
var _ChildMapping = __webpack_require__(1767);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var propTypes = {
component: _propTypes2.default.any,
childFactory: _propTypes2.default.func,
children: _propTypes2.default.node
};
var defaultProps = {
component: 'span',
childFactory: function childFactory(child) {
return child;
}
};
var TransitionGroup = function (_React$Component) {
_inherits(TransitionGroup, _React$Component);
function TransitionGroup(props, context) {
_classCallCheck(this, TransitionGroup);
var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));
_this.performAppear = function (key, component) {
_this.currentlyTransitioningKeys[key] = true;
if (component.componentWillAppear) {
component.componentWillAppear(_this._handleDoneAppearing.bind(_this, key, component));
} else {
_this._handleDoneAppearing(key, component);
}
};
_this._handleDoneAppearing = function (key, component) {
if (component.componentDidAppear) {
component.componentDidAppear();
}
delete _this.currentlyTransitioningKeys[key];
var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children);
if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {
// This was removed before it had fully appeared. Remove it.
_this.performLeave(key, component);
}
};
_this.performEnter = function (key, component) {
_this.currentlyTransitioningKeys[key] = true;
if (component.componentWillEnter) {
component.componentWillEnter(_this._handleDoneEntering.bind(_this, key, component));
} else {
_this._handleDoneEntering(key, component);
}
};
_this._handleDoneEntering = function (key, component) {
if (component.componentDidEnter) {
component.componentDidEnter();
}
delete _this.currentlyTransitioningKeys[key];
var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children);
if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {
// This was removed before it had fully entered. Remove it.
_this.performLeave(key, component);
}
};
_this.performLeave = function (key, component) {
_this.currentlyTransitioningKeys[key] = true;
if (component.componentWillLeave) {
component.componentWillLeave(_this._handleDoneLeaving.bind(_this, key, component));
} else {
// Note that this is somewhat dangerous b/c it calls setState()
// again, effectively mutating the component before all the work
// is done.
_this._handleDoneLeaving(key, component);
}
};
_this._handleDoneLeaving = function (key, component) {
if (component.componentDidLeave) {
component.componentDidLeave();
}
delete _this.currentlyTransitioningKeys[key];
var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children);
if (currentChildMapping && currentChildMapping.hasOwnProperty(key)) {
// This entered again before it fully left. Add it again.
_this.keysToEnter.push(key);
} else {
_this.setState(function (state) {
var newChildren = _extends({}, state.children);
delete newChildren[key];
return { children: newChildren };
});
}
};
_this.childRefs = Object.create(null);
_this.state = {
children: (0, _ChildMapping.getChildMapping)(props.children)
};
return _this;
}
TransitionGroup.prototype.componentWillMount = function componentWillMount() {
this.currentlyTransitioningKeys = {};
this.keysToEnter = [];
this.keysToLeave = [];
};
TransitionGroup.prototype.componentDidMount = function componentDidMount() {
var initialChildMapping = this.state.children;
for (var key in initialChildMapping) {
if (initialChildMapping[key]) {
this.performAppear(key, this.childRefs[key]);
}
}
};
TransitionGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
var nextChildMapping = (0, _ChildMapping.getChildMapping)(nextProps.children);
var prevChildMapping = this.state.children;
this.setState({
children: (0, _ChildMapping.mergeChildMappings)(prevChildMapping, nextChildMapping)
});
for (var key in nextChildMapping) {
var hasPrev = prevChildMapping && prevChildMapping.hasOwnProperty(key);
if (nextChildMapping[key] && !hasPrev && !this.currentlyTransitioningKeys[key]) {
this.keysToEnter.push(key);
}
}
for (var _key in prevChildMapping) {
var hasNext = nextChildMapping && nextChildMapping.hasOwnProperty(_key);
if (prevChildMapping[_key] && !hasNext && !this.currentlyTransitioningKeys[_key]) {
this.keysToLeave.push(_key);
}
}
// If we want to someday check for reordering, we could do it here.
};
TransitionGroup.prototype.componentDidUpdate = function componentDidUpdate() {
var _this2 = this;
var keysToEnter = this.keysToEnter;
this.keysToEnter = [];
keysToEnter.forEach(function (key) {
return _this2.performEnter(key, _this2.childRefs[key]);
});
var keysToLeave = this.keysToLeave;
this.keysToLeave = [];
keysToLeave.forEach(function (key) {
return _this2.performLeave(key, _this2.childRefs[key]);
});
};
TransitionGroup.prototype.render = function render() {
var _this3 = this;
// TODO: we could get rid of the need for the wrapper node
// by cloning a single child
var childrenToRender = [];
var _loop = function _loop(key) {
var child = _this3.state.children[key];
if (child) {
var isCallbackRef = typeof child.ref !== 'string';
var factoryChild = _this3.props.childFactory(child);
var ref = function ref(r) {
_this3.childRefs[key] = r;
};
false ? (0, _warning2.default)(isCallbackRef, 'string refs are not supported on children of TransitionGroup and will be ignored. ' + 'Please use a callback ref instead: https://facebook.github.io/react/docs/refs-and-the-dom.html#the-ref-callback-attribute') : void 0;
// Always chaining the refs leads to problems when the childFactory
// wraps the child. The child ref callback gets called twice with the
// wrapper and the child. So we only need to chain the ref if the
// factoryChild is not different from child.
if (factoryChild === child && isCallbackRef) {
ref = (0, _chainFunction2.default)(child.ref, ref);
}
// You may need to apply reactive updates to a child as it is leaving.
// The normal React way to do it won't work since the child will have
// already been removed. In case you need this behavior you can provide
// a childFactory function to wrap every child, even the ones that are
// leaving.
childrenToRender.push(_react2.default.cloneElement(factoryChild, {
key: key,
ref: ref
}));
}
};
for (var key in this.state.children) {
_loop(key);
}
// Do not forward TransitionGroup props to primitive DOM nodes
var props = _extends({}, this.props);
delete props.transitionLeave;
delete props.transitionName;
delete props.transitionAppear;
delete props.transitionEnter;
delete props.childFactory;
delete props.transitionLeaveTimeout;
delete props.transitionEnterTimeout;
delete props.transitionAppearTimeout;
delete props.component;
return _react2.default.createElement(this.props.component, props, childrenToRender);
};
return TransitionGroup;
}(_react2.default.Component);
TransitionGroup.displayName = 'TransitionGroup';
TransitionGroup.propTypes = false ? propTypes : {};
TransitionGroup.defaultProps = defaultProps;
exports.default = TransitionGroup;
module.exports = exports['default'];
/***/ }),
/***/ 1766:
/***/ (function(module, exports) {
module.exports = function chain(){
var len = arguments.length
var args = [];
for (var i = 0; i < len; i++)
args[i] = arguments[i]
args = args.filter(function(fn){ return fn != null })
if (args.length === 0) return undefined
if (args.length === 1) return args[0]
return args.reduce(function(current, next){
return function chainedFunction() {
current.apply(this, arguments);
next.apply(this, arguments);
};
})
}
/***/ }),
/***/ 1767:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
exports.getChildMapping = getChildMapping;
exports.mergeChildMappings = mergeChildMappings;
var _react = __webpack_require__(0);
/**
* Given `this.props.children`, return an object mapping key to child.
*
* @param {*} children `this.props.children`
* @return {object} Mapping of key to child
*/
function getChildMapping(children) {
if (!children) {
return children;
}
var result = {};
_react.Children.map(children, function (child) {
return child;
}).forEach(function (child) {
result[child.key] = child;
});
return result;
}
/**
* When you're adding or removing children some may be added or removed in the
* same render pass. We want to show *both* since we want to simultaneously
* animate elements in and out. This function takes a previous set of keys
* and a new set of keys and merges them with its best guess of the correct
* ordering. In the future we may expose some of the utilities in
* ReactMultiChild to make this easy, but for now React itself does not
* directly have this concept of the union of prevChildren and nextChildren
* so we implement it here.
*
* @param {object} prev prev children as returned from
* `ReactTransitionChildMapping.getChildMapping()`.
* @param {object} next next children as returned from
* `ReactTransitionChildMapping.getChildMapping()`.
* @return {object} a key set that contains all keys in `prev` and all keys
* in `next` in a reasonable order.
*/
function mergeChildMappings(prev, next) {
prev = prev || {};
next = next || {};
function getValueForKey(key) {
if (next.hasOwnProperty(key)) {
return next[key];
}
return prev[key];
}
// For each key of `next`, the list of keys to insert before that key in
// the combined list
var nextKeysPending = {};
var pendingKeys = [];
for (var prevKey in prev) {
if (next.hasOwnProperty(prevKey)) {
if (pendingKeys.length) {
nextKeysPending[prevKey] = pendingKeys;
pendingKeys = [];
}
} else {
pendingKeys.push(prevKey);
}
}
var i = void 0;
var childMapping = {};
for (var nextKey in next) {
if (nextKeysPending.hasOwnProperty(nextKey)) {
for (i = 0; i < nextKeysPending[nextKey].length; i++) {
var pendingNextKey = nextKeysPending[nextKey][i];
childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
}
}
childMapping[nextKey] = getValueForKey(nextKey);
}
// Finally, add the keys which didn't appear before any key in `next`
for (i = 0; i < pendingKeys.length; i++) {
childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
}
return childMapping;
}
/***/ }),
/***/ 1768:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var enter = ['pulse', 'shake', 'press', 'buttonClick', 'expandInDown', 'bounceIn', 'fadeIn', 'fadeInDown', 'fadeInDownBig', 'fadeInLeft', 'fadeInLeftBig', 'fadeInRight', 'fadeInRightBig', 'fadeInUp', 'fadeInUpBig', 'slideInDown', 'slideInLeft', 'slideInRight', 'slideInUp', 'zoomIn', 'zoomInQuick', 'zoomInPulse', 'zoomInDown', 'zoomInLeft', 'zoomInRight', 'zoomInUp'];
var leave = ['pulse', 'shake', 'press', 'buttonClick', 'expandOutUp', 'bounceOut', 'fadeOut', 'fadeOutDown', 'fadeOutDownBig', 'fadeOutLeft', 'fadeOutLeftBig', 'fadeOutRight', 'fadeOutRightBig', 'fadeOutUp', 'fadeOutUpBig', 'slideOutDown', 'slideOutLeft', 'slideOutRight', 'slideOutUp', 'zoomOut', 'zoomOutQuick', 'zoomOutPulse', 'zoomOutDown', 'zoomOutLeft', 'zoomOutRight', 'zoomOutUp'];
exports['default'] = {
enter: enter,
leave: leave
};
module.exports = exports['default'];
/***/ }),
/***/ 1769:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var Manager = {
allOverlays: [],
addOverlay: function addOverlay(overlay) {
this.removeOverlay(overlay);
this.allOverlays.push(overlay);
},
isCurrentOverlay: function isCurrentOverlay(overlay) {
return !!this.allOverlays.length && this.allOverlays[this.allOverlays.length - 1] === overlay;
},
removeOverlay: function removeOverlay(overlay) {
var i = this.allOverlays.indexOf(overlay);
if (i > -1) {
this.allOverlays.splice(i, 1);
}
}
};
exports["default"] = Manager;
module.exports = exports["default"];
/***/ }),
/***/ 1770:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _class, _temp;
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _reactDom = __webpack_require__(4);
var _reactDom2 = _interopRequireDefault(_reactDom);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _nextUtil = __webpack_require__(831);
var _overlay = __webpack_require__(1609);
var _overlay2 = _interopRequireDefault(_overlay);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
var Children = _react2['default'].Children,
noop = function noop() {},
makeChain = _nextUtil.func.makeChain;
//
//
//
//
// {menu}
//
/** Overlay.Popup */
var Popup = (_temp = _class = function (_React$Component) {
_inherits(Popup, _React$Component);
function Popup(props) {
_classCallCheck(this, Popup);
var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
_this.state = {
visible: props.visible || props.defaultVisible
};
['_onTriggerClick', '_onTriggerFocus', '_onTriggerBlur', '_onContentMouseDown', '_onTriggerMouseEnter', '_onTriggerMouseLeave', '_onContentMouseEnter', '_onContentMouseLeave', '_onTriggerKeyDown'].forEach(function (method) {
_this[method] = _this[method].bind(_this);
});
return _this;
}
Popup.prototype.handleVisibleChange = function handleVisibleChange(visible, type, e) {
if (!('visible' in this.props)) {
this.setState({
visible: visible
});
}
this.props.onVisibleChange(visible, type, e);
};
Popup.prototype.render = function render() {
return this.getTrigger();
};
Popup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
if ('visible' in nextProps) {
this.setState({
visible: nextProps.visible
});
}
};
Popup.prototype.componentWillMount = function componentWillMount() {
this.uniqueOverlayKey = getUniqueKey();
};
Popup.prototype.addNodeForSafeClick = function addNodeForSafeClick(node) {
if (!this.overlay) {
return;
}
this.overlay.addNodeForSafeClick(node);
};
Popup.prototype.getContent = function getContent() {
var content = Children.only(this.props.children),
props = {};
switch (this.props.triggerType) {
case 'focus':
props = {
onMouseDown: makeChain(this._onContentMouseDown, content.props.onMouseDown)
};
break;
case 'click':
props = {};
break;
case 'hover':
props = {
onMouseEnter: makeChain(this._onContentMouseEnter, content.props.onMouseEnter),
onMouseLeave: makeChain(this._onContentMouseLeave, content.props.onMouseLeave)
};
}
return _react2['default'].cloneElement(content, props);
};
Popup.prototype.getTriggerNode = function getTriggerNode() {
return this.triggerNode || this.refs.trigger;
};
Popup.prototype.getTrigger = function getTrigger() {
var _this2 = this;
var _props = this.props,
trigger = _props.trigger,
disabled = _props.disabled,
props = {};
if (!disabled) {
var originRef = trigger.ref;
var ref = typeof originRef === 'function' ? function (node) {
originRef(node);
_this2.triggerNode = node;
} : 'trigger';
switch (this.props.triggerType) {
case 'click':
props = {
onClick: makeChain(this._onTriggerClick, trigger.props.onClick),
onKeyDown: makeChain(this._onTriggerKeyDown, trigger.props.onKeyDown),
ref: ref
};
break;
case 'focus':
props = {
onFocus: makeChain(this._onTriggerFocus, trigger.props.onFocus),
onBlur: makeChain(this._onTriggerBlur, trigger.props.onBlur),
ref: ref
};
break;
case 'hover':
props = {
onMouseEnter: makeChain(this._onTriggerMouseEnter, trigger.props.onMouseEnter),
onMouseLeave: makeChain(this._onTriggerMouseLeave, trigger.props.onMouseLeave),
onClick: makeChain(this.clearDocumentTimeout, trigger.props.onClick),
ref: ref
};
break;
default:
props = {
ref: ref
};
}
}
return _react2['default'].cloneElement(trigger, props);
};
Popup.prototype.componentDidMount = function componentDidMount() {
this._renderOverlay();
this.addNodeForSafeClick(_reactDom2['default'].findDOMNode(this.getTriggerNode()));
};
Popup.prototype.componentDidUpdate = function componentDidUpdate() {
this._renderOverlay();
this.addNodeForSafeClick(_reactDom2['default'].findDOMNode(this.getTriggerNode()));
};
Popup.prototype.componentWillUnmount = function componentWillUnmount() {
var _this3 = this;
['_timer', '_hideTimer', '_showTimer'].forEach(function (time) {
_this3[time] && clearTimeout(_this3[time]);
});
this._unRenderOverlay();
};
Popup.prototype._renderOverlay = function _renderOverlay() {
var _this4 = this;
if (!this.wrapper) {
this.wrapper = document.createElement('div');
}
var _props2 = this.props,
autoFocus = _props2.autoFocus,
target = _props2.target,
others = _objectWithoutProperties(_props2, ['autoFocus', 'target']);
if (typeof target === 'undefined') {
target = function target() {
return _this4.getTriggerNode();
};
}
var overlay = _react2['default'].createElement(
_overlay2['default'],
_extends({}, others, {
ref: function ref(overlay) {
return _this4.overlay = overlay;
},
visible: this.state.visible,
target: target,
key: this.uniqueOverlayKey,
autoFocus: autoFocus,
onRequestClose: function onRequestClose(reason, e) {
return _this4.handleVisibleChange(false, reason, e);
} }),
this.getContent()
);
_reactDom2['default'].unstable_renderSubtreeIntoContainer(this, overlay, this.wrapper);
};
Popup.prototype._unRenderOverlay = function _unRenderOverlay() {
if (this.wrapper) {
_reactDom2['default'].unmountComponentAtNode(this.wrapper);
this.wrapper = null;
this.overlay = null;
}
};
Popup.prototype._onTriggerClick = function _onTriggerClick(event, other) {
// Hack menu item problem
// Will be remove at 2.x
var e = event;
if (other && other.stopPropagation) {
e = other;
}
e.stopPropagation();
var target = e.target;
if (target.tagName.toLowerCase() === 'a') {
e.preventDefault();
}
this.handleVisibleChange(!this.state.visible, 'fromTrigger', e);
};
Popup.prototype._onTriggerFocus = function _onTriggerFocus(e) {
if (this._timer) {
clearTimeout(this._timer);
this._timer = null;
}
this.handleVisibleChange(true, 'fromTrigger', e);
e.stopPropagation();
};
Popup.prototype._onTriggerBlur = function _onTriggerBlur(e) {
var _this5 = this;
if (this._timer) {
clearTimeout(this._timer);
}
this._timer = setTimeout(function () {
if (!_this5._isForwardContent) {
_this5.handleVisibleChange(false, 'fromTrigger', e);
}
_this5._isForwardContent = false;
}, this.props.delay);
};
Popup.prototype._onContentMouseDown = function _onContentMouseDown() {
this._isForwardContent = true;
};
Popup.prototype._onTriggerMouseEnter = function _onTriggerMouseEnter(e) {
var _this6 = this;
if (this._hideTimer) {
clearTimeout(this._hideTimer);
this._hideTimer = null;
}
if (this._showTimer) {
clearTimeout(this._showTimer);
this._showTimer = null;
}
this._showTimer = setTimeout(function () {
_this6.handleVisibleChange(true, 'fromTrigger', e);
}, this.props.delay);
};
Popup.prototype._onTriggerMouseLeave = function _onTriggerMouseLeave(e, type) {
var _this7 = this;
if (this._showTimer) {
clearTimeout(this._showTimer);
this._showTimer = null;
}
if (this.state.visible) {
this._hideTimer = setTimeout(function () {
_this7.handleVisibleChange(false, type || 'fromTrigger', e);
}, this.props.delay);
}
};
Popup.prototype._onTriggerKeyDown = function _onTriggerKeyDown(e) {
// space
// enter
if (e.keyCode === 32 || e.keyCode === 13) {
this._onTriggerClick(e);
}
};
Popup.prototype._onContentMouseEnter = function _onContentMouseEnter() {
clearTimeout(this._hideTimer);
};
Popup.prototype._onContentMouseLeave = function _onContentMouseLeave(e) {
this._onTriggerMouseLeave(e, 'fromContent');
};
return Popup;
}(_react2['default'].Component), _class.propTypes = {
children: _propTypes2['default'].any,
/**
* 弹层相对于target的定位, 详见开发指南的[定位部分](#定位)
*/
align: _propTypes2['default'].string,
/**
* 弹层相对于target定位的微调
*/
offset: _propTypes2['default'].array,
/**
* 触发弹层显示或者隐藏的元素
*/
trigger: _propTypes2['default'].any,
/**
* 触发弹层显示的类型
*/
triggerType: _propTypes2['default'].string,
/**
* 弹层当前显示的状态
*/
visible: _propTypes2['default'].bool,
/**
* 弹层默认显示的状态
*/
defaultVisible: _propTypes2['default'].bool,
/**
* 设置此属性,弹层无法打开
*/
disabled: _propTypes2['default'].bool,
/**
* 弹层在触发以后的延时显示
*/
delay: _propTypes2['default'].number,
/**
* 点击浮层外的区域是否关闭浮层
*/
canCloseByOutSideClick: _propTypes2['default'].bool,
/**
* 弹层在显示和隐藏触发的事件
* @param {Boolean} visible 弹层是否隐藏和显示
* @param {String} type 触发弹层显示和隐藏的来源
* @param {Event} e DOM事件
*/
onVisibleChange: _propTypes2['default'].func,
/**
* 浮层打开的时候是否让里面的元素自动获取焦点
*/
autoFocus: _propTypes2['default'].bool,
/**
* 配置动画的播放方式
* @param {String} in 进场动画
* @param {String} out 出场动画
*/
animation: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].bool]),
/**
* 配置弹层定位的参照元素
*/
target: _propTypes2['default'].any
}, _class.defaultProps = {
triggerType: 'hover',
trigger: _react2['default'].createElement('div', null),
align: 'tl bl',
offset: [0, 0],
disabled: false,
delay: 200,
canCloseByOutSideClick: true,
onVisibleChange: noop,
animation: {
'in': 'expandInDown',
out: 'expandOutUp'
}
}, _temp);
Popup.displayName = 'Popup';
exports['default'] = Popup;
var uuid = 0;
function getUniqueKey() {
return 'overlay-' + uuid++;
}
module.exports = exports['default'];
/***/ }),
/***/ 1771:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _class, _temp;
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames = __webpack_require__(3);
var _classnames2 = _interopRequireDefault(_classnames);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
/**
* Icon
*/
var Icon = (_temp = _class = function (_Component) {
_inherits(Icon, _Component);
function Icon() {
_classCallCheck(this, Icon);
return _possibleConstructorReturn(this, _Component.apply(this, arguments));
}
Icon.prototype.render = function render() {
var _cx;
var prefix = this.context.prefix || this.props.prefix;
// eslint-disable-next-line
var _props = this.props,
propsPrefix = _props.prefix,
type = _props.type,
size = _props.size,
className = _props.className,
other = _objectWithoutProperties(_props, ['prefix', 'type', 'size', 'className']);
var sizeCls = {
xxs: 'xxs',
xs: 'xs',
small: 'small',
medium: 'medium',
large: 'large',
xl: 'xl',
xxl: 'xxl',
xxxl: 'xxxl'
}[size];
var classes = (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, prefix + 'icon', true), _defineProperty(_cx, prefix + 'icon-' + type, !!type), _defineProperty(_cx, prefix + 'icon-' + sizeCls, !!size), _defineProperty(_cx, className, !!className), _cx));
return _react2['default'].createElement('i', _extends({}, other, { className: classes }));
};
return Icon;
}(_react.Component), _class.contextTypes = {
prefix: _propTypes2['default'].string
}, _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内联样式
*/
style: _propTypes2['default'].object,
/**
* 指定显示哪种图标
*/
type: _propTypes2['default'].string,
/**
* 指定图标大小
*/
size: _propTypes2['default'].oneOf(['xxs', 'xs', 'small', 'medium', 'large', 'xl', 'xxl', 'xxxl'])
}, _class.defaultProps = {
prefix: 'next-',
size: 'medium'
}, _class._typeMark = 'icon', _temp);
Icon.displayName = 'Icon';
exports['default'] = Icon;
module.exports = exports['default'];
/***/ }),
/***/ 1772:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _class, _temp;
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames = __webpack_require__(3);
var _classnames2 = _interopRequireDefault(_classnames);
var _nextIcon = __webpack_require__(849);
var _nextIcon2 = _interopRequireDefault(_nextIcon);
var _nextDropdown = __webpack_require__(1545);
var _nextDropdown2 = _interopRequireDefault(_nextDropdown);
var _button = __webpack_require__(1612);
var _button2 = _interopRequireDefault(_button);
var _group = __webpack_require__(1613);
var _group2 = _interopRequireDefault(_group);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
/** Button.Split */
var SplitButton = (_temp = _class = function (_Component) {
_inherits(SplitButton, _Component);
function SplitButton() {
_classCallCheck(this, SplitButton);
return _possibleConstructorReturn(this, _Component.apply(this, arguments));
}
SplitButton.prototype.render = function render() {
var _classNames;
var _props = this.props,
className = _props.className,
type = _props.type,
shape = _props.shape,
menu = _props.menu,
size = _props.size,
disabled = _props.disabled,
trigger = _props.trigger,
align = _props.align,
offset = _props.offset,
children = _props.children,
onClick = _props.onClick,
style = _props.style,
container = _props.container,
popupProps = _props.popupProps,
others = _objectWithoutProperties(_props, ['className', 'type', 'shape', 'menu', 'size', 'disabled', 'trigger', 'align', 'offset', 'children', 'onClick', 'style', 'container', 'popupProps']);
var prefix = this.context.prefix || this.props.prefix;
var splitCls = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, prefix + 'btn-split', true), _defineProperty(_classNames, className, className), _classNames));
var iconSize = {
large: 'small',
medium: 'xs',
small: 'xs'
}[size];
var splitTrigger = _react2['default'].createElement(
_button2['default'],
{ type: type, disabled: disabled, size: size, shape: shape },
_react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-down', size: iconSize, className: prefix + 'icon-split' })
);
return _react2['default'].createElement(
_group2['default'],
_extends({}, others, { size: size, className: splitCls, style: style }),
_react2['default'].createElement(
_button2['default'],
_extends({ type: type, disabled: disabled, shape: shape, onClick: onClick.bind(this) }, others),
children
),
_react2['default'].createElement(
_nextDropdown2['default'],
_extends({}, popupProps, { align: align, offset: offset, triggerType: trigger, trigger: splitTrigger, container: container }),
menu
)
);
};
return SplitButton;
}(_react.Component), _class.propTypes = {
/**
* 样式品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* Dropdown 的对齐方式,参考 [Dropdown](http://gitlab.alibaba-inc.com/next/dropdown)
*/
align: _propTypes2['default'].string,
/**
* Dropdown 的位置偏移,参考 [Dropdown](http://gitlab.alibaba-inc.com/next/dropdown)
*/
offset: _propTypes2['default'].array,
/**
* 类型,同 Button
*/
type: _propTypes2['default'].oneOf(['primary', 'secondary', 'normal', 'dark', 'light']),
/**
* 外观,同 Button
*/
shape: _propTypes2['default'].oneOf(['ghost', 'text', 'warning']),
/**
* 尺寸,同 Button
*/
size: _propTypes2['default'].oneOf(['small', 'medium', 'large']),
/**
* Dropdown 触发方式,参考 [Dropdown](http://gitlab.alibaba-inc.com/next/dropdown)
*/
trigger: _propTypes2['default'].oneOf(['click', 'hover']),
/**
* 弹层挂载的容器节点
*/
container: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]),
/**
* 弹层属性
*/
popupProps: _propTypes2['default'].object,
/**
* 弹出的内容,参考 [Dropdown](http://gitlab.alibaba-inc.com/next/dropdown)
*/
menu: _propTypes2['default'].node,
/**
* 点击按钮的回调
* @param {Object} e Event Object
*/
onClick: _propTypes2['default'].func,
style: _propTypes2['default'].object
}, _class.defaultProps = {
prefix: 'next-',
align: 'tr br',
offset: [0, 4],
type: 'normal',
size: 'medium',
trigger: 'click',
onClick: function onClick() {},
style: null
}, _class.contextTypes = {
prefix: _propTypes2['default'].string
}, _temp);
SplitButton.displayName = 'SplitButton';
exports['default'] = SplitButton;
module.exports = exports['default'];
/***/ }),
/***/ 1773:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* eslint-disable */
/**
* Recursive cloning array.
*/
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function deepCloneArray(arr) {
var clone = [];
arr.forEach(function (item, index) {
if ((typeof item === 'undefined' ? 'undefined' : _typeof(item)) === 'object' && item !== null) {
if (Array.isArray(item)) {
clone[index] = deepCloneArray(item);
} else {
clone[index] = deepExtend({}, item);
}
} else {
clone[index] = item;
}
});
return clone;
}
/**
* Extening object that entered in first argument.
*
* Returns extended object or false if have no target object or incorrect type.
*
* If you wish to clone source object (without modify it), just use empty new
* object as first argument, like this:
* deepExtend({}, yourObj_1, [yourObj_N]);
*/
var deepExtend = function deepExtend() /*obj_1, [obj_2], [obj_N]*/{
if (arguments.length < 1 || _typeof(arguments[0]) !== 'object') {
return false;
}
if (arguments.length < 2) {
return arguments[0];
}
var target = arguments[0];
// convert arguments to array and cut off target object
var args = Array.prototype.slice.call(arguments, 1);
var val, src, clone;
args.forEach(function (obj) {
// skip argument if isn't an object, is null, or is an array
if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' || obj === null || Array.isArray(obj)) {
return;
}
Object.keys(obj).forEach(function (key) {
src = target[key]; // source value
val = obj[key]; // new value
// recursion prevention
if (val === target) {
return;
/**
* if new value isn't object then just overwrite by new value
* instead of extending.
*/
} else if ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) !== 'object' || val === null) {
target[key] = val;
return;
// just clone arrays (and recursive clone objects inside)
} else if (Array.isArray(val)) {
target[key] = deepCloneArray(val);
return;
} else if ((typeof src === 'undefined' ? 'undefined' : _typeof(src)) !== 'object' || src === null || Array.isArray(src)) {
target[key] = deepExtend({}, val);
return;
// source value and new value is objects both, extending...
} else {
target[key] = deepExtend(src, val);
return;
}
});
});
return target;
};
exports['default'] = deepExtend;
module.exports = exports['default'];
/***/ }),
/***/ 1774:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _class, _temp;
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames2 = __webpack_require__(3);
var _classnames3 = _interopRequireDefault(_classnames2);
var _radio = __webpack_require__(1614);
var _radio2 = _interopRequireDefault(_radio);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
/**
* Radio.Group
* @order 2
*/
var RadioGroup = (_temp = _class = function (_Component) {
_inherits(RadioGroup, _Component);
function RadioGroup(props) {
_classCallCheck(this, RadioGroup);
var _this = _possibleConstructorReturn(this, _Component.call(this, props));
var value = '';
if ('value' in props) {
value = props.value;
} else if ('defaultValue' in props) {
value = props.defaultValue;
}
_this.state = {
value: value,
disabled: props.disabled //TODO:disabled 没有必要放在state里,后面要改掉
};
_this.onChange = _this.onChange.bind(_this);
return _this;
}
RadioGroup.prototype.getChildContext = function getChildContext() {
return {
__group__: true,
isButton: this.props.shape === 'button',
onChange: this.onChange,
selectedValue: this.state.value,
disabled: this.state.disabled
};
};
RadioGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
var value = nextProps.value,
disabled = nextProps.disabled;
if ('value' in nextProps && 'disabled' in nextProps) {
if (value === undefined) {
value = '';
}
this.setState({
value: value,
disabled: disabled
});
} else if ('value' in nextProps) {
if (value === undefined) {
value = '';
}
this.setState({
value: value
});
} else if ('disabled' in nextProps) {
this.setState({
disabled: disabled
});
}
};
RadioGroup.prototype.onChange = function onChange(currentValue, e) {
if (!('value' in this.props)) {
this.setState({ value: currentValue });
}
this.props.onChange(currentValue, e);
};
RadioGroup.prototype.render = function render() {
var _this2 = this,
_classnames;
var _props = this.props,
className = _props.className,
shape = _props.shape,
size = _props.size,
id = _props.id,
style = _props.style;
var disabled = this.state.disabled;
var prefix = this.context.prefix || this.props.prefix;
var children = void 0;
if (this.props.children) {
children = this.props.children;
} else {
children = this.props.dataSource.map(function (item, index) {
var option = item;
if ((typeof item === 'undefined' ? 'undefined' : _typeof(item)) !== 'object') {
option = {
label: item,
value: item,
disabled: disabled
};
}
var checked = _this2.state.value === option.value;
return _react2['default'].createElement(
_radio2['default'],
{
key: index,
value: option.value,
checked: checked,
disabled: disabled || option.disabled
},
option.label
);
});
}
var cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'radio-group', true), _defineProperty(_classnames, prefix + 'radio-button', shape === 'button'), _defineProperty(_classnames, prefix + 'radio-button-' + size, shape === 'button'), _defineProperty(_classnames, className, !!className), _defineProperty(_classnames, 'disabled', disabled), _classnames));
return _react2['default'].createElement(
'div',
{ id: id, className: cls, style: style },
children
);
};
return RadioGroup;
}(_react.Component), _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内敛样式
*/
style: _propTypes2['default'].object,
/**
* radio group的选中项的值
*/
value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number, _propTypes2['default'].bool]),
/**
* radio group的默认值
*/
defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number, _propTypes2['default'].bool]),
/**
* 选中值改变时的事件
* @param {String/Number} value 选中项的值
* @param {Event} e Dom 事件对象
*/
onChange: _propTypes2['default'].func,
/**
* 表示radio被禁用
*/
disabled: _propTypes2['default'].bool,
/**
* 可以设置成 button 展示形状
* @enumdesc 按钮状
*/
shape: _propTypes2['default'].oneOf(['button']),
/**
* 与 `shape` 属性配套使用,shape设为button时有效
* @enumdesc 大, 中, 小
*/
size: _propTypes2['default'].oneOf(['large', 'medium', 'small']),
/**
* 可选项列表, 数据项可为 String 或者 Object, 如 `['apple', 'pear', 'orange']`
*/
dataSource: _propTypes2['default'].arrayOf(_propTypes2['default'].any),
id: _propTypes2['default'].string,
/**
* 通过子元素方式设置内部radio
*/
children: _propTypes2['default'].oneOfType([_propTypes2['default'].arrayOf(_propTypes2['default'].element), _propTypes2['default'].element])
}, _class.defaultProps = {
dataSource: [],
size: 'medium',
onChange: function onChange() {},
prefix: 'next-'
}, _class.contextTypes = {
prefix: _propTypes2['default'].string
}, _class.childContextTypes = {
onChange: _propTypes2['default'].func,
__group__: _propTypes2['default'].bool,
isButton: _propTypes2['default'].bool,
selectedValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number, _propTypes2['default'].bool]),
disabled: _propTypes2['default'].bool
}, _temp);
RadioGroup.displayName = 'RadioGroup';
exports['default'] = RadioGroup;
module.exports = exports['default'];
/***/ }),
/***/ 1775:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _class, _temp;
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames2 = __webpack_require__(3);
var _classnames3 = _interopRequireDefault(_classnames2);
var _nextOverlay = __webpack_require__(1256);
var _nextIcon = __webpack_require__(849);
var _nextIcon2 = _interopRequireDefault(_nextIcon);
var _nextUtil = __webpack_require__(831);
var _nextLocaleProvider = __webpack_require__(1069);
var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider);
var _base = __webpack_require__(1616);
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
var noop = function noop() {};
/**
* Select
*/
var Select = (_temp = _class = function (_Base) {
_inherits(Select, _Base);
function Select() {
_classCallCheck(this, Select);
return _possibleConstructorReturn(this, _Base.apply(this, arguments));
}
Select.prototype.render = function render() {
var _classnames;
/* eslint-disable no-unused-vars */
var _props = this.props,
placeholder = _props.placeholder,
children = _props.children,
className = _props.className,
locale = _props.locale,
overlay = _props.overlay,
popupProps = _props.popupProps,
size = _props.size,
disabled = _props.disabled,
shape = _props.shape,
hasArrow = _props.hasArrow,
safeNode = _props.safeNode,
multiple = _props.multiple,
animation = _props.animation,
dataSource = _props.dataSource,
container = _props.container,
hasClear = _props.hasClear,
popupClassName = _props.popupClassName,
others = _objectWithoutProperties(_props, ['placeholder', 'children', 'className', 'locale', 'overlay', 'popupProps', 'size', 'disabled', 'shape', 'hasArrow', 'safeNode', 'multiple', 'animation', 'dataSource', 'container', 'hasClear', 'popupClassName']),
prefix = this.getPrefix(),
menu = overlay || this.renderMenu(),
_state = this.state,
value = _state.value,
visible = _state.visible;
placeholder = placeholder || locale.selectPlaceHolder;
this.cacheDataByValue(value);
var records = this.getDataByValue(value),
label = this.getDisplayByValue(value, records),
cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'select', true), _defineProperty(_classnames, 'opened', visible), _defineProperty(_classnames, 'disabled', disabled), _defineProperty(_classnames, size, size), _defineProperty(_classnames, 'multiple', multiple), _defineProperty(_classnames, 'no-border', shape === 'arrow-only'), _defineProperty(_classnames, 'no-arrow', !hasArrow), _defineProperty(_classnames, 'has-clear', this.hasClear()), _defineProperty(_classnames, className, className), _classnames)),
arrowType = this.getArrowType(),
iconSize = this.getIconSize(),
hiddenValue = this.normalizeHiddenValue(this.state.value),
labelContent = label.length ? this.renderLabel(label, value) : _react2['default'].createElement(
'span',
{ className: prefix + 'select-placeholder' },
placeholder
),
arrowContent = hasArrow ? _react2['default'].createElement(_nextIcon2['default'], { type: arrowType, size: iconSize, className: prefix + 'select-arrow' }) : null,
closeIcon = this.hasClear() ? _react2['default'].createElement(_nextIcon2['default'], { type: 'delete-filling', size: iconSize, className: prefix + 'select-clear', onClick: this.clear.bind(this) }) : null;
others = (0, _nextUtil.pickAttrs)(others);
var trigger = _react2['default'].createElement(
'span',
_extends({}, others, { className: cls, tabIndex: disabled ? null : 0 }),
_react2['default'].createElement('input', { type: 'hidden', name: others.name || 'select-faker', value: hiddenValue }),
_react2['default'].createElement(
'span',
{ ref: 'target', className: prefix + 'select-inner' },
labelContent,
closeIcon
),
arrowContent
);
return _react2['default'].createElement(
_nextOverlay.Popup,
_extends({}, popupProps, {
className: popupClassName,
trigger: trigger,
ref: 'popup',
container: container,
triggerType: 'click',
disabled: disabled,
visible: visible,
animation: animation,
autoFocus: true,
safeNode: safeNode,
shouldUpdatePosition: true,
onOpen: this.onOpen,
afterOpen: this.afterOpen,
onClose: this.props.onClose,
onVisibleChange: this.onVisibleChange.bind(this) }),
menu
);
};
Select.prototype.onOpen = function onOpen() {
var menu = this.refs.popup.overlay.refs.menu;
this._syncWidth(menu);
this.props.onOpen();
};
Select.prototype.afterOpen = function afterOpen() {
var menu = this.refs.popup.overlay.refs.menu;
this._enableScroll(menu);
this.props.afterOpen();
};
Select.prototype.normalizeHiddenValue = function normalizeHiddenValue(value) {
return value.map(function (v) {
if (_nextUtil.obj.isPlainObject(v)) {
return v.value;
} else {
return v;
}
});
};
return Select;
}(_base2['default']), _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内联样式
*/
style: _propTypes2['default'].object,
/**
* 弹层挂载容器节点
*/
container: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]),
/**
* 选择器的尺寸
*/
size: _propTypes2['default'].oneOf(['small', 'medium', 'large']),
/**
* 选择器的形状
*/
shape: _propTypes2['default'].oneOf(['normal', 'arrow-only']),
/**
* 没有值的时候的占位符
*/
placeholder: _propTypes2['default'].string,
/**
* 当前值
*/
value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number, _propTypes2['default'].array, _propTypes2['default'].object]),
/**
* 初始默认值
*/
defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].array, _propTypes2['default'].object]),
/**
* 当前弹层是否显示
*/
visible: _propTypes2['default'].bool,
/**
* 弹层初始是否显示
*/
defaultVisible: _propTypes2['default'].bool,
/**
* 是否禁用
*/
disabled: _propTypes2['default'].bool,
/**
* 传入的数据,可以动态渲染子项,详见[dataSource的使用](#dataSource的使用)
*/
dataSource: _propTypes2['default'].array,
/**
* 是否是多选
*/
multiple: _propTypes2['default'].bool,
// TODO: Remove API at next version.
/**
* 填充到选择框里面的值
*/
fillProps: _propTypes2['default'].string,
/**
* 是否显示顶部的搜索框
*/
showSearch: _propTypes2['default'].bool,
/**
* 在输入的时候过滤的函数,仅在filterLocal为true时候有效
* @param {String} filterValue 筛选值
* @param {Object} option 选项
* @return {Boolean} 是否保留当前选项
*/
filterBy: _propTypes2['default'].func,
/**
* 是否使用本地过滤,在数据源为远程的时候需要关闭此选项
*/
filterLocal: _propTypes2['default'].bool,
/**
* 是否显示右侧的箭头
*/
hasArrow: _propTypes2['default'].bool,
/**
* 下拉菜单是否与选择器对齐
*/
autoWidth: _propTypes2['default'].bool,
/**
* Select发生改变的时候触发的回调
* @param {String} value 数据
* @param {Object} option 选项
*/
onChange: _propTypes2['default'].func,
/**
* 在搜索框中输入触发的事件,仅在showSearch为true时候有效
* @param {String} value 搜索值
*/
onSearch: _propTypes2['default'].func,
/**
* 是否显示清空按钮,该按钮可以清空select的value, 该属性仅在单选模式下有效
*/
hasClear: _propTypes2['default'].bool,
/**
* 弹出层的样式类
*/
popupClassName: _propTypes2['default'].string,
/**
* 弹出层的属性
*/
popupProps: _propTypes2['default'].object,
/**
* 弹层显示或隐藏的时候触发的事件
* @param {Boolean} visible 弹层是否隐藏和显示
*/
onVisibleChange: _propTypes2['default'].func,
/**
* 弹层显示时触发的事件
*/
onOpen: _propTypes2['default'].func,
/**
* 弹层隐藏时触发的事件
*/
onClose: _propTypes2['default'].func,
/**
* 自定义国际化文案对象
* @property {String} selectPlaceHolder 请选择的提示文案
* @property {String} comboboxPlaceHolder 请输入的提示文案
*/
locale: _propTypes2['default'].object,
/**
* 自定义国际化语言
*/
language: _propTypes2['default'].oneOf(['en-us', 'zh-cn', 'zh-tw']),
afterOpen: _propTypes2['default'].func
}, _class.defaultProps = {
prefix: 'next-',
size: 'medium',
shape: 'normal',
placeholder: '',
disabled: false,
multiple: false,
showSearch: false,
hasArrow: true,
autoWidth: true,
onVisibleChange: noop,
onChange: noop,
fillProps: 'label',
filterLocal: true,
onMouseDown: noop,
onMouseUp: noop,
onSearch: noop,
onOpen: noop,
onClose: noop,
hasClear: false,
animation: {
'in': 'expandInDown',
out: 'expandOutUp'
},
locale: {
selectPlaceHolder: '请选择',
comboboxPlaceHolder: '请输入'
},
afterOpen: noop
}, _temp);
Select.displayName = 'Select';
exports['default'] = (0, _nextLocaleProvider2['default'])(Select);
module.exports = exports['default'];
/***/ }),
/***/ 1776:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _class, _temp; /* eslint-disable eqeqeq */
/* eslint-disable react/prop-types */
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _reactDom = __webpack_require__(4);
var _reactDom2 = _interopRequireDefault(_reactDom);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _nextUtil = __webpack_require__(831);
var _nextDom = __webpack_require__(1044);
var _classnames2 = __webpack_require__(3);
var _classnames3 = _interopRequireDefault(_classnames2);
var _container = __webpack_require__(1328);
var _container2 = _interopRequireDefault(_container);
var _subMenu = __webpack_require__(1617);
var _subMenu2 = _interopRequireDefault(_subMenu);
var _menuItem = __webpack_require__(1358);
var _menuItem2 = _interopRequireDefault(_menuItem);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
var Component = _container2['default'];
var Children = _react2['default'].Children,
noop = function noop() {},
makeChain = _nextUtil.func.makeChain,
getOffset = _nextDom.style.getOffset;
var KEY_CODE_MAPS = {};
for (var key in _nextUtil.keyCode) {
var lowerCaseKey = key.toLowerCase().replace('_arrow', '');
KEY_CODE_MAPS[_nextUtil.keyCode[key]] = lowerCaseKey.charAt(0).toUpperCase() + lowerCaseKey.substr(1);
}
/** Menu */
var Menu = (_temp = _class = function (_Component) {
_inherits(Menu, _Component);
function Menu(props, context) {
_classCallCheck(this, Menu);
var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
_this.children = [];
_this.state = {
selectedKeys: _this.normalizeKeys(props.selectedKeys || props.defaultSelectedKeys),
openKeys: _this.normalizeKeys(props.openKeys || props.defaultOpenKeys),
focusedKey: props.focusedKey
};
['onMouseLeave', 'onItemClick', 'onSelect', 'onFocus', 'onOpen', 'onKeyNavNodeKeyDown', 'onKeyNavNodeFocus'].forEach(function (method) {
_this[method] = _this[method].bind(_this);
});
return _this;
}
Menu.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
if ('selectedKeys' in nextProps) {
this.setState({
selectedKeys: this.normalizeKeys(nextProps.selectedKeys)
});
}
if ('openKeys' in nextProps) {
this.setState({
openKeys: this.normalizeKeys(nextProps.openKeys)
});
}
if ('focusedKey' in nextProps) {
this.setState({
focusedKey: nextProps.focusedKey
});
}
};
Menu.prototype.normalizeKeys = function normalizeKeys(keys) {
if (!Array.isArray(keys)) {
if (keys != null) {
keys = [keys];
} else {
keys = [];
}
} else {
keys = [].concat(_toConsumableArray(keys));
}
return keys;
};
Menu.prototype.render = function render() {
var _classnames,
_this2 = this;
var _props = this.props,
className = _props.className,
hasIcon = _props.hasIcon,
children = _props.children,
header = _props.header,
footer = _props.footer,
indentSize = _props.indentSize,
multipleCol = _props.multipleCol,
direction = _props.direction,
others = _objectWithoutProperties(_props, ['className', 'hasIcon', 'children', 'header', 'footer', 'indentSize', 'multipleCol', 'direction']),
_state = this.state,
selectedKeys = _state.selectedKeys,
openKeys = _state.openKeys,
focusedKey = _state.focusedKey,
prefix = this.getPrefix(),
cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'menu', true), _defineProperty(_classnames, 'multiple-col', multipleCol), _defineProperty(_classnames, prefix + 'menu-has-icon', hasIcon), _defineProperty(_classnames, direction, direction), _defineProperty(_classnames, className, className), _classnames)),
hasSubMenu = (Children.toArray(children).some(function (child) {
var type = child.type;
return type._subMenu;
}) || this.props.hasSubMenu) && direction !== 'hoz';
this.childrenMeta = [];
var contentChildren = Children.map(children, function (child, index) {
if (child) {
var _key = child.props.index || child.key;
if (typeof _key === 'undefined' || _key === null) {
_key = index.toString();
}
if (child.type.name === 'MenuDivider') {
return child;
}
return _react2['default'].cloneElement(child, {
ref: _key,
index: _key,
parent: _this2,
indentSize: hasSubMenu && indentSize ? indentSize : null,
hasIcon: hasIcon,
selectedKeys: selectedKeys,
focusedKey: focusedKey,
openKeys: openKeys,
direction: direction
});
}
});
others = (0, _nextUtil.pickAttrs)(others);
var root = _react2['default'].createElement(
'div',
_extends({ tabIndex: 0
}, others, {
className: cls,
onMouseLeave: this.onMouseLeave }),
header ? _react2['default'].createElement(
'div',
{ className: prefix + 'menu-header' },
header
) : null,
_react2['default'].createElement(
'ul',
{ className: prefix + 'menu-content' },
contentChildren
),
footer ? _react2['default'].createElement(
'div',
{ className: prefix + 'menu-footer' },
footer
) : null
);
return this.getKeyNavNode(root);
};
Menu.prototype.onMouseLeave = function onMouseLeave(e) {
this.setState({
focusedKey: null
});
if (this.props.onMouseLeave) {
this.props.onMouseLeave(e);
}
};
Menu.prototype.onItemClick = function onItemClick(e, index, type, menuInc) {
var selectedKeys = this.state.selectedKeys,
selectMode = this.props.selectMode,
keyIndex = void 0,
stateSelectKeys = void 0;
selectedKeys = [].concat(_toConsumableArray(selectedKeys));
if (menuInc.props.__radioItem) {
type = 'single';
}
if (menuInc.props.__checkboxItem) {
type = 'multiple';
}
//使用Menu的selectMode
if (typeof selectMode !== 'undefined') {
type = selectMode;
}
if (type === 'multiple') {
keyIndex = selectedKeys.indexOf(index);
if (keyIndex === -1) {
selectedKeys.push(index);
} else {
selectedKeys.splice(keyIndex, 1);
this.props.onDeselect(index);
}
stateSelectKeys = selectedKeys;
} else {
selectedKeys = index;
stateSelectKeys = [selectedKeys];
}
if (!('focusedKey' in this.props)) {
this.setState({
focusedKey: index
});
}
this.props.onFocus(e, index);
if (type !== 'click') {
if (this.props.shallowSelect && menuInc.context.parentIndex) {
stateSelectKeys = [menuInc.context.parentIndex[0]];
}
if (!('selectedKeys' in this.props)) {
this.setState({
selectedKeys: stateSelectKeys
});
}
this.props.onSelect(stateSelectKeys, menuInc, {
keyPath: menuInc.context.parentIndex,
label: menuInc.context.parentLabel
});
} else {
this.props.onClick(selectedKeys, menuInc, {
keyPath: menuInc.context.parentIndex,
label: menuInc.context.parentLabel
}, e);
}
};
Menu.prototype.onSelect = function onSelect(selectedKeys) {
var _props2;
this.setState({
selectedKeys: selectedKeys
});
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key2 = 1; _key2 < _len; _key2++) {
args[_key2 - 1] = arguments[_key2];
}
(_props2 = this.props).onSelect.apply(_props2, [selectedKeys].concat(args));
};
Menu.prototype.onFocus = function onFocus(index) {
this.setState({
focusedKey: index
});
this.props.onFocus(index);
};
Menu.prototype.onOpen = function onOpen(openKeys, visible) {
var _this3 = this;
var stateOpenKeys = this.state.openKeys,
openMode = this.props.openMode;
stateOpenKeys = [].concat(_toConsumableArray(stateOpenKeys));
if (Array.isArray(openKeys)) {
stateOpenKeys = [].concat(_toConsumableArray(openKeys));
} else {
if (openMode === 'single') {
stateOpenKeys = stateOpenKeys.filter(function (key) {
// 首先找到跟当前key匹配到的subMenu
// 在寻找subMenu下面的子节点的key
// 如果当前key是子节点的父节点,则不需要隐藏
var subMenu = _this3.getChildrenIncByType(_subMenu2['default']).filter(function (child) {
return (child.props.index || child.key) == key;
})[0];
if (subMenu) {
var childKeys = subMenu.getChildrenIncByType(_subMenu2['default']).map(function (child) {
return child.props.index || child.key;
});
return childKeys.indexOf(openKeys) > -1;
} else {
return false;
}
});
}
var index = stateOpenKeys.indexOf(openKeys);
if (index === -1 && visible) {
stateOpenKeys.push(openKeys);
} else if (index !== -1 && !visible) {
stateOpenKeys.splice(index, 1);
}
if (!('openKeys' in this.props)) {
this.setState({
openKeys: stateOpenKeys
});
}
this.props.onOpen(stateOpenKeys);
}
};
Menu.prototype.componentDidMount = function componentDidMount() {
_nextDom.events.on(window, 'blur', this.onKeyNavNodeBlur);
this.focusChildAddTimeout();
};
Menu.prototype.focusChildAddTimeout = function focusChildAddTimeout() {
var _this4 = this;
// 让focusKey对应的focusNode获取焦点
// 在Overlay中由于节点可能设置了autoFocus,所以要设置比Overlay的autoFocus的功能延时
// 要长
// 在didMount的时候获取焦点的功能应该放置到使用者去主动调用
// 1.0的时候移除该功能,放置到Select或者Dropdown中手动调用
setTimeout(function () {
_this4._focusChild();
}, 200);
};
Menu.prototype._focusChild = function _focusChild() {
var child = this.getCurrentChild();
if (child) {
if (this.props.autoFocus) {
var node = child.node;
node && node.focus();
} else {
// Scroll dom to viewport.
this.scrollTo(child.node);
}
}
};
Menu.prototype.componentWillUnmount = function componentWillUnmount() {
_nextDom.events.off(window, 'blur', this.onKeyNavNodeBlur);
if (this._keyNodeBlurTimeout) {
clearTimeout(this._keyNodeBlurTimeout);
}
};
Menu.prototype.getKeyNavNode = function getKeyNavNode(node) {
return _react2['default'].cloneElement(node, {
onKeyDown: makeChain(this.onKeyNavNodeKeyDown, node.props.onKeyDown),
onFocus: makeChain(this.onKeyNavNodeFocus, node.props.onFocus)
});
};
Menu.prototype.onKeyNavNodeKeyDown = function onKeyNavNodeKeyDown(e) {
var key = KEY_CODE_MAPS[e.keyCode];
var method = this['_on' + key + 'Key'];
if (method) {
method.call(this, e);
} else {
this._onKeyBoardSearch(e);
}
e.stopPropagation();
};
Menu.prototype.addChildMeta = function addChildMeta(meta) {
if (this.childrenMeta.indexOf(meta) === -1) {
this.childrenMeta.push(meta);
}
};
Menu.prototype.removeChildMeta = function removeChildMeta(meta) {
var index = this.childrenMeta.indexOf(meta);
if (index > -1) {
this.childrenMeta.splice(index, 1);
}
};
Menu.prototype._onKeyBoardSearch = function _onKeyBoardSearch(e) {
var key = String.fromCharCode(e.keyCode).toLowerCase(),
children = this.getChildrenMeta(),
currentChild = void 0;
children.forEach(function (child) {
if (typeof child.children === 'string' && child.children.charAt(0).toLowerCase() === key) {
if (!currentChild) {
currentChild = child;
}
}
});
this.focusChild(currentChild);
};
Menu.prototype.onKeyNavNodeFocus = function onKeyNavNodeFocus(e) {
if (this.state.focusedKey == null && this.props.autoFocusFirstItem) {
this._onDownKey(e);
}
};
Menu.prototype._onUpKey = function _onUpKey(e) {
var child = void 0;
if (this.state.focusedKey == null) {
child = this._getLastChild();
} else {
child = this._getPrevChild();
}
this.focusChild(child);
e.preventDefault();
};
Menu.prototype._onEnterKey = function _onEnterKey(e) {
if (this.props.onKeyNavNodeEnter) {
this.props.onKeyNavNodeEnter(e, this.getCurrentChild());
}
};
Menu.prototype._onDownKey = function _onDownKey(e) {
var child = void 0;
if (this.state.focusedKey == null) {
child = this._getFirstChild();
} else {
child = this._getNextChild();
}
this.focusChild(child);
e.preventDefault();
};
Menu.prototype._onHomeKey = function _onHomeKey() {
var child = this._getFirstChild();
this.focusChild(child);
};
Menu.prototype._onEndKey = function _onEndKey() {
var child = this._getLastChild();
this.focusChild(child);
};
Menu.prototype.focusChild = function focusChild(child) {
var _this5 = this;
if (child) {
this.setState({
focusedKey: child.index
}, function () {
_this5._focusChild();
});
}
};
Menu.prototype.unFocusChild = function unFocusChild(child) {
this.setState({
focusedKey: null
});
if (child) {
var node = child.node;
node && node.blur();
}
};
Menu.prototype.scrollTo = function scrollTo(node) {
if (node) {
var rootNode = _reactDom2['default'].findDOMNode(this),
rootNodeOffsetTop = getOffset(rootNode).top,
scrollTop = rootNode.scrollTop,
nodeOffsetTop = getOffset(node).top,
rootNodeHeight = rootNode.clientHeight;
if (nodeOffsetTop + node.clientHeight > rootNodeHeight + rootNodeOffsetTop) {
rootNode.scrollTop = scrollTop + (nodeOffsetTop + node.clientHeight) - (rootNodeHeight + rootNodeOffsetTop);
} else if (nodeOffsetTop < rootNodeOffsetTop) {
rootNode.scrollTop = node.offsetTop;
}
}
};
Menu.prototype.getChildrenMeta = function getChildrenMeta() {
var result = [],
children = this.childrenMeta;
children.forEach(function (child) {
if (!child.disabled) {
result.push(child);
}
});
return result;
};
Menu.prototype.getCurrentChild = function getCurrentChild() {
var _this6 = this;
var children = this.getChildrenMeta(),
currentChild = void 0;
children.forEach(function (child) {
if (child.index === _this6.state.focusedKey) {
currentChild = child;
}
});
return currentChild;
};
Menu.prototype._getFirstChild = function _getFirstChild() {
var children = this.getChildrenMeta();
return children[0];
};
/**
* 获取最后一个直系子级
* @returns {*}
* @private
*/
Menu.prototype._getLastChild = function _getLastChild() {
var children = this.getChildrenMeta();
return children[children.length - 1];
};
Menu.prototype._getChildByStep = function _getChildByStep(step) {
if (this.state.focusedKey != null) {
var children = this.getChildrenMeta(),
_key3 = this.state.focusedKey,
index = void 0;
children.forEach(function (child, i) {
if (child.index === _key3) {
index = i;
}
});
if (index == null) {
return children[0];
}
if (step == 1 && index + 1 === children.length) {
index = -1;
}
if (step == -1 && index - 1 < 0) {
index = children.length;
}
return children[index + step];
}
};
/**
* 获取当前子级的下一个子级
* @returns {*}
* @private
*/
Menu.prototype._getNextChild = function _getNextChild() {
return this._getChildByStep(1);
};
/**
* 获取当前子级的上一个子级
* @returns {*}
* @private
*/
Menu.prototype._getPrevChild = function _getPrevChild() {
return this._getChildByStep(-1);
};
return Menu;
}(Component), _class.Item = _menuItem2['default'], _class.SubMenu = _subMenu2['default'], _class._menu = true, _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内联样式
*/
style: _propTypes2['default'].object,
/**
* 点击菜单项触发的事件
* @param {Array} selectedKeys 点击的菜单项的key
* @param {MenuItem} menuItem 当前点击的菜单项的实例
* @param {Object} meta 选中菜单项的上下级关系
*/
onClick: _propTypes2['default'].func,
/**
* 当前选中的菜单项, 设置此属性,组件的选中变为受控状态
*/
selectedKeys: _propTypes2['default'].array,
/**
* 初始化选中的菜单项,只在组件初次render的时候生效
*/
defaultSelectedKeys: _propTypes2['default'].array,
/**
* 菜单选择的模式,支持单选和多选
*/
selectMode: _propTypes2['default'].oneOf(['single', 'multiple']),
/**
* 选中/取消选中了任意MenuItem
* @param {Array} selectedKeys 选中的菜单的key
* @param {MenuItem} menuItem 当前点击的菜单项的实例
* @param {Object} meta 选中菜单项的上下级关系
*/
onSelect: _propTypes2['default'].func,
/**
* 取消选中的菜单项
* @param {String} selectedKey 取消选中的菜单项的key
*/
onDeselect: _propTypes2['default'].func,
/**
* 如果此属性为true,表明只会选中第一级的菜单
*/
shallowSelect: _propTypes2['default'].bool,
/**
* 当前打开的菜单项,设置此属性,组件的打开变为受控状态
*/
openKeys: _propTypes2['default'].array,
/**
* 初始化打开的菜单项,只在组件初次render的时候生效
*/
defaultOpenKeys: _propTypes2['default'].array,
/**
* 子菜单同时打开模式,是多个还是一个
*/
openMode: _propTypes2['default'].oneOf(['single', 'multiple']),
/**
* 打开子菜单的时候触发的事件
* @param {Array} openKeys 打开的子菜单的key
*/
onOpen: _propTypes2['default'].func,
/**
* 级联菜单下面缩进的尺寸
*/
indentSize: _propTypes2['default'].number,
/**
* 配置菜单的头部
*/
header: _propTypes2['default'].any,
/**
* 配置菜单的底部
*/
footer: _propTypes2['default'].any,
/**
* 是否启用多列模式
*/
multipleCol: _propTypes2['default'].bool,
/**
* 是否启用设置焦点功能
*/
autoFocus: _propTypes2['default'].bool,
/**
* 菜单的方向
*/
direction: _propTypes2['default'].oneOf(['ver', 'hoz']),
hasIcon: _propTypes2['default'].bool,
autoFocusFirstItem: _propTypes2['default'].bool,
focusedKey: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number])
}, _class.defaultProps = {
prefix: 'next-',
onSelect: noop,
onDeselect: noop,
onOpen: noop,
onClick: noop,
onFocus: noop,
hasIcon: false,
defaultSelectedKeys: [],
defaultOpenKeys: [],
indentSize: 20,
openMode: 'multiple',
multipleCol: false,
autoFocusFirstItem: false,
direction: 'ver',
autoFocus: true
}, _class.contextTypes = {
prefix: _propTypes2['default'].string
}, _temp);
Menu.displayName = 'Menu';
exports['default'] = Menu;
module.exports = exports['default'];
/***/ }),
/***/ 1777:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _class, _temp2; /* eslint-disable react/prop-types */
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _reactDom = __webpack_require__(4);
var _nextOverlay = __webpack_require__(1256);
var _nextUtil = __webpack_require__(831);
var _nextDom = __webpack_require__(1044);
var _nextIcon = __webpack_require__(849);
var _nextIcon2 = _interopRequireDefault(_nextIcon);
var _classnames2 = __webpack_require__(3);
var _classnames3 = _interopRequireDefault(_classnames2);
var _menuItem = __webpack_require__(1358);
var _menuItem2 = _interopRequireDefault(_menuItem);
var _container = __webpack_require__(1328);
var _container2 = _interopRequireDefault(_container);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
var makeChain = _nextUtil.func.makeChain;
var Component = _container2['default'];
/**
* Menu.PopupItem
* @order 5
**/
var PopupMenuItem = (_temp2 = _class = function (_Component) {
_inherits(PopupMenuItem, _Component);
function PopupMenuItem() {
var _temp, _this, _ret;
_classCallCheck(this, PopupMenuItem);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.onVisibleChange = function (visible, type) {
var childrenIndexes = _this.getChildrenByType(PopupMenuItem).map(function (child) {
return child.props.index || child.key;
}),
parentIndexes = _this.getParentByType(PopupMenuItem).map(function (parent) {
return parent.props.index || parent.key;
}),
openKeys = _this.getRoot().state.openKeys,
childVisible = childrenIndexes.some(function (index) {
return openKeys.indexOf(index) > -1;
});
var indexes = [_this.props.index];
// 如果是隐藏该弹出菜单
// 且这个隐藏是因为鼠标移出了其弹出内容区域或者点击了document
// 需要将其父菜单一并隐藏
if (!visible && !_this._openByKeyBoard && ['fromContent', 'docClick'].indexOf(type) > -1) {
indexes = indexes.concat(parentIndexes);
}
if (!(!visible && childVisible)) {
indexes.forEach(function (index) {
_this.getRoot().onOpen(index, visible);
});
_this._openByKeyBoard = false;
}
}, _this.onKeyDown = function (e) {
if (e.keyCode === _nextUtil.keyCode.RIGHT_ARROW) {
_this.getRoot().onOpen(_this.props.index, true);
_this._openByKeyBoard = true;
}
}, _this.syncWidth = function () {
var autoWidth = _this.props.autoWidth;
if (autoWidth) {
var menuItemNode = _this.getMenuItemNode();
var contentNode = _this.getContentNode();
var menuItemWidth = menuItemNode.clientWidth;
var contentNodeWidth = contentNode.clientWidth;
if (menuItemWidth > contentNodeWidth) {
_nextDom.style.set(contentNode, 'width', menuItemWidth + 'px');
}
}
}, _temp), _possibleConstructorReturn(_this, _ret);
}
PopupMenuItem.prototype.getChildContext = function getChildContext() {
var parentIndex = normalizeInfo(this.context, 'parentIndex', this.props.index),
parentLabel = normalizeInfo(this.context, 'parentLabel', this.props.label || this.props.children);
return {
parentIndex: parentIndex,
parentLabel: parentLabel
};
};
PopupMenuItem.prototype.render = function render() {
var _classnames;
var _props = this.props,
className = _props.className,
label = _props.label,
animation = _props.animation,
children = _props.children,
openKeys = _props.openKeys,
selectedKeys = _props.selectedKeys,
index = _props.index,
focusedKey = _props.focusedKey,
direction = _props.direction,
hasSelectedIcon = _props.hasSelectedIcon,
others = _objectWithoutProperties(_props, ['className', 'label', 'animation', 'children', 'openKeys', 'selectedKeys', 'index', 'focusedKey', 'direction', 'hasSelectedIcon']),
prefix = this.getPrefix(),
visible = 'visible' in this.props ? this.props.visible : openKeys.indexOf(index) > -1,
cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'menu-popup-item', true), _defineProperty(_classnames, 'opened', visible), _defineProperty(_classnames, className, className), _classnames)),
child = _react2['default'].Children.only(children),
hasPopup = child ? true : null,
item = _react2['default'].createElement(
_menuItem2['default'],
{ openKeys: openKeys,
selectedKeys: selectedKeys,
focusedKey: focusedKey,
index: index,
hasSelectedIcon: hasSelectedIcon,
className: cls, 'aria-haspopup': hasPopup, parent: this,
onKeyDown: this.onKeyDown, onBlur: this.onBlur },
label,
direction === 'hoz' ? _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-down', size: 'xs' }) : _react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-right', size: 'xs' })
),
cloneChild = _react2['default'].cloneElement(child, {
onKeyDown: makeChain(this._onChildKeyDown.bind(this), child.props.onKeyDown),
parent: this,
openKeys: openKeys,
selectedKeys: selectedKeys
});
var alignAndOffset = this.getAlignAndOffset();
return _react2['default'].createElement(
_nextOverlay.Popup,
_extends({}, others, alignAndOffset, {
trigger: item,
visible: visible,
animation: animation,
onOpen: this.syncWidth,
autoFocus: false,
ref: 'popup',
onVisibleChange: this.onVisibleChange }),
cloneChild
);
};
PopupMenuItem.prototype._onChildKeyDown = function _onChildKeyDown(e) {
if (e.keyCode === _nextUtil.keyCode.LEFT_ARROW) {
this.getRoot().onOpen(this.props.index, false);
}
};
PopupMenuItem.prototype.getAlignAndOffset = function getAlignAndOffset() {
var _props2 = this.props,
align = _props2.align,
offset = _props2.offset,
direction = _props2.direction,
result = {
hoz: {
align: 'tl bl',
offset: [0, 0]
},
ver: {
align: 'tl tr',
offset: [2, 0]
}
};
if (typeof align !== 'undefined') {
result[direction].align = align;
}
if (typeof offset !== 'undefined') {
result[direction].offset = offset;
}
return result[direction];
};
PopupMenuItem.prototype.getContentNode = function getContentNode() {
return this.refs.popup.overlay.getContentNode();
};
PopupMenuItem.prototype.getMenuItemNode = function getMenuItemNode() {
return (0, _reactDom.findDOMNode)(this.refs.popup.refs.trigger);
};
return PopupMenuItem;
}(Component), _class._menuItem = true, _class._popupMenuItem = true, _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内联样式
*/
style: _propTypes2['default'].object,
/**
* 禁用当前菜单项, 被禁用不会触发事件
*/
disabled: _propTypes2['default'].bool,
/**
* 菜单项的标签
*/
label: _propTypes2['default'].any,
/**
* 是否自动让弹出层的宽度和菜单项保持一致,逻辑是如果弹出层的宽度比菜单项小的话和菜单项保持一致,如果宽度大于菜单项则不做处理
*/
autoWidth: _propTypes2['default'].bool
}, _class.defaultProps = {
disabled: false,
label: 'popup-item',
autoWidth: false,
prefix: 'next-'
}, _class.contextTypes = {
parentIndex: _propTypes2['default'].array,
parentLabel: _propTypes2['default'].array,
prefix: _propTypes2['default'].string
}, _class.childContextTypes = {
parentIndex: _propTypes2['default'].array,
parentLabel: _propTypes2['default'].array
}, _temp2);
PopupMenuItem.displayName = 'PopupMenuItem';
exports['default'] = PopupMenuItem;
function normalizeInfo(context, name, value) {
var meta = void 0;
if (context[name]) {
meta = [].concat(_toConsumableArray(context[name]));
meta.push(value);
} else {
meta = [value];
}
return meta;
}
module.exports = exports['default'];
/***/ }),
/***/ 1778:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _class, _temp;
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames = __webpack_require__(3);
var _classnames2 = _interopRequireDefault(_classnames);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
/**
* Menu.Divider
* @order 4
**/
var MenuDivider = (_temp = _class = function (_React$Component) {
_inherits(MenuDivider, _React$Component);
function MenuDivider() {
_classCallCheck(this, MenuDivider);
return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
}
MenuDivider.prototype.render = function render() {
var _cx;
var _props = this.props,
prefix = _props.prefix,
className = _props.className,
others = _objectWithoutProperties(_props, ['prefix', 'className']);
var newPrefix = this.context.prefix || prefix;
var newClassName = (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, newPrefix + 'menu-divider', true), _defineProperty(_cx, className, !!className), _cx));
return _react2['default'].createElement('li', _extends({ className: newClassName }, others));
};
return MenuDivider;
}(_react2['default'].Component), _class._menuItem = true, _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内联样式
*/
style: _propTypes2['default'].object
}, _class.defaultProps = {
prefix: 'next-'
}, _class.contextTypes = {
prefix: _propTypes2['default'].string
}, _temp);
MenuDivider.displayName = 'MenuDivider';
exports['default'] = MenuDivider;
module.exports = exports['default'];
/***/ }),
/***/ 1779:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _class, _temp; /* eslint-disable react/prop-types */
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _nextCheckbox = __webpack_require__(1388);
var _nextCheckbox2 = _interopRequireDefault(_nextCheckbox);
var _menuItem = __webpack_require__(1358);
var _menuItem2 = _interopRequireDefault(_menuItem);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
var noop = function noop() {};
/**
* Menu.CheckboxItem
* @order 7
**/
var CheckedMenuItem = (_temp = _class = function (_React$Component) {
_inherits(CheckedMenuItem, _React$Component);
function CheckedMenuItem(props) {
_classCallCheck(this, CheckedMenuItem);
var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
_this.onClick = _this.onClick.bind(_this);
return _this;
}
CheckedMenuItem.prototype.render = function render() {
var _props = this.props,
disabled = _props.disabled,
checked = _props.checked,
index = _props.index,
selectedKeys = _props.selectedKeys,
onChange = _props.onChange;
if (typeof checked === 'undefined') {
checked = selectedKeys.indexOf(index) > -1;
}
this.checked = checked;
return _react2['default'].createElement(
_menuItem2['default'],
_extends({}, this.props, { hasSelectedIcon: false, onClick: this.onClick, role: 'menuitemcheckbox' }),
_react2['default'].createElement(_nextCheckbox2['default'], { checked: checked, onChange: onChange, disabled: disabled, tabIndex: '-1' }),
' ',
this.props.children
);
};
CheckedMenuItem.prototype.onClick = function onClick(e) {
if (!this.props.disabled) {
this.props.onChange(!this.checked, e);
}
};
return CheckedMenuItem;
}(_react2['default'].Component), _class._menuItem = true, _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内联样式
*/
style: _propTypes2['default'].object,
/**
* 显示在菜单右侧的帮助文本,通常用于一些附加信息
*/
helper: _propTypes2['default'].string,
/**
* 禁用当前菜单项, 被禁用不会触发事件, 也无法选中Checkbox/Radio
*/
disabled: _propTypes2['default'].bool,
focused: _propTypes2['default'].bool,
/**
* 点击了菜单项触发的事件
* @param {String} key 当前菜单项的key值
* @param {Event} e DOM事件
*/
onClick: _propTypes2['default'].func,
onKeyDown: _propTypes2['default'].func,
parent: _propTypes2['default'].any,
/**
* 是否显示缩进
*/
needIndent: _propTypes2['default'].bool,
/**
* 当前的菜单项是否被选中, 优先级比Menu传入的selectedKeys要高
*/
checked: _propTypes2['default'].bool,
/**
* 选择被改变的时候触发的事件
* @param {Boolean} checked 是否选中
*/
onChange: _propTypes2['default'].func
}, _class.defaultProps = {
helper: null,
disabled: false,
prefix: 'next-',
hasSelectedIcon: true,
needIndent: true,
onClick: noop,
onKeyDown: noop,
onMouseEnter: noop,
onMouseLeave: noop,
onChange: noop,
__checkboxItem: true
}, _temp);
CheckedMenuItem.displayName = 'CheckedMenuItem';
exports['default'] = CheckedMenuItem;
module.exports = exports['default'];
/***/ }),
/***/ 1780:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _class, _temp;
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames2 = __webpack_require__(3);
var _classnames3 = _interopRequireDefault(_classnames2);
var _checkbox = __webpack_require__(1618);
var _checkbox2 = _interopRequireDefault(_checkbox);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
/** Checkbox.Group */
var CheckboxGroup = (_temp = _class = function (_Component) {
_inherits(CheckboxGroup, _Component);
function CheckboxGroup(props) {
_classCallCheck(this, CheckboxGroup);
var _this = _possibleConstructorReturn(this, _Component.call(this, props));
var value = [];
if ('value' in props) {
value = props.value;
} else if ('defaultValue' in props) {
value = props.defaultValue;
}
if (!Array.isArray(value)) {
if (value === null || value === undefined) {
value = [];
} else {
value = [value];
}
}
_this.state = {
value: [].concat(_toConsumableArray(value)),
disabled: props.disabled
};
_this.onChange = _this.onChange.bind(_this);
return _this;
}
CheckboxGroup.prototype.getChildContext = function getChildContext() {
return {
__group__: true,
onChange: this.onChange,
selectedValue: this.state.value,
disabled: this.state.disabled
};
};
CheckboxGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
if ('value' in nextProps) {
var value = nextProps.value;
if (!Array.isArray(value)) {
if (value === null || value === undefined) {
value = [];
} else {
value = [value];
}
}
this.setState({
value: value
});
}
if ('disabled' in nextProps) {
this.setState({
disabled: nextProps.disabled
});
}
};
CheckboxGroup.prototype.onChange = function onChange(currentValue, e) {
var value = this.state.value;
var index = value.indexOf(currentValue);
var valTemp = [].concat(_toConsumableArray(value));
if (index === -1) {
valTemp.push(currentValue);
} else {
valTemp.splice(index, 1);
}
if (!('value' in this.props)) {
this.setState({ value: valTemp });
}
this.props.onChange(valTemp, e);
};
CheckboxGroup.prototype.render = function render() {
var _this2 = this,
_classnames;
var _props = this.props,
className = _props.className,
style = _props.style;
var disabled = this.state.disabled;
var prefix = this.context.prefix || this.props.prefix;
// 如果内嵌标签跟dataSource同时存在,以内嵌标签为主
var children = void 0;
if (this.props.children) {
children = this.props.children;
} else {
children = this.props.dataSource.map(function (item, index) {
var option = item;
if ((typeof item === 'undefined' ? 'undefined' : _typeof(item)) !== 'object') {
option = {
label: item,
value: item,
disabled: disabled
};
}
var checked = _this2.state.value && _this2.state.value.indexOf(option.value) > -1;
return _react2['default'].createElement(
'label',
{ key: index },
_react2['default'].createElement(_checkbox2['default'], {
value: option.value,
checked: checked,
disabled: disabled || option.disabled
}),
_react2['default'].createElement(
'span',
{ className: prefix + 'checkbox-label' },
option.label
)
);
});
}
var cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'checkbox-group', true), _defineProperty(_classnames, className, !!className), _defineProperty(_classnames, 'disabled', disabled), _classnames));
return _react2['default'].createElement(
'span',
{ className: cls, style: style },
children
);
};
return CheckboxGroup;
}(_react.Component), _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内敛样式
*/
style: _propTypes2['default'].object,
/**
* 整体禁用
*/
disabled: _propTypes2['default'].bool,
/**
* 可选项列表, 数据项可为 String 或者 Object, 如 `['apple', 'pear', 'orange']` 或者 `[{value: 'apple', label: '苹果',}, {value: 'pear', label: '梨'}, {value: 'orange', label: '橙子'}]`
*/
dataSource: _propTypes2['default'].arrayOf(_propTypes2['default'].any),
/**
* 被选中的值列表
*/
value: _propTypes2['default'].array,
/**
* 默认被选中的值列表
*/
defaultValue: _propTypes2['default'].array,
/**
* 通过子元素方式设置内部 checkbox
*/
children: _propTypes2['default'].arrayOf(_propTypes2['default'].element),
/**
* 选中值改变时的事件
* @param {Array} value 选中项列表
* @param {Event} e Dom 事件对象
*/
onChange: _propTypes2['default'].func
}, _class.defaultProps = {
dataSource: [],
onChange: function onChange() {},
prefix: 'next-'
}, _class.contextTypes = {
prefix: _propTypes2['default'].string
}, _class.childContextTypes = {
onChange: _propTypes2['default'].func,
__group__: _propTypes2['default'].bool,
selectedValue: _propTypes2['default'].array,
disabled: _propTypes2['default'].bool
}, _temp);
CheckboxGroup.displayName = 'CheckboxGroup';
exports['default'] = CheckboxGroup;
module.exports = exports['default'];
/***/ }),
/***/ 1781:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _class, _temp; /* eslint-disable react/prop-types */
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _nextRadio = __webpack_require__(1546);
var _nextRadio2 = _interopRequireDefault(_nextRadio);
var _menuItem = __webpack_require__(1358);
var _menuItem2 = _interopRequireDefault(_menuItem);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
var noop = function noop() {};
/**
* Menu.RadioItem
* @order 6
**/
var RadioMenuItem = (_temp = _class = function (_React$Component) {
_inherits(RadioMenuItem, _React$Component);
function RadioMenuItem(props) {
_classCallCheck(this, RadioMenuItem);
var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
_this.onClick = _this.onClick.bind(_this);
return _this;
}
RadioMenuItem.prototype.render = function render() {
var _props = this.props,
disabled = _props.disabled,
checked = _props.checked,
index = _props.index,
selectedKeys = _props.selectedKeys,
onChange = _props.onChange;
if (typeof checked === 'undefined') {
checked = selectedKeys.indexOf(index) > -1;
}
return _react2['default'].createElement(
_menuItem2['default'],
_extends({}, this.props, { hasSelectedIcon: false, onClick: this.onClick, role: 'menuitemradiobutton' }),
_react2['default'].createElement(_nextRadio2['default'], { checked: checked, onChange: onChange, disabled: disabled, tabIndex: '-1' }),
this.props.children
);
};
RadioMenuItem.prototype.onClick = function onClick(e) {
if (!this.props.disabled) {
this.props.onChange(true, e);
}
};
return RadioMenuItem;
}(_react2['default'].Component), _class._menuItem = true, _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内联样式
*/
style: _propTypes2['default'].object,
/**
* 显示在菜单右侧的帮助文本,通常用于一些附加信息
*/
helper: _propTypes2['default'].string,
/**
* 禁用当前菜单项, 被禁用不会触发事件, 也无法选中Checkbox/Radio
*/
disabled: _propTypes2['default'].bool,
focused: _propTypes2['default'].bool,
/**
* 点击了菜单项触发的事件
* @param {String} key 当前菜单项的key值
* @param {Event} e DOM事件
*/
onClick: _propTypes2['default'].func,
onKeyDown: _propTypes2['default'].func,
parent: _propTypes2['default'].any,
/**
* 是否显示缩进
*/
needIndent: _propTypes2['default'].bool,
/**
* 当前的菜单项是否被选中, 优先级比Menu传入的selectedKeys要高
*/
checked: _propTypes2['default'].bool,
group: _propTypes2['default'].string,
/**
* 选择被改变的时候触发的事件
* @param {Boolean} checked 是否选中
*/
onChange: _propTypes2['default'].func
}, _class.defaultProps = {
helper: null,
disabled: false,
prefix: 'next-',
hasSelectedIcon: true,
needIndent: true,
onClick: noop,
onKeyDown: noop,
onMouseEnter: noop,
onMouseLeave: noop,
group: 'group',
onChange: noop,
__radioItem: true
}, _temp);
RadioMenuItem.displayName = 'RadioMenuItem';
exports['default'] = RadioMenuItem;
module.exports = exports['default'];
/***/ }),
/***/ 1782:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _class, _temp;
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames2 = __webpack_require__(3);
var _classnames3 = _interopRequireDefault(_classnames2);
var _nextUtil = __webpack_require__(831);
var _container = __webpack_require__(1328);
var _container2 = _interopRequireDefault(_container);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
/**
* Menu.Group
* @order 3
**/
var MenuGroup = (_temp = _class = function (_Container) {
_inherits(MenuGroup, _Container);
function MenuGroup() {
_classCallCheck(this, MenuGroup);
return _possibleConstructorReturn(this, _Container.apply(this, arguments));
}
MenuGroup.prototype.render = function render() {
var _classnames,
_this2 = this;
var _props = this.props,
className = _props.className,
label = _props.label,
children = _props.children,
focusedKey = _props.focusedKey,
selectedKeys = _props.selectedKeys,
openKeys = _props.openKeys,
direction = _props.direction,
others = _objectWithoutProperties(_props, ['className', 'label', 'children', 'focusedKey', 'selectedKeys', 'openKeys', 'direction']),
prefix = this.getPrefix();
var cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'menu-group', true), _defineProperty(_classnames, className, className), _classnames));
children = _react2['default'].Children.map(children, function (child, index) {
if (child) {
var key = child.props.index || child.key;
if (typeof key === 'undefined' || key === null) {
key = index.toString();
}
return _react2['default'].cloneElement(child, {
ref: key,
index: key,
parent: _this2,
indentSize: _this2.props.indentSize + 20,
selectedKeys: selectedKeys,
focusedKey: focusedKey,
openKeys: openKeys,
direction: direction
});
}
});
others = (0, _nextUtil.pickAttrs)(others);
return _react2['default'].createElement(
'li',
{ className: cls },
_react2['default'].createElement(
'div',
{ className: prefix + 'menu-group-title' },
label
),
_react2['default'].createElement(
'ul',
others,
children
)
);
};
return MenuGroup;
}(_container2['default']), _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内联样式
*/
style: _propTypes2['default'].object,
/**
* 分组的标签
*/
label: _propTypes2['default'].any
}, _class.defaultProps = {
label: 'menu-group',
prefix: 'next-'
}, _class.contextTypes = {
prefix: _propTypes2['default'].string
}, _temp);
exports['default'] = MenuGroup;
module.exports = exports['default'];
/***/ }),
/***/ 1783:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _class, _temp; /* eslint-disable react/prop-types, no-unused-vars, eqeqeq, prefer-const */
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _reactDom = __webpack_require__(4);
var _reactDom2 = _interopRequireDefault(_reactDom);
var _classnames2 = __webpack_require__(3);
var _classnames3 = _interopRequireDefault(_classnames2);
var _nextOverlay = __webpack_require__(1256);
var _nextOverlay2 = _interopRequireDefault(_nextOverlay);
var _nextIcon = __webpack_require__(849);
var _nextIcon2 = _interopRequireDefault(_nextIcon);
var _nextDom = __webpack_require__(1044);
var _nextLocaleProvider = __webpack_require__(1069);
var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider);
var _nextUtil = __webpack_require__(831);
var _base = __webpack_require__(1616);
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
var findDOMNode = _reactDom2['default'].findDOMNode,
noop = function noop() {};
var isObject = function isObject(object) {
return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1] === 'Object';
};
/**
* Select.Combobox
*/
var Combobox = (_temp = _class = function (_Base) {
_inherits(Combobox, _Base);
function Combobox(props, context) {
_classCallCheck(this, Combobox);
var _this = _possibleConstructorReturn(this, _Base.call(this, props, context));
_this.state = _this.state || {};
_this.state.inputValue = _this.props.multiple ? '' : _this.getInputValueFromValue(_this.state.value);
_this.state.placeholder = _this.getPlaceHolder();
['onInputChange', 'onInputFocus', 'onInputBlur', 'onInputKeyDown', 'onSelectInnerClick', 'onArrowClick', 'onMouseDown', 'onMouseUp'].forEach(function (method) {
_this[method] = _this[method].bind(_this);
});
_this.isCombobox = true;
return _this;
}
Combobox.prototype.getPlaceHolder = function getPlaceHolder(props) {
props = props || this.props;
return props.placeholder || props.locale.comboboxPlaceHolder;
};
Combobox.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
_Base.prototype.componentWillReceiveProps.call(this, nextProps);
if ('value' in nextProps) {
var value = this.normalizeValue(nextProps.value);
this.cacheDataByValue(value, nextProps);
if (!nextProps.multiple) {
this.setState({
inputValue: this.getInputValueFromValue(nextProps.value)
});
} else if (!this.props.multiple && nextProps.multiple) {
this.setState({
inputValue: ''
});
}
}
if ('placeholder' in nextProps) {
this.setState({
placeholder: this.getPlaceHolder(nextProps)
});
}
};
Combobox.prototype.getInputValueFromValue = function getInputValueFromValue(value) {
var _props = this.props,
fillProps = _props.fillProps,
multiple = _props.multiple;
if (this._isUserInput && !isObject(value)) {
return value;
}
value = this.normalizeValue(value);
if (value.length && !multiple) {
value = this.getDataByValue(value);
return typeof value[0][fillProps] !== 'undefined' ? value[0][fillProps] : value[0];
} else {
return '';
}
};
Combobox.prototype.renderComboboxLabel = function renderComboboxLabel() {
var multiple = this.props.multiple,
_state = this.state,
value = _state.value,
placeholder = _state.placeholder,
inputValue = _state.inputValue,
records = this.getDataByValue(value),
label = this.getDisplayByValue(value, records),
placeHolderClassName = this.getPrefix() + 'select-placeholder';
if (multiple) {
return label.length || inputValue ? this.renderLabel(label, value) : this.state.focused ? null : _react2['default'].createElement(
'span',
{ className: placeHolderClassName },
placeholder
);
} else {
return null;
}
};
Combobox.prototype.render = function render() {
var _classnames,
_this2 = this;
var _props2 = this.props,
overlay = _props2.overlay,
className = _props2.className,
disabled = _props2.disabled,
size = _props2.size,
multiple = _props2.multiple,
hasArrow = _props2.hasArrow,
animation = _props2.animation,
safeNode = _props2.safeNode,
container = _props2.container,
dataSource = _props2.dataSource,
onChange = _props2.onChange,
name = _props2.name,
popupClassName = _props2.popupClassName,
popupProps = _props2.popupProps,
showSearch = _props2.showSearch,
others = _objectWithoutProperties(_props2, ['overlay', 'className', 'disabled', 'size', 'multiple', 'hasArrow', 'animation', 'safeNode', 'container', 'dataSource', 'onChange', 'name', 'popupClassName', 'popupProps', 'showSearch']),
prefix = this.getPrefix(),
menu = overlay || _react2['default'].cloneElement(this.renderMenu(), {
onKeyNavNodeEnter: this.onNodeEnter.bind(this),
autoFocus: false
}),
visible = this.state.visible && (showSearch || !!_react2['default'].Children.toArray(menu.props.children).length || overlay),
_state2 = this.state,
value = _state2.value,
inputValue = _state2.inputValue,
focused = _state2.focused;
this.cacheDataByValue(value);
var cls = (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, prefix + 'select', true), _defineProperty(_classnames, prefix + 'comobobox', true), _defineProperty(_classnames, 'focused', focused), _defineProperty(_classnames, 'opened', visible), _defineProperty(_classnames, 'disabled', disabled), _defineProperty(_classnames, size, size), _defineProperty(_classnames, 'multiple', multiple), _defineProperty(_classnames, 'no-arrow', !hasArrow), _defineProperty(_classnames, 'has-clear', this.hasClear()), _defineProperty(_classnames, className, className), _classnames)),
arrowType = this.getArrowType(visible),
iconSize = this.getIconSize(),
arrowContent = hasArrow ? _react2['default'].createElement(
'span',
{ className: prefix + 'comobobox-arrow-wrapper', onClick: this.onArrowClick },
_react2['default'].createElement(_nextIcon2['default'], { type: arrowType, size: iconSize, className: prefix + 'select-arrow' })
) : null,
closeIcon = this.hasClear() ? _react2['default'].createElement(_nextIcon2['default'], { type: 'delete-filling', size: iconSize, className: prefix + 'select-clear', onClick: this.clear.bind(this) }) : null;
others = (0, _nextUtil.pickAttrs)(others);
var id = others.id;
var focusNodeId = id ? 'focus-' + id : null;
return _react2['default'].createElement(
'span',
_extends({}, others, { className: cls, onMouseDown: this.onMouseDown, onMouseUp: this.onMouseUp }),
_react2['default'].createElement(
'div',
{ className: prefix + 'select-inner-wrapper', ref: 'innerWrapper' },
_react2['default'].createElement(
'div',
{ className: prefix + 'select-inner', onClick: this.onSelectInnerClick },
this.renderComboboxLabel(),
_react2['default'].createElement('input', { id: focusNodeId,
ref: 'target',
tabIndex: disabled ? null : 0,
value: inputValue,
size: size,
disabled: disabled,
onKeyDown: this.onInputKeyDown,
onChange: this.onInputChange,
onFocus: this.onInputFocus,
onBlur: this.onInputBlur,
name: name,
autoComplete: 'off',
placeholder: multiple ? null : this.getPlaceHolder()
}),
closeIcon
),
arrowContent
),
_react2['default'].createElement(
_nextOverlay2['default'],
_extends({}, popupProps, {
visible: visible,
animation: animation,
className: popupClassName,
container: container,
safeNode: [function () {
return _this2.refs.innerWrapper;
}, safeNode],
autoFocus: false, ref: 'overlay',
shouldUpdatePosition: true,
target: function target() {
return _this2;
},
onOpen: this.onOpen,
afterOpen: this.afterOpen,
onClose: this.props.onClose,
onRequestClose: this.onRequestClose.bind(this) }),
menu
)
);
};
Combobox.prototype.onMouseDown = function onMouseDown(e) {
this.clickByUser = true;
};
Combobox.prototype.onMouseUp = function onMouseUp(e) {
this.clickByUser = false;
};
Combobox.prototype.onNodeEnter = function onNodeEnter(e, child) {
var _props3 = this.props,
multiple = _props3.multiple,
tags = _props3.tags,
selectedValue = [];
if (child) {
var value = (child.value || '').toString();
if (multiple) {
selectedValue = this.getMultipleStateValue(value);
} else {
selectedValue = [value];
}
this.onSelect(selectedValue, child);
} else if (multiple && tags) {
var _value = e.target.value;
selectedValue = this.getMultipleStateValue(_value, tags);
this.onSelect(selectedValue);
} else {
this.props.onInputEnter(e);
}
this.clearValue();
};
Combobox.prototype.getMultipleStateValue = function getMultipleStateValue(value, tags) {
var stateValue = this.state.value,
index = stateValue.indexOf(value);
if (index > -1) {
if (!tags) {
stateValue.splice(index, 1);
}
} else {
stateValue.push(value);
}
return stateValue;
};
Combobox.prototype.onInputChange = function onInputChange(e) {
var value = e.target.value;
if (this.filterValueFromLocal !== false) {
this.filterValue = value;
}
this._isUserInput = true;
var stateValue = this.normalizeValue(value);
if (!('value' in this.props) && !this.props.multiple) {
this.setState({
value: stateValue
});
}
var dataSource = this.getFilteredDataSource();
var flatternDataSource = this.getFlatternDataSource(dataSource);
if (flatternDataSource.length || !this.props.filterLocal) {
this.onVisibleChange(true);
}
this.setInputValue(value);
this.props.onInputUpdate(value);
};
Combobox.prototype.fakeInputWidth = function fakeInputWidth(value) {
if (!this._fakeInputElement) {
this._fakeInputElement = document.createElement('div');
_nextDom.style.set(this._fakeInputElement, {
position: 'absolute',
top: '-9999px',
left: 0,
visibility: 'hidden'
});
document.body.appendChild(this._fakeInputElement);
}
this._fakeInputElement.textContent = value;
};
Combobox.prototype.componentDidMount = function componentDidMount() {
this.setInputWidth();
};
Combobox.prototype.componentDidUpdate = function componentDidUpdate() {
_Base.prototype.componentDidUpdate.apply(this, arguments);
this.resizeInput();
this._isUserInput = false;
};
Combobox.prototype.setInputWidth = function setInputWidth() {
var input = findDOMNode(this.refs.target);
this._oldInputWidth = input.clientWidth;
};
Combobox.prototype.resizeInput = function resizeInput() {
var input = findDOMNode(this.refs.target),
multiple = this.props.multiple,
width = void 0;
if (multiple) {
if (!this._fakeInputElement) {
this.fakeInputWidth('');
}
width = this._fakeInputElement.clientWidth;
_nextDom.style.set(input, 'width', width + 10 + 'px');
} else {
_nextDom.style.set(input, 'width', this._oldInputWidth + 'px');
}
};
Combobox.prototype.onInputFocus = function onInputFocus(e) {
this.setState({
focused: true
});
if (this._blurTimeout) {
clearTimeout(this._blurTimeout);
}
if (this.state.placeholder !== '') {
this.setState({
placeholder: ''
});
}
this.props.onInputFocus(e, this.clickByUser);
};
Combobox.prototype.onInputBlur = function onInputBlur(e) {
var _this3 = this;
this.setState({
focused: false
});
this._blurTimeout = setTimeout(function () {
if (!_this3.state.value.length) {
_this3.setState({
placeholder: _this3.getPlaceHolder()
});
}
_this3.props.onInputBlur(e, _this3.state.inputValue);
}, 100);
};
Combobox.prototype.onInputKeyDown = function onInputKeyDown(e) {
if (this.refs.overlay.refs.menu && this.refs.overlay.refs.menu.onKeyNavNodeKeyDown) {
this.refs.overlay.refs.menu.onKeyNavNodeKeyDown(e);
} else if (e.keyCode === 13) {
this.onNodeEnter(e);
}
if (e.keyCode === 40 || e.keyCode === 38) {
e.preventDefault();
}
};
Combobox.prototype.onSelectInnerClick = function onSelectInnerClick() {
this.clickByUser = true;
this.focusInput();
this.clickByUser = false;
};
Combobox.prototype.focusInput = function focusInput() {
findDOMNode(this.refs.target).focus();
};
Combobox.prototype.setInputValue = function setInputValue(value) {
this.setState({
inputValue: value
});
this.fakeInputWidth(value);
this._inputValue = value;
};
Combobox.prototype.clearValue = function clearValue() {
if (this.props.multiple) {
this.setInputValue('');
}
this.focusInput();
};
Combobox.prototype.onRequestClose = function onRequestClose() {
this.onVisibleChange(false);
};
Combobox.prototype.onArrowClick = function onArrowClick() {
if (!this.props.disabled) {
this.onVisibleChange(!this.state.visible);
this.focusInput();
}
};
Combobox.prototype.onOpen = function onOpen() {
var menu = this.refs.overlay.refs.menu;
this._syncWidth(menu);
this.props.onOpen();
};
Combobox.prototype.afterOpen = function afterOpen() {
var menu = this.refs.overlay.refs.menu;
this._enableScroll(menu);
this.props.afterOpen();
};
Combobox.prototype.hasClear = function hasClear() {
return this.props.hasClear && this.state.inputValue && !this.props.multiple && !this.props.disabled;
};
return Combobox;
}(_base2['default']), _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内联样式
*/
style: _propTypes2['default'].object,
/**
* 弹层挂载容器节点
*/
container: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func]),
/**
* 选择器的尺寸
*/
size: _propTypes2['default'].oneOf(['small', 'medium', 'large']),
/**
* 选择器的形状
*/
shape: _propTypes2['default'].oneOf(['normal', 'arrow-only']),
/**
* 没有值的时候的占位符
*/
placeholder: _propTypes2['default'].string,
/**
* 当前值
*/
value: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].array, _propTypes2['default'].node, _propTypes2['default'].object]),
/**
* 初始默认值
*/
defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].array, _propTypes2['default'].node, _propTypes2['default'].object]),
/**
* 当前弹层是否显示
*/
visible: _propTypes2['default'].bool,
/**
* 弹层初始是否显示
*/
defaultVisible: _propTypes2['default'].bool,
/**
* 是否禁用
*/
disabled: _propTypes2['default'].bool,
/**
* 传入的数据,可以动态渲染子项,详见[dataSource的使用](#dataSource的使用)
*/
dataSource: _propTypes2['default'].array,
/**
* 是否是多选
*/
multiple: _propTypes2['default'].bool,
/**
* 是否启用标签模式, 仅在多选时有效,效果是除了自动提示外的选项, 也可以使用输入的文字作为标签
*/
tags: _propTypes2['default'].bool,
// TODO: Remove API at next version.
/**
* 填充到选择框里面的值
*/
fillProps: _propTypes2['default'].string,
/**
* 是否显示顶部的搜索框
*/
showSearch: _propTypes2['default'].bool,
/**
* 在输入的时候过滤的函数,仅在filterLocal为true时候有效
* @param {String} filterValue 筛选值
* @param {Object} option 选项
* @return {Boolean} 是否保留当前选项
*/
filterBy: _propTypes2['default'].func,
/**
* 是否使用本地过滤,在数据源为远程的时候需要关闭此选项
*/
filterLocal: _propTypes2['default'].bool,
/**
* 是否显示右侧的箭头
*/
hasArrow: _propTypes2['default'].bool,
/**
* 下拉菜单是否与选择器对齐
*/
autoWidth: _propTypes2['default'].bool,
/**
* 选择后是否立即隐藏菜单,单选是默认隐藏的,因此该选项只在多选的时候有效
*/
hiddenSelected: _propTypes2['default'].bool,
/**
* Combobox在用户输入的时候触发的回调
* @param {String} value 输入值
*/
onInputUpdate: _propTypes2['default'].func,
/**
* Combobox获取焦点的时候触发的回调
* @param {Event} e DOM事件对象
* @param {Boolean} clickByUser 是否用户点击
*/
onInputFocus: _propTypes2['default'].func,
/**
* Combobox失去焦点的时候触发的回调
* @param {Event} e DOM事件对象
* @param {String} inputValue 输入值
*/
onInputBlur: _propTypes2['default'].func,
/**
* Combobox回车的时候触发的回调
* @param {Event} e DOM事件对象
*/
onInputEnter: _propTypes2['default'].func,
/**
* Combobox发生改变的时候触发的回调, 注意在输入的时候该事件不会被触发,如果需要监听输入的事件请使用onInputUpdate
* @param {String} value 数据
* @param {Object} option 选项
*/
onChange: _propTypes2['default'].func,
/**
* 在搜索框中输入触发的事件,仅在showSearch为true时候有效
* @param {String} value 搜索值
*/
onSearch: _propTypes2['default'].func,
/**
* 是否显示清空按钮,该按钮可以清空select的value, 该属性仅在单选模式下有效
*/
hasClear: _propTypes2['default'].bool,
/**
* 弹出层的样式类
*/
popupClassName: _propTypes2['default'].string,
/**
* 弹出层的属性
*/
popupProps: _propTypes2['default'].object,
/**
* 弹层显示或隐藏的时候触发的事件
* @param {Boolean} visible 弹层是否隐藏和显示
*/
onVisibleChange: _propTypes2['default'].func,
/**
* 弹层显示时触发的事件
*/
onOpen: _propTypes2['default'].func,
/**
* 弹层隐藏时触发的事件
*/
onClose: _propTypes2['default'].func,
/**
* 自定义国际化文案对象
* @property {String} selectPlaceHolder 请选择的提示文案
* @property {String} comboboxPlaceHolder 请输入的提示文案
*/
locale: _propTypes2['default'].object,
/**
* 自定义国际化语言
*/
language: _propTypes2['default'].oneOf(['en-us', 'zh-cn', 'zh-tw']),
afterOpen: _propTypes2['default'].func
}, _class.defaultProps = {
prefix: 'next-',
size: 'medium',
shape: 'normal',
placeholder: '',
disabled: false,
multiple: false,
showSearch: false,
hasArrow: true,
autoWidth: true,
onVisibleChange: noop,
onChange: noop,
fillProps: 'value',
filterLocal: true,
onMouseDown: noop,
onMouseUp: noop,
onSearch: noop,
onOpen: noop,
onClose: noop,
hasClear: false,
animation: {
'in': 'expandInDown',
out: 'expandOutUp'
},
onInputUpdate: noop,
onInputFocus: noop,
onInputBlur: noop,
onInputEnter: noop,
hiddenSelected: false,
labelInValue: false,
locale: {
selectPlaceHolder: '请选择',
comboboxPlaceHolder: '请输入'
},
afterOpen: noop
}, _temp);
Combobox.displayName = 'Combobox';
exports['default'] = (0, _nextLocaleProvider2['default'])(Combobox);
module.exports = exports['default'];
/***/ }),
/***/ 1784:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _class, _temp; /* eslint-disable react/prop-types */
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
/**
* Select.Option
*/
var Option = (_temp = _class = function (_React$Component) {
_inherits(Option, _React$Component);
function Option() {
_classCallCheck(this, Option);
return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
}
Option.prototype.render = function render() {
return this.props.children;
};
return Option;
}(_react2['default'].Component), _class.propTypes = {
/**
* 选项值
*/
value: _propTypes2['default'].any,
/**
* 是否禁用
*/
disabled: _propTypes2['default'].bool
}, _temp);
Option.displayName = 'Option';
exports['default'] = Option;
module.exports = exports['default'];
/***/ }),
/***/ 1785:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = {
'en-us': {
selectPlaceHolder: 'Please select',
comboboxPlaceHolder: 'Please input'
},
'zh-cn': {
selectPlaceHolder: '请选择',
comboboxPlaceHolder: '请输入'
},
'zh-tw': {
selectPlaceHolder: '請選擇',
comboboxPlaceHolder: '請輸入'
}
};
module.exports = exports['default'];
/***/ }),
/***/ 1786:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _pagination = __webpack_require__(1787);
var _pagination2 = _interopRequireDefault(_pagination);
var _locale = __webpack_require__(1789);
var _locale2 = _interopRequireDefault(_locale);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
_pagination2['default'].LOCALE = _locale2['default'];
exports['default'] = _pagination2['default'];
module.exports = exports['default'];
/***/ }),
/***/ 1787:
/***/ (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__(849);
var _nextIcon2 = _interopRequireDefault(_nextIcon);
var _nextButton = __webpack_require__(1313);
var _nextButton2 = _interopRequireDefault(_nextButton);
var _nextInput = __webpack_require__(1296);
var _nextInput2 = _interopRequireDefault(_nextInput);
var _nextSelect = __webpack_require__(1406);
var _nextSelect2 = _interopRequireDefault(_nextSelect);
var _nextMixinKeyBinder = __webpack_require__(1788);
var _nextMixinKeyBinder2 = _interopRequireDefault(_nextMixinKeyBinder);
var _nextLocaleProvider = __webpack_require__(1069);
var _nextLocaleProvider2 = _interopRequireDefault(_nextLocaleProvider);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
var noop = function noop() {};
/**
* Pagination
*/
var Pagination = (_temp = _class = function (_Component) {
_inherits(Pagination, _Component);
function Pagination(props, context) {
_classCallCheck(this, Pagination);
var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
var current = props.current,
defaultCurrent = props.defaultCurrent,
total = props.total,
pageSize = props.pageSize;
_this.state = {
current: _this.correctCurrent(current || defaultCurrent, total, pageSize),
currentPageSize: pageSize
};
_this.onJump = _this.onJump.bind(_this);
_this.keyBinders = { enter: _this.onJump };
return _this;
}
Pagination.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
var current = nextProps.current,
total = nextProps.total,
pageSize = nextProps.pageSize;
var st = {};
var newCurrent = this.correctCurrent(current || this.state.current, total, pageSize);
if (this.state.current !== newCurrent) {
st.current = newCurrent;
}
if (this.state.currentPageSize !== pageSize) {
st.currentPageSize = pageSize;
}
if (Object.keys(st).length) {
this.setState(st);
}
};
Pagination.prototype.getPrefix = function getPrefix() {
return this.context.prefix || this.props.prefix;
};
Pagination.prototype.correctCurrent = function correctCurrent(currentPage, total, currentPageSize) {
var totalPage = this.getTotalPage(total, currentPageSize);
return currentPage > totalPage ? totalPage : currentPage;
};
Pagination.prototype.getTotalPage = function getTotalPage(total, currentPageSize) {
var totalPage = Math.ceil(total / currentPageSize);
return totalPage <= 0 ? 1 : totalPage;
};
Pagination.prototype.onJump = function onJump(e) {
var total = this.props.total;
var _state = this.state,
current = _state.current,
currentPageSize = _state.currentPageSize;
var totalPage = this.getTotalPage(total, currentPageSize);
var value = parseInt(this.inputValue, 10);
if (typeof value === 'number' && value >= 1 && value <= totalPage && value !== current) {
this.onPageItemClick(value, e);
}
};
Pagination.prototype.onPageItemClick = function onPageItemClick(page, e) {
var _this2 = this;
if (!('current' in this.props)) {
this.setState({
current: page
}, function () {
_this2.props.onChange(page, e);
});
} else {
this.props.onChange(page, e);
}
};
Pagination.prototype.onInputChange = function onInputChange(value) {
this.inputValue = value;
};
Pagination.prototype.onSelectSize = function onSelectSize(pageSize) {
var newState = {
currentPageSize: pageSize
};
var totalPage = this.getTotalPage(this.props.total, pageSize);
if (this.state.current > totalPage) {
newState.current = totalPage;
}
this.setState(newState);
this.props.onPageSizeChange(pageSize);
};
Pagination.prototype.renderPageItem = function renderPageItem(index) {
var _cx;
var prefix = this.getPrefix();
var _props = this.props,
size = _props.size,
link = _props.link,
pageNumberRender = _props.pageNumberRender;
var current = this.state.current;
var isCurrent = parseInt(index, 10) === current;
var props = {
size: size,
className: (0, _classnames2['default'])((_cx = {}, _defineProperty(_cx, prefix + 'pagination-item', true), _defineProperty(_cx, 'current', isCurrent), _cx)),
onClick: isCurrent ? noop : this.onPageItemClick.bind(this, index)
};
if (link) {
props.component = 'a';
props.href = link.replace('{page}', index);
}
return _react2['default'].createElement(
_nextButton2['default'],
_extends({}, props, { key: index }),
pageNumberRender(index)
);
};
Pagination.prototype.renderPageFirst = function renderPageFirst(current) {
var _cx2;
var prefix = this.getPrefix();
var _props2 = this.props,
size = _props2.size,
shape = _props2.shape,
locale = _props2.locale;
var isFirst = current <= 1;
var props = {
disabled: isFirst,
size: size,
className: (0, _classnames2['default'])((_cx2 = {}, _defineProperty(_cx2, prefix + 'pagination-item', true), _defineProperty(_cx2, 'prev', true), _cx2)),
onClick: this.onPageItemClick.bind(this, current - 1)
};
return _react2['default'].createElement(
_nextButton2['default'],
props,
_react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-left' }),
shape === 'arrow-only' || shape === 'arrow-prev-only' || shape === 'no-border' ? '' : locale.prev
);
};
Pagination.prototype.renderPageLast = function renderPageLast(current, totalPage) {
var _cx3;
var prefix = this.getPrefix();
var _props3 = this.props,
size = _props3.size,
shape = _props3.shape,
locale = _props3.locale;
var isLast = current >= totalPage;
var props = {
disabled: isLast,
size: size,
className: (0, _classnames2['default'])((_cx3 = {}, _defineProperty(_cx3, prefix + 'pagination-item', true), _defineProperty(_cx3, 'next', true), _cx3)),
onClick: this.onPageItemClick.bind(this, current + 1)
};
return _react2['default'].createElement(
_nextButton2['default'],
props,
shape === 'arrow-only' || shape === 'no-border' ? '' : locale.next,
_react2['default'].createElement(_nextIcon2['default'], { type: 'arrow-right' })
);
};
Pagination.prototype.renderPageEllipsis = function renderPageEllipsis(idx) {
var prefix = this.getPrefix();
return _react2['default'].createElement(
'span',
{ className: prefix + 'pagination-ellipsis', key: 'ellipsis-' + idx },
'...'
);
};
Pagination.prototype.renderPageJump = function renderPageJump() {
var prefix = this.getPrefix();
var _props4 = this.props,
size = _props4.size,
locale = _props4.locale;
var boundInput = this.getKeyBinderElement(_react2['default'].createElement(_nextInput2['default'], { type: 'text', size: size, onChange: this.onInputChange.bind(this) }));
return _react2['default'].createElement(
'div',
{ className: prefix + 'pagination-jump' },
_react2['default'].createElement(
'span',
null,
locale.goTo
),
boundInput,
_react2['default'].createElement(
'span',
null,
locale.page
),
_react2['default'].createElement(
_nextButton2['default'],
{ size: size, className: prefix + 'pagination-go', onClick: this.onJump },
locale.go
)
);
};
Pagination.prototype.renderPageDisplay = function renderPageDisplay(current, totalPage) {
var prefix = this.getPrefix();
var pageNumberRender = this.props.pageNumberRender;
return _react2['default'].createElement(
'span',
{ className: prefix + 'pagination-display' },
_react2['default'].createElement(
'em',
null,
pageNumberRender(current)
),
'/',
pageNumberRender(totalPage)
);
};
Pagination.prototype.renderPageList = function renderPageList(current, totalPage) {
var prefix = this.getPrefix();
var pageShowCount = this.props.pageShowCount;
var pages = [];
if (totalPage <= pageShowCount) {
for (var i = 1; i <= totalPage; i++) {
pages.push(this.renderPageItem(i));
}
} else {
// 除去第一页,最后一页以及当前页,剩下的页数
var othersCount = pageShowCount - 3;
var halfCount = parseInt(othersCount / 2, 10);
var start = void 0,
end = void 0;
pages.push(this.renderPageItem(1));
start = current - halfCount;
end = current + halfCount;
if (start <= 1) {
start = 2;
end = start + othersCount;
}
if (start > 2) {
pages.push(this.renderPageEllipsis(1));
}
if (end >= totalPage - 1) {
end = totalPage - 1;
start = totalPage - 1 - othersCount;
}
for (var j = start; j <= end; j++) {
pages.push(this.renderPageItem(j));
}
if (end < totalPage - 1) {
pages.push(this.renderPageEllipsis(2));
}
pages.push(this.renderPageItem(totalPage));
}
return _react2['default'].createElement(
'div',
{ className: prefix + 'pagination-list' },
pages
);
};
Pagination.prototype.renderPageSizeSelector = function renderPageSizeSelector() {
var prefix = this.getPrefix();
var _props5 = this.props,
pageSizeSelector = _props5.pageSizeSelector,
locale = _props5.locale;
var pageSizeSpan = _react2['default'].createElement(
'span',
{ className: prefix + 'pagination-size-selector-title' },
locale.pageSize
);
switch (pageSizeSelector) {
case 'filter':
return _react2['default'].createElement(
'div',
{ className: prefix + 'pagination-size-selector' },
pageSizeSpan,
this.renderPageSizeFilter()
);
case 'dropdown':
return _react2['default'].createElement(
'div',
{ className: prefix + 'pagination-size-selector' },
pageSizeSpan,
this.renderPageSizeDropdown()
);
default:
return null;
}
};
Pagination.prototype.renderPageSizeFilter = function renderPageSizeFilter() {
var _this3 = this;
var prefix = this.getPrefix();
var _props6 = this.props,
size = _props6.size,
pageSizeList = _props6.pageSizeList;
var currentPageSize = this.state.currentPageSize;
return _react2['default'].createElement(
'div',
{ className: prefix + 'pagination-size-selector-filter' },
pageSizeList.map(function (pageSize, index) {
var _cx4;
var classes = (0, _classnames2['default'])((_cx4 = {}, _defineProperty(_cx4, prefix + 'pagination-size-selector-btn', true), _defineProperty(_cx4, 'current', pageSize === currentPageSize), _cx4));
return _react2['default'].createElement(
_nextButton2['default'],
{ key: index,
shape: 'text',
size: size,
className: classes,
onClick: pageSize !== currentPageSize ? _this3.onSelectSize.bind(_this3, pageSize) : null },
pageSize
);
})
);
};
Pagination.prototype.renderPageSizeDropdown = function renderPageSizeDropdown() {
var prefix = this.getPrefix();
var _props7 = this.props,
size = _props7.size,
pageSizeList = _props7.pageSizeList;
var currentPageSize = this.state.currentPageSize;
return _react2['default'].createElement(
_nextSelect2['default'],
{ className: prefix + 'pagination-size-selector-dropdown',
size: size,
value: currentPageSize,
onChange: this.onSelectSize.bind(this) },
pageSizeList.map(function (pageSize, index) {
return _react2['default'].createElement(
_nextSelect.Option,
{ key: index, value: pageSize },
pageSize
);
})
);
};
Pagination.prototype.render = function render() {
var _cx5;
/* eslint-disable no-unused-vars */
var prefix = this.getPrefix();
var _props8 = this.props,
propsPrefix = _props8.prefix,
type = _props8.type,
size = _props8.size,
shape = _props8.shape,
className = _props8.className,
total = _props8.total,
pageSize = _props8.pageSize,
pageSizeSelector = _props8.pageSizeSelector,
pageSizeList = _props8.pageSizeList,
pageSizePosition = _props8.pageSizePosition,
onPageSizeChange = _props8.onPageSizeChange,
hideOnlyOnePage = _props8.hideOnlyOnePage,
showJump = _props8.showJump,
locale = _props8.locale,
current = _props8.current,
defaultCurrent = _props8.defaultCurrent,
pageShowCount = _props8.pageShowCount,
link = _props8.link,
language = _props8.language,
pageNumberRender = _props8.pageNumberRender,
onChange = _props8.onChange,
others = _objectWithoutProperties(_props8, ['prefix', 'type', 'size', 'shape', 'className', 'total', 'pageSize', 'pageSizeSelector', 'pageSizeList', 'pageSizePosition', 'onPageSizeChange', 'hideOnlyOnePage', 'showJump', 'locale', 'current', 'defaultCurrent', 'pageShowCount', 'link', 'language', 'pageNumberRender', 'onChange']);
/* eslint-enable */
var _state2 = this.state,
currentPage = _state2.current,
currentPageSize = _state2.currentPageSize;
var totalPage = this.getTotalPage(total, currentPageSize);
var pageFirst = this.renderPageFirst(currentPage);
var pageLast = this.renderPageLast(currentPage, totalPage);
var sizeSelector = this.renderPageSizeSelector();
var isStart = pageSizePosition === 'start';
var classes = (0, _classnames2['default'])((_cx5 = {}, _defineProperty(_cx5, prefix + 'pagination', true), _defineProperty(_cx5, prefix + 'pagination-' + type, type), _defineProperty(_cx5, prefix + 'pagination-' + shape, shape), _defineProperty(_cx5, prefix + 'pagination-' + size, size), _defineProperty(_cx5, size, size), _defineProperty(_cx5, 'start', !!pageSizeSelector && isStart), _defineProperty(_cx5, 'end', !!pageSizeSelector && !isStart), _defineProperty(_cx5, 'hide', totalPage <= 1 && hideOnlyOnePage), _defineProperty(_cx5, className, !!className), _cx5));
var buildComponent = function buildComponent() {
for (var _len = arguments.length, coms = Array(_len), _key = 0; _key < _len; _key++) {
coms[_key] = arguments[_key];
}
return _react2['default'].createElement(
'div',
_extends({ className: classes }, others),
isStart && sizeSelector,
_react2['default'].createElement(
'div',
{ className: prefix + 'pagination-pages' },
coms.map(function (com, index) {
return com && _react2['default'].cloneElement(com, { key: index });
})
),
!isStart && sizeSelector
);
};
switch (type) {
case 'mini':
return buildComponent(pageFirst, pageLast);
case 'simple':
{
var pageDisplay = this.renderPageDisplay(currentPage, totalPage);
return buildComponent(pageFirst, pageDisplay, pageLast);
}
case 'normal':
{
var pageList = this.renderPageList(currentPage, totalPage);
var _pageDisplay = showJump && totalPage > 5 ? this.renderPageDisplay(currentPage, totalPage) : null;
var pageJump = showJump && totalPage > 5 ? this.renderPageJump(currentPage, totalPage) : null;
return buildComponent(pageFirst, pageList, pageLast, _pageDisplay, pageJump);
}
default:
return null;
}
};
return Pagination;
}(_react.Component), _class.contextTypes = {
prefix: _propTypes2['default'].string
}, _class.propTypes = {
/**
* 样式类名的品牌前缀
*/
prefix: _propTypes2['default'].string,
/**
* 自定义类名
*/
className: _propTypes2['default'].string,
/**
* 自定义内联样式
*/
style: _propTypes2['default'].object,
/**
* 分页组件类型
*/
type: _propTypes2['default'].oneOf(['normal', 'simple', 'mini']),
/**
* 前进后退按钮样式
*/
shape: _propTypes2['default'].oneOf(['normal', 'arrow-only', 'arrow-prev-only', 'no-border']),
/**
* 分页组件大小
*/
size: _propTypes2['default'].oneOf(['small', 'medium', 'large']),
/**
* (受控)当前页码
*/
current: _propTypes2['default'].number,
/**
* (非受控)初始页码
*/
defaultCurrent: _propTypes2['default'].number,
/**
* 页码发生改变时的回调函数
* @param {Number} current 改变后的页码数
* @param {Object} e 点击事件对象
*/
onChange: _propTypes2['default'].func,
/**
* 总记录数
*/
total: _propTypes2['default'].number,
/**
* 页码显示的数量,更多的使用...代替
*/
pageShowCount: _propTypes2['default'].number,
/**
* 一页中的记录数
*/
pageSize: _propTypes2['default'].number,
/**
* 每页显示记录数量选择器类型
*/
pageSizeSelector: _propTypes2['default'].oneOf([false, 'filter', 'dropdown']),
/**
* 每页显示记录数量选择器可选值
*/
pageSizeList: _propTypes2['default'].arrayOf(_propTypes2['default'].number),
/**
* 自定义页码渲染函数,函数作用于页码button以及当前页/总页数的数字渲染
* @param {Number} index 分页的页码,从1开始
* @return {ReactNode} 返回渲染结果
*/
pageNumberRender: _propTypes2['default'].func,
/**
* 每页显示记录数量选择器在组件中的位置
*/
pageSizePosition: _propTypes2['default'].oneOf(['start', 'end']),
/**
* 每页显示记录数量改变时的回调函数
* @param {Number} pageSize 改变后的每页显示记录数
*/
onPageSizeChange: _propTypes2['default'].func,
/**
* 当分页数为1时,是否隐藏分页器
*/
hideOnlyOnePage: _propTypes2['default'].bool,
/**
* type 设置为 normal 时,在页码数超过5页后,会显示跳转输入框与按钮,当设置 showJump 为 false 时,不再显示该跳转区域
*/
showJump: _propTypes2['default'].bool,
/**
* 设置页码按钮的跳转链接,它的值为一个包含 {page} 的模版字符串,如:http://xxx.com/{page}
*/
link: _propTypes2['default'].string,
/**
* 自定义国际化文案对象
*/
locale: _propTypes2['default'].object,
/**
* 自定义国际化语言
*/
language: _propTypes2['default'].oneOf(['zh-cn', 'en-us', 'zh-tw'])
}, _class.defaultProps = {
prefix: 'next-',
type: 'normal',
shape: 'normal',
size: 'medium',
defaultCurrent: 1,
onChange: noop,
pageSize: 10,
pageSizeSelector: false,
pageSizeList: [5, 10, 20],
pageSizePosition: 'start',
onPageSizeChange: noop,
total: 100,
pageShowCount: 5,
hideOnlyOnePage: false,
showJump: true,
pageNumberRender: function pageNumberRender(index) {
return index;
}
}, _temp);
Pagination.displayName = 'Pagination';
Object.keys(_nextMixinKeyBinder2['default']).forEach(function (key) {
Pagination.prototype[key] = _nextMixinKeyBinder2['default'][key];
});
exports['default'] = (0, _nextLocaleProvider2['default'])(Pagination);
module.exports = exports['default'];
/***/ }),
/***/ 1788:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _nextUtil = __webpack_require__(831);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var makeChain = _nextUtil.func.makeChain;
var lastCode = void 0;
var getCode = function getCode(keyCode) {
return Object.keys(_nextUtil.keyCode).find(function (name) {
return _nextUtil.keyCode[name] === keyCode;
});
};
exports['default'] = {
getKeyBinderElement: function getKeyBinderElement(element) {
return _react2['default'].cloneElement(element, {
onKeyDown: makeChain(this._onKeyBinderKeyDown.bind(this), element.props.onKeyDown),
ref: 'keybinderNode'
});
},
_onKeyBinderKeyDown: function _onKeyBinderKeyDown(e) {
var code = void 0,
match = void 0;
var currentCode = getCode(e.keyCode);
if (currentCode) {
code = currentCode.toLowerCase();
} else {
code = String.fromCharCode(e.keyCode).toLowerCase();
}
var keyBinders = this.keyBinders;
if (e.ctrlKey) {
match = keyBinders['ctrl+' + code];
} else if (e.shiftKey) {
match = keyBinders['shift+' + code];
} else if (e.altKey) {
match = keyBinders['alt+' + code];
} else {
match = keyBinders[code];
}
if (!match) {
if (lastCode) {
match = keyBinders[lastCode + ' ' + code];
}
}
if (typeof match === 'string') {
match = this[match].bind(this);
} else if (typeof match === 'function') {
match = match.bind(this);
}
if (typeof match === 'function') {
match(e);
}
lastCode = code;
}
};
module.exports = exports['default'];
/***/ }),
/***/ 1789:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = {
'en-us': {
prev: 'Previous',
next: 'Next',
goTo: 'Go to',
page: 'Page',
go: 'Go',
pageSize: 'Items per page:'
},
'zh-cn': {
prev: '上一页',
next: '下一页',
goTo: '到第',
page: '页',
go: '确定',
pageSize: '每页显示:'
},
'zh-tw': {
prev: '上一頁',
next: '下一頁',
goTo: '到第',
page: '頁',
go: '確定',
pageSize: '每頁顯示:'
}
};
/***/ }),
/***/ 1806:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_antd_lib_spin_style_css__ = __webpack_require__(71);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_antd_lib_spin_style_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_antd_lib_spin_style_css__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_antd_lib_spin__ = __webpack_require__(72);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_antd_lib_spin___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_antd_lib_spin__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);
var _createClass=function(){function defineProperties(target,props){for(var i=0;i
{/**/}{/**/}var system_updates=this.state.system_updates;var updata=this.props.updata;return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_antd_lib_modal___default.a,{keyboard:false,title:updata&&updata.subject,visible:system_updates// visible={this.props.modalsType===undefined?false:this.props.modalsType}
,closable:false,footer:null,destroyOnClose:true,centered:true,width:'530px'},__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement('div',{className:'task-popup-content'},__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement('pre',{className:'break-word break-word-firefox'},updata&&updata.system_score),__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement('div',{className:'clearfix edu-txt-center mt20'},__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement('a',{className:'task-btn task-btn-orange pop_close',onClick:function onClick(){return _this2.setmodalSave();}},'\u77E5\u9053\u5566'))));}}]);return UpgradeModals;}(__WEBPACK_IMPORTED_MODULE_2_react__["Component"]);/* harmony default export */ __webpack_exports__["a"] = (UpgradeModals);
/***/ }),
/***/ 1809:
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(3036);
/***/ }),
/***/ 2608:
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(1729);
__webpack_require__(3032);
/***/ }),
/***/ 3024:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(1786);
/***/ }),
/***/ 3025:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(3026);
/***/ }),
/***/ 3026:
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(3027);
__webpack_require__(2608);
__webpack_require__(3034);
__webpack_require__(3051);
/***/ }),
/***/ 3027:
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(1729);
__webpack_require__(3030);
/***/ }),
/***/ 3028:
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a