{ "version": 3, "sources": ["src/app/app.state.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class GlobalState\r\n{\r\n\tprivate data = new Subject();\r\n\tprivate dataStream = this.data.asObservable();\r\n\tprivate subscriptions: Map = new Map();\r\n\r\n\tconstructor()\r\n\t{\r\n\t\tthis.dataStream.subscribe((data) => this.onEvent(data));\r\n\t}\r\n\r\n\tnotifyDataChanged(event, value)\r\n\t{\r\n\t\tconst current = this.data[event];\r\n\t\tif (current !== value)\r\n\t\t{\r\n\t\t\tthis.data[event] = value;\r\n\r\n\t\t\tthis.data.next({\r\n\t\t\t\tevent: event,\r\n\t\t\t\tdata: this.data[event]\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsubscribe(event: string, callback: Function)\r\n\t{\r\n\t\tconst subscribers = this.subscriptions.get(event) || [];\r\n\t\tsubscribers.push(callback);\r\n\t\tthis.subscriptions.set(event, subscribers);\r\n\t}\r\n\r\n\tunsubscribe(event: string)\r\n\t{\r\n\t\tthis.subscriptions.delete(event);\r\n\t}\r\n\r\n\tonEvent(data: any)\r\n\t{\r\n\t\tconst subscribers = this.subscriptions.get(data['event']) || [];\r\n\t\tsubscribers.forEach((callback) =>\r\n\t\t{\r\n\t\t\tcallback.call(null, data['data']);\r\n\t\t});\r\n\t}\r\n}\r\n"], "mappings": "0CAIA,IAAaA,GAAW,IAAA,CAAlB,IAAOA,EAAP,MAAOA,CAAW,CAMvBC,aAAA,CAJQ,KAAAC,KAAO,IAAIC,EACX,KAAAC,WAAa,KAAKF,KAAKG,aAAY,EACnC,KAAAC,cAAyC,IAAIC,IAIpD,KAAKH,WAAWI,UAAWN,GAAS,KAAKO,QAAQP,CAAI,CAAC,CACvD,CAEAQ,kBAAkBC,EAAOC,EAAK,CAEb,KAAKV,KAAKS,CAAK,IACfC,IAEf,KAAKV,KAAKS,CAAK,EAAIC,EAEnB,KAAKV,KAAKW,KAAK,CACdF,MAAOA,EACPT,KAAM,KAAKA,KAAKS,CAAK,EACrB,EAEH,CAEAH,UAAUG,EAAeG,EAAkB,CAE1C,IAAMC,EAAc,KAAKT,cAAcU,IAAIL,CAAK,GAAK,CAAA,EACrDI,EAAYE,KAAKH,CAAQ,EACzB,KAAKR,cAAcY,IAAIP,EAAOI,CAAW,CAC1C,CAEAI,YAAYR,EAAa,CAExB,KAAKL,cAAcc,OAAOT,CAAK,CAChC,CAEAF,QAAQP,EAAS,EAEI,KAAKI,cAAcU,IAAId,EAAK,KAAQ,GAAK,CAAA,GACjDmB,QAASP,GAAY,CAEhCA,EAASQ,KAAK,KAAMpB,EAAK,IAAO,CACjC,CAAC,CACF,yCA5CYF,EAAW,wBAAXA,EAAWuB,QAAXvB,EAAWwB,SAAA,CAAA,EAAlB,IAAOxB,EAAPyB,SAAOzB,CAAW,GAAA", "names": ["GlobalState", "constructor", "data", "Subject", "dataStream", "asObservable", "subscriptions", "Map", "subscribe", "onEvent", "notifyDataChanged", "event", "value", "next", "callback", "subscribers", "get", "push", "set", "unsubscribe", "delete", "forEach", "call", "factory", "\u0275fac", "_GlobalState"] }