ming-demo3
Version:
mdf metaui web
135 lines (111 loc) • 4.28 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _react = _interopRequireWildcard(require("react"));
var _baseui = require("@mdf/baseui");
var _SvgIcon = _interopRequireDefault(require("@mdf/metaui-web/lib/components/common/SvgIcon"));
var MenuItem = _baseui.Menu.Item;
var DropdownControl = function (_Component) {
(0, _inherits2["default"])(DropdownControl, _Component);
function DropdownControl(props) {
var _this;
(0, _classCallCheck2["default"])(this, DropdownControl);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DropdownControl).call(this, props));
_this.valueField = props.valueField || '';
_this.textField = props.textField || '';
_this.state = {
visible: !props.bHidden
};
return _this;
}
(0, _createClass2["default"])(DropdownControl, [{
key: "componentDidMount",
value: function componentDidMount() {
if (this.props.model) this.props.model.addListener(this);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
if (this.props.model) this.props.model.removeListener(this);
}
}, {
key: "setListenerState",
value: function setListenerState(params) {
var valueField = params.valueField,
textField = params.textField;
this.valueField = valueField;
this.textField = textField;
delete params.valueField;
delete params.textField;
this.setState(params);
if (this.props.onVisibleChange) {
var visible = params.visible;
if (visible == null) visible = true;
this.props.onVisibleChange(visible);
}
}
}, {
key: "handleMenuClick",
value: function handleMenuClick(e) {
if (this.props.model) {
this.props.model.select(e.key);
this.props.model.fireEvent('click', e.key);
}
}
}, {
key: "setVisible",
value: function setVisible(visible) {
this.setState({
visible: visible
});
if (this.props.onVisibleChange) this.props.onVisibleChange(visible);
}
}, {
key: "render",
value: function render() {
var _this2 = this;
if (!this.state.visible) return null;
var valueField = this.valueField;
var textField = this.textField;
var loop = function loop(data) {
return data.map(function (item) {
return _react["default"].createElement(MenuItem, {
key: item[valueField]
}, item[textField]);
});
};
var menu = _react["default"].createElement(_baseui.Menu, {
onClick: function onClick(e) {
return _this2.handleMenuClick(e);
}
}, loop(this.state.dataSource || []));
var icon = this.props.iStyle === 1 ? null : this.props.icon;
var text = this.props.iStyle === 2 ? null : this.props.value;
var iconCom = icon ? _react["default"].createElement(_SvgIcon["default"], {
className: "icon-" + icon,
type: icon + (this.state.disabled ? "-disabled" : "")
}) : null;
var control = _react["default"].createElement(_baseui.Dropdown, {
overlay: menu
}, _react["default"].createElement(_baseui.Button, {
className: this.props.className,
disabled: this.state.disabled
}, iconCom, text, _react["default"].createElement(_baseui.Icon, {
type: "down"
})));
return control;
}
}]);
return DropdownControl;
}(_react.Component);
exports["default"] = DropdownControl;
//# sourceMappingURL=dropdown.js.map