ming-demo3
Version:
mdf metaui web
177 lines (149 loc) • 6.03 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
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 _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
var _react = _interopRequireDefault(require("react"));
var _baseui = require("@mdf/baseui");
var _SvgIcon = _interopRequireDefault(require("@mdf/metaui-web/lib/components/common/SvgIcon"));
var _classnames = _interopRequireDefault(require("classnames"));
var _extend = require("@mdf/cube/lib/extend");
var ButtonControl = function (_React$Component) {
(0, _inherits2["default"])(ButtonControl, _React$Component);
function ButtonControl(props) {
var _this;
(0, _classCallCheck2["default"])(this, ButtonControl);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ButtonControl).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onClick", function () {
if (_this.state.onClick) {
_this.state.onClick((0, _assertThisInitialized2["default"])(_this));
} else {
if (_this.props.model) _this.props.model.fireEvent('click');
}
});
var cStyle = props.cStyle,
cParameter = props.cParameter;
var config = null;
if (cStyle || cParameter) {
try {
config = JSON.parse(cStyle || cParameter);
} catch (e) {
config = {};
}
}
_this.state = Object.assign({
disabled: _this.props.disabled,
visible: true,
value: _this.props.value,
type: _this.props.type,
size: 'default',
icon: _this.props.icon,
shape: _this.props.shape,
className: _this.props.className,
icontype: _this.props.iconType,
onClick: _this.props.onClick
}, config);
return _this;
}
(0, _createClass2["default"])(ButtonControl, [{
key: "componentDidMount",
value: function componentDidMount() {
if (this && this.props && this.props.model) {
this.props.model.addListener(this);
}
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
if (this && this.props && this.props.model) {
this.props.model.removeListener(this);
}
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate() {
if (this && this.props && this.props.model) {
this.props.model.addListener(this);
}
}
}, {
key: "setListenerState",
value: function setListenerState(params) {
this.setState(params);
if (this.props.onVisibleChange) {
var visible = params.visible;
if (visible == null) visible = true;
this.props.onVisibleChange(visible);
}
}
}, {
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(nextProps) {}
}, {
key: "setVisible",
value: function setVisible(visible) {
this.setState({
visible: visible
});
if (this.props.onVisibleChange) this.props.onVisibleChange(visible);
}
}, {
key: "render",
value: function render() {
if (!this.state.visible) return null;
var style = this.state.visible ? {} : {
display: "none"
};
if (this.props.model) {
var icon = this.props.iStyle === 1 ? null : this.props.icon;
var text = this.props.iStyle === 2 ? null : this.state.value;
var iconCom = icon ? _react["default"].createElement(_SvgIcon["default"], {
className: "icon-" + icon,
type: icon + (this.state.disabled ? "-disabled" : "")
}) : null;
if (this.state.icontype === 'iconfont') iconCom = icon ? _react["default"].createElement(_baseui.Icon, {
type: icon
}) : null;
if (this.state.popoverKey) {
var ComName = _extend.extendComp.popover[this.state.popoverKey];
if (!ComName) return null;
return _react["default"].createElement(ComName, {
model: this.props.model
}, _react["default"].createElement(_baseui.Button, {
className: "no-border-radius"
}, iconCom, text));
}
var onClick = this.props.delay ? (0, _debounce2["default"])(this.onClick, 300) : this.onClick;
return _react["default"].createElement(_baseui.Button, {
style: style,
disabled: this.state.disabled,
type: this.state.type,
shape: this.state.shape,
size: this.state.size,
className: (0, _classnames["default"])(this.state.className, this.state.classname, icon && 'icon-normal-width'),
onClick: onClick,
id: this.props.id
}, iconCom, text);
} else {
var _onClick = this.props.delay && this.props.onClick ? (0, _debounce2["default"])(this.props.onClick, 300) : this.props.onClick;
return _react["default"].createElement(_baseui.Button, (0, _extends2["default"])({}, this.props, {
disabled: this.state.disabled,
onClick: _onClick
}));
}
}
}]);
return ButtonControl;
}(_react["default"].Component);
exports["default"] = ButtonControl;
//# sourceMappingURL=button.js.map