import { inject, injectable } from "tsyringe"; import { IActivityState } from "../models/activityState"; import { IActivity } from "../models/config"; @injectable() export class StateDataProvider { private _states: { [controlUnitName: string]: IActivityState | undefined; } = {}; public updateState(activity: IActivity, controlUnitName: string): void { this._states[controlUnitName] = { currentActivity: activity }; } public removeState(controlUnitName: string): void { this._states[controlUnitName] = undefined; } public getState(controlUnitName: string) { if (!this._states[controlUnitName]) { return undefined; } return this._states[controlUnitName]!.currentActivity; } public get states(): { [controlUnitName: string]: IActivityState | undefined; } { return this._states; } }