ming-demo3
Version:
mdf metaui web
172 lines (147 loc) • 5.68 kB
JavaScript
"use strict";
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 _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var CheckRadio = function (_React$Component) {
(0, _inherits2["default"])(CheckRadio, _React$Component);
function CheckRadio(props) {
var _this;
(0, _classCallCheck2["default"])(this, CheckRadio);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CheckRadio).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (e) {
if (_this.state.readOnly) return;
if (_this.props.model) {
var value = _this.props.model.getValue();
_this.props.model.setValue(!value, true);
} else {
if (_this.props.onChange) _this.props.onChange(!_this.state.value);
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleBodyClick", function (e) {
if (_this.contains(_this.refs.div, e.target)) return;
document.body.removeEventListener('click', _this.handleBodyClick);
_this.setState({
focus: false
});
if (_this.props.model) _this.props.model.execute('blur');
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "contains", function (elem, target) {
if (elem === target) return true;
if (!elem || !elem.children.length) return false;
for (var i = 0, len = elem.children.length; i < len; i++) {
if (_this.contains(elem.children[i], target)) return true;
}
return false;
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setVisible", function (value) {
_this.setState({
visible: value
});
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "baseControl", function () {
var value = _this.state.value;
var control;
if (_this.state.readOnly) {
if (!value) control = _react["default"].createElement("div", {
className: "checkradio-unchecked-readonly"
});else control = _react["default"].createElement("div", {
className: "checkradio-checked-readonly"
});
} else {
if (!value) control = _react["default"].createElement("div", {
className: "checkradio-unchecked",
onClick: _this.onChange
});else control = _react["default"].createElement("div", {
className: "checkradio-checked",
onClick: _this.onChange
});
}
return _react["default"].createElement("div", {
ref: "div",
className: "checkradio-container"
}, control);
});
_this.state = {
bIsNull: props.bIsNull,
value: props.checked || false,
defaultChecked: false,
focus: props.focus,
visible: !props.bHidden,
readOnly: props.readOnly,
style: {},
className: props.className || ''
};
return _this;
}
(0, _createClass2["default"])(CheckRadio, [{
key: "componentDidMount",
value: function componentDidMount() {
if (this.props.model) this.props.model.addListener(this);
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate() {
if (this.props.model) this.props.model.addListener(this);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
if (this.props.model) this.props.model.removeListener(this);
}
}, {
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(nextProps) {
if (nextProps.model) {
if (!this.props.model) {
nextProps.model.addListener(this);
} else {
return;
}
} else {
var checked = false;
if (this.props.model) {
this.props.model.removeListener(this);
if (this.props.checked) this.setState({
value: this.props.checked
});
} else {
this.setState({
value: nextProps.checked
});
}
}
this.setState({
readOnly: nextProps.readOnly,
focus: nextProps.focus,
className: nextProps.className
});
}
}, {
key: "render",
value: function render() {
var control = this.baseControl();
var classname = this.state.className;
var style = this.state.visible ? {} : {
display: "none"
};
if (this.state.focus) document.body.addEventListener('click', this.handleBodyClick);
return _react["default"].createElement("div", {
className: classname,
style: style
}, control);
}
}]);
return CheckRadio;
}(_react["default"].Component);
exports["default"] = CheckRadio;
//# sourceMappingURL=checkradio.js.map