This commit is contained in:
Oleg Mokhov
2015-06-20 12:26:08 +03:00
committed by mokhov
parent a716969f4e
commit f3546ef3a5
85 changed files with 16682 additions and 1 deletions

View File

@@ -0,0 +1,48 @@
modules.define(
'y-focus-holder',
['inherit', 'jquery', 'y-event-emitter'],
function (provide, inherit, $, YEventEmitter) {
var YFocusHolder = inherit(YEventEmitter, {
__constructor: function () {
this._domElement = $('<button>focus</button>');
this._domElement.css({
position: 'absolute',
top: '-1000px',
left: '-1000px'
});
this._focused = false;
},
focus: function () {
if (this._focused) {
return;
}
this.emit('focus');
this._domElement.on('blur', this._onBlur.bind(this));
this._domElement.appendTo(document.body);
this._domElement.focus();
this._focused = true;
},
blur: function () {
if (!this._focused) {
return;
}
this._domElement.blur();
},
_onBlur: function () {
this.emit('blur');
this._domElement.remove();
this._focused = false;
},
destruct: function () {
this._domElement.remove();
}
});
provide(YFocusHolder);
});