diff --git a/src/lib/services/entities-map.service.ts b/src/lib/services/entities-map.service.ts index 1ecdf26..6f79db8 100644 --- a/src/lib/services/entities-map.service.ts +++ b/src/lib/services/entities-map.service.ts @@ -6,10 +6,8 @@ import { List, RequiredParam, shareLast, Validate } from '../utils'; import { Id } from '../listing/models/trackable'; import { isArray } from '../permissions'; -@Injectable({ providedIn: 'root' }) +@Injectable() export abstract class EntitiesMapService, PrimaryKey extends Id = Class['id']> { - protected abstract readonly _primaryKey: string; - protected readonly _map = new Map>(); readonly #entityChanged$ = new Subject(); readonly #entitiesChanged$ = new BehaviorSubject(false); @@ -48,8 +46,8 @@ export abstract class EntitiesMapService { + watch$(key: string, @RequiredParam() entityId: PrimaryKey): Observable { return this.#entityChanged$.pipe( filter(entity => entity.id === entityId), startWith(this.get(key, entityId) as Class), @@ -138,7 +135,7 @@ export abstract class EntitiesMapService { + watchDeleted$(entityId: PrimaryKey): Observable { return this.#entityDeleted$.pipe(filter(entity => entity.id === entityId)); }