{"version":3,"file":"koalarx-ui-core.mjs","sources":["../../../projects/core/src/lib/loader/loader-bar-page.component.ts","../../../projects/core/src/lib/loader/loader-bar-page.component.html","../../../projects/core/src/lib/page/notifications/notification.component.ts","../../../projects/core/src/lib/page/notifications/notification.component.html","../../../projects/core/src/lib/page/koala-language.helper.ts","../../../projects/core/src/lib/environments/koalaEnvironment.ts","../../../projects/core/src/lib/services/token/token.factory.ts","../../../projects/core/src/lib/helpers/mat-form-field.helper.ts","../../../projects/core/src/lib/services/token/koala.token.service.ts","../../../projects/core/src/lib/services/openid/koala.oauth.config.ts","../../../projects/core/src/lib/services/loader/koala.loader.service.ts","../../../projects/core/src/lib/services/openid/koala.oauth2.service.ts","../../../projects/core/src/lib/page/page.component.ts","../../../projects/core/src/lib/page/page.component.html","../../../projects/core/src/lib/page/koala.page.module.ts","../../../projects/core/src/lib/router/koala.parameter-hash-location-stategy.ts","../../../projects/core/src/lib/services/api-requester/helpers/error/koala.not-found.error.ts","../../../projects/core/src/lib/services/api-requester/helpers/error/koala.unhautorized.error.ts","../../../projects/core/src/lib/services/api-requester/helpers/error/koala.client.error.ts","../../../projects/core/src/lib/services/api-requester/helpers/error/koala.success.error.ts","../../../projects/core/src/lib/services/api-requester/helpers/error/koala.errors.helper.ts","../../../projects/core/src/lib/services/api-requester/helpers/service/koala.request-header.helper.ts","../../../projects/core/src/lib/services/api-requester/factory/koala.response.factory.ts","../../../projects/core/src/lib/services/api-requester/koala.api-requester.service.ts","../../../projects/core/src/lib/services/api-requester/koala.api-requester.cache.ts","../../../projects/core/src/lib/services/api-requester/koala.api-requester.base.ts","../../../projects/core/src/lib/services/request/koala.request.service.ts","../../../projects/core/src/lib/ngx-koala.module.ts","../../../projects/core/src/index.ts","../../../projects/core/src/koalarx-ui-core.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\n\n@Component({\n  selector: 'app-loader-page',\n  templateUrl: 'loader-bar-page.component.html',\n  styleUrls: ['loader-bar-page.component.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoaderBarPageComponent {\n  @Input() show: boolean = false;\n  @Input() progress: number = 0;\n  @Input() typeLoader: ProgressBarMode = 'indeterminate';\n}\n","<div [ngClass]=\"{'bouncedInDown d-block': show}\" class=\"animated loader-bar-page\">\n  <mat-progress-bar\n    [bufferValue]=\"progress\"\n    [mode]=\"typeLoader\"\n    [value]=\"progress\"\n    color=\"primary\">\n  </mat-progress-bar>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { KoalaNotificationInterface } from './koala.notification.interface';\n\n@Component({\n  selector: 'koala-notification-list',\n  templateUrl: 'notification.component.html',\n  styleUrls: ['notification.component.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NotificationComponent implements OnChanges {\n  @Input() notifications: KoalaNotificationInterface[];\n  @Output() deleteAll = new EventEmitter<boolean>(false);\n  @Output() delete = new EventEmitter<KoalaNotificationInterface>(null);\n\n  private appName: string;\n\n  constructor() {}\n\n  ngOnChanges(changes: SimpleChanges) {\n    this.appName = document.title.indexOf(') ') >= 0 ? document.title.split(') ')[1] : document.title;\n    if (changes.notifications && this.notifications.length > 0) {\n      document.title = `(${this.notifications.length}) ${this.appName}`;\n    } else {\n      document.title = this.appName;\n    }\n  }\n\n  public deleteAllNotifications() {\n    this.deleteAll.emit(true);\n  }\n\n  public deleteNotification(notification: KoalaNotificationInterface) {\n    this.delete.emit(notification);\n  }\n}\n","<div (click)=\"$event.stopPropagation()\" class=\"notifications-content\">\n  <div class=\"title\">\n    <mat-icon>info</mat-icon>\n    <h2>Notificações</h2>\n    <span class=\"spacer\"></span>\n    <button (click)=\"deleteAllNotifications()\" *ngIf=\"notifications.length > 0\" class=\"btn-delete-all\"\n            mat-icon-button\n            matTooltip=\"Excluir Todas\" matTooltipPosition=\"above\">\n      <mat-icon>delete_sweep</mat-icon>\n    </button>\n  </div>\n  <mat-action-list *ngIf=\"notifications.length > 0 else noNotifications\">\n    <mat-list-item *ngFor=\"let notification of notifications\" [routerLink]=\"notification.redirectTo\" class=\"itemList\">\n      <button (click)=\"deleteNotification(notification)\" class=\"delete-notification\" color=\"warn\" mat-icon-button\n              matTooltip=\"Excluir\" matTooltipPosition=\"above\"\n              mat-list-icon>\n        <mat-icon>delete</mat-icon>\n      </button>\n      <mat-icon class=\"iconList\" mat-list-icon>announcement</mat-icon>\n      <h4 class=\"titleList\" mat-line>{{notification.title}}</h4>\n      <p [innerHTML]=\"notification.text\" class=\"textList\" mat-line></p>\n    </mat-list-item>\n  </mat-action-list>\n  <ng-template #noNotifications>\n    <div class=\"empty\">\n      <mat-icon>mood</mat-icon>\n      <p>Tudo certo por aqui!</p>\n    </div>\n  </ng-template>\n</div>\n","export type KoalaLanguageType = 'ptBr'|'enUs';\n\n// @dynamic\nexport class KoalaLanguageHelper {\n  private static language: KoalaLanguageType\n\n  public static setLanguage(language: KoalaLanguageType) {\n    this.language = language;\n  }\n\n  public static getLanguage() {\n    return this.language;\n  }\n\n  public static getBtnLabel() {\n    switch (this.language) {\n      case \"enUs\":\n        return 'Send';\n      default:\n        return 'Enviar';\n    }\n  }\n\n  public static getYesMessage() {\n    switch (this.language) {\n      case \"enUs\":\n        return 'Yes';\n      default:\n        return 'Sim';\n    }\n  }\n\n  public static getNoMessage() {\n    switch (this.language) {\n      case \"enUs\":\n        return 'No';\n      default:\n        return 'Não';\n    }\n  }\n\n  public static getInternalServerErrorMessage() {\n    switch (this.language) {\n      case \"enUs\":\n        return 'We had a problem with your request.<br/>Sorry for the inconvenience.<br/><br/>Please try again later.';\n      default:\n        return 'Tivemos um problema com sua requisição.<br/>Sinto muito pelo transtorno.<br/><br/>Gentileza tentar novamente mais tarde.';\n    }\n  }\n\n  public static getRequiredMessage(label: string) {\n    switch (this.language) {\n      case \"enUs\":\n        return `${label} is required.`;\n      default:\n        return `Nenhum valor informado.`;\n    }\n  }\n\n  public static getInvalidMessage(label: string) {\n    switch (this.language) {\n      case \"enUs\":\n        return `${label} is invalid.`;\n      default:\n        return `Registro inválido.`;\n    }\n  }\n\n  public static getMinMessage(min: string) {\n    switch (this.language) {\n      case \"enUs\":\n        return `Inform at least the value of ${min}.`;\n      default:\n        return `Informe no mínimo o valor de ${min}.`\n    }\n  }\n\n  public static getMaxMessage(max: string) {\n    switch (this.language) {\n      case \"enUs\":\n        return `Inform at most the value of ${max}.`;\n      default:\n        return `Informe no máximo o valor de ${max}.`\n    }\n  }\n\n  public static getMinLengthMessage(minLength: string) {\n    switch (this.language) {\n      case \"enUs\":\n        return `Enter a value with at least ${minLength} characters.`;\n      default:\n        return `Informe um valor com no mínimo ${minLength} caracteres.`\n    }\n  }\n\n  public static getMaxLengthMessage(maxLength: string) {\n    switch (this.language) {\n      case \"enUs\":\n        return `Enter a value with at most ${maxLength} characters.`;\n      default:\n        return `Informe um valor com no máximo ${maxLength} caracteres.`\n    }\n  }\n\n  public static getDateMinMessage() {\n    switch (this.language) {\n      case \"enUs\":\n        return `Inform at least the date of `;\n      default:\n        return `Informe no mínimo a data de `\n    }\n  }\n\n  public static getDateMaxMessage() {\n    switch (this.language) {\n      case \"enUs\":\n        return `Inform at most the date of `;\n      default:\n        return `Informe no máximo a data de `\n    }\n  }\n\n  public static getAutocompleteMessage(label: string) {\n    switch (this.language) {\n      case \"enUs\":\n        return `You must select a option.`;\n      default:\n        return `Você deve selecionar uma opção.`;\n    }\n  }\n}\n","import { KoalaOauth2ConfigInterface } from \"../services/openid/koala-oauth2-config.interface\";\n\nexport interface KoalaEnvironmentOAuthInterface extends KoalaOauth2ConfigInterface {\n  name: string;\n}\n\nexport interface KoalaEnvironmentInterface {\n  production: boolean;\n  storageTokenName?: string;\n  storageOAuthTypeName?: string;\n  endpointApi?: string;\n  authenticator?: string;\n  oauthConfig?: KoalaEnvironmentOAuthInterface[];\n}\n\n// @dynamic\nexport class KoalaEnvironment {\n  public static environment: KoalaEnvironmentInterface;\n}\n","import { KoalaEnvironment } from \"../../environments/koalaEnvironment\";\n\n// @dynamic\nexport class TokenFactory {\n  private static token?: string;\n\n  public static init() {\n    if (!!localStorage.getItem(KoalaEnvironment.environment?.storageTokenName)) {\n      TokenFactory.setToken(localStorage.getItem(KoalaEnvironment.environment?.storageTokenName));\n    }\n  }\n\n  public static setToken(token: string) {\n    localStorage.setItem(KoalaEnvironment.environment?.storageTokenName, token);\n    this.token = token;\n  }\n\n  public static getToken() {\n    return this.token;\n  }\n\n  public static removeToken() {\n    localStorage.removeItem(KoalaEnvironment.environment?.storageTokenName);\n    this.token = null;\n  }\n\n  public static hasToken() {\n    return !!this.token && !!localStorage.getItem(KoalaEnvironment.environment?.storageTokenName);\n  }\n\n  public static logout() {\n    this.removeToken();\n  }\n}\n","export class MatFormFieldHelper {\n  // Devido a mudanças constantes de estado dos campos de formulário, em certos casos o componente do Material Angular não se comporta conforme o esperado, devido a isso, este Helper tem essa função\n  public static fixDisabledStateForDisabledFields() {\n    document.querySelectorAll(\".mat-form-field input:disabled\").forEach(inputEl => {\n      let matFormFieldElement: HTMLDivElement;\n      let tmpElement: Element;\n\n      do {\n        tmpElement = tmpElement ? tmpElement.parentElement : inputEl.parentElement;\n        if (tmpElement.classList.contains('mat-form-field')) {\n          matFormFieldElement = tmpElement as HTMLDivElement;\n        }\n      } while (!matFormFieldElement);\n\n      matFormFieldElement?.classList.add('mat-form-field-disabled');\n    });\n  }\n}\n","import jwt from 'jwt-decode';\n\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, interval, Subscription } from 'rxjs';\nimport { TokenFactory } from \"./token.factory\";\nimport { MatFormFieldHelper } from \"../../helpers/mat-form-field.helper\";\n\nexport interface KoalaOAuth2TokenInterface {\n  accessToken: string;\n  idToken: string;\n  refreshToken: string;\n  login: string;\n  expired: number;\n  code: string;\n}\n\n@Injectable({providedIn: \"any\"})\nexport class KoalaTokenService implements OnDestroy {\n  private token$ = new BehaviorSubject<string>(null);\n  private intervalToken: Subscription;\n  private intervalFixMatFormField: Subscription;\n\n  constructor() {\n    this.verifySession();\n  }\n\n  ngOnDestroy() {\n    this.intervalToken?.unsubscribe();\n    this.intervalFixMatFormField?.unsubscribe();\n  }\n\n  public setToken(token: string) {\n    if (TokenFactory.hasToken()) { this.token$.next(token); }\n    TokenFactory.setToken(token);\n\n    this.intervalFixMatFormField = interval(1000).subscribe(() => MatFormFieldHelper.fixDisabledStateForDisabledFields());\n  }\n\n  public getToken(): BehaviorSubject<string> {\n    return this.token$;\n  }\n\n  public getDecodedToken<T>(): T|null {\n    return (TokenFactory.hasToken() ? jwt(TokenFactory.getToken()) : null);\n  }\n\n  public getOAuth2Token(): KoalaOAuth2TokenInterface|null {\n    return (TokenFactory.hasToken() ? jwt(TokenFactory.getToken()) : null);\n  }\n\n  public removeToken() {\n    TokenFactory.removeToken();\n    this.intervalFixMatFormField?.unsubscribe();\n  }\n\n  private verifySession() {\n    TokenFactory.init();\n    this.token$.next(TokenFactory.getToken());\n    this.intervalToken = interval(300).subscribe(() => {\n      if (!TokenFactory.hasToken() && this.token$.getValue()) {\n        this.token$.next(null);\n      } else if (TokenFactory.hasToken() && !this.token$.getValue()) {\n        this.token$.next(TokenFactory.getToken());\n      }\n    });\n  }\n}\n","import { BehaviorSubject } from \"rxjs\";\nimport { KoalaOauth2ConfigInterface } from \"./koala-oauth2-config.interface\";\nimport { KoalaEnvironment } from \"../../environments/koalaEnvironment\";\n\n// @dynamic\nexport class KoalaOauthConfig {\n  public static config = new BehaviorSubject<KoalaOauth2ConfigInterface>(\n    KoalaOauthConfig.getOAuthConfig(KoalaOauthConfig.getConfig())\n  );\n\n  public static getConfig() {\n    return localStorage.getItem(KoalaEnvironment.environment?.storageOAuthTypeName);\n  }\n\n  public static hasConfig() {\n    return !!this.getConfig();\n  }\n\n  public static setConfig(type: string) {\n    localStorage.setItem(KoalaEnvironment.environment?.storageOAuthTypeName, type);\n    this.config.next(this.getOAuthConfig(type));\n  }\n\n  private static getOAuthConfig(type?: string) {\n    const environment = KoalaEnvironment.environment?.oauthConfig?.find(config => config.name === type) ?? null;\n\n    return environment ?? {\n      customQueryParams: {\n        client_secret: null\n      },\n      clientId: null,\n      scope: null,\n      domain: null,\n      strictDiscoveryDocumentValidation: false,\n      indexLoginName: 'name'\n    };\n  }\n}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from 'rxjs';\nimport { LoaderBarPageInterface } from '../../loader/loader-bar-page.interface';\n\nexport const KOALA_LOADER_SUBJECT = new BehaviorSubject<LoaderBarPageInterface>({\n  typeLoader: 'indeterminate',\n  progress: 0,\n  show: false\n});\n\n@Injectable({providedIn: \"any\"})\nexport class KoalaLoaderService {\n\n  public getLoaderSubject() {\n    return KOALA_LOADER_SUBJECT;\n  }\n\n  public create(loaderConfig?: {\n    progress?: number;\n    typeLoader?: \"buffer\" | \"determinate\" | \"query\" | \"indeterminate\"\n  }) {\n    KOALA_LOADER_SUBJECT.next({\n      show: true,\n      progress: loaderConfig.progress ? loaderConfig.progress : 0,\n      typeLoader: loaderConfig.typeLoader ? loaderConfig.typeLoader : 'indeterminate'\n    });\n  }\n\n  public dismiss() {\n    KOALA_LOADER_SUBJECT.next({\n      show: false,\n      progress: 0,\n      typeLoader: 'indeterminate'\n    });\n  }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, interval, Subscription } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { koala } from \"@koalarx/utils\";\nimport { Router } from \"@angular/router\";\nimport { KoalaTokenService } from \"../token/koala.token.service\";\nimport { KoalaOauthConfig } from \"./koala.oauth.config\";\nimport { delay } from \"@koalarx/utils/operators/delay\";\nimport { randomString } from \"@koalarx/utils/operators/string\";\n\nexport interface KoalaOAuth2Config {\n  redirectUri: string;\n  responseType: string;\n  clientId: string;\n  scope: string;\n  issuer: string;\n  redirectUriAfterAuth?: string;\n  customQueryParams?: object;\n  endpointToken?: string;\n  endpointClaims?: string;\n}\n\nexport interface KoalaOpenIdConfig {\n  authorization_endpoint: string;\n  check_session_iframe: string;\n  claim_types_supported: string[];\n  claims_parameter_supported: boolean;\n  claims_supported: string[];\n  code_challenge_methods_supported: string[];\n  end_session_endpoint: string;\n  grant_types_supported: string[];\n  id_token_encryption_alg_values_supported: string[];\n  id_token_encryption_enc_values_supported: string[];\n  id_token_signing_alg_values_supported: string[];\n  introspection_endpoint: string;\n  issuer: string;\n  jwks_uri: string;\n  registration_endpoint: string;\n  request_object_signing_alg_values_supported: string[];\n  request_parameter_supported: boolean;\n  request_uri_parameter_supported: boolean;\n  response_modes_supported: string[];\n  response_types_supported: string[];\n  scopes_supported: string[];\n  subject_types_supported: string[];\n  tls_client_certificate_bound_access_tokens: boolean;\n  token_endpoint: string;\n  token_endpoint_auth_methods_supported: string[];\n  token_endpoint_auth_signing_alg_values_supported: string[];\n  token_introspection_endpoint: string;\n  userinfo_endpoint: string;\n  userinfo_signing_alg_values_supported: string[];\n}\n\nexport type EventType =\n  'loadedConfig'\n  | 'getToken'\n  | 'getTokenError'\n  | 'refreshToken'\n  | 'getClaims'\n  | 'userAuthenticated'\n  | 'authenticate'\n  | 'logout'\n  | 'errorLoadConfig';\n\nconst STATE_STORAGE_NAME = 'koala_openid_state';\n\n@Injectable()\nexport class KoalaOAuth2Service implements OnDestroy {\n  public events = new BehaviorSubject<EventType>(null);\n  private config: KoalaOAuth2Config;\n  private openIdOptions: KoalaOpenIdConfig;\n  private eventSubscription: Subscription;\n  private state?: string;\n  private code?: string;\n  private token?: any = {};\n  private claims?: any;\n  private refreshTokenInterval?: Subscription;\n\n  constructor(\n    private http: HttpClient,\n    private router: Router,\n    private tokenService: KoalaTokenService\n  ) {\n    this.generateState();\n  }\n\n  ngOnDestroy() {\n    this.eventSubscription?.unsubscribe();\n    this.refreshTokenInterval?.unsubscribe();\n  }\n\n  public hasOpenIdConfig() {\n    return !!this.openIdOptions;\n  }\n\n  public configure(options: KoalaOAuth2Config) {\n    this.config = options;\n  }\n\n  public loadDiscoveryDocumentAndTryLogin() {\n\n    if (this.eventSubscription) {\n      this.eventSubscription.unsubscribe();\n    }\n    this.eventSubscription = this.events.subscribe(event => {\n      if (event === 'authenticate') {\n        this.generateState();\n        localStorage.setItem(STATE_STORAGE_NAME, this.state);\n        window.location.href = `${this.openIdOptions.authorization_endpoint}?response_type=${this.config.responseType}&client_id=${this.config.clientId}&state=${this.state}&redirect_uri=${this.config.redirectUri}&scope=${this.config.scope}`;\n      } else if (event === 'getToken') {\n        const urlParams = new URLSearchParams(window.location.search);\n        const state = urlParams.get('state');\n        if (state === this.state) {\n          const code = urlParams.get('code');\n          this.getToken(code);\n        } else {\n          this.logout();\n        }\n      } else if (event === 'getClaims' || (event === 'refreshToken' && !this.claims)) {\n        this.getClaims();\n      }\n    });\n\n    return new Promise((resolve, reject) => {\n      this.http.get<KoalaOpenIdConfig>(`${this.config.issuer}/.well-known/openid-configuration`).subscribe(options => {\n        this.openIdOptions = options;\n        if (window.location.href.indexOf(`state=${this.state}`) >= 0) {\n          this.events.next('getToken');\n        } else if (!this.tokenService.getOAuth2Token()) {\n          this.events.next('loadedConfig');\n        }\n        resolve(true);\n      }, e => {\n        console.error(e);\n        this.events.next('errorLoadConfig');\n        reject(e);\n      });\n    });\n  }\n\n  public async initLoginFlow(name?: string) {\n    if (name) {\n      KoalaOauthConfig.setConfig(name);\n      await delay(1000);\n    }\n\n    this.events.next('authenticate');\n  }\n\n  public getIdentityClaims() {\n    return this.claims;\n  }\n\n  public getAccessToken() {\n    return this.token.access_token;\n  }\n\n  public getIdToken() {\n    return this.token.id_token;\n  }\n\n  public getRefreshToken() {\n    return this.token.refresh_token;\n  }\n\n  public getAccessTokenExpiration() {\n    const expires_in = new Date();\n    expires_in.setSeconds(this.token.expires_in);\n    return expires_in.toString();\n  }\n\n  public getCode() {\n    return this.code;\n  }\n\n  public logout() {\n    const logoutInterval = setInterval(() => {\n      if (this.hasOpenIdConfig()) {\n        if (this.openIdOptions.end_session_endpoint) {\n          this.claims = null;\n          this.token = null;\n          const iframeLogout = document.createElement('iframe');\n          iframeLogout.style.display = 'none';\n          iframeLogout.src = this.openIdOptions.end_session_endpoint;\n          document.querySelector('body').appendChild(iframeLogout);\n        }\n        this.events.next('logout');\n        clearInterval(logoutInterval);\n      }\n    }, 300);\n  }\n\n  public initRefreshTokenInterval(code: string, refreshToken: string) {\n    this.refreshTokenInterval?.unsubscribe();\n    this.refreshTokenInterval = interval(1000).subscribe(() => {\n      const refreshTokenDate = new Date();\n      refreshTokenDate.setMinutes(refreshTokenDate.getMinutes() + 1);\n      const token = this.tokenService.getOAuth2Token();\n      if (token) {\n        const expires_in = token.expired;\n        if (expires_in) {\n          if (new Date(expires_in) <= refreshTokenDate) {\n            this.getToken(code, refreshToken);\n          }\n        }\n      }\n    });\n  }\n\n  private getToken(code: string, refreshToken?: string) {\n    if (refreshToken) {\n      this.refreshTokenInterval?.unsubscribe();\n    }\n\n    const formData = new URLSearchParams();\n    let data = koala({\n      grant_type: (refreshToken ? 'refresh_token' : 'authorization_code'),\n      code,\n      redirect_uri: this.config.redirectUri,\n      client_id: this.config.clientId\n    }).object().merge(this.config.customQueryParams ?? {}).getValue();\n\n    if (refreshToken) {\n      data = koala(data).object().merge({refresh_token: refreshToken}).getValue();\n    }\n\n    if (!this.code) {\n      this.code = code;\n    }\n\n    Object.keys(data).forEach(indexName => {\n      formData.append(indexName, data[indexName]);\n    });\n\n    this.http.post(this.config.endpointToken ?? this.openIdOptions.token_endpoint, formData.toString(), {\n      headers: {\n        'Content-Type': 'application/x-www-form-urlencoded'\n      }\n    }).subscribe((token: any) => {\n      this.token = token;\n      this.events.next((refreshToken ? 'refreshToken' : 'getClaims'));\n    }, () => this.events.next('getTokenError'));\n  }\n\n  private getClaims() {\n    this.http.get((this.config.endpointClaims ?? this.openIdOptions.userinfo_endpoint), {\n      headers: {\n        Authorization: `Bearer ${this.getAccessToken()}`\n      }\n    }).subscribe(userInfo => {\n      this.claims = userInfo;\n      this.state = null;\n      localStorage.removeItem(STATE_STORAGE_NAME);\n      this.events.next(this.events.getValue() === 'refreshToken' ? 'refreshToken' : 'userAuthenticated');\n    }, () => this.events.next('loadedConfig'));\n  }\n\n  private generateState() {\n    this.state = localStorage.getItem(STATE_STORAGE_NAME) ?\n                 localStorage.getItem(STATE_STORAGE_NAME) :\n                 randomString(30, {\n                   numbers: true,\n                   uppercase: true,\n                   lowercase: true\n                 });\n  }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\nimport { LoaderBarPageInterface } from '../loader/loader-bar-page.interface';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { KoalaTokenService } from '../services/token/koala.token.service';\nimport { KoalaLoaderService } from '../services/loader/koala.loader.service';\nimport { KoalaNotificationInterface } from './notifications/koala.notification.interface';\nimport { KoalaUserMenuOptionsInterface } from './koala.user-menu-options.interface';\nimport { KoalaPagePalletColorsInterface } from './koala-page-pallet-colors.interface';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { KoalaMenuService, menuStateSubject } from '@koalarx/ui/menu';\nimport jwtEncode from \"jwt-encode\";\nimport { TokenFactory } from \"../services/token/token.factory\";\nimport { KoalaOAuth2Service } from \"../services/openid/koala.oauth2.service\";\nimport { KoalaEnvironment } from \"../environments/koalaEnvironment\";\nimport { KoalaOauthConfig } from \"../services/openid/koala.oauth.config\";\nimport { KoalaOauth2ConfigInterface } from \"../services/openid/koala-oauth2-config.interface\";\nimport { KoalaLanguageHelper, KoalaLanguageType } from \"./koala-language.helper\";\nimport { DeviceDetectorService } from \"ngx-device-detector\";\n\n@Component({\n  selector: 'koala-page',\n  templateUrl: 'page.component.html',\n  styleUrls: ['page.component.css'],\n  providers: [KoalaTokenService],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PageComponent implements OnInit {\n  @Input() showMenu: boolean = true;\n  @Input() color: ThemePalette;\n  @Input() logo: string;\n  @Input() startMenuOpened = true;\n  @Input() showLoaderPage: BehaviorSubject<boolean>;\n  @Input() messageLoaderPage: BehaviorSubject<string>;\n  @Input() defaultPage: string;\n  @Input() openPages: string[];\n  @Input() notifications: BehaviorSubject<KoalaNotificationInterface[]>;\n  @Input() userMenuOptions: KoalaUserMenuOptionsInterface[] = [];\n  @Input() palletColors: KoalaPagePalletColorsInterface;\n  @Input() language: KoalaLanguageType = 'ptBr';\n  @Output() validatingScope = new EventEmitter<boolean>(false);\n  @Output() logoutEmitter = new EventEmitter<boolean>(false);\n  @Output() deleteAllNotifications = new EventEmitter<boolean>(false);\n  @Output() deleteNotification = new EventEmitter<KoalaNotificationInterface>(null);\n\n  public loaderSubject: BehaviorSubject<LoaderBarPageInterface>;\n  public username$ = new BehaviorSubject<string>('');\n  public firstUserLetter$ = new BehaviorSubject<string>('');\n  public currentUrl: string;\n  public logged$ = new BehaviorSubject<boolean>(false);\n  public validationScope$ = new BehaviorSubject<boolean>(false);\n  public isMobile: boolean = this.deviceService.isMobile();\n\n  private defaultPalletColors: KoalaPagePalletColorsInterface = {\n    scrollbarColor: '#1976D2',\n    scrollbarColorHover: '#1565C0',\n    userPresentationBackground: '#f1f1f1',\n    userPresentationUserBackground: '#1976D2',\n    userPresentationUserFontColor: '#fff',\n    firstColor: '#fff',\n    secondColor: '#F1F1F1',\n    bodyBackground: '#eeeeee',\n    checkboxBackground: '#1976d2',\n    checkboxColor: '#ffffff',\n    fontColor: '#1976D2',\n    fontHoverColor: '#1976D2',\n    fontActiveColor: '#1565C0',\n    menuTitleBackground: 'rgba(0,0,0,.1)',\n    menuTitleColor: 'rgba(0,0,0,.3)',\n    menuBackground: '#fafafa',\n    menuOptionsBackground: '#eaeaea',\n    menuOptionsColor: '#a5a5a5',\n    menuOptionsColorHover: '#1976D2',\n    menuOptionsColorActive: '#1565c0',\n    toolbarBackground: '#ffffff',\n    toolbarColor: '#1976d2',\n    listBackground: '#fff',\n    listContentBackground: '#fff',\n    listTitleItemColor: '#838383',\n    listItemColor: '#3e3e3e',\n    listItemBackgroudHover: '#F1F1F1',\n    listItemBackgroundActive: '#EEE',\n    shadowColorTableList: 'rgba(25, 118, 210, .4)'\n  };\n  private oauthEventsSubscription: Subscription;\n\n  @ViewChild('drawer', {static: true}) private menu: MatDrawer;\n\n  constructor(\n    private tokenService: KoalaTokenService,\n    private router: Router,\n    private loaderService: KoalaLoaderService,\n    private menuService: KoalaMenuService,\n    private oauth2Service: KoalaOAuth2Service,\n    private deviceService: DeviceDetectorService,\n  ) {\n    this.loaderSubject = loaderService.getLoaderSubject();\n  }\n\n  ngOnInit() {\n    KoalaLanguageHelper.setLanguage(this.language);\n    this.initOAuth2();\n    if (this.openPages) {\n      if (this.openPages.indexOf('/') < 0) {\n        this.openPages.push('/');\n      }\n      if (this.openPages.indexOf('/login') < 0) {\n        this.openPages.push('/login');\n      }\n    } else {\n      this.openPages = [\n        '/',\n        '/login'\n      ];\n    }\n\n    this.tokenService.getToken()?.subscribe(token => {\n      this.logged$.next(!!token);\n      if (this.logged$.getValue()) {\n        const decodedToken = this.tokenService.getDecodedToken<{ login: string }>();\n        this.username$.next(decodedToken.login);\n        this.firstUserLetter$.next(decodedToken.login.charAt(0).toUpperCase());\n        if (!this.isMobile) {\n          this.menuService.open();\n        }\n      }\n      if (this.logged$.getValue() && this.openPages?.indexOf(this.currentUrl) >= 0 && this.defaultPage) {\n        this.router.navigate([this.defaultPage]).then();\n      } else if (!this.logged$.getValue() && this.currentUrl && this.openPages?.indexOf(this.currentUrl) < 0) {\n        this.router.navigate(['login']).then();\n        return false;\n      }\n    });\n    this.router.events.subscribe(event => {\n      switch (true) {\n        case event instanceof NavigationStart: {\n          this.loaderService.create({typeLoader: 'indeterminate'});\n          break;\n        }\n\n        case event instanceof NavigationEnd:\n        case event instanceof NavigationCancel:\n        case event instanceof NavigationError: {\n          this.loaderService.dismiss();\n          if (event instanceof NavigationEnd) {\n            if (this.isMobile) {\n              this.menuService.close();\n            }\n\n            this.currentUrl = event.url.split('?')[0];\n\n            if (event.url.indexOf('/login?clientId=') < 0) {\n              if (this.logged$.getValue() && this.defaultPage && this.openPages?.indexOf(this.currentUrl) >= 0) {\n                this.router.navigate([this.defaultPage]).then();\n                return false;\n              } else if (!this.logged$.getValue() && this.openPages?.indexOf(this.currentUrl) < 0) {\n                this.router.navigate(['login']).then();\n                return false;\n              }\n            }\n          }\n          break;\n        }\n        default: {\n          break;\n        }\n      }\n    });\n    if (this.palletColors) {\n      Object.keys(this.defaultPalletColors).forEach(indexName => {\n        if (\n          !this.palletColors.hasOwnProperty(indexName) ||\n          !this.palletColors[indexName]\n        ) {\n          this.palletColors[indexName] = this.defaultPalletColors[indexName];\n        }\n      });\n    } else {\n      this.palletColors = this.defaultPalletColors;\n    }\n    this.defineColor();\n\n    if (this.showMenu) {\n      menuStateSubject.subscribe(async (state) => {\n        if (this.menu) {\n          if (state === 'close') {\n            if (this.menu.opened) {\n              await this.menu.close();\n            }\n          } else if (state === 'open') {\n            if (!this.menu.opened) {\n              await this.menu.open();\n            }\n          }\n        }\n      });\n      if (this.startMenuOpened && this.logged$.getValue()) {\n        if (!this.isMobile) {\n          this.menuService.open();\n        }\n      } else {\n        this.menuService.close();\n      }\n    } else {\n      this.menuService.close();\n    }\n\n    this.validationScope$.subscribe(scope => this.validatingScope.emit(scope));\n  }\n\n  public async toogleMenu() {\n    this.menuService.clearConfig();\n    if (this.menu) {\n      await this.menu.toggle();\n    }\n  }\n\n  public async logout() {\n    if (KoalaEnvironment.environment?.oauthConfig) {\n      this.oauth2Service.logout();\n    }\n    this.menuService.close();\n    this.tokenService.removeToken();\n    this.tokenService.getToken().next(null);\n    this.logoutEmitter.emit(true);\n  }\n\n  public defineColor() {\n    const css = `\n*::-webkit-scrollbar-thumb {background: ${this.palletColors.scrollbarColor};width: 2px;}\n*::-webkit-scrollbar-thumb:hover {background: ${this.palletColors.scrollbarColorHover};}\ninput:-webkit-autofill, input:-webkit-autofill:focus, input:-webkit-autofill:hover {color: ${this.palletColors.fontColor}!important;}\n.menu-container,\nbody {background: ${this.palletColors.bodyBackground}!important;}\ninput:-webkit-autofill, input:-webkit-autofill:focus, input:-webkit-autofill:hover {-webkit-box-shadow: 0 0 0 1000px ${this.palletColors.firstColor} inset !important;}\n.mat-button-disabled,\ninput::placeholder,\n.mat-form-field-appearance-outline .mat-form-field-outline {color: ${this.palletColors.fontColor}!important;opacity: .6;}\n.mat-hint,\n.mat-expansion-indicator::after,\n.more-items-content .items .titleForm,\nfieldset legend,\n.mat-paginator-container,\n.mat-form-field-flex mat-icon {color: ${this.palletColors.fontColor}!important;}\n.mat-paginator-container,\n.mat-card,\n.mat-expansion-panel,\n.mat-select-panel,\n.mat-autocomplete-panel,\n.mat-menu-panel {background: ${this.palletColors.firstColor}}\n.mat-selected {background-color: rgba(0,0,0,.3)!important;}\n.question p,\n.alert-message,\n.mat-action-row,\n.mat-option,\n.mat-menu-item,\n.mat-menu-item mat-icon {color: ${this.palletColors.fontColor}!important}\n.mat-select-value,\n.mat-select-arrow,\n.mat-form-field input,\n.mat-form-field textarea,\n.mat-form-field-appearance-outline:not(.mat-form-field-invalid) .mat-form-field-outline-thick,\n.mat-form-field label,\n.select-multiple-native select {color: ${this.palletColors.fontColor}!important;caret-color: ${this.palletColors.fontColor}!important;}\n.mat-form-field-underline,\n.mat-form-field-appearance-fill .mat-form-field-underline::before,\n.mat-form-field-ripple {background: ${this.palletColors.fontColor}!important;}\n.mat-checkbox-checked.mat-accent .mat-checkbox-background, .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,\n.mat-checkbox:not(.mat-checkbox-disabled).mat-accent .mat-checkbox-ripple .mat-ripple-element {background-color: ${this.palletColors.checkboxBackground} !important;}\n.mat-checkbox-checkmark-path {stroke: ${this.palletColors.checkboxColor} !important;}\n.mat-checkbox-checkmark {fill: ${this.palletColors.checkboxColor} !important;}\n.mat-checkbox-mixedmark {background-color: ${this.palletColors.checkboxColor} !important;}\n.mat-checkbox-frame {border-color: ${this.palletColors.checkboxOutlineColor}!important;}\n.mat-checkbox-label {color: ${this.palletColors.fontColor}!important;}\n.mat-radio-outer-circle {border-color: ${this.palletColors.checkboxBackground}!important;}\n.mat-radio-ripple .mat-ripple-element, .mat-radio-inner-circle {background-color: ${this.palletColors.checkboxBackground} !important;}\n.home-list-cards .list .mat-list-item-content .mat-icon {color: ${this.palletColors.fontColor};}\n.home-list-cards .list button .mat-badge-content {background: ${this.palletColors.fontColor};}\n.koala-dialog .mat-dialog-title h2 {color: ${this.palletColors.fontColor};}\n.koala-dialog .mat-dialog-title mat-icon {color: ${this.palletColors.fontColor}!important;}\n.koala-dialog .mat-dialog-container {background: ${this.palletColors.firstColor}}\n.list-filter mat-icon {color: ${this.palletColors.filterIconColor}!important;}\nkoala-page .menu-options {background: ${this.palletColors.menuBackground};}\nkoala-page .toolbar {background: ${this.palletColors.toolbarBackground};}\nkoala-page .toolbar .btn-collapse-menu,\nkoala-page .btn-toolbar span{color: ${this.palletColors.toolbarColor};}\nkoala-page .btn-toolbar span.icon-user,\n.user-presentation span.icon-user {background: ${this.palletColors.userPresentationUserBackground};color: ${this.palletColors.userPresentationUserFontColor};}\n.user-presentation {background: ${this.palletColors.userPresentationBackground};}\n.user-presentation span.username {color: ${this.palletColors.toolbarColor};}\n.mat-drawer.mat-drawer-push {background-color: ${this.palletColors.bodyBackground};}\nkoala-menu .title {background: ${this.palletColors.menuTitleBackground};color: ${this.palletColors.menuTitleColor};}\nkoala-menu ul li,\nkoala-menu ul li a {color: ${this.palletColors.menuOptionsColor};}\nkoala-menu ul li:hover,\nkoala-menu ul li:hover a {color: ${this.palletColors.menuOptionsColorHover} !important;}\nkoala-menu ul li.active,\nkoala-menu ul li.expanded {color: ${this.palletColors.menuOptionsColorActive} !important;border-left: 4px solid ${this.palletColors.menuOptionsColorActive} !important;background: ${this.palletColors.menuOptionsBackground} !important;}\nkoala-menu ul li.active a,\nkoala-menu ul li.expanded a {color: ${this.palletColors.menuOptionsColorActive} !important;background: ${this.palletColors.menuOptionsBackground} !important;}\nkoala-menu ul li li:hover,\nkoala-menu ul li li:hover a {color: ${this.palletColors.menuOptionsColorHover} !important;}\nkoala-menu ul li li.active,\nkoala-menu ul li li.active a {color: ${this.palletColors.menuOptionsColorActive} !important;}\nkoala-menu ul li koala-icon svg *,\nkoala-menu ul li a koala-icon svg * {fill: ${this.palletColors.menuOptionsColor};}\nkoala-menu ul li:hover koala-icon svg *,\nkoala-menu ul li:hover a koala-icon svg * {fill: ${this.palletColors.menuOptionsColorHover} !important;}\nkoala-menu ul li.active koala-icon *,\nkoala-menu ul li.expanded koala-icon * {fill: ${this.palletColors.menuOptionsColorActive} !important;}\nkoala-menu ul li li:hover koala-icon *,\nkoala-menu ul li li:hover a koala-icon * {fill: ${this.palletColors.menuOptionsColorHover} !important;}\nkoala-menu ul li li.active koala-icon *,\nkoala-menu ul li li.active a koala-icon * {fill: ${this.palletColors.menuOptionsColorActive}!important;}\n.notifications-content .title {color: ${this.palletColors.notificationTitleColor}!important;}\n.notifications-content .empty,\n.notifications-content .titleList {color: ${this.palletColors.notificationContentTitleColor}!important;}\n.notifications-content .iconList {color: ${this.palletColors.notificationContentIconColor}!important;}\n.notifications-content .textList {color: ${this.palletColors.notificationTitleColor}!important;}\n.list-container {box-shadow: 0 1px 3px ${this.palletColors.shadowColorTableList};}\n.list-container .list table.table-hover tr:hover {background: ${this.palletColors.listItemBackgroudHover};}\n.list-container .list table.table-hover tr:active {background: ${this.palletColors.listItemBackgroundActive};}\n.list-container .list-filter .advanced {background: ${this.palletColors.firstColor};}\n.list-container nav.menu-list {background: ${this.palletColors.firstColor};color: rgba(25, 118, 210, .3);}\n.content {background: ${this.palletColors.listContentBackground};}\n.mat-tab-group .mat-tab-label {color: ${this.palletColors.fontColor};}\n.mat-tab-group .mat-ink-bar {background-color: ${this.palletColors.fontColor}!important;}\n.mat-table {background: ${this.palletColors.listBackground};color: ${this.palletColors.fontColor};}\n.mat-table th {color: ${this.palletColors.listTitleItemColor}!important;}\n.mat-sort-header-arrow {color: ${this.palletColors.listItemColor}!important;}\n.mat-table td {color: ${this.palletColors.listItemColor}!important;}`;\n    const head = document.head || document.getElementsByTagName('head')[0];\n    const style = document.createElement('style');\n    head.appendChild(style);\n    style.appendChild(document.createTextNode(css));\n  }\n\n  private initOAuth2() {\n    KoalaOauthConfig.config.subscribe(config => this.startConfig(config));\n    if (KoalaOauthConfig.hasConfig()) {\n      KoalaOauthConfig.setConfig(KoalaOauthConfig.getConfig());\n    }\n  }\n\n  private startConfig(config: KoalaOauth2ConfigInterface) {\n    if (config.clientId) {\n      this.oauth2Service.configure({\n        redirectUri: window.location.origin,\n        redirectUriAfterAuth: this.defaultPage,\n        responseType: 'code',\n        clientId: config.clientId,\n        scope: config.scope,\n        issuer: config.domain,\n        customQueryParams: config.customQueryParams,\n        endpointToken: config.endpointToken ?? null,\n        endpointClaims: config.endpointClaims ?? null\n      });\n      this.oauth2Service.loadDiscoveryDocumentAndTryLogin().then();\n\n      if (this.oauthEventsSubscription) {\n        this.oauthEventsSubscription.unsubscribe();\n      }\n      this.oauthEventsSubscription = this.oauth2Service.events.subscribe(event => {\n        if (event === 'userAuthenticated' || event === 'refreshToken') {\n          const claims = this.oauth2Service.getIdentityClaims();\n          if (claims && (\n            !TokenFactory.hasToken() ||\n            (TokenFactory.hasToken() && event === 'refreshToken')\n          )) {\n            this.tokenService.setToken(jwtEncode({\n              accessToken: this.oauth2Service.getAccessToken(),\n              idToken: this.oauth2Service.getIdToken(),\n              refreshToken: this.oauth2Service.getRefreshToken(),\n              login: claims[config.indexLoginName] ?? 'Undefined',\n              expired: this.oauth2Service.getAccessTokenExpiration(),\n              code: this.oauth2Service.getCode()\n            }, 'secret'))\n          }\n\n          if (event === 'userAuthenticated') {\n            setTimeout(() => this.validationScope$.next(false), 300);\n          }\n        } else if (event === 'getToken') {\n          this.validationScope$.next(true);\n        }\n      });\n    }\n  }\n}\n","<div *ngIf=\"showLoaderPage | async\" class=\"koala-loader-pg\">\n  <div class=\"loader-content\">\n    <figure>\n      <img [src]=\"logo\" alt=\"Logotipo\"/>\n      <figcaption *ngIf=\"(messageLoaderPage | async) as messageLoader\" [innerHTML]=\"messageLoader\"></figcaption>\n    </figure>\n    <mat-spinner></mat-spinner>\n  </div>\n</div>\n<app-loader-page *ngIf=\"(loaderSubject | async) as loader\" [progress]=\"loader.progress\" [show]=\"loader.show\"\n                 [typeLoader]=\"loader.typeLoader\"></app-loader-page>\n<mat-drawer-container autosize class=\"menu-container\">\n  <mat-drawer #drawer class=\"menu-options\" [mode]=\"isMobile ? 'push' : 'side'\">\n    <img [src]=\"logo\" alt=\"Logotipo\" id=\"logotipo\"/>\n    <ng-content *ngIf=\"showMenu\" select=\"[menu-options]\"></ng-content>\n  </mat-drawer>\n\n  <mat-toolbar *ngIf=\"!!(logged$ | async) && (username$ | async)\" class=\"toolbar\">\n    <img *ngIf=\"!showMenu\" [src]=\"logo\" alt=\"Logotipo Toolbar\" id=\"logotipo-toolbar\"/>\n    <button (click)=\"toogleMenu()\" *ngIf=\"showMenu\" [color]=\"color\" class=\"btn-collapse-menu\" mat-icon-button>\n      <mat-icon>menu</mat-icon>\n    </button>\n    <span class=\"spacer\"></span>\n\t  <div class=\"menu-toolbar\">\n\t\t  <ng-content select=\"[menu-toolbar]\"></ng-content>\n\t  </div>\n    <div *ngIf=\"(notifications | async) as notificationList\">\n      <button *ngIf=\"notifications\" [color]=\"color\" [matMenuTriggerFor]=\"notificationsMenu\" class=\"btn-toolbar\"\n              mat-icon-button>\n        <mat-icon\n\t        [matBadgeHidden]=\"notificationList.length === 0\"\n\t        [matBadge]=\"notificationList.length.toString()\"\n\t        matBadgeColor=\"warn\">notifications\n        </mat-icon>\n      </button>\n      <mat-menu #notificationsMenu=\"matMenu\" class=\"menu-list\" yPosition=\"below\">\n        <koala-notification-list\n          (delete)=\"deleteNotification.emit($event)\"\n          (deleteAll)=\"deleteAllNotifications.emit($event)\"\n          [notifications]=\"notificationList\">\n        </koala-notification-list>\n      </mat-menu>\n    </div>\n    <button [color]=\"color\" [matMenuTriggerFor]=\"userOptions\" class=\"btn-toolbar\" mat-button>\n      <span>{{username$ | async}}</span>\n      <span class=\"icon-user\">{{firstUserLetter$ | async}}</span>\n    </button>\n    <mat-menu #userOptions=\"matMenu\" class=\"user-menu menu-list\" yPosition=\"below\">\n      <div class=\"user-presentation\">\n        <span class=\"icon-user\">{{firstUserLetter$ | async}}</span><br/>\n        <span class=\"username\">{{username$ | async}}</span>\n      </div>\n      <button (click)=\"btn.action()\" *ngFor=\"let btn of userMenuOptions\" mat-menu-item>\n        <mat-icon>{{btn.icon}}</mat-icon>\n        <span>{{btn.name}}</span>\n      </button>\n      <button (click)=\"logout()\" mat-menu-item>\n        <mat-icon>exit_to_app</mat-icon>\n        <span>{{language === 'ptBr' ? 'Sair' : 'Logout'}}</span>\n      </button>\n    </mat-menu>\n  </mat-toolbar>\n\n  <ng-content class=\"page-content\" select=\"[page-content]\"></ng-content>\n\n</mat-drawer-container>\n\n<ng-content class=\"loading-info-content\" select=\"[loading-info-content]\"></ng-content>\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { PageComponent } from \"./page.component\";\nimport { NotificationComponent } from \"./notifications/notification.component\";\nimport { LoaderBarPageComponent } from \"../loader/loader-bar-page.component\";\nimport { MatBadgeModule } from \"@angular/material/badge\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatSidenavModule } from \"@angular/material/sidenav\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n  declarations: [\n    PageComponent,\n    NotificationComponent,\n    LoaderBarPageComponent\n  ],\n  exports: [\n    PageComponent,\n    RouterModule\n  ],\n  imports: [\n    CommonModule,\n    RouterModule,\n    MatBadgeModule,\n    MatProgressSpinnerModule,\n    MatProgressBarModule,\n    MatToolbarModule,\n    MatTooltipModule,\n    MatButtonModule,\n    MatIconModule,\n    MatSidenavModule,\n    MatListModule,\n    MatMenuModule\n  ]\n})\nexport class KoalaPageModule {}\n","import { Injectable } from \"@angular/core\";\nimport { HashLocationStrategy } from \"@angular/common\";\nimport { KoalaEnvironment } from \"../environments/koalaEnvironment\";\n\n@Injectable()\nexport class KoalaParameterHashLocationStrategy extends HashLocationStrategy {\n  prepareExternalUrl(internal: string): string {\n    const hasToken = !!localStorage.getItem(KoalaEnvironment.environment?.storageTokenName);\n    return !hasToken ?\n           window.location.search + super.prepareExternalUrl(internal) :\n           super.prepareExternalUrl(internal);\n  }\n}\n","export class KoalaNotFoundError extends Error {\n}\n","export class KoalaUnhautorizedError extends Error {\n}\n","export class KoalaClientError extends Error {\n}\n","export class KoalaSuccessError extends Error {\n}\n","import { KoalaNotFoundError } from \"./koala.not-found.error\";\nimport { KoalaUnhautorizedError } from \"./koala.unhautorized.error\";\nimport { KoalaClientError } from \"./koala.client.error\";\nimport { KoalaSuccessError } from \"./koala.success.error\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { KoalaAlertEnum } from \"@koalarx/ui/alert\";\n\nexport interface KoalaResponseInterface {\n  error: boolean;\n  alertEnum: KoalaAlertEnum;\n  statusCode?: number;\n  urlRequest?: string;\n  message: string;\n  data?: any;\n}\n\nexport class KoalaErrorsHelper {\n  public static generate(e: Error | HttpErrorResponse, urlRequest?: string, customMessage?: string): KoalaResponseInterface {\n\n    let errorMessage = {\n      error: true,\n      message: (customMessage ? customMessage : e.message),\n      urlRequest\n    } as KoalaResponseInterface;\n\n    if (e instanceof KoalaSuccessError) {\n      errorMessage.error = false;\n      errorMessage.statusCode = 200;\n      errorMessage.alertEnum = KoalaAlertEnum.success;\n    } else if (e instanceof KoalaNotFoundError) {\n      errorMessage.statusCode = 404;\n      errorMessage.alertEnum = KoalaAlertEnum.notFound;\n    } else if (e instanceof KoalaUnhautorizedError) {\n      errorMessage.statusCode = 401;\n      errorMessage.alertEnum = KoalaAlertEnum.unhautorized;\n    } else if (e instanceof KoalaClientError) {\n      errorMessage.statusCode = 400;\n      errorMessage.alertEnum = KoalaAlertEnum.badRequest;\n    } else if (e instanceof HttpErrorResponse) {\n      errorMessage.urlRequest = e.url;\n      errorMessage.statusCode = e.status;\n      errorMessage.alertEnum = KoalaAlertEnum.internalServerError;\n      if (e.error && e.error.message) {\n        errorMessage.message = e.error.message;\n      }\n    } else {\n      errorMessage.statusCode = 500;\n      errorMessage.alertEnum = KoalaAlertEnum.internalServerError;\n    }\n\n    return errorMessage;\n  }\n}\n","import { koala } from \"@koalarx/utils\";\nimport { HttpHeaders } from \"@angular/common/http\";\nimport { KoalaOauthConfig } from \"../../../openid/koala.oauth.config\";\n\nexport class KoalaRequestHeaderHelper {\n\n  public static add(token?: string) {\n    const headers = koala({}).object();\n\n    if (token) { headers.merge({Authorization: 'Bearer ' + token}); }\n    if (KoalaOauthConfig.hasConfig()) { headers.merge({Authenticator: KoalaOauthConfig.getConfig()}); }\n\n    return headers.getValue() as HttpHeaders;\n  }\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { KoalaErrorsHelper, KoalaResponseInterface } from \"../helpers/error/koala.errors.helper\";\nimport { KoalaNotFoundError } from \"../helpers/error/koala.not-found.error\";\nimport { KoalaClientError } from \"../helpers/error/koala.client.error\";\nimport { KoalaUnhautorizedError } from \"../helpers/error/koala.unhautorized.error\";\nimport { KoalaSuccessError } from \"../helpers/error/koala.success.error\";\nimport { KoalaLanguageHelper } from \"../../../page/koala-language.helper\";\n\n// @dynamic\nexport class KoalaResponseFactory {\n\n  public static async generateResponse(response: HttpResponse<any>, urlRequest?: string): Promise<KoalaResponseInterface> {\n    return new Promise<KoalaResponseInterface>((resolve, reject) => {\n      let alert: KoalaResponseInterface;\n      switch (response.status) {\n        case 200:\n        case 201:\n          alert = KoalaErrorsHelper.generate(new KoalaSuccessError(response.body?.message), urlRequest);\n          alert.data = response.body;\n          resolve(alert);\n          break;\n        case 400:\n          alert = KoalaErrorsHelper.generate(new KoalaClientError(response.body.message), urlRequest);\n          reject(alert);\n          break;\n        case 404:\n          alert = KoalaErrorsHelper.generate(new KoalaNotFoundError(response.body?.message), urlRequest);\n          reject(alert);\n          break;\n        case 401:\n          alert = KoalaErrorsHelper.generate(new KoalaUnhautorizedError(response.body?.message), urlRequest);\n          reject(alert);\n          break;\n        case 405:\n          alert = KoalaErrorsHelper.generate(new KoalaClientError(response.body?.message), urlRequest);\n          reject(alert);\n          break;\n        case 500:\n        default:\n          alert = KoalaErrorsHelper.generate(new Error((response && response.body?.message) ? response.body?.message : KoalaLanguageHelper.getInternalServerErrorMessage()), urlRequest);\n          reject(alert);\n          break;\n      }\n    });\n  }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from \"@angular/common/http\";\nimport { KoalaOAuth2Service } from \"../openid/koala.oauth2.service\";\nimport { Observable, Subscription } from \"rxjs\";\nimport { KoalaErrorsHelper } from \"./helpers/error/koala.errors.helper\";\nimport { KoalaRequestHeaderHelper } from \"./helpers/service/koala.request-header.helper\";\nimport { KoalaResponseFactory } from \"./factory/koala.response.factory\";\nimport { first, map } from \"rxjs/operators\";\nimport { TokenFactory } from \"../token/token.factory\";\nimport { EventSourcePolyfill } from 'event-source-polyfill';\n\nexport type ApiRequesterType = 'get' | 'post' | 'put' | 'patch' | 'delete';\n\n@Injectable({providedIn: \"root\"})\nexport class KoalaApiRequesterService {\n  public apiUrl: string;\n  public isMockup = false;\n  private subscriptions: Subscription[] = [];\n\n  constructor(\n    private http: HttpClient,\n    private oauth2Service: KoalaOAuth2Service\n  ) {\n  }\n\n  public eventStream<T>(\n    url: string,\n    onmessage: (data: T[]) => void,\n    onopen?: (event?: any) => void,\n    onerror?: (event?: any) => void,\n    onclose?: (event?: any) => void\n  ) {\n    const hub = new URL(`${this.getUrlBase()}/${url}`);\n    const eventSource = new EventSourcePolyfill(hub.toJSON(), {\n      headers: KoalaRequestHeaderHelper.add(TokenFactory.getToken())\n    });\n    eventSource.addEventListener('message', (event) => {\n      if (typeof event.data !== 'undefined') {\n        onmessage(JSON.parse(event.data));\n      }\n    });\n    eventSource.addEventListener('open', (event) => {\n      if (onopen) {\n        onopen(event);\n      }\n    });\n    eventSource.addEventListener('close', (event) => {\n      if (onclose) {\n        onclose(event);\n      }\n    });\n    eventSource.addEventListener('error', (event) => {\n      if (onerror) {\n        onerror(event);\n      }\n    });\n  }\n\n  public request<T>(method: ApiRequesterType, url: string, data: any = {}): Observable<T> {\n    if (data.__zone_symbol__state) {\n      data = data.__zone_symbol__value;\n    }\n    switch (method) {\n      case 'post':\n      case 'put':\n      case 'patch':\n      case 'delete':\n        return this.promiseSendData<T>(this.postPutDelete(method, url, data), url);\n      case 'get':\n        let httpParams = new HttpParams();\n        Object.keys(data ?? {}).forEach((key) => {\n          let dado = data[key];\n          if (typeof dado == \"object\") {\n            if (dado && dado.hasOwnProperty('length') && dado.length > 0) {\n              dado.forEach(item => {\n                httpParams = httpParams.append(`${key.replace('[]', '')}[]`, item);\n              });\n            } else {\n              httpParams = httpParams.append(key, dado);\n            }\n          } else {\n            httpParams = httpParams.append(key, dado);\n          }\n        });\n        return this.promiseGetData<T>(this.get(url, httpParams));\n    }\n  }\n\n  public cancelRequests() {\n    for (let subscribe of this.subscriptions.values()) {\n      subscribe.unsubscribe();\n    }\n  }\n\n  private get<T>(url: string, params: HttpParams) {\n    return this.getMethod<T>('get', url, params)\n               .pipe(map(response => {\n                 return response.body\n               }));\n  }\n\n  private postPutDelete(method: ApiRequesterType, url: string, data: any) {\n    return this.getMethod<HttpResponse<any>>(method, url, data);\n  }\n\n  private promiseGetData<T>(request: Observable<T>): Observable<T> {\n    return new Observable<T>(observe => {\n      this.subscriptions\n          .push(request.pipe(first())\n                       .subscribe({\n                         next: response => {\n                           observe.next(response);\n                           observe.complete();\n                         },\n                         error: e => {\n                           if (e.status === 401) {\n                             this.oauth2Service.logout();\n                           }\n                           observe.error(KoalaErrorsHelper.generate(e));\n                         }\n                       }));\n    });\n  }\n\n  private promiseSendData<T>(request: Observable<HttpResponse<any>>, urlRequest?: string): Observable<T> {\n    return new Observable<T>(observe => {\n      this.subscriptions\n          .push(request.pipe(first())\n                       .subscribe({\n                         next: response => KoalaResponseFactory.generateResponse(response, urlRequest)\n                                                               .then(success => {\n                                                                 observe.next(success as any);\n                                                                 observe.complete();\n                                                               })\n                                                               .catch(error => {\n                                                                 if (error.status === 401) {\n                                                                   this.oauth2Service.logout();\n                                                                 }\n                                                                 observe.error(error);\n                                                               }),\n                         error: e => observe.error(KoalaErrorsHelper.generate(e))\n                       }));\n    });\n  }\n\n  private getUrlBase() {\n    return this.isMockup ? `${location.origin}/assets/mockup` : this.apiUrl;\n  }\n\n  private getMethod<T>(method: ApiRequesterType, url: string, data: any | HttpParams = {}) {\n    const options = {\n      observe: 'response',\n      headers: KoalaRequestHeaderHelper.add(TokenFactory.getToken())\n    } as {\n      headers?: HttpHeaders | {[p: string]: string | string[]};\n      observe: \"response\";\n      params?: HttpParams | {\n        [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n      };\n    };\n\n    switch (method) {\n      case \"post\":\n        return this.http.post<T>(`${this.getUrlBase()}/${url}`, data, options);\n      case \"put\":\n        return this.http.put<T>(`${this.getUrlBase()}/${url}`, data, options);\n      case \"patch\":\n        return this.http.patch<T>(`${this.getUrlBase()}/${url}`, data, options);\n      case \"delete\":\n        return this.http.delete<T>(`${this.getUrlBase()}/${url}`, options);\n      case \"get\":\n        options.params = data;\n        return this.http.get<T>(`${this.getUrlBase()}/${url}`, options);\n    }\n  }\n}\n","import { BehaviorSubject, Observable, skipWhile } from \"rxjs\";\n\nexport interface KoalaCacheData {\n  name: string;\n  data: BehaviorSubject<any>;\n}\n\nexport class KoalaApiRequesterCache {\n  private static cache: KoalaCacheData[] = [];\n\n  public static createCache(name: string) {\n    if (!this.hasCache(name)) {\n      this.cache.push({\n        name,\n        data: new BehaviorSubject<any>(undefined)\n      });\n    }\n  }\n\n  public static setDataInCache(name: string, data: any) {\n    this.getCacheSubject(name)?.next(data);\n  }\n\n  public static getCacheSubject(name: string) {\n    return this.cache.find(item => item.name === name)?.data;\n  }\n\n  public static getCacheAsObservable<T>(name: string) {\n    return new Observable<T>(observe => {\n      this.getCacheSubject(name)\n          .pipe(skipWhile(value => value === undefined))\n          .subscribe({\n            next: value => {\n              observe.next(value);\n              observe.complete();\n            },\n            error: err => {\n              observe.error(err);\n              observe.complete();\n            }\n          });\n    });\n  }\n\n  public static hasCache(name: string) {\n    return !!this.getCacheSubject(name);\n  }\n}\n","import { koala } from \"@koalarx/utils\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { ApiRequesterType, KoalaApiRequesterService } from \"./koala.api-requester.service\";\nimport { KoalaResponseInterface } from \"./helpers/error/koala.errors.helper\";\nimport { KoalaEnvironment } from \"../../environments/koalaEnvironment\";\nimport { KoalaApiRequesterCache } from \"./koala.api-requester.cache\";\nimport { map } from \"rxjs/operators\";\n\nexport abstract class KoalaApiRequesterBase<EntityType, GetAllType, DataType> {\n\n  protected constructor(\n    protected koalaService: KoalaApiRequesterService,\n    protected endpoint: string,\n    protected statusCache: boolean = false,\n    environmentNameToEndpointApi = 'endpointApi',\n    isMockup = false\n  ) {\n    koalaService.apiUrl = KoalaEnvironment.environment?.[environmentNameToEndpointApi];\n    koalaService.isMockup = isMockup;\n  }\n\n  public getAll(filter?: BehaviorSubject<any> | any) {\n    return this.request<GetAllType>('get', this.endpoint, this.getParams(filter));\n  }\n\n  public getById(id: number) {\n    return this.request<EntityType>('get', this.endpoint + '/' + id);\n  }\n\n  public getBySomething<Type>(something: any) {\n    return this.request<Type>('get', this.endpoint + '/' + something);\n  }\n\n  public save(data: DataType, id?: number) {\n    return this.koalaService.request<KoalaResponseInterface>(\n      (id ? 'put' : 'post'),\n      `${this.endpoint}${(id ? `/${id}` : '')}`,\n      data\n    );\n  }\n\n  public delete(id: number) {\n    return this.koalaService.request<KoalaResponseInterface>('delete', this.endpoint + '/' + id)\n  }\n\n  public async cancelRequests() {\n    await this.koalaService.cancelRequests();\n  }\n\n  public async getParams(params?: BehaviorSubject<any> | any) {\n    let filter = {} as any;\n    if (params instanceof BehaviorSubject) {\n      Object.assign(filter, params?.getValue() ?? {});\n    } else {\n      Object.assign(filter, params ?? {});\n    }\n    if (\n      filter &&\n      filter.hasOwnProperty('sort') &&\n      filter.hasOwnProperty('order') &&\n      filter.hasOwnProperty('limit') &&\n      filter.hasOwnProperty('page') &&\n      filter.hasOwnProperty('params')\n    ) {\n      Object.keys(filter.params).forEach(indexName => {\n        if (\n          `${filter.params[indexName]}` === 'NaN' ||\n          filter.params[indexName] === null\n        ) {\n          filter.params[indexName] = '';\n        }\n      });\n      return koala({})\n        .object()\n        .merge(filter.params)\n        .merge({\n          sort: filter.sort,\n          order: filter.order,\n          limit: filter.limit,\n          page: filter.page\n        })\n        .getValue();\n    }\n\n    return filter ?? null;\n  }\n\n  public request<T>(method: ApiRequesterType, url: string, data: any = {}): Observable<T> {\n    if (this.statusCache) {\n      if (KoalaApiRequesterCache.hasCache(url)) {\n        return KoalaApiRequesterCache.getCacheAsObservable(url);\n      }\n      KoalaApiRequesterCache.createCache(url);\n    }\n\n    return this.koalaService\n               .request<T>(method, url, data)\n               .pipe(map(response => {\n                 if (this.statusCache) KoalaApiRequesterCache.setDataInCache(url, response);\n                 return response;\n               }));\n  }\n\n  public enableCache() {\n    this.statusCache = true;\n  }\n\n  public disableCache() {\n    this.statusCache = false;\n  }\n}\n","import { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { KoalaAlertEnum, KoalaAlertService, KoalaRequestCodeToAlertEnumTranslate } from '@koalarx/ui/alert';\nimport { KoalaLanguageHelper } from \"../../page/koala-language.helper\";\n\n@Injectable({providedIn: \"any\"})\nexport class KoalaRequestService {\n\n  constructor(private koalaAlertService: KoalaAlertService) {\n  }\n\n  public request<T>(\n    request: Promise<T> | Observable<T>,\n    success?: (response: T) => void,\n    error?: (error: T) => void\n  ) {\n    if (request instanceof Promise) {\n      request.then((response) => {\n        if (success) {\n          success(response);\n        }\n      }).catch(e => {\n        if (error) {\n          error(e);\n        }\n        this.showAlertError(e);\n      });\n    } else {\n      return request.subscribe(\n        (response) => {\n          if (success) {\n            success(response);\n          }\n        },\n        (e) => {\n          if (error) {\n            error(e);\n          }\n          this.showAlertError(e);\n        }\n      );\n    }\n  }\n\n  private showAlertError(e: any) {\n    const alertEnum = KoalaRequestCodeToAlertEnumTranslate.translate(e.statusCode);\n    this.koalaAlertService.create({\n      alertEnum,\n      message: alertEnum === KoalaAlertEnum.internalServerError\n               ? KoalaLanguageHelper.getInternalServerErrorMessage()\n               : e.message\n    });\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { KoalaOAuth2Service } from \"./services/openid/koala.oauth2.service\";\nimport { KoalaEnvironment, KoalaEnvironmentInterface } from \"./environments/koalaEnvironment\";\nimport { KoalaPageModule } from \"./page/koala.page.module\";\n\n@NgModule({\n  imports: [\n    CommonModule,\n    HttpClientModule,\n    KoalaPageModule\n  ],\n  exports: [\n    HttpClientModule,\n    KoalaPageModule\n  ],\n  providers: [\n    KoalaOAuth2Service\n  ]\n})\nexport class NgxKoalaModule {\n  static forRoot(environment: KoalaEnvironmentInterface): ModuleWithProviders<NgxKoalaModule> {\n    environment.storageOAuthTypeName = environment.storageOAuthTypeName ?? 'koala_ui_oauth_type';\n    environment.storageTokenName = environment.storageTokenName ?? 'koala_ui_token';\n\n    KoalaEnvironment.environment = environment;\n\n    return {\n      ngModule: NgxKoalaModule,\n      providers: [KoalaOAuth2Service]\n    };\n  }\n}\n","//#region [COMPONENTS]\nexport * from './lib/loader/loader-bar-page.component';\nexport * from './lib/loader/loader-bar-page.interface';\nexport * from './lib/loader/loader-config.interface';\nexport * from './lib/loader/loader-bar-page.component';\nexport * from './lib/page/notifications/koala.notification.interface';\nexport * from './lib/page/notifications/notification.component';\nexport * from './lib/page/koala-language.helper';\nexport * from './lib/environments/koalaEnvironment';\nexport * from './lib/services/openid/koala-oauth2-config.interface';\nexport * from './lib/page/koala.user-menu-options.interface';\nexport * from './lib/page/koala-page-pallet-colors.interface';\nexport * from './lib/page/page.component';\nexport * from './lib/page/koala.page.module';\n//#endregion\n\n//#region [ROUTER]\nexport * from './lib/router/koala.parameter-hash-location-stategy';\n//#endregion\n\n//#region [SERVICES]\nexport * from './lib/services/api-requester/koala.api-requester.service';\nexport * from './lib/services/api-requester/koala.api-requester.base';\nexport * from './lib/services/api-requester/factory/koala.response.factory';\nexport * from './lib/services/api-requester/helpers/error/koala.client.error';\nexport * from './lib/services/api-requester/helpers/error/koala.errors.helper';\nexport * from './lib/services/api-requester/helpers/error/koala.not-found.error';\nexport * from './lib/services/api-requester/helpers/error/koala.success.error';\nexport * from './lib/services/api-requester/helpers/error/koala.unhautorized.error';\nexport * from './lib/services/api-requester/helpers/service/koala.request-header.helper';\nexport * from './lib/services/api-requester/koala.api-requester.cache';\nexport * from './lib/services/request/koala.request.service';\nexport * from './lib/services/loader/koala.loader.service';\nexport * from './lib/services/token/koala.token.service';\nexport * from './lib/services/openid/koala.oauth2.service';\nexport * from './lib/services/openid/koala.oauth.config';\n//#endregion\n\nexport * from './lib/ngx-koala.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3.KoalaTokenService","i1.KoalaTokenService","i3.KoalaLoaderService","i4","i5.KoalaOAuth2Service","i6","i7","i11","i12","i15.NotificationComponent","i16.LoaderBarPageComponent","i2.KoalaOAuth2Service"],"mappings":"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"}