@bhayward93/web3modal-angular
Version:
Web3Modal implementation for Angular
33 lines • 4.8 kB
JavaScript
// -- EventController --------------------------------------------------------- //
export class EventController {
constructor() {
this._eventCallbacks = [];
}
on(eventCallback) {
this._eventCallbacks.push(eventCallback);
}
off(eventObj) {
// remove specific event callback
if (eventObj) {
if (eventObj.callback) {
this._eventCallbacks = this._eventCallbacks.filter((eventCallback) => eventCallback.event !== eventObj.event ||
eventCallback.callback !== eventObj.callback);
} // No callback to remove, remove entire event
else {
this._eventCallbacks = this._eventCallbacks.filter((eventCallback) => eventCallback.event !== eventObj.event);
}
}
else {
this._eventCallbacks = [];
}
}
trigger(event, result) {
let eventCallbacks = this._eventCallbacks.filter((eventCallback) => eventCallback.event === event);
if (eventCallbacks && eventCallbacks.length) {
eventCallbacks.forEach((eventCallback) => {
eventCallback.callback(result);
});
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViM21vZGFsL3NyYy9saWIvd2ViM21vZGFsLXRzL3NyYy9jb250cm9sbGVycy9ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsa0ZBQWtGO0FBRWxGLE1BQU0sT0FBTyxlQUFlO0lBRzFCO1FBQ0UsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLEVBQUUsQ0FBQyxhQUE2QjtRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sR0FBRyxDQUFDLFFBQWtDO1FBQzNDLGlDQUFpQztRQUNqQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQ2hELENBQUMsYUFBNkIsRUFBRSxFQUFFLENBQ2hDLGFBQWEsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLEtBQUs7b0JBQ3RDLGFBQWEsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLFFBQVEsQ0FDL0MsQ0FBQztZQUNKLENBQUMsQ0FBQyw2Q0FBNkM7aUJBQzFDLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDaEQsQ0FBQyxhQUE2QixFQUFFLEVBQUUsQ0FDaEMsYUFBYSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsS0FBSyxDQUN6QyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFTSxPQUFPLENBQUMsS0FBYSxFQUFFLE1BQVk7UUFDeEMsSUFBSSxjQUFjLEdBQXFCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUNoRSxDQUFDLGFBQTZCLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUNqRSxDQUFDO1FBRUYsSUFBSSxjQUFjLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUE2QixFQUFFLEVBQUU7Z0JBQ3ZELGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUV2ZW50Q2FsbGJhY2sgfSBmcm9tICcuLi9oZWxwZXJzJztcblxuLy8gLS0gRXZlbnRDb250cm9sbGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvL1xuXG5leHBvcnQgY2xhc3MgRXZlbnRDb250cm9sbGVyIHtcbiAgcHJpdmF0ZSBfZXZlbnRDYWxsYmFja3M6IElFdmVudENhbGxiYWNrW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fZXZlbnRDYWxsYmFja3MgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBvbihldmVudENhbGxiYWNrOiBJRXZlbnRDYWxsYmFjaykge1xuICAgIHRoaXMuX2V2ZW50Q2FsbGJhY2tzLnB1c2goZXZlbnRDYWxsYmFjayk7XG4gIH1cblxuICBwdWJsaWMgb2ZmKGV2ZW50T2JqPzogUGFydGlhbDxJRXZlbnRDYWxsYmFjaz4pIHtcbiAgICAvLyByZW1vdmUgc3BlY2lmaWMgZXZlbnQgY2FsbGJhY2tcbiAgICBpZiAoZXZlbnRPYmopIHtcbiAgICAgIGlmIChldmVudE9iai5jYWxsYmFjaykge1xuICAgICAgICB0aGlzLl9ldmVudENhbGxiYWNrcyA9IHRoaXMuX2V2ZW50Q2FsbGJhY2tzLmZpbHRlcihcbiAgICAgICAgICAoZXZlbnRDYWxsYmFjazogSUV2ZW50Q2FsbGJhY2spID0+XG4gICAgICAgICAgICBldmVudENhbGxiYWNrLmV2ZW50ICE9PSBldmVudE9iai5ldmVudCB8fFxuICAgICAgICAgICAgZXZlbnRDYWxsYmFjay5jYWxsYmFjayAhPT0gZXZlbnRPYmouY2FsbGJhY2tcbiAgICAgICAgKTtcbiAgICAgIH0gLy8gTm8gY2FsbGJhY2sgdG8gcmVtb3ZlLCByZW1vdmUgZW50aXJlIGV2ZW50XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fZXZlbnRDYWxsYmFja3MgPSB0aGlzLl9ldmVudENhbGxiYWNrcy5maWx0ZXIoXG4gICAgICAgICAgKGV2ZW50Q2FsbGJhY2s6IElFdmVudENhbGxiYWNrKSA9PlxuICAgICAgICAgICAgZXZlbnRDYWxsYmFjay5ldmVudCAhPT0gZXZlbnRPYmouZXZlbnRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZXZlbnRDYWxsYmFja3MgPSBbXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJpZ2dlcihldmVudDogc3RyaW5nLCByZXN1bHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBsZXQgZXZlbnRDYWxsYmFja3M6IElFdmVudENhbGxiYWNrW10gPSB0aGlzLl9ldmVudENhbGxiYWNrcy5maWx0ZXIoXG4gICAgICAoZXZlbnRDYWxsYmFjazogSUV2ZW50Q2FsbGJhY2spID0+IGV2ZW50Q2FsbGJhY2suZXZlbnQgPT09IGV2ZW50XG4gICAgKTtcblxuICAgIGlmIChldmVudENhbGxiYWNrcyAmJiBldmVudENhbGxiYWNrcy5sZW5ndGgpIHtcbiAgICAgIGV2ZW50Q2FsbGJhY2tzLmZvckVhY2goKGV2ZW50Q2FsbGJhY2s6IElFdmVudENhbGxiYWNrKSA9PiB7XG4gICAgICAgIGV2ZW50Q2FsbGJhY2suY2FsbGJhY2socmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19