{"version":3,"file":"session-timer-warning-lib.mjs","sources":["../../../projects/session-timer-warning-lib/src/lib/session-timer-warning-lib.service.ts","../../../projects/session-timer-warning-lib/src/lib/service/local-storage/local-storage.service.ts","../../../projects/session-timer-warning-lib/src/lib/service/session-timer/session-timer.service.ts","../../../projects/session-timer-warning-lib/src/lib/decorator/debounce.decorator.ts","../../../projects/session-timer-warning-lib/src/lib/session-timer-dialog/session-timer-dialog.component.ts","../../../projects/session-timer-warning-lib/src/lib/session-timer-dialog/session-timer-dialog.component.html","../../../projects/session-timer-warning-lib/src/lib/service/dialog/dialog.service.ts","../../../projects/session-timer-warning-lib/src/lib/session-timer/session-timer.component.ts","../../../projects/session-timer-warning-lib/src/lib/session-timer/session-timer.component.html","../../../projects/session-timer-warning-lib/src/lib/session-timer-warning-lib.component.ts","../../../projects/session-timer-warning-lib/src/lib/session-timer-warning-lib.component.html","../../../projects/session-timer-warning-lib/src/lib/material/material.module.ts","../../../projects/session-timer-warning-lib/src/lib/session-timer-warning-lib.module.ts","../../../projects/session-timer-warning-lib/src/public-api.ts","../../../projects/session-timer-warning-lib/src/session-timer-warning-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SessionTimerWarningLibService {\n\n  constructor() { }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class LocalStorageService {\n    constructor() { }\n    delete = (key: string, useSessionStorage: boolean = false): void => {\n        useSessionStorage\n          ? sessionStorage.removeItem(key)\n          : localStorage.removeItem(key);\n    };\n\n    save = <T>(\n        item: T,\n        key: string,\n        useSessionStorage: boolean = false\n        ): void => {\n        useSessionStorage\n            ? sessionStorage.setItem(key, JSON.stringify(item))\n            : localStorage.setItem(key, JSON.stringify(item));\n    };\n\n    exists = (key: string): boolean => {\n        return !!localStorage.getItem(key);\n    };\n\n    get = (key: string, useSessionStorage: boolean = false): any => {\n      return localStorage.getItem(key)\n    };\n    deleteAllExceptOther = (exceptionKeys: any ): void => {\n        for (let i = 0; i < localStorage.length; i++){\n            const key = localStorage.key(i);\n\n            if (key && exceptionKeys.indexOf(key) === -1) {\n                localStorage.removeItem(key);\n            }\n        }\n    }\n    deleteAll = (): void => {\n        localStorage.clear();\n    };\n}\n","\n\nimport { Injectable } from '@angular/core';\nimport { LocalStorageService } from '../local-storage/local-storage.service';\nimport { Subject } from 'rxjs';\n\n\nexport interface Time {\n  days: number;\n  hours: number;\n  minutes: number;\n  seconds: number;\n}\nexport const SESSION_COUNT_DOWN_KEY = 'SESSION_COUNT_DOWN_TIME';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SessionTimerService {\n\n    constructor(private localStorageServices: LocalStorageService) { }\n\n    sessionLogout$ = new Subject<any>();\n\n    calculateTime(timeleft: any): Time {\n        // Calculating the days, hours, minutes and seconds left\n        const days = Math.floor(timeleft / (1000 * 60 * 60 * 24));\n        const hours = Math.floor((timeleft % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\n        const minutes = Math.floor((timeleft % (1000 * 60 * 60)) / (1000 * 60));\n        const seconds = Math.floor((timeleft % (1000 * 60)) / 1000) + 1;\n        return  {\n            days,\n            hours,\n            minutes,\n            seconds,\n        };\n    }\n\n    isDateInSession(): any {\n\n        return this.localStorageServices.get(SESSION_COUNT_DOWN_KEY);\n    }\n\n    removeCountDownDatesFromStorage() {\n        console.log(\"Session deleted....\");\n        this.localStorageServices.delete(SESSION_COUNT_DOWN_KEY);\n    }\n    sessionLogout() {\n      this.sessionLogout$.next(true);\n    }\n    getCountDownTime(minutes: any) {\n        return new Date().getTime() + minutes * 60 * 1000;\n    }\n\n    storeTimeInSessionStorage(countDownDates: any) {\n        this.localStorageServices.save(countDownDates, SESSION_COUNT_DOWN_KEY);\n    }\n}\n","// export function debounce(delay: number = 300): MethodDecorator {\r\n//     return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\r\n//       const timeoutKey = Symbol();\r\n\r\n//       const original = descriptor.value;\r\n\r\n//       descriptor.value = function (...args) {\r\n//         clearTimeout(this[timeoutKey]);\r\n//         this[timeoutKey] = setTimeout(() => original.apply(this, args), delay);\r\n//       };\r\n\r\n//       return descriptor;\r\n//     };\r\n//   }\r\n\r\n\r\nexport function ngDebounce(timeout: number) {\r\n  // store timeout value for cancel the timeout\r\n  let timeoutRef:any;\r\n\r\n  return function(target: any, propertyKey: string, descriptor: PropertyDescriptor) {\r\n\r\n    // store original function for future use\r\n    const original = descriptor.value;\r\n\r\n    // override original function\r\n    descriptor.value = function(...args: any) {\r\n\r\n      // clear previous timeout\r\n      clearTimeout(timeoutRef);\r\n\r\n      // sechudle timer\r\n      timeoutRef = setTimeout(() => {\r\n\r\n        // call original function\r\n        original.apply(this, args);\r\n\r\n      }, timeout);\r\n    }\r\n\r\n    // return descriptor with new value\r\n    return descriptor;\r\n  }\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\nimport {MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\nimport { Subscription } from 'rxjs';\nimport { DialogService } from '../service/dialog/dialog.service';\n\n\n@Component({\n  selector: 'lib-session-timer-dialog',\n  templateUrl: './session-timer-dialog.component.html',\n  styleUrls: ['./session-timer-dialog.component.css']\n})\nexport class SessionTimerDialogComponent implements OnInit {\n\n    subscriptions: Subscription = new Subscription();\n    // timer: any;\n    timerText: string = '00h : 00m : 00s';\n    constructor(@Inject(MAT_DIALOG_DATA) public data: any,\n    public dialogRef: MatDialogRef<SessionTimerDialogComponent>,\n    private dialogService: DialogService) { }\n\n    ngOnInit() {\n\n        this.subscriptions.add(this.dialogService.sessionWarningTimer$.subscribe(\n          countDownTimer => {\n            // console.log(\"counter in dialog \", countDownTimer);\n            // this.timer = countDownTimer; //  `${countDownTimer.days}d : ${countDownTimer.hours}h : ${countDownTimer.minutes}m : ${countDownTimer.seconds}s `\n            this.timerText =  `${countDownTimer.hours}h : ${countDownTimer.minutes}m : ${countDownTimer.seconds}s `;\n          }\n        ));\n\n        this.subscriptions.add(this.dialogService.sessionDialogCloseRef$.subscribe(\n            tobeClose => {\n\n                this.dialogRef.close(tobeClose);\n\n            }\n          ));\n\n\n\n    }\n\n}\n","<div class=\"session-timer-dialog-container\">\n  <h2 mat-dialog-title>{{data?.title || 'Your session is about to expire!' }}</h2>\n  <div class=\"messageContainer\">\n    <div class=\"warningIcon\">\n        <mat-icon><span class=\"material-symbols-outlined\">warning</span></mat-icon>\n    </div>\n    <div class=\"messageTextContainer\">\n        <mat-dialog-content>\n          <p>{{ 'You will logged out in '+ timerText }} </p>\n          <p> Do you want to stay singned in? </p>\n        </mat-dialog-content>\n    </div>\n  </div>\n  <hr>\n  <mat-dialog-actions>\n    <!--<button mat-flat-button color=\"primary\" mat-button [mat-dialog-close]=\"true\" cdkFocusInitial>Yes</button>  <button mat-flat-button mat-dialog-close>No</button>-->\n    <div class=\"assignActionBtns\">    <button mat-flat-button class=\"blackBtn\" [mat-dialog-close]=\"true\">{{data?.buttonLabel.yes}}</button>    <button class=\"grayBtn margin-right-8\" mat-flat-button mat-dialog-close>{{data?.buttonLabel.no}}</button>  </div>\n  </mat-dialog-actions>\n</div>\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { Subject } from 'rxjs';\nimport { SessionTimerDialogComponent } from '../../session-timer-dialog/session-timer-dialog.component';\n\ninterface ButtonLabel {\n  yes: string,\n  no: string\n}\ninterface ButtonLabelAlert {\n    ok: string\n}\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class DialogService {\n\n  COMMON_CONFIG = {\n    position: {\n      top: '50px'\n    }\n  }\n\n\n\n\n\n  sessionWarningTimer$: Subject<any> = new Subject<any>();\n  sessionDialogCloseRef$: Subject<any> = new Subject<any>();\n  constructor(private dialog: MatDialog) {\n\n\n  }\n\n\n  /**\n   * Confirm dialog with Yes and No button\n   * @param message you want to show\n   * @param title custom dialog title\n   * @param buttonLabel custom dialog Yes / No Button text\n   */\n  showSessionTimerConfirmDialog(message?: string, title?: string, buttonLabel: ButtonLabel = { yes: 'Yes', no: 'No'} ) {\n    let config: MatDialogConfig = {\n      ...this.COMMON_CONFIG,\n      panelClass: 'sessionWarningTimer',\n      disableClose: true,\n      data: { message, title, buttonLabel }\n    }\n    return this.dialog.open(SessionTimerDialogComponent, config);\n  }\n\n\n}\n","import { Component, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subject, Subscription, fromEvent, interval } from 'rxjs';\r\n// import { LocalStorageService } from 'src/app/core/services/local-storage/local-storage.service';\r\n// import { DialogService } from '../../dialog/dialog.service';\r\n// import { SessionTimerService } from 'src/app/core/services/session-timer/session-timer.service';\r\n// import { AuthService } from 'src/app/core/auth/auth.service';\r\n// import { debounce } from '../../utility/debounce.decorator';\r\n// import { AppConfig } from '../../constants/app.config';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { DialogService } from '../service/dialog/dialog.service';\r\nimport { SessionTimerService } from '../service/session-timer/session-timer.service';\r\nimport { ngDebounce } from '../decorator/debounce.decorator';\r\n@Component({\r\n  selector: 'lib-session-timer',\r\n  templateUrl: './session-timer.component.html',\r\n  styleUrls: ['./session-timer.component.css']\r\n})\r\nexport class SessionTimerComponent implements OnInit, OnDestroy {\r\n\r\n  subscriptions: Subscription = new Subscription();\r\n\r\n  //\r\n  /** timer configuration both ways ( using binding below keys with\r\n   *  custom minutes or define default minute in AppConfig configuration)\r\n  //  */\r\n  @Input() totalDurationminutes: any; // AppConfig.totalDurationminutes\r\n  @Input() warningDurationMinutes: any; // AppConfig.warningDurationMinutes;\r\n  @Input() isShowTimer: boolean = false;\r\n  // totalDurationminutes =  2;\r\n  // warningDurationMinutes = 1;\r\n  countDownDate: any;\r\n  countDownWarningDate: any;\r\n  displayTime:any;\r\n  interval: any;\r\n  reachedAtWarningDialog:boolean = false;\r\n  SESSION_COUNT_DOWN_KEY = 'SESSION_COUNT_DOWN_TIME';\r\n  channel = new BroadcastChannel('app-session');\r\n  isDateInSession: boolean = false;\r\n  documentScroll$ = fromEvent(document, 'scroll', { capture: true });\r\n  private readonly destroy$ = new Subject();\r\n  constructor(\r\n    // private authService: AuthService,\r\n    private dialogService: DialogService,\r\n    private sessionTimerService: SessionTimerService,\r\n  ) { }\r\n\r\n  ngOnInit() {\r\n\r\n    // remove localstorage session time when page load\r\n    this.sessionTimerService.removeCountDownDatesFromStorage();\r\n\r\n    this.broadCastMessageToMultiTabs('new-page-load');\r\n\r\n     // Subscribe timer when page load\r\n     this.subscribeTimer();\r\n\r\n     /**\r\n      * Subscribe broadcast when any action happens, so every product\r\n      * tabs get notification to update session timer\r\n      */\r\n     this.subscribeWarningAction();\r\n\r\n     this.handleScroll();\r\n\r\n  }\r\n\r\n  handleScroll() {\r\n    this.documentScroll$\r\n        .pipe(takeUntil(this.destroy$),debounceTime(1000)).subscribe((event) => {\r\n            const isDateInSession = this.sessionTimerService.isDateInSession();\r\n            if(isDateInSession && !this.reachedAtWarningDialog) {\r\n                this.resetTimer('reset');\r\n            }\r\n    });\r\n\r\n  }\r\n\r\n  subscribeWarningAction() {\r\n\r\n\r\n    this.channel.addEventListener ('message', (event) => {\r\n        // console.log(\"MESSAGE LISTNER....\", event );\r\n\r\n        if(this.reachedAtWarningDialog) {\r\n            this.dialogService.sessionDialogCloseRef$.next(true)\r\n        }\r\n        if(event.data === 'logout') {\r\n            this.logout(true);\r\n        }\r\n        this.sessionTimerService.removeCountDownDatesFromStorage();\r\n        clearInterval(this.interval);\r\n        this.reachedAtWarningDialog = false;\r\n        this.subscribeTimer();\r\n\r\n\r\n    });\r\n\r\n  }\r\n  subscribeTimer() {\r\n\r\n    this.setCountDownDate();\r\n    this.interval = setInterval(() => {\r\n        const now = new Date().getTime();\r\n        const timeleft = this.countDownDate - now;\r\n        const timeleftWarning = this.countDownWarningDate - now;\r\n\r\n        // Calculating the days, hours, minutes and seconds left\r\n        this.displayTime = this.sessionTimerService.calculateTime(timeleft);\r\n\r\n        // subscribe timer for dialog to get inside the left time\r\n        this.dialogService.sessionWarningTimer$.next(this.displayTime);\r\n\r\n        // when timer reaches at warning time\r\n        if(timeleftWarning < 0 && !this.reachedAtWarningDialog  ) {\r\n            console.log(\"Session reaches at warning time...\")\r\n            this.onSessionTimeOutWarning();\r\n        }\r\n\r\n        // when timer reaches at sessin expired time\r\n        if (timeleft < 0) {\r\n            console.log(\"Session reaches at expired time...\")\r\n            this.logout();\r\n        }\r\n\r\n        // console.log(\"TIMELEFT COUNT !!!! \",  this.displayTime)\r\n      },1000)\r\n  }\r\n\r\n  setCountDownDate() {\r\n    const isDateInSession = this.sessionTimerService.isDateInSession();\r\n    if(isDateInSession) {\r\n        this.countDownDate = isDateInSession.countDownDate\r\n        this.countDownWarningDate = isDateInSession.countDownWarningDate;\r\n    } else {\r\n        this.countDownDate = this.sessionTimerService.getCountDownTime(this.totalDurationminutes)\r\n        this.countDownWarningDate = this.sessionTimerService.getCountDownTime(this.warningDurationMinutes);\r\n    }\r\n    const countDownDates = { countDownDate: this.countDownDate, countDownWarningDate: this.countDownWarningDate };\r\n    this.sessionTimerService.storeTimeInSessionStorage(countDownDates);\r\n  }\r\n\r\n\r\n  resetTimer(broadCastMessage: any) {\r\n    console.log(\"reset timer....\")\r\n    this.reachedAtWarningDialog = false;\r\n\r\n    // broadcast message to another tabs where product is opened\r\n    this.broadCastMessageToMultiTabs(broadCastMessage);\r\n\r\n    this.sessionTimerService.removeCountDownDatesFromStorage();\r\n    clearInterval(this.interval);\r\n\r\n    this.subscribeTimer();\r\n  }\r\n\r\nonSessionTimeOutWarning() {\r\n    this.reachedAtWarningDialog = true;\r\n    const confirmDialogRef = this.dialogService.showSessionTimerConfirmDialog(\r\n        '',\r\n        'Your session is about to expire!',\r\n        { yes: 'Yes, Keep me signed in', no: 'No, Sign me out'}\r\n    );\r\n\r\n    this.subscriptions.add(\r\n        confirmDialogRef.beforeClosed()\r\n        .subscribe((isContinue: any) => {\r\n            // console.log(\"Timer Dialog action\", isContinue)\r\n            if(isContinue) {\r\n                this.resetTimer('reset');\r\n            } else {\r\n                this.logout();\r\n            }\r\n        })\r\n    );\r\n\r\n}\r\nbroadCastMessageToMultiTabs(message: any) {\r\n    this.channel.postMessage(message);\r\n}\r\nlogout(isRequireBroadCast = false) {\r\n\r\n    if(!isRequireBroadCast) {\r\n        this.broadCastMessageToMultiTabs('logout');\r\n    }\r\n    console.log(\"Auth service LOGOUT....\")\r\n    this.resetTimer('reset'); // added additional reset in LIBRARY\r\n    this.sessionTimerService.sessionLogout();\r\n    // this.authService.logout(true, true);\r\n\r\n}\r\n\r\n@HostListener('window:mousemove')\r\n  @ngDebounce(300)\r\n  refreshUserState() {\r\n    const isDateInSession = this.sessionTimerService.isDateInSession();\r\n    if(isDateInSession && !this.reachedAtWarningDialog) {\r\n        // console.log(\"reset on move....\")\r\n        this.resetTimer('reset');\r\n    }\r\n  }\r\n  @HostListener('document:keypress', ['$event'])\r\n  @ngDebounce(300)\r\n  handleKeyboardEvent(event: KeyboardEvent) {\r\n    const isDateInSession = this.sessionTimerService.isDateInSession();\r\n    if(isDateInSession && !this.reachedAtWarningDialog ) {\r\n        // console.log(\"reset on key press....\")\r\n        this.resetTimer('reset');\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscriptions.unsubscribe();\r\n    this.channel.close();\r\n    this.destroy$.unsubscribe();\r\n  }\r\n\r\n}\r\n","<div class=\"session-timer\"\r\n[ngClass]=\"{\r\n  'hideTimer' : !isShowTimer\r\n}\"\r\n\r\n>{{displayTime?.hours}}h {{displayTime?.minutes}}m {{displayTime?.seconds}}s</div>\r\n\r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-session-timer-warning-lib',\r\n  templateUrl: './session-timer-warning-lib.component.html',\r\n  styleUrls: ['./session-timer-warning-lib.component.css']\r\n})\r\n\r\n\r\nexport class SessionTimerWarningLibComponent {\r\n  @Input() totalDurationminutes: any; // AppConfig.totalDurationminutes\r\n  @Input() warningDurationMinutes: any; // AppConfig.warningDurationMinutes;\r\n  @Input() isShowTimer: boolean = false;\r\n}\r\n","<lib-session-timer\r\n[totalDurationminutes]=\"totalDurationminutes\"\r\n[warningDurationMinutes]=\"warningDurationMinutes\"\r\n[isShowTimer]=\"isShowTimer\"\r\n  ></lib-session-timer>\r\n","import { NgModule } from \"@angular/core\";\n// import {ScrollingModule} from '@angular/cdk/scrolling';\n\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatButtonToggleModule } from \"@angular/material/button-toggle\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MatChipsModule } from \"@angular/material/chips\";\nimport { MatNativeDateModule, MatRippleModule } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { MatExpansionModule } from \"@angular/material/expansion\";\nimport { MatGridListModule } from \"@angular/material/grid-list\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { MatRadioModule } from \"@angular/material/radio\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { MatSidenavModule } from \"@angular/material/sidenav\";\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\nimport { MatSliderModule } from \"@angular/material/slider\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatStepperModule } from \"@angular/material/stepper\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { CommonModule } from \"@angular/common\";\n\n@NgModule( {\n  imports: [\n    CommonModule,\n    MatAutocompleteModule,\n    MatButtonModule,\n    MatButtonToggleModule,\n    MatCardModule,\n    MatCheckboxModule,\n    MatChipsModule,\n    MatStepperModule,\n    MatDatepickerModule,\n    MatDialogModule,\n    MatExpansionModule,\n    MatGridListModule,\n    MatIconModule,\n    MatInputModule,\n    MatListModule,\n    MatMenuModule,\n    MatNativeDateModule,\n    MatPaginatorModule,\n    MatProgressBarModule,\n    MatProgressSpinnerModule,\n    MatRadioModule,\n    MatRippleModule,\n    MatSelectModule,\n    MatSidenavModule,\n    MatSliderModule,\n    MatSlideToggleModule,\n    MatSnackBarModule,\n    MatSortModule,\n    MatTableModule,\n    MatTabsModule,\n    MatToolbarModule,\n    MatTooltipModule,\n    // ScrollingModule\n],\n  exports: [\n    CommonModule,\n    MatAutocompleteModule,\n    MatButtonModule,\n    MatButtonToggleModule,\n    MatCardModule,\n    MatCheckboxModule,\n    MatChipsModule,\n    MatStepperModule,\n    MatDatepickerModule,\n    MatDialogModule,\n    MatExpansionModule,\n    MatGridListModule,\n    MatIconModule,\n    MatInputModule,\n    MatListModule,\n    MatMenuModule,\n    MatNativeDateModule,\n    MatPaginatorModule,\n    MatProgressBarModule,\n    MatProgressSpinnerModule,\n    MatRadioModule,\n    MatRippleModule,\n    MatSelectModule,\n    MatSidenavModule,\n    MatSliderModule,\n    MatSlideToggleModule,\n    MatSnackBarModule,\n    MatSortModule,\n    MatTableModule,\n    MatTabsModule,\n    MatToolbarModule,\n    MatTooltipModule,\n    // ScrollingModule\n]\n} )\nexport class MaterialModule {\n}\n","import { NgModule } from '@angular/core';\nimport { SessionTimerComponent } from './session-timer/session-timer.component';\nimport { SessionTimerDialogComponent } from './session-timer-dialog/session-timer-dialog.component';\nimport { MaterialModule } from './material/material.module';\nimport { SessionTimerWarningLibComponent } from './session-timer-warning-lib.component';\nimport { SessionTimerService } from '../public-api';\n\n\n\n\n@NgModule({\n  declarations: [\n    SessionTimerWarningLibComponent,\n    SessionTimerComponent,\n    SessionTimerDialogComponent\n  ],\n  imports: [\n    MaterialModule\n  ],\n  providers: [\n    SessionTimerService\n  ],\n  exports: [\n    SessionTimerWarningLibComponent\n  ]\n})\nexport class SessionTimerWarningLibModule { }\n","/*\n * Public API Surface of session-timer-warning-lib\n */\nimport 'zone.js';\nexport * from './lib/session-timer-warning-lib.service';\nexport * from './lib/service/session-timer/session-timer.service';\nexport * from './lib/session-timer-warning-lib.component';\nexport * from './lib/session-timer-warning-lib.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LocalStorageService","i2.DialogService","i1.DialogService","i2.SessionTimerService","i3","i1.SessionTimerComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAKa,6BAA6B,CAAA;AAExC,IAAA,WAAA,GAAA,GAAiB;;0HAFN,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cAF5B,MAAM,EAAA,CAAA,CAAA;2FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCEY,mBAAmB,CAAA;AAC5B,IAAA,WAAA,GAAA;AACA,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,GAAW,EAAE,iBAA6B,GAAA,KAAK,KAAU;YAC/D,iBAAiB;AACf,kBAAE,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;AAChC,kBAAE,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrC,SAAC,CAAC;QAEF,IAAI,CAAA,IAAA,GAAG,CACH,IAAO,EACP,GAAW,EACX,iBAAA,GAA6B,KAAK,KACxB;YACV,iBAAiB;AACb,kBAAE,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACnD,kBAAE,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,GAAW,KAAa;YAC9B,OAAO,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACvC,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,GAAG,GAAG,CAAC,GAAW,EAAE,iBAA6B,GAAA,KAAK,KAAS;AAC7D,YAAA,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AAClC,SAAC,CAAC;AACF,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,aAAkB,KAAW;AACjD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBACzC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAEhC,IAAI,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1C,oBAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAChC,iBAAA;AACJ,aAAA;AACL,SAAC,CAAA;QACD,IAAS,CAAA,SAAA,GAAG,MAAW;YACnB,YAAY,CAAC,KAAK,EAAE,CAAC;AACzB,SAAC,CAAC;KAnCe;;gHADR,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAHlB,MAAM,EAAA,CAAA,CAAA;2FAGP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACSM,MAAM,sBAAsB,GAAG,0BAA0B;MAKnD,mBAAmB,CAAA;AAE5B,IAAA,WAAA,CAAoB,oBAAyC,EAAA;QAAzC,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAqB;AAE7D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAO,CAAC;KAF8B;AAIlE,IAAA,aAAa,CAAC,QAAa,EAAA;;AAEvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,OAAQ;YACJ,IAAI;YACJ,KAAK;YACL,OAAO;YACP,OAAO;SACV,CAAC;KACL;IAED,eAAe,GAAA;QAEX,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;KAChE;IAED,+BAA+B,GAAA;AAC3B,QAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;KAC5D;IACD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;AACD,IAAA,gBAAgB,CAAC,OAAY,EAAA;AACzB,QAAA,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;KACrD;AAED,IAAA,yBAAyB,CAAC,cAAmB,EAAA;QACzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;KAC1E;;gHAtCQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;2FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACjBD;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGM,SAAU,UAAU,CAAC,OAAe,EAAA;;AAExC,IAAA,IAAI,UAAc,CAAC;AAEnB,IAAA,OAAO,UAAS,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAA;;AAG9E,QAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC;;AAGlC,QAAA,UAAU,CAAC,KAAK,GAAG,UAAS,GAAG,IAAS,EAAA;;YAGtC,YAAY,CAAC,UAAU,CAAC,CAAC;;AAGzB,YAAA,UAAU,GAAG,UAAU,CAAC,MAAK;;AAG3B,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAE5B,EAAE,OAAO,CAAC,CAAC;AACd,SAAC,CAAA;;AAGD,QAAA,OAAO,UAAU,CAAC;AACpB,KAAC,CAAA;AACH;;MChCa,2BAA2B,CAAA;AAKpC,IAAA,WAAA,CAA4C,IAAS,EAC9C,SAAoD,EACnD,aAA4B,EAAA;QAFQ,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;QAC9C,IAAS,CAAA,SAAA,GAAT,SAAS,CAA2C;QACnD,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AALpC,QAAA,IAAA,CAAA,aAAa,GAAiB,IAAI,YAAY,EAAE,CAAC;;QAEjD,IAAS,CAAA,SAAA,GAAW,iBAAiB,CAAC;KAGG;IAEzC,QAAQ,GAAA;AAEJ,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,SAAS,CACtE,cAAc,IAAG;;;AAGf,YAAA,IAAI,CAAC,SAAS,GAAI,CAAG,EAAA,cAAc,CAAC,KAAK,CAAA,IAAA,EAAO,cAAc,CAAC,OAAO,CAAO,IAAA,EAAA,cAAc,CAAC,OAAO,IAAI,CAAC;SACzG,CACF,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,SAAS,CACtE,SAAS,IAAG;AAER,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAEnC,CACF,CAAC,CAAC;KAIR;;AA7BQ,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,kBAKhB,eAAe,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAL1B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,gECXxC,whCAmBA,EAAA,MAAA,EAAA,CAAA,6aAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDRa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,whCAAA,EAAA,MAAA,EAAA,CAAA,6aAAA,CAAA,EAAA,CAAA;;0BASrB,MAAM;2BAAC,eAAe,CAAA;;;MEA1B,aAAa,CAAA;AAcxB,IAAA,WAAA,CAAoB,MAAiB,EAAA;QAAjB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;AAZrC,QAAA,IAAA,CAAA,aAAa,GAAG;AACd,YAAA,QAAQ,EAAE;AACR,gBAAA,GAAG,EAAE,MAAM;AACZ,aAAA;SACF,CAAA;AAMD,QAAA,IAAA,CAAA,oBAAoB,GAAiB,IAAI,OAAO,EAAO,CAAC;AACxD,QAAA,IAAA,CAAA,sBAAsB,GAAiB,IAAI,OAAO,EAAO,CAAC;KAIzD;AAGD;;;;;AAKG;AACH,IAAA,6BAA6B,CAAC,OAAgB,EAAE,KAAc,EAAE,WAA2B,GAAA,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAC,EAAA;AAChH,QAAA,IAAI,MAAM,GAAoB;YAC5B,GAAG,IAAI,CAAC,aAAa;AACrB,YAAA,UAAU,EAAE,qBAAqB;AACjC,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE;SACtC,CAAA;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;KAC9D;;0GAlCU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAHZ,MAAM,EAAA,CAAA,CAAA;2FAGP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCGY,qBAAqB,CAAA;AAuBhC,IAAA,WAAA;;AAEU,IAAA,aAA4B,EAC5B,mBAAwC,EAAA;QADxC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAxBlD,QAAA,IAAA,CAAA,aAAa,GAAiB,IAAI,YAAY,EAAE,CAAC;QAQxC,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAOtC,IAAsB,CAAA,sBAAA,GAAW,KAAK,CAAC;QACvC,IAAsB,CAAA,sBAAA,GAAG,yBAAyB,CAAC;AACnD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAA,CAAA,eAAe,GAAG,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;KAKrC;IAEL,QAAQ,GAAA;;AAGN,QAAA,IAAI,CAAC,mBAAmB,CAAC,+BAA+B,EAAE,CAAC;AAE3D,QAAA,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC;;QAGjD,IAAI,CAAC,cAAc,EAAE,CAAC;AAEtB;;;AAGG;QACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC,YAAY,EAAE,CAAC;KAEtB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,eAAe;AACf,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;YACnE,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;AACnE,YAAA,IAAG,eAAe,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,aAAA;AACT,SAAC,CAAC,CAAC;KAEJ;IAED,sBAAsB,GAAA;QAGpB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAE,SAAS,EAAE,CAAC,KAAK,KAAI;;YAGhD,IAAG,IAAI,CAAC,sBAAsB,EAAE;gBAC5B,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACvD,aAAA;AACD,YAAA,IAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AACxB,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,aAAA;AACD,YAAA,IAAI,CAAC,mBAAmB,CAAC,+BAA+B,EAAE,CAAC;AAC3D,YAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,cAAc,EAAE,CAAC;AAG1B,SAAC,CAAC,CAAC;KAEJ;IACD,cAAc,GAAA;QAEZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAK;YAC7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACjC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;AAC1C,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;;YAGxD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;;YAGpE,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;YAG/D,IAAG,eAAe,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAI;AACtD,gBAAA,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;gBACjD,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAClC,aAAA;;YAGD,IAAI,QAAQ,GAAG,CAAC,EAAE;AACd,gBAAA,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;gBACjD,IAAI,CAAC,MAAM,EAAE,CAAC;AACjB,aAAA;;SAGF,EAAC,IAAI,CAAC,CAAA;KACV;IAED,gBAAgB,GAAA;QACd,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;AACnE,QAAA,IAAG,eAAe,EAAE;AAChB,YAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,aAAa,CAAA;AAClD,YAAA,IAAI,CAAC,oBAAoB,GAAG,eAAe,CAAC,oBAAoB,CAAC;AACpE,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;AACzF,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACtG,SAAA;AACD,QAAA,MAAM,cAAc,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC9G,QAAA,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;KACpE;AAGD,IAAA,UAAU,CAAC,gBAAqB,EAAA;AAC9B,QAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;AAC9B,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;;AAGpC,QAAA,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;AAEnD,QAAA,IAAI,CAAC,mBAAmB,CAAC,+BAA+B,EAAE,CAAC;AAC3D,QAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE7B,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAEH,uBAAuB,GAAA;AACnB,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,6BAA6B,CACrE,EAAE,EACF,kCAAkC,EAClC,EAAE,GAAG,EAAE,wBAAwB,EAAE,EAAE,EAAE,iBAAiB,EAAC,CAC1D,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAClB,gBAAgB,CAAC,YAAY,EAAE;AAC9B,aAAA,SAAS,CAAC,CAAC,UAAe,KAAI;;AAE3B,YAAA,IAAG,UAAU,EAAE;AACX,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,aAAA;AAAM,iBAAA;gBACH,IAAI,CAAC,MAAM,EAAE,CAAC;AACjB,aAAA;SACJ,CAAC,CACL,CAAC;KAEL;AACD,IAAA,2BAA2B,CAAC,OAAY,EAAA;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KACrC;IACD,MAAM,CAAC,kBAAkB,GAAG,KAAK,EAAA;QAE7B,IAAG,CAAC,kBAAkB,EAAE;AACpB,YAAA,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AACtC,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;;KAG5C;IAIC,gBAAgB,GAAA;QACd,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;AACnE,QAAA,IAAG,eAAe,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;;AAEhD,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,SAAA;KACF;AAGD,IAAA,mBAAmB,CAAC,KAAoB,EAAA;QACtC,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;AACnE,QAAA,IAAG,eAAe,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAG;;AAEjD,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC7B;;kHArMU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,wTCjBlC,4LAQA,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;IDwLG,UAAU,CAAC,GAAG,CAAC;AAOf,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA,CAAA;;IAEA,UAAU,CAAC,GAAG,CAAC;AAOf,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,IAAA,CAAA,CAAA;2FA/LU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,CAAA;gIAYpB,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAsKN,gBAAgB,EAAA,CAAA;sBAFjB,YAAY;uBAAC,kBAAkB,CAAA;gBAW9B,mBAAmB,EAAA,CAAA;sBAFlB,YAAY;uBAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ME/LlC,+BAA+B,CAAA;AAP5C,IAAA,WAAA,GAAA;QAUW,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AACvC,KAAA;;4HAJY,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,6MCT5C,8LAKA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,wBAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDIa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAP3C,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,8LAAA,EAAA,CAAA;8BAOhC,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;ME+FK,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAtEvB,YAAY;QACZ,qBAAqB;QACrB,eAAe;QACf,qBAAqB;QACrB,aAAa;QACb,iBAAiB;QACjB,cAAc;QACd,gBAAgB;QAChB,mBAAmB;QACnB,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,aAAa;QACb,cAAc;QACd,aAAa;QACb,aAAa;QACb,mBAAmB;QACnB,kBAAkB;QAClB,oBAAoB;QACpB,wBAAwB;QACxB,cAAc;QACd,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,oBAAoB;QACpB,iBAAiB;QACjB,aAAa;QACb,cAAc;QACd,aAAa;QACb,gBAAgB;AAChB,QAAA,gBAAgB,aAIhB,YAAY;QACZ,qBAAqB;QACrB,eAAe;QACf,qBAAqB;QACrB,aAAa;QACb,iBAAiB;QACjB,cAAc;QACd,gBAAgB;QAChB,mBAAmB;QACnB,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,aAAa;QACb,cAAc;QACd,aAAa;QACb,aAAa;QACb,mBAAmB;QACnB,kBAAkB;QAClB,oBAAoB;QACpB,wBAAwB;QACxB,cAAc;QACd,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,oBAAoB;QACpB,iBAAiB;QACjB,aAAa;QACb,cAAc;QACd,aAAa;QACb,gBAAgB;QAChB,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAIP,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAtEvB,YAAY;QACZ,qBAAqB;QACrB,eAAe;QACf,qBAAqB;QACrB,aAAa;QACb,iBAAiB;QACjB,cAAc;QACd,gBAAgB;QAChB,mBAAmB;QACnB,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,aAAa;QACb,cAAc;QACd,aAAa;QACb,aAAa;QACb,mBAAmB;QACnB,kBAAkB;QAClB,oBAAoB;QACpB,wBAAwB;QACxB,cAAc;QACd,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,oBAAoB;QACpB,iBAAiB;QACjB,aAAa;QACb,cAAc;QACd,aAAa;QACb,gBAAgB;AAChB,QAAA,gBAAgB,EAIhB,YAAY;QACZ,qBAAqB;QACrB,eAAe;QACf,qBAAqB;QACrB,aAAa;QACb,iBAAiB;QACjB,cAAc;QACd,gBAAgB;QAChB,mBAAmB;QACnB,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,aAAa;QACb,cAAc;QACd,aAAa;QACb,aAAa;QACb,mBAAmB;QACnB,kBAAkB;QAClB,oBAAoB;QACpB,wBAAwB;QACxB,cAAc;QACd,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,oBAAoB;QACpB,iBAAiB;QACjB,aAAa;QACb,cAAc;QACd,aAAa;QACb,gBAAgB;QAChB,gBAAgB,CAAA,EAAA,CAAA,CAAA;2FAIP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAxE1B,QAAQ;AAAE,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,qBAAqB;wBACrB,eAAe;wBACf,qBAAqB;wBACrB,aAAa;wBACb,iBAAiB;wBACjB,cAAc;wBACd,gBAAgB;wBAChB,mBAAmB;wBACnB,eAAe;wBACf,kBAAkB;wBAClB,iBAAiB;wBACjB,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,aAAa;wBACb,mBAAmB;wBACnB,kBAAkB;wBAClB,oBAAoB;wBACpB,wBAAwB;wBACxB,cAAc;wBACd,eAAe;wBACf,eAAe;wBACf,gBAAgB;wBAChB,eAAe;wBACf,oBAAoB;wBACpB,iBAAiB;wBACjB,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,gBAAgB;wBAChB,gBAAgB;;AAEnB,qBAAA;AACC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,qBAAqB;wBACrB,eAAe;wBACf,qBAAqB;wBACrB,aAAa;wBACb,iBAAiB;wBACjB,cAAc;wBACd,gBAAgB;wBAChB,mBAAmB;wBACnB,eAAe;wBACf,kBAAkB;wBAClB,iBAAiB;wBACjB,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,aAAa;wBACb,mBAAmB;wBACnB,kBAAkB;wBAClB,oBAAoB;wBACpB,wBAAwB;wBACxB,cAAc;wBACd,eAAe;wBACf,eAAe;wBACf,gBAAgB;wBAChB,eAAe;wBACf,oBAAoB;wBACpB,iBAAiB;wBACjB,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,gBAAgB;wBAChB,gBAAgB;;AAEnB,qBAAA;AACA,iBAAA,CAAA;;;MChFY,4BAA4B,CAAA;;yHAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,iBAdrC,+BAA+B;QAC/B,qBAAqB;QACrB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAG3B,cAAc,CAAA,EAAA,OAAA,EAAA,CAMd,+BAA+B,CAAA,EAAA,CAAA,CAAA;AAGtB,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAP5B,SAAA,EAAA;QACT,mBAAmB;AACpB,KAAA,EAAA,OAAA,EAAA,CAJC,cAAc,CAAA,EAAA,CAAA,CAAA;2FASL,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAhBxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,+BAA+B;wBAC/B,qBAAqB;wBACrB,2BAA2B;AAC5B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,cAAc;AACf,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,+BAA+B;AAChC,qBAAA;AACF,iBAAA,CAAA;;;ACzBD;;AAEG;;ACFH;;AAEG;;;;"}