adui
Version:
<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>
66 lines (53 loc) • 5.65 kB
JavaScript
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
var TAB_KEY_CODE = 9;
export var FocusManager = function () {
function FocusManager(container, className) {
var _this = this;
_classCallCheck(this, FocusManager);
this.container = void 0;
this.className = void 0;
this.isRunning = false;
this.handleKeyDown = function (e) {
if (e.which === TAB_KEY_CODE) {
_this.reset();
_this.container.addEventListener("mousedown", _this.handleMouseDown);
}
};
this.handleMouseDown = function () {
_this.reset();
_this.container.classList.add(_this.className);
_this.container.addEventListener("keydown", _this.handleKeyDown);
};
this.container = container;
this.className = className;
}
_createClass(FocusManager, [{
key: "isActive",
value: function isActive() {
return this.isRunning;
}
}, {
key: "start",
value: function start() {
this.container.addEventListener("mousedown", this.handleMouseDown);
this.isRunning = true;
}
}, {
key: "stop",
value: function stop() {
this.reset();
this.isRunning = false;
}
}, {
key: "reset",
value: function reset() {
this.container.classList.remove(this.className);
this.container.removeEventListener("keydown", this.handleKeyDown);
this.container.removeEventListener("mousedown", this.handleMouseDown);
}
}]);
return FocusManager;
}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUQUJfS0VZX0NPREUiLCJGb2N1c01hbmFnZXIiLCJjb250YWluZXIiLCJjbGFzc05hbWUiLCJpc1J1bm5pbmciLCJoYW5kbGVLZXlEb3duIiwiZSIsIndoaWNoIiwicmVzZXQiLCJhZGRFdmVudExpc3RlbmVyIiwiaGFuZGxlTW91c2VEb3duIiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VzIjpbIi4uLy4uL2NvbXBvbmVudHMvX3V0aWwvZm9jdXNNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFRBQl9LRVlfQ09ERSA9IDlcblxuZXhwb3J0IGNsYXNzIEZvY3VzTWFuYWdlciB7XG4gIHB1YmxpYyBjb250YWluZXI6IEVsZW1lbnRcblxuICBwdWJsaWMgY2xhc3NOYW1lOiBzdHJpbmdcblxuICBwcml2YXRlIGlzUnVubmluZyA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoY29udGFpbmVyOiBFbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyXG4gICAgdGhpcy5jbGFzc05hbWUgPSBjbGFzc05hbWVcbiAgfVxuXG4gIHB1YmxpYyBpc0FjdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1J1bm5pbmdcbiAgfVxuXG4gIHB1YmxpYyBzdGFydCgpIHtcbiAgICB0aGlzLmNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMuaGFuZGxlTW91c2VEb3duKVxuICAgIHRoaXMuaXNSdW5uaW5nID0gdHJ1ZVxuICB9XG5cbiAgcHVibGljIHN0b3AoKSB7XG4gICAgdGhpcy5yZXNldCgpXG4gICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldCgpIHtcbiAgICB0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuY2xhc3NOYW1lKVxuICAgIHRoaXMuY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMuaGFuZGxlS2V5RG93bilcbiAgICB0aGlzLmNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMuaGFuZGxlTW91c2VEb3duKVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAoZS53aGljaCA9PT0gVEFCX0tFWV9DT0RFKSB7XG4gICAgICB0aGlzLnJlc2V0KClcbiAgICAgIHRoaXMuY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5oYW5kbGVNb3VzZURvd24pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZURvd24gPSAoKSA9PiB7XG4gICAgdGhpcy5yZXNldCgpXG4gICAgdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCh0aGlzLmNsYXNzTmFtZSlcbiAgICB0aGlzLmNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLmhhbmRsZUtleURvd24pXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBTUEsWUFBWSxHQUFHLENBQXJCO0FBRUEsV0FBYUMsWUFBYjtFQU9FLHNCQUFZQyxTQUFaLEVBQWdDQyxTQUFoQyxFQUFtRDtJQUFBOztJQUFBOztJQUFBLEtBTjVDRCxTQU00QztJQUFBLEtBSjVDQyxTQUk0QztJQUFBLEtBRjNDQyxTQUUyQyxHQUYvQixLQUUrQjs7SUFBQSxLQXlCM0NDLGFBekIyQyxHQXlCM0IsVUFBQ0MsQ0FBRCxFQUFzQjtNQUM1QyxJQUFJQSxDQUFDLENBQUNDLEtBQUYsS0FBWVAsWUFBaEIsRUFBOEI7UUFDNUIsS0FBSSxDQUFDUSxLQUFMOztRQUNBLEtBQUksQ0FBQ04sU0FBTCxDQUFlTyxnQkFBZixDQUFnQyxXQUFoQyxFQUE2QyxLQUFJLENBQUNDLGVBQWxEO01BQ0Q7SUFDRixDQTlCa0Q7O0lBQUEsS0FnQzNDQSxlQWhDMkMsR0FnQ3pCLFlBQU07TUFDOUIsS0FBSSxDQUFDRixLQUFMOztNQUNBLEtBQUksQ0FBQ04sU0FBTCxDQUFlUyxTQUFmLENBQXlCQyxHQUF6QixDQUE2QixLQUFJLENBQUNULFNBQWxDOztNQUNBLEtBQUksQ0FBQ0QsU0FBTCxDQUFlTyxnQkFBZixDQUFnQyxTQUFoQyxFQUEyQyxLQUFJLENBQUNKLGFBQWhEO0lBQ0QsQ0FwQ2tEOztJQUNqRCxLQUFLSCxTQUFMLEdBQWlCQSxTQUFqQjtJQUNBLEtBQUtDLFNBQUwsR0FBaUJBLFNBQWpCO0VBQ0Q7O0VBVkg7SUFBQTtJQUFBLE9BWUUsb0JBQWtCO01BQ2hCLE9BQU8sS0FBS0MsU0FBWjtJQUNEO0VBZEg7SUFBQTtJQUFBLE9BZ0JFLGlCQUFlO01BQ2IsS0FBS0YsU0FBTCxDQUFlTyxnQkFBZixDQUFnQyxXQUFoQyxFQUE2QyxLQUFLQyxlQUFsRDtNQUNBLEtBQUtOLFNBQUwsR0FBaUIsSUFBakI7SUFDRDtFQW5CSDtJQUFBO0lBQUEsT0FxQkUsZ0JBQWM7TUFDWixLQUFLSSxLQUFMO01BQ0EsS0FBS0osU0FBTCxHQUFpQixLQUFqQjtJQUNEO0VBeEJIO0lBQUE7SUFBQSxPQTBCRSxpQkFBZ0I7TUFDZCxLQUFLRixTQUFMLENBQWVTLFNBQWYsQ0FBeUJFLE1BQXpCLENBQWdDLEtBQUtWLFNBQXJDO01BQ0EsS0FBS0QsU0FBTCxDQUFlWSxtQkFBZixDQUFtQyxTQUFuQyxFQUE4QyxLQUFLVCxhQUFuRDtNQUNBLEtBQUtILFNBQUwsQ0FBZVksbUJBQWYsQ0FBbUMsV0FBbkMsRUFBZ0QsS0FBS0osZUFBckQ7SUFDRDtFQTlCSDs7RUFBQTtBQUFBIn0=