{"version":3,"file":"imng-kendo-ngrx-idle.mjs","sources":["../../../../libs/imng-kendo-ngrx-idle/src/lib/+state/idle.actions.ts","../../../../libs/imng-kendo-ngrx-idle/src/lib/idle-config.ts","../../../../libs/imng-kendo-ngrx-idle/src/lib/+state/idle.reducer.ts","../../../../libs/imng-kendo-ngrx-idle/src/lib/+state/idle.selectors.ts","../../../../libs/imng-kendo-ngrx-idle/src/lib/+state/idle.effects.ts","../../../../libs/imng-kendo-ngrx-idle/src/lib/+state/idle.facade.ts","../../../../libs/imng-kendo-ngrx-idle/src/lib/idle-warning/idle-warning.component.ts","../../../../libs/imng-kendo-ngrx-idle/src/lib/imng-ngrx-idle.module.ts","../../../../libs/imng-kendo-ngrx-idle/src/imng-kendo-ngrx-idle.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\nimport { IdleConfig } from '../idle-config';\nimport { createPayloadAction } from 'imng-ngrx-utils';\n\nexport const onSessionExtended = createAction(\n  '[Idle] Session Extended'\n);\nexport const onSessionTimingOut = createPayloadAction<IdleConfig>(\n  '[Idle] Session Timing Out'\n);\nexport const signOutRedirect = createAction('[Oidc] sign out redirect');\n","import { InjectionToken } from '@angular/core';\n\nexport interface IdleConfig {\n  timeoutWarningInMs: number;\n  autoLogoutInMs: number;\n}\nexport const IDLE_CONFIG = new InjectionToken<IdleConfig>('idle-config');\n","import { createFeature, createReducer, on } from '@ngrx/store';\nimport * as idleActions from './idle.actions';\n\nexport const IDLE_FEATURE_KEY = 'idle';\n\nexport interface IdleState {\n  isTimingOut: boolean;\n  timeoutSpanInMs: number | undefined;\n}\n\nexport const initialState: IdleState = {\n  isTimingOut: false,\n  timeoutSpanInMs: undefined,\n};\n\nexport const idleFeature = createFeature({\n  name: IDLE_FEATURE_KEY,\n  reducer: createReducer(\n    initialState,\n    on(idleActions.onSessionTimingOut,\n      (state, { payload }): IdleState => ({\n        ...state,\n        isTimingOut: true,\n        timeoutSpanInMs: payload.autoLogoutInMs - payload.timeoutWarningInMs,\n      })),\n    on(idleActions.onSessionExtended, idleActions.signOutRedirect,\n      (state): IdleState => ({\n        ...state,\n        isTimingOut: false,\n        timeoutSpanInMs: undefined,\n      })),\n  )\n});\n","import { createSelector } from '@ngrx/store';\nimport { oidcFeature } from 'imng-oidc-client';\nimport { idleFeature } from './idle.reducer';\n\nconst getIsTimingOut = idleFeature.selectIsTimingOut;\nconst getTimeoutSpanInMs = idleFeature.selectTimeoutSpanInMs;\n\nconst selectLoggedInAndIsNotTimingOut = createSelector(\n  oidcFeature.selectIsLoggedIn,\n  idleFeature.selectIsTimingOut,\n  (isLoggedIn, IsTimingOut) => isLoggedIn && !IsTimingOut,\n);\n\nexport const idleQuery = { getIsTimingOut, getTimeoutSpanInMs, selectLoggedInAndIsNotTimingOut };\n","import { Injectable, Inject } from '@angular/core';\nimport { Actions, createEffect } from '@ngrx/effects';\nimport { map, filter, switchMap } from 'rxjs/operators';\nimport { timer, Observable } from 'rxjs';\n\nimport { Store } from '@ngrx/store';\nimport { signOutRedirect, onSessionTimingOut } from './idle.actions';\nimport { IDLE_CONFIG, IdleConfig } from '../idle-config';\nimport { idleQuery } from './idle.selectors';\n\n@Injectable()\nexport class IdleEffects {\n  public signOutRedirect$ = createEffect(() => {\n    return this.getLoggedInActionPipe().pipe(\n      switchMap(() => timer(this.idleConfig.autoLogoutInMs)),\n      map(() => signOutRedirect())\n    );\n  }\n  );\n\n  public timingOut$ = createEffect(() => {\n    return this.getLoggedInActionPipe().pipe(\n      switchMap(() => timer(this.idleConfig.timeoutWarningInMs)),\n      map(() => onSessionTimingOut(this.idleConfig))\n    );\n  });\n\n  public getLoggedInActionPipe(): Observable<boolean> {\n    return this.actions$.pipe(\n      switchMap(() =>\n        this.store.select(idleQuery.selectLoggedInAndIsNotTimingOut).pipe(filter((val) => val))\n      ));\n  }\n\n  constructor(\n    @Inject(IDLE_CONFIG) private readonly idleConfig: IdleConfig,\n    private readonly store: Store,\n    private readonly actions$: Actions\n  ) { }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { idleQuery } from './idle.selectors';\nimport { Observable } from 'rxjs';\nimport { onSessionExtended } from './idle.actions';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class IdleFacade {\n  constructor(private readonly store: Store) { }\n\n  isTimingOut$: Observable<boolean> = this.store.select(\n    idleQuery.getIsTimingOut\n  );\n  timeOutSpanInMs$: Observable<number | undefined> = this.store.select(\n    idleQuery.getTimeoutSpanInMs\n  );\n\n  public extendSession(): void {\n    this.store.dispatch(onSessionExtended());\n  }\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { IdleFacade } from '../+state/idle.facade';\nimport { BehaviorSubject, Subscription, interval, Observable } from 'rxjs';\nimport { tap, filter, switchMap, map } from 'rxjs/operators';\n\n@Component({\n  selector: 'imng-idle-warning',\n  template: `<kendo-dialog\n    title=\"Idle Session Warning\"\n    *ngIf=\"isSessionTimingOut$ | async\"\n    (close)=\"close()\"\n    [minWidth]=\"250\"\n    [width]=\"450\"\n  >\n    <p class=\"warn-msg\">Do you wish to extend your session?</p>\n    <p class=\"warn-msg\">{{ secondsRemaining$ | async }} Seconds remaining</p>\n    <kendo-dialog-actions>\n      <button kendoButton (click)=\"close()\">No</button>\n      <button kendoButton (click)=\"extend()\" [primary]=\"true\">Yes</button>\n    </kendo-dialog-actions>\n  </kendo-dialog> `,\n  styles: [\n    `\n      .warn-msg {\n        margin: 30px;\n        text-align: center;\n      }\n    `,\n  ],\n})\nexport class IdleWarningComponent implements OnInit, OnDestroy {\n  public readonly isSessionTimingOut$ = new BehaviorSubject<boolean>(false);\n  public secondsRemaining$?: Observable<number>;\n  private timeoutSub?: Subscription;\n\n  constructor(public readonly idleFacade: IdleFacade) {}\n\n  public ngOnInit(): void {\n    let timeOutSpan = 0;\n    const msInSec = 1000;\n    this.timeoutSub = this.idleFacade.isTimingOut$\n      .pipe(tap((value) => this.isSessionTimingOut$.next(value)))\n      .subscribe();\n    this.secondsRemaining$ = this.idleFacade.timeOutSpanInMs$.pipe(\n      filter((t) => (t || 0) > 0),\n      tap((t) => (timeOutSpan = t as number)),\n      switchMap(() => interval(msInSec)),\n      map(() => Math.floor(timeOutSpan / msInSec)),\n      tap(() => (timeOutSpan -= msInSec))\n    );\n  }\n\n  public ngOnDestroy(): void {\n    this.timeoutSub?.unsubscribe();\n  }\n\n  public close(): void {\n    this.isSessionTimingOut$.next(false);\n  }\n\n  public extend(): void {\n    this.idleFacade.extendSession();\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { DialogModule } from '@progress/kendo-angular-dialog';\nimport { IdleEffects } from './+state/idle.effects';\nimport { IdleFacade } from './+state/idle.facade';\nimport { idleFeature } from './+state/idle.reducer';\nimport { IdleConfig, IDLE_CONFIG } from './idle-config';\nimport { IdleWarningComponent } from './idle-warning/idle-warning.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    StoreModule.forFeature(idleFeature),\n    EffectsModule.forFeature([IdleEffects]),\n    DialogModule,\n    ButtonsModule,\n  ],\n  declarations: [IdleWarningComponent],\n  exports: [IdleWarningComponent],\n})\nexport class ImngNgrxIdleModule {\n  static forRoot(\n    idleConfig: IdleConfig,\n  ): ModuleWithProviders<ImngNgrxIdleModule> {\n    return {\n      ngModule: ImngNgrxIdleModule,\n      providers: [{ provide: IDLE_CONFIG, useValue: idleConfig }, IdleFacade],\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["idleActions.onSessionTimingOut","idleActions.onSessionExtended","idleActions.signOutRedirect","i1.IdleFacade","i2"],"mappings":"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"}