ngx-admin-lte
Version:
AdminLTE theme for angular
42 lines • 5.89 kB
JavaScript
import * as tslib_1 from "tslib";
import { Injectable } from '@angular/core';
import { Subject, ReplaySubject } from 'rxjs';
import { map } from 'rxjs/operators';
const initialMessages = [];
let MessagesService = class MessagesService {
// public markThreadAsRead: Subject<any> = new Subject<any>();
constructor() {
this.messagesList = [];
// a stream that publishes new messages only once
this.newMessages = new Subject();
// `messages` is a stream that emits an array of the most up to date messages
this.messages = new ReplaySubject(1);
// `updates` receives _operations_ to be applied to our `messages`
// it's a way we can perform changes on *all* messages (that are currently
// stored in `messages`)
this.updates = new Subject();
// action streams
this.create = new Subject();
// recois des operation, et les fais sur la liste interne, puis diffuse le resultat sur messages
this.updates.subscribe((ope) => {
this.messagesList = ope(this.messagesList);
console.log(this.messagesList);
this.messages.next(this.messagesList);
});
this.newMessages.pipe(map(function (message) {
return (messages) => {
return messages.concat(message);
};
}))
.subscribe(this.updates);
}
// an imperative function call to this action stream
addMessage(message) {
this.newMessages.next(message);
}
};
MessagesService = tslib_1.__decorate([
Injectable()
], MessagesService);
export { MessagesService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1hZG1pbi1sdGUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9tZXNzYWdlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxNQUFNLGVBQWUsR0FBYyxFQUFFLENBQUM7QUFLdEMsSUFBYSxlQUFlLEdBQTVCLE1BQWEsZUFBZTtJQWUxQiw4REFBOEQ7SUFFOUQ7UUFoQlEsaUJBQVksR0FBYyxFQUFFLENBQUM7UUFDckMsaURBQWlEO1FBQzFDLGdCQUFXLEdBQXFCLElBQUksT0FBTyxFQUFXLENBQUM7UUFFOUQsNkVBQTZFO1FBQ3RFLGFBQVEsR0FBNkIsSUFBSSxhQUFhLENBQVksQ0FBQyxDQUFDLENBQUM7UUFFNUUsa0VBQWtFO1FBQ2xFLDBFQUEwRTtRQUMxRSx3QkFBd0I7UUFDakIsWUFBTyxHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO1FBRWxELGlCQUFpQjtRQUNWLFdBQU0sR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUl2RCxnR0FBZ0c7UUFDaEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ2pCLEdBQUcsQ0FBQyxVQUFTLE9BQWdCO1lBQzNCLE9BQU8sQ0FBQyxRQUFtQixFQUFFLEVBQUU7Z0JBQzdCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFN0IsQ0FBQztJQUVELG9EQUFvRDtJQUM3QyxVQUFVLENBQUMsT0FBZ0I7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUVGLENBQUE7QUF6Q1ksZUFBZTtJQUQzQixVQUFVLEVBQUU7R0FDQSxlQUFlLENBeUMzQjtTQXpDWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL25nLWJvb2svYW5ndWxhcjItcnhqcy1jaGF0L2Jsb2IvbWFzdGVyL2FwcC90cy9zZXJ2aWNlcy9NZXNzYWdlc1NlcnZpY2UudHNcbmltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tICcuLi9tb2RlbHMvbWVzc2FnZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5jb25zdCBpbml0aWFsTWVzc2FnZXM6IE1lc3NhZ2VbXSA9IFtdO1xuXG50eXBlIElNZXNzYWdlc09wZXJhdGlvbiA9IChtZXNzYWdlczogTWVzc2FnZVtdKSA9PiBNZXNzYWdlW107XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNZXNzYWdlc1NlcnZpY2Uge1xuICBwcml2YXRlIG1lc3NhZ2VzTGlzdDogTWVzc2FnZVtdID0gW107XG4gIC8vIGEgc3RyZWFtIHRoYXQgcHVibGlzaGVzIG5ldyBtZXNzYWdlcyBvbmx5IG9uY2VcbiAgcHVibGljIG5ld01lc3NhZ2VzOiBTdWJqZWN0PE1lc3NhZ2U+ID0gbmV3IFN1YmplY3Q8TWVzc2FnZT4oKTtcblxuICAvLyBgbWVzc2FnZXNgIGlzIGEgc3RyZWFtIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2YgdGhlIG1vc3QgdXAgdG8gZGF0ZSBtZXNzYWdlc1xuICBwdWJsaWMgbWVzc2FnZXM6IFJlcGxheVN1YmplY3Q8TWVzc2FnZVtdPiA9IG5ldyBSZXBsYXlTdWJqZWN0PE1lc3NhZ2VbXT4oMSk7XG5cbiAgLy8gYHVwZGF0ZXNgIHJlY2VpdmVzIF9vcGVyYXRpb25zXyB0byBiZSBhcHBsaWVkIHRvIG91ciBgbWVzc2FnZXNgXG4gIC8vIGl0J3MgYSB3YXkgd2UgY2FuIHBlcmZvcm0gY2hhbmdlcyBvbiAqYWxsKiBtZXNzYWdlcyAodGhhdCBhcmUgY3VycmVudGx5XG4gIC8vIHN0b3JlZCBpbiBgbWVzc2FnZXNgKVxuICBwdWJsaWMgdXBkYXRlczogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gIC8vIGFjdGlvbiBzdHJlYW1zXG4gIHB1YmxpYyBjcmVhdGU6IFN1YmplY3Q8TWVzc2FnZT4gPSBuZXcgU3ViamVjdDxNZXNzYWdlPigpO1xuICAvLyBwdWJsaWMgbWFya1RocmVhZEFzUmVhZDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIHJlY29pcyBkZXMgb3BlcmF0aW9uLCBldCBsZXMgZmFpcyBzdXIgbGEgbGlzdGUgaW50ZXJuZSwgcHVpcyBkaWZmdXNlIGxlIHJlc3VsdGF0IHN1ciBtZXNzYWdlc1xuICAgIHRoaXMudXBkYXRlcy5zdWJzY3JpYmUoKG9wZSkgPT4ge1xuICAgICAgdGhpcy5tZXNzYWdlc0xpc3QgPSBvcGUodGhpcy5tZXNzYWdlc0xpc3QpO1xuICAgICAgY29uc29sZS5sb2codGhpcy5tZXNzYWdlc0xpc3QpO1xuICAgICAgdGhpcy5tZXNzYWdlcy5uZXh0KHRoaXMubWVzc2FnZXNMaXN0KTtcbiAgICB9KTtcblxuICAgIHRoaXMubmV3TWVzc2FnZXMucGlwZShcbiAgICAgICAgbWFwKGZ1bmN0aW9uKG1lc3NhZ2U6IE1lc3NhZ2UpOiBJTWVzc2FnZXNPcGVyYXRpb24ge1xuICAgICAgICAgIHJldHVybiAobWVzc2FnZXM6IE1lc3NhZ2VbXSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2VzLmNvbmNhdChtZXNzYWdlKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnVwZGF0ZXMpO1xuXG4gIH1cblxuICAvLyBhbiBpbXBlcmF0aXZlIGZ1bmN0aW9uIGNhbGwgdG8gdGhpcyBhY3Rpb24gc3RyZWFtXG4gIHB1YmxpYyBhZGRNZXNzYWdlKG1lc3NhZ2U6IE1lc3NhZ2UpOiB2b2lkIHtcbiAgICB0aGlzLm5ld01lc3NhZ2VzLm5leHQobWVzc2FnZSk7XG4gIH1cblxufVxuIl19