82 lines
2.4 KiB
JavaScript
82 lines
2.4 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
|
|
var _KeyCode = require('rc-util/lib/KeyCode');
|
|
|
|
var _KeyCode2 = _interopRequireDefault(_KeyCode);
|
|
|
|
var _addEventListener = require('rc-util/lib/Dom/addEventListener');
|
|
|
|
var _addEventListener2 = _interopRequireDefault(_addEventListener);
|
|
|
|
var _contains = require('rc-util/lib/Dom/contains');
|
|
|
|
var _contains2 = _interopRequireDefault(_contains);
|
|
|
|
var _reactDom = require('react-dom');
|
|
|
|
var _reactDom2 = _interopRequireDefault(_reactDom);
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
|
|
|
exports['default'] = {
|
|
componentDidMount: function componentDidMount() {
|
|
this.componentDidUpdate();
|
|
},
|
|
componentDidUpdate: function componentDidUpdate() {
|
|
if (this.props.mode !== 'inline') {
|
|
if (this.props.open) {
|
|
this.bindRootCloseHandlers();
|
|
} else {
|
|
this.unbindRootCloseHandlers();
|
|
}
|
|
}
|
|
},
|
|
handleDocumentKeyUp: function handleDocumentKeyUp(e) {
|
|
if (e.keyCode === _KeyCode2['default'].ESC) {
|
|
this.props.onItemHover({
|
|
key: this.props.eventKey,
|
|
item: this,
|
|
hover: false
|
|
});
|
|
}
|
|
},
|
|
handleDocumentClick: function handleDocumentClick(e) {
|
|
// If the click originated from within this component
|
|
// don't do anything.
|
|
if ((0, _contains2['default'])(_reactDom2['default'].findDOMNode(this), e.target)) {
|
|
return;
|
|
}
|
|
var props = this.props;
|
|
props.onItemHover({
|
|
hover: false,
|
|
item: this,
|
|
key: this.props.eventKey
|
|
});
|
|
this.triggerOpenChange(false);
|
|
},
|
|
bindRootCloseHandlers: function bindRootCloseHandlers() {
|
|
if (!this._onDocumentClickListener) {
|
|
this._onDocumentClickListener = (0, _addEventListener2['default'])(document, 'click', this.handleDocumentClick);
|
|
this._onDocumentKeyupListener = (0, _addEventListener2['default'])(document, 'keyup', this.handleDocumentKeyUp);
|
|
}
|
|
},
|
|
unbindRootCloseHandlers: function unbindRootCloseHandlers() {
|
|
if (this._onDocumentClickListener) {
|
|
this._onDocumentClickListener.remove();
|
|
this._onDocumentClickListener = null;
|
|
}
|
|
|
|
if (this._onDocumentKeyupListener) {
|
|
this._onDocumentKeyupListener.remove();
|
|
this._onDocumentKeyupListener = null;
|
|
}
|
|
},
|
|
componentWillUnmount: function componentWillUnmount() {
|
|
this.unbindRootCloseHandlers();
|
|
}
|
|
};
|
|
module.exports = exports['default']; |