ming-demo3
Version:
mdf metaui web
139 lines (110 loc) • 4.57 kB
JavaScript
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 _propTypes = _interopRequireDefault(require("prop-types"));
var _baseui = require("@mdf/baseui");
var _Util = require("../common/Util");
var HotKeyInput = function (_React$Component) {
(0, _inherits2["default"])(HotKeyInput, _React$Component);
function HotKeyInput(props) {
var _this;
(0, _classCallCheck2["default"])(this, HotKeyInput);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(HotKeyInput).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onKeyDown", function (e) {
var nativeEvent = e.nativeEvent;
var activeKeys = (0, _Util.getEventModifiers)(nativeEvent);
var currentKey = (0, _Util.getEventKey)(nativeEvent);
if (currentKey !== '' && _.indexOf(activeKeys, currentKey) < 0) {
activeKeys.push(currentKey);
}
var value = activeKeys.join('+');
_this.setState({
value: value
});
_this.props.onChange(value);
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (e) {
var value = e.target.value === '' ? null : e.target.value;
if (_this.props.model) {
_this.props.model.setValue(value, true);
_this.props.model.execute('blur');
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPressEnter", function (e) {
var value = e.target.value === '' ? null : e.target.value;
if (_this.props.model) {
_this.props.model.setValue(value, true);
_this.props.model.execute('enter');
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (e) {
_this.props.onChange(_this.state.value);
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onClear", function (e) {
e.preventDefault();
_this.setState({
value: ''
});
_this.props.onChange('');
});
_this.state = {
value: props.value || ''
};
return _this;
}
(0, _createClass2["default"])(HotKeyInput, [{
key: "componentDidMount",
value: function componentDidMount() {
if (this.props.model) this.props.model.addListener(this);
if (this.props.focus) this.hotkeyRef.refs.input.focus();
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
if (this.props.model) this.props.model.removeListener(this);
}
}, {
key: "render",
value: function render() {
var _this2 = this;
var value = this.state.value;
var suffix = value ? _react["default"].createElement(_baseui.Icon, {
type: "cross",
onMouseDown: this.onClear
}) : null;
return _react["default"].createElement("span", {
onBlur: this.onBlur
}, _react["default"].createElement(_baseui.Input, {
ref: function ref(node) {
return _this2.hotkeyRef = node;
},
value: this.state.value,
onChange: this.onChange,
onKeyDown: this.onKeyDown,
onPressEnter: this.onPressEnter,
suffix: suffix
}));
}
}]);
return HotKeyInput;
}(_react["default"].Component);
exports["default"] = HotKeyInput;
(0, _defineProperty2["default"])(HotKeyInput, "propTypes", {
value: _propTypes["default"].string,
onChange: _propTypes["default"].func
});
(0, _defineProperty2["default"])(HotKeyInput, "defaultProps", {
onChange: function onChange(value) {}
});
//# sourceMappingURL=hotkeyinput.js.map
;