{"version":3,"file":"ng-idle-keepalive.mjs","sources":["../../../projects/keepalive/src/lib/keepalive.ts","../../../projects/keepalive/src/lib/module.ts","../../../projects/keepalive/src/public-api.ts","../../../projects/keepalive/src/ng-idle-keepalive.ts"],"sourcesContent":["import { EventEmitter, Injectable, NgZone, OnDestroy } from '@angular/core';\nimport { HttpClient, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { KeepaliveSvc } from '@ng-idle/core';\n\n/**\n * An example of an injectable service.\n */\n@Injectable()\nexport class Keepalive extends KeepaliveSvc implements OnDestroy {\n  private pingRequest: HttpRequest<any>;\n  private pingInterval: number = 10 * 60;\n  private pingHandle: any;\n\n  /*\n   * An event emitted when the service is pinging.\n   */\n  public onPing: EventEmitter<any> = new EventEmitter();\n\n  /*\n   * An event emitted when the service has pinged an HTTP endpoint and received a response.\n   */\n  public onPingResponse: EventEmitter<HttpResponse<any>> = new EventEmitter<\n    HttpResponse<any>\n  >();\n\n  /*\n   * Initializes a new instance of Keepalive\n   * @param http - The HTTP service.\n   */\n  constructor(private http: HttpClient, private zone: NgZone) {\n    super();\n  }\n\n  /*\n   * Sets the string or Request that should be used when pinging.\n   * @param url - The URL or Request object to use when pinging.\n   * @return The current Request used when pinging.\n   */\n  request<T>(url?: string | HttpRequest<T>): HttpRequest<T> {\n    if (typeof url === 'string') {\n      this.pingRequest = new HttpRequest<T>('GET', url);\n    } else if (url instanceof HttpRequest) {\n      this.pingRequest = url;\n    } else if (url === null) {\n      this.pingRequest = null;\n    }\n\n    return this.pingRequest;\n  }\n\n  /*\n   * Sets the interval (in seconds) at which the ping operation will occur when start() is called.\n   * @param seconds - The ping interval in seconds.\n   * @return The current interval value.\n   */\n  interval(seconds?: number): number {\n    if (!isNaN(seconds) && seconds > 0) {\n      this.pingInterval = seconds;\n    } else if (!isNaN(seconds) && seconds <= 0) {\n      throw new Error('Interval value must be greater than zero.');\n    }\n\n    return this.pingInterval;\n  }\n\n  /*\n   * Immediately performs the ping operation. If a request has been set, an HTTP\n   * request will be made and the response will be emitted via the\n   * onPingResponse event.\n   */\n  ping(): void {\n    this.onPing.emit(null);\n    if (this.pingRequest) {\n      this.http.request(this.pingRequest).subscribe(\n        (response: HttpResponse<any>) => {\n          this.onPingResponse.emit(response);\n        },\n        (error: HttpResponse<any>) => {\n          this.onPingResponse.emit(error);\n        }\n      );\n    }\n  }\n\n  /*\n   * Starts pinging on an interval.\n   */\n  start(): void {\n    this.stop();\n\n    this.zone.runOutsideAngular(() => {\n      this.pingHandle = setInterval(() => {\n        this.zone.run(() => {\n          this.ping();\n        });\n      }, this.pingInterval * 1000);\n    });\n  }\n\n  /*\n   * Stops pinging on an interval.\n   */\n  stop(): void {\n    if (this.hasPingHandle()) {\n      clearInterval(this.pingHandle);\n      this.pingHandle = null;\n    }\n  }\n\n  /*\n   * Performs any cleanup tasks when Angular destroys the instance.\n   */\n  ngOnDestroy(): void {\n    this.stop();\n  }\n\n  /*\n   * Returns whether or not the service will ping automatically at the specified interval.\n   * @return True if the service will ping at the specified interval; otherwise, false.\n   */\n  isRunning(): boolean {\n    return this.hasPingHandle();\n  }\n\n  private hasPingHandle(): boolean {\n    return this.pingHandle !== null && typeof this.pingHandle !== 'undefined';\n  }\n}\n","import { ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { KeepaliveSvc, NgIdleModule, provideNgIdle } from '@ng-idle/core';\n\nimport { Keepalive } from './keepalive';\n\nexport function provideNgIdleKeepalive(): Provider[] {\n  return [\n    provideNgIdle(),\n    Keepalive,\n    { provide: KeepaliveSvc, useExisting: Keepalive }\n  ];\n};\n\n@NgModule({ imports: [NgIdleModule.forRoot()] })\nexport class NgIdleKeepaliveModule {\n  static forRoot(): ModuleWithProviders<NgIdleKeepaliveModule> {\n    return {\n      ngModule: NgIdleKeepaliveModule,\n      providers: [Keepalive, { provide: KeepaliveSvc, useExisting: Keepalive }]\n    };\n  }\n}\n","/*\n * Public API Surface of keepalive\n */\n\nexport * from './lib/keepalive';\nexport * from './lib/module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}