|
|
@ -1,12 +1,12 @@
|
|
|
|
export default new class {
|
|
|
|
export default new class {
|
|
|
|
constructor() {
|
|
|
|
constructor() {
|
|
|
|
this.listeners = new Map();
|
|
|
|
this.listeners = new Map()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
addListener(label, callback, vm) {
|
|
|
|
addListener(label, callback, vm) {
|
|
|
|
if(typeof callback == 'function'){
|
|
|
|
if(typeof callback === 'function'){
|
|
|
|
this.listeners.has(label) || this.listeners.set(label, []);
|
|
|
|
this.listeners.has(label) || this.listeners.set(label, [])
|
|
|
|
this.listeners.get(label).push({callback: callback, vm: vm});
|
|
|
|
this.listeners.get(label).push({callback: callback, vm: vm})
|
|
|
|
|
|
|
|
|
|
|
|
return true
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -15,35 +15,38 @@ export default new class {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
removeListener(label, callback, vm) {
|
|
|
|
removeListener(label, callback, vm) {
|
|
|
|
let listeners = this.listeners.get(label),
|
|
|
|
let listeners = this.listeners.get(label)
|
|
|
|
index;
|
|
|
|
let index
|
|
|
|
|
|
|
|
|
|
|
|
if (listeners && listeners.length) {
|
|
|
|
if (listeners && listeners.length) {
|
|
|
|
index = listeners.reduce((i, listener, index) => {
|
|
|
|
index = listeners.reduce((i, listener, index) => {
|
|
|
|
return (typeof listener.callback == 'function' && listener.callback === callback && listener.vm == vm) ?
|
|
|
|
return (typeof listener.callback === 'function' && listener.callback === callback && listener.vm === vm) ?
|
|
|
|
i = index :
|
|
|
|
i = index : i
|
|
|
|
i;
|
|
|
|
}, -1)
|
|
|
|
}, -1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (index > -1) {
|
|
|
|
if (index > -1) {
|
|
|
|
listeners.splice(index, 1);
|
|
|
|
listeners.splice(index, 1)
|
|
|
|
this.listeners.set(label, listeners);
|
|
|
|
this.listeners.set(label, listeners)
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
emit(label, ...args) {
|
|
|
|
emit(label, ...args) {
|
|
|
|
let listeners = this.listeners.get(label);
|
|
|
|
let listeners = this.listeners.get(label)
|
|
|
|
|
|
|
|
|
|
|
|
if (listeners && listeners.length) {
|
|
|
|
if (listeners && listeners.length) {
|
|
|
|
listeners.forEach((listener) => {
|
|
|
|
listeners.forEach((listener) => {
|
|
|
|
listener.callback.call(listener.vm, ...args)
|
|
|
|
listener.callback.call(listener.vm, ...args)
|
|
|
|
});
|
|
|
|
})
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|