ngx-skltn
Version:
Skeleton loader for Angular
32 lines • 3.18 kB
JavaScript
import { BehaviorSubject } from 'rxjs';
import { generateId } from '../helpers';
import { Injectable } from "@angular/core";
export class BonesList {
constructor() {
this.changes = new BehaviorSubject([]);
this.map = new Map();
}
add(bone) {
const id = generateId();
this.map.set(id, bone);
this.emit();
return id;
}
remove(id) {
this.map.delete(id);
this.emit();
}
emit() {
const list = this.getList();
this.changes.next(list);
}
getList() {
const values = this.map.values();
return Array.from(values);
}
}
BonesList.decorators = [
{ type: Injectable }
];
BonesList.ctorParameters = () => [];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9uZXMtbGlzdC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1za2x0bi9zcmMvbGliL2NsYXNzZXMvYm9uZXMtbGlzdC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxNQUFNLE9BQU8sU0FBUztJQU1wQjtRQUpBLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBdUIsRUFBRSxDQUFDLENBQUM7UUFFaEQsUUFBRyxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO0lBRXJDLENBQUM7SUFFaEIsR0FBRyxDQUFDLElBQXdCO1FBQzFCLE1BQU0sRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBVTtRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTyxJQUFJO1FBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTyxPQUFPO1FBQ2IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7O1lBN0JGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdlbmVyYXRlSWQgfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IFNrbHRuQm9uZURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc2tsdG4tYm9uZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCb25lc0xpc3Qge1xuXG4gIGNoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNrbHRuQm9uZURpcmVjdGl2ZVtdPihbXSk7XG5cbiAgcHJpdmF0ZSBtYXAgPSBuZXcgTWFwPHN0cmluZywgU2tsdG5Cb25lRGlyZWN0aXZlPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBhZGQoYm9uZTogU2tsdG5Cb25lRGlyZWN0aXZlKTogc3RyaW5nIHtcbiAgICBjb25zdCBpZCA9IGdlbmVyYXRlSWQoKTtcbiAgICB0aGlzLm1hcC5zZXQoaWQsIGJvbmUpO1xuICAgIHRoaXMuZW1pdCgpO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIHJlbW92ZShpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5tYXAuZGVsZXRlKGlkKTtcbiAgICB0aGlzLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdCgpIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5nZXRMaXN0KCk7XG4gICAgdGhpcy5jaGFuZ2VzLm5leHQobGlzdCk7XG4gIH1cblxuICBwcml2YXRlIGdldExpc3QoKTogU2tsdG5Cb25lRGlyZWN0aXZlW10ge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMubWFwLnZhbHVlcygpO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHZhbHVlcyk7XG4gIH1cbn1cbiJdfQ==