@koalarx/ui 13.2.1 → 13.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"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.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 if (!this.refreshTokenInterval) {\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\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 { koala } from \"@koalarx/utils\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { KoalaApiRequesterService } from \"./koala.api-requester.service\";\nimport { KoalaResponseInterface } from \"./helpers/error/koala.errors.helper\";\nimport { KoalaEnvironment } from \"../../environments/koalaEnvironment\";\n\nexport abstract class KoalaApiRequesterBase<EntityType, GetAllType, DataType> {\n\n protected constructor(\n protected koalaService: KoalaApiRequesterService,\n protected endpoint: string,\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.koalaService.request<GetAllType>('get', this.endpoint, this.getParams(filter));\n }\n\n public getById(id: number) {\n return this.koalaService.request<EntityType>('get', this.endpoint + '/' + id);\n }\n\n public getBySomething<Type>(something: any) {\n return this.koalaService.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","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/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","i4","i6","i3.KoalaTokenService","i1.KoalaTokenService","i3.KoalaLoaderService","i5.KoalaOAuth2Service","i7","i8.LoaderBarPageComponent","i11","i12","i14.NotificationComponent","i2.KoalaOAuth2Service"],"mappings":"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"}
1
+ {"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.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 { koala } from \"@koalarx/utils\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { KoalaApiRequesterService } from \"./koala.api-requester.service\";\nimport { KoalaResponseInterface } from \"./helpers/error/koala.errors.helper\";\nimport { KoalaEnvironment } from \"../../environments/koalaEnvironment\";\n\nexport abstract class KoalaApiRequesterBase<EntityType, GetAllType, DataType> {\n\n protected constructor(\n protected koalaService: KoalaApiRequesterService,\n protected endpoint: string,\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.koalaService.request<GetAllType>('get', this.endpoint, this.getParams(filter));\n }\n\n public getById(id: number) {\n return this.koalaService.request<EntityType>('get', this.endpoint + '/' + id);\n }\n\n public getBySomething<Type>(something: any) {\n return this.koalaService.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","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/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","i4","i6","i3.KoalaTokenService","i1.KoalaTokenService","i3.KoalaLoaderService","i5.KoalaOAuth2Service","i7","i8.LoaderBarPageComponent","i11","i12","i14.NotificationComponent","i2.KoalaOAuth2Service"],"mappings":"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"}