export class EventManager { mainmanager; #events = new Map([]); constructor() {} async getEvents() { const currentLocalization = this.mainmanager.getCurrentLangCode(); const currentFloor = this.mainmanager.getCurrentFocus("floor"); let allEventsReqSend = fetch( `/data/${currentLocalization}/events/${currentFloor}` ); let allEventsReq = await allEventsReqSend; let allEvents; if (allEventsReq.ok) allEvents = await allEventsReq.json(); this.#events.clear(); allEvents.forEach((event) => this.#events.set(event.id, event)); } setCurrentEvent(id) { if (id == null) this.mainmanager.setCurrentFocus("event", id); else { const event = this.#events.get(id); if (event != null) this.mainmanager.setCurrentFocus("event", id); else throw "Event does not exist"; } } get currentRoomEvents() { const currentFocus = this.mainmanager.getCurrentFocus("room"); let currentFloorRooms = new Map([]); this.#events.forEach((v, k) => { if (k.startsWith(currentFocus)) currentFloorRooms.set(k, v); }); return currentFloorRooms; } get allEvents() { return this.#events; } get currentEventId() { return this.mainmanager.getCurrentFocus("event"); } get currentEvent() { const currentEvent = this.#events.get( this.mainmanager.getCurrentFocus("event") ); return currentEvent; } }