1234567891011121314151617181920212223242526272829303132 |
- function VisibilityChangeHandler() {
- this.subscribers = [],
- this.bindFunc = void 0,
- this.id = 1,
- this.addListener()
- }
- VisibilityChangeHandler.prototype = {
- subscribe(i) {
- if (!i)
- return;
- const e = ++this.id
- , t = {
- id: e,
- handler: i
- };
- return this.subscribers.push(t),
- ()=>{
- this.subscribers = this.subscribers.filter(n=>n.id == e)
- }
- },
- destroy() {
- !this.bindFunc || (document.hidden !== void 0 ? document.removeEventListener("visibilitychange", this.bindFunc, !1) : document.webkitHidden && document.removeEventListener("webkitvisibilitychange", this.bindFunc, !1))
- },
- broadcast(i) {
- this.subscribers.forEach(e=>e.handler(i))
- },
- addListener() {
- document.hidden !== void 0 ? (this.bindFunc = ()=>this.broadcast(document.hidden),
- document.addEventListener("visibilitychange", this.bindFunc, !1)) : document.webkitHidden && (this.bindFunc = ()=>this.broadcast(document.webkitHidden),
- document.addEventListener("webkitvisibilitychange", this.bindFunc, !1))
- }
- };
|