UNPKG

tuain-ng-forms-lib

Version:

Componentes y Clases Angular para la gestión de formularios TUAIN

43 lines 7.34 kB
import { Subject, BehaviorSubject, ReplaySubject } from 'rxjs'; export class LibEventManagerService { eventSubjects = {}; eventSubjectParams = {}; constructor(eventSet) { eventSet.forEach((event) => { this.addEventName(event); }); } addEventName(event, rebuild = false) { const eventObject = (typeof event === 'string') ? { name: event } : event; const { name, type, initialValue, windowTime, timestampProvider } = eventObject; const currentSubject = this.eventSubjects[name]; if (rebuild || !currentSubject) { if (type === 'behaviour') { const newEventSubject = new BehaviorSubject(initialValue); this.eventSubjects[name] = newEventSubject; } else if (type === 'subject') { const newEventSubject = new Subject(); this.eventSubjects[name] = newEventSubject; } else { const newEventSubject = new ReplaySubject(initialValue, windowTime, timestampProvider); this.eventSubjects[name] = newEventSubject; } this.eventSubjectParams[name] = { name: name, windowTime, timestampProvider }; } } resetSubject(eventClassName) { const { name, windowTime, timestampProvider } = this.eventSubjectParams[eventClassName]; return this.addEventName({ name, windowTime, timestampProvider }); } getEventNames() { return Object.keys(this.eventSubjects); } getSubject(eventClassName) { return eventClassName ? this.eventSubjects[eventClassName] : null; } subscribe(eventClassName, callback) { return this.getSubject(eventClassName).subscribe(callback); } next(eventClassName, data) { const subject = this.getSubject(eventClassName); if (!subject) { console.log(`No se encontró subject ${eventClassName}`); } subject.next(data); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvc2VydmljZXMvZXZlbnQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLGFBQWEsR0FBUSxFQUFFLENBQUM7SUFDeEIsa0JBQWtCLEdBQVEsRUFBRSxDQUFDO0lBRTdCLFlBQVksUUFBZTtRQUN6QixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDdEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMxRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsV0FBVyxDQUFDO1FBQ2hGLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMvQixJQUFJLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxlQUFlLEdBQXlCLElBQUksZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNoRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQztZQUM3QyxDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM5QixNQUFNLGVBQWUsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUM7WUFDN0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sZUFBZSxHQUF1QixJQUFJLGFBQWEsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7Z0JBQzNHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDO1lBQzdDLENBQUM7WUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hGLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLGNBQWM7UUFDekIsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEYsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGFBQWEsS0FBSyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxVQUFVLENBQUMsY0FBYyxJQUFJLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLFNBQVMsQ0FBQyxjQUFjLEVBQUUsUUFBUSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25HLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSTtRQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBMaWJFdmVudE1hbmFnZXJTZXJ2aWNlIHtcbiAgZXZlbnRTdWJqZWN0czogYW55ID0ge307XG4gIGV2ZW50U3ViamVjdFBhcmFtczogYW55ID0ge307XG5cbiAgY29uc3RydWN0b3IoZXZlbnRTZXQ6IGFueVtdKSB7XG4gICAgZXZlbnRTZXQuZm9yRWFjaCgoZXZlbnQpID0+IHsgdGhpcy5hZGRFdmVudE5hbWUoZXZlbnQpOyB9KTtcbiAgfVxuXG4gIGFkZEV2ZW50TmFtZShldmVudDogYW55LCByZWJ1aWxkID0gZmFsc2UpIHtcbiAgICBjb25zdCBldmVudE9iamVjdCA9ICh0eXBlb2YgZXZlbnQgPT09ICdzdHJpbmcnKSA/IHsgbmFtZTogZXZlbnQgfSA6IGV2ZW50O1xuICAgIGNvbnN0IHsgbmFtZSwgdHlwZSwgaW5pdGlhbFZhbHVlLCB3aW5kb3dUaW1lLCB0aW1lc3RhbXBQcm92aWRlciB9ID0gZXZlbnRPYmplY3Q7XG4gICAgY29uc3QgY3VycmVudFN1YmplY3QgPSB0aGlzLmV2ZW50U3ViamVjdHNbbmFtZV07XG4gICAgaWYgKHJlYnVpbGQgfHwgIWN1cnJlbnRTdWJqZWN0KSB7XG4gICAgICBpZiAodHlwZSA9PT0gJ2JlaGF2aW91cicpIHtcbiAgICAgICAgY29uc3QgbmV3RXZlbnRTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgdGhpcy5ldmVudFN1YmplY3RzW25hbWVdID0gbmV3RXZlbnRTdWJqZWN0O1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnc3ViamVjdCcpIHtcbiAgICAgICAgY29uc3QgbmV3RXZlbnRTdWJqZWN0OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHNbbmFtZV0gPSBuZXdFdmVudFN1YmplY3Q7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBuZXdFdmVudFN1YmplY3Q6IFJlcGxheVN1YmplY3Q8YW55PiA9IG5ldyBSZXBsYXlTdWJqZWN0KGluaXRpYWxWYWx1ZSwgd2luZG93VGltZSwgdGltZXN0YW1wUHJvdmlkZXIpO1xuICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHNbbmFtZV0gPSBuZXdFdmVudFN1YmplY3Q7XG4gICAgICB9XG4gICAgICB0aGlzLmV2ZW50U3ViamVjdFBhcmFtc1tuYW1lXSA9IHsgbmFtZTogbmFtZSwgd2luZG93VGltZSwgdGltZXN0YW1wUHJvdmlkZXIgfTtcbiAgICB9XG4gIH1cblxuICByZXNldFN1YmplY3QoZXZlbnRDbGFzc05hbWUpIHtcbiAgICBjb25zdCB7IG5hbWUsIHdpbmRvd1RpbWUsIHRpbWVzdGFtcFByb3ZpZGVyIH0gPSB0aGlzLmV2ZW50U3ViamVjdFBhcmFtc1tldmVudENsYXNzTmFtZV07XG4gICAgcmV0dXJuIHRoaXMuYWRkRXZlbnROYW1lKHsgbmFtZSwgd2luZG93VGltZSwgdGltZXN0YW1wUHJvdmlkZXIgfSk7XG4gIH1cblxuICBnZXRFdmVudE5hbWVzKCkgeyByZXR1cm4gT2JqZWN0LmtleXModGhpcy5ldmVudFN1YmplY3RzKTsgfVxuICBnZXRTdWJqZWN0KGV2ZW50Q2xhc3NOYW1lKSB7IHJldHVybiBldmVudENsYXNzTmFtZSA/IHRoaXMuZXZlbnRTdWJqZWN0c1tldmVudENsYXNzTmFtZV0gOiBudWxsOyB9XG4gIHN1YnNjcmliZShldmVudENsYXNzTmFtZSwgY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuZ2V0U3ViamVjdChldmVudENsYXNzTmFtZSkuc3Vic2NyaWJlKGNhbGxiYWNrKTsgfVxuICBuZXh0KGV2ZW50Q2xhc3NOYW1lLCBkYXRhKSB7IFxuICAgIGNvbnN0IHN1YmplY3QgPSB0aGlzLmdldFN1YmplY3QoZXZlbnRDbGFzc05hbWUpO1xuICAgIGlmICghc3ViamVjdCkge1xuICAgICAgY29uc29sZS5sb2coYE5vIHNlIGVuY29udHLDsyBzdWJqZWN0ICR7ZXZlbnRDbGFzc05hbWV9YCk7XG4gICAgfVxuICAgIHN1YmplY3QubmV4dChkYXRhKTtcbiAgfVxufVxuIl19