@igo2/core
Version:
1 lines • 4.64 kB
Source Map (JSON)
{"version":3,"file":"igo2-core-network.mjs","sources":["../../../packages/core/network/src/network.service.ts","../../../packages/core/network/src/igo2-core-network.ts"],"sourcesContent":["import { EventEmitter, Injectable, Injector, OnDestroy } from '@angular/core';\n\nimport { MessageService } from '@igo2/core/message';\n\nimport { Observable, Subscription, fromEvent } from 'rxjs';\nimport { debounceTime, startWith } from 'rxjs/operators';\n\nimport { ConnectionState } from './network.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NetworkService implements OnDestroy {\n private stateChangeEventEmitter = new EventEmitter<ConnectionState>();\n private onlineSubscription: Subscription;\n private offlineSubscription: Subscription;\n private previousMessageId;\n\n private state: ConnectionState = {\n connection: window.navigator.onLine\n };\n\n constructor(\n private messageService: MessageService,\n private injector: Injector\n ) {\n this.checkNetworkState();\n }\n\n private checkNetworkState() {\n this.onlineSubscription = fromEvent(window, 'online').subscribe(() => {\n if (this.previousMessageId) {\n this.messageService.remove(this.previousMessageId);\n }\n const messageObj = this.messageService.info(\n 'igo.core.network.online.message',\n 'igo.core.network.online.title'\n );\n this.previousMessageId = messageObj.toastId;\n this.state.connection = true;\n this.emitEvent();\n });\n\n this.offlineSubscription = fromEvent(window, 'offline').subscribe(() => {\n if (this.previousMessageId) {\n this.messageService.remove(this.previousMessageId);\n }\n const messageObj = this.messageService.info(\n 'igo.core.network.offline.message',\n 'igo.core.network.offline.title'\n );\n this.previousMessageId = messageObj.toastId;\n this.state.connection = false;\n this.emitEvent();\n });\n }\n\n private emitEvent() {\n this.stateChangeEventEmitter.emit(this.state);\n }\n\n ngOnDestroy(): void {\n try {\n this.offlineSubscription.unsubscribe();\n this.onlineSubscription.unsubscribe();\n } catch {\n // empty\n }\n }\n\n currentState(reportState = true): Observable<ConnectionState> {\n return reportState\n ? this.stateChangeEventEmitter.pipe(\n debounceTime(300),\n startWith(this.state)\n )\n : this.stateChangeEventEmitter.pipe(debounceTime(300));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}