codefoxcore 0.0.9 → 0.0.10

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.
@@ -0,0 +1,14 @@
1
+ import { ChangeDetectorRef, DestroyRef, inject } from "@angular/core";
2
+ import { DialogRef } from "./dialog.ref.class";
3
+ import { DialogConfig } from "./dialog.config.class";
4
+ import { DialogService } from "../services";
5
+ export class Dialog {
6
+ constructor() {
7
+ this.ref = inject(DialogRef);
8
+ this.config = inject(DialogConfig);
9
+ this.cdr = inject(ChangeDetectorRef);
10
+ this.destroyRef = inject(DestroyRef);
11
+ this.dialogService = inject(DialogService);
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZWZveGNvcmUvc3JjL2xpYi9jbGFzc2VzL2RpYWxvZy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsTUFBTSxPQUFPLE1BQU07SUFBbkI7UUFDQyxRQUFHLEdBQWMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLFdBQU0sR0FBaUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVDLFFBQUcsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbkQsZUFBVSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERlc3Ryb3lSZWYsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gXCIuL2RpYWxvZy5yZWYuY2xhc3NcIjtcclxuaW1wb3J0IHsgRGlhbG9nQ29uZmlnIH0gZnJvbSBcIi4vZGlhbG9nLmNvbmZpZy5jbGFzc1wiO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGlhbG9nIHtcclxuXHRyZWY6IERpYWxvZ1JlZiA9IGluamVjdChEaWFsb2dSZWYpO1xyXG5cdGNvbmZpZzogRGlhbG9nQ29uZmlnID0gaW5qZWN0KERpYWxvZ0NvbmZpZyk7XHJcblx0Y2RyOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcblx0ZGVzdHJveVJlZjogRGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuXHRkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xyXG59Il19
@@ -1,4 +1,5 @@
1
1
  export * from './dialog.ref.class';
2
2
  export * from './dialog.config.class';
3
3
  export * from './dialog.injector.class';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlZm94Y29yZS9zcmMvbGliL2NsYXNzZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RpYWxvZy5yZWYuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpYWxvZy5jb25maWcuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpYWxvZy5pbmplY3Rvci5jbGFzcyc7XHJcbiJdfQ==
4
+ export * from './dialog.class';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlZm94Y29yZS9zcmMvbGliL2NsYXNzZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlhbG9nLnJlZi5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9nLmNvbmZpZy5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9nLmluamVjdG9yLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaWFsb2cuY2xhc3MnO1xyXG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Subject, filter, Observable, takeUntil, timer, of, tap, throwError } from 'rxjs';
2
- import { isPlatformBrowser, DOCUMENT } from '@angular/common';
3
2
  import * as i0 from '@angular/core';
4
- import { InjectionToken, inject, Injector, PLATFORM_ID, ApplicationRef, createComponent, Injectable, makeEnvironmentProviders } from '@angular/core';
3
+ import { InjectionToken, inject, Injector, PLATFORM_ID, ApplicationRef, createComponent, Injectable, ChangeDetectorRef, DestroyRef, makeEnvironmentProviders } from '@angular/core';
4
+ import { isPlatformBrowser, DOCUMENT } from '@angular/common';
5
5
  import { Title } from '@angular/platform-browser';
6
6
  import { HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';
7
7
  import { catchError } from 'rxjs/operators';
@@ -1226,6 +1226,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1226
1226
  }]
1227
1227
  }] });
1228
1228
 
1229
+ class Dialog {
1230
+ constructor() {
1231
+ this.ref = inject(DialogRef);
1232
+ this.config = inject(DialogConfig);
1233
+ this.cdr = inject(ChangeDetectorRef);
1234
+ this.destroyRef = inject(DestroyRef);
1235
+ this.dialogService = inject(DialogService);
1236
+ }
1237
+ }
1238
+
1229
1239
  class BaseInterceptor {
1230
1240
  skipInterceptor() {
1231
1241
  if (this.type !== null && this.interceptorsService.skip.indexOf(InterceptorType.ALL) !== -1) {
@@ -1382,5 +1392,5 @@ function provideDialogAlertComponent(component) {
1382
1392
  * Generated bundle index. Do not edit.
1383
1393
  */
1384
1394
 
1385
- export { ALERT_CONFIGURATIONS, ALERT_DEFAULT_BUTTON_CONFIGURATION, AcceptValidationMode, ApiService, CONFIRM_CONFIGURATIONS, CookieService, DIALOG_ALERT_COMPONENT, DIALOG_CONFIRM_COMPONENT, DialogConfig, DialogInjector, DialogRef, DialogService, ErrorInterceptor, GOOGLE_MAPS_API_KEY, GoogleMapsService, InterceptorType, LOG_LEVEL, LogLevel, LoggerService, MESSAGE_DEFAULT_CONFIGURATION, MessagePosition, MessageService, MessageSeverity, OPENED_DIALOG_BODY_CLASS, PREDEFINED_DIALOGS, Precheck, PrecheckInterceptor, TokenInterceptor, TokenService, TokenServiceMode, isBrowser, localStorage, provideDialogAlertComponent, provideDialogConfirmComponent, provideGoogleMapsApiKey, provideOpenedDialogBodyClass, providePredefinedDialogs, provideTokenInterceptor, sessionStorage };
1395
+ export { ALERT_CONFIGURATIONS, ALERT_DEFAULT_BUTTON_CONFIGURATION, AcceptValidationMode, ApiService, CONFIRM_CONFIGURATIONS, CookieService, DIALOG_ALERT_COMPONENT, DIALOG_CONFIRM_COMPONENT, Dialog, DialogConfig, DialogInjector, DialogRef, DialogService, ErrorInterceptor, GOOGLE_MAPS_API_KEY, GoogleMapsService, InterceptorType, LOG_LEVEL, LogLevel, LoggerService, MESSAGE_DEFAULT_CONFIGURATION, MessagePosition, MessageService, MessageSeverity, OPENED_DIALOG_BODY_CLASS, PREDEFINED_DIALOGS, Precheck, PrecheckInterceptor, TokenInterceptor, TokenService, TokenServiceMode, isBrowser, localStorage, provideDialogAlertComponent, provideDialogConfirmComponent, provideGoogleMapsApiKey, provideOpenedDialogBodyClass, providePredefinedDialogs, provideTokenInterceptor, sessionStorage };
1386
1396
  //# sourceMappingURL=codefoxcore.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"codefoxcore.mjs","sources":["../../../projects/codefoxcore/src/lib/classes/dialog.ref.class.ts","../../../projects/codefoxcore/src/lib/classes/dialog.config.class.ts","../../../projects/codefoxcore/src/lib/classes/dialog.injector.class.ts","../../../projects/codefoxcore/src/lib/tokens/alert.token.ts","../../../projects/codefoxcore/src/lib/tokens/dialog.token.ts","../../../projects/codefoxcore/src/lib/tokens/confirm.token.ts","../../../projects/codefoxcore/src/lib/interfaces.ts","../../../projects/codefoxcore/src/lib/tokens/message.token.ts","../../../projects/codefoxcore/src/lib/tokens/loglevel.token.ts","../../../projects/codefoxcore/src/lib/tokens/google.maps.token.ts","../../../projects/codefoxcore/src/lib/services/dialog.service.ts","../../../projects/codefoxcore/src/lib/services/message.service.ts","../../../projects/codefoxcore/src/lib/services/logger.service.ts","../../../projects/codefoxcore/src/lib/services/api.service.ts","../../../projects/codefoxcore/src/lib/helpers.ts","../../../projects/codefoxcore/src/lib/services/cookie.service.ts","../../../projects/codefoxcore/src/lib/services/token.service.ts","../../../projects/codefoxcore/src/lib/services/interceptors.service.ts","../../../projects/codefoxcore/src/lib/services/google.maps.service.ts","../../../projects/codefoxcore/src/lib/interceptors/base.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/token.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/precheck.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/error.interceptor.ts","../../../projects/codefoxcore/src/lib/providers.ts","../../../projects/codefoxcore/src/codefoxcore.ts"],"sourcesContent":["import { filter, Observable, Subject, takeUntil } from \"rxjs\";\r\nimport { CfDialogCloseParams } from \"../interfaces\";\r\nimport { MessageService } from \"../services\";\r\nimport { DialogConfig } from \"../classes\";\r\n\r\nexport class DialogRef<T = any> {\r\n\tmessageService: MessageService | null = null;\r\n dialogConfig: DialogConfig | null = null;\r\n\tprivate readonly _onClose: Subject<any> = new Subject<any>();\r\n onClose: Observable<T | undefined> = this._onClose.asObservable();\r\n onCloseValue: Observable<T> = this._onClose.pipe(filter(result => result !== undefined && result !== null));\r\n onCloseOnValue: (value: any) => Observable<any> = (value: any) => this._onClose.pipe(filter(result => result === value));\r\n private readonly _onMessage: Subject<any> = new Subject<any>();\r\n\tonMessage: Observable<any> = this._onMessage.asObservable();\r\n private readonly _onDestroy = new Subject<any>();\r\n onDestroy: Observable<any> = this._onDestroy.asObservable();\r\n\tsavedTitle: string = '';\r\n\ttitle: string | null = null;\r\n\topened: Date = new Date();\r\n\tprivate doClose(result?: any, params: CfDialogCloseParams = {}): void {\r\n\t\tif (params.message !== undefined && this.messageService !== null) {\r\n\t\t\tthis.messageService.show(params.message.title, params.message.message, params.message);\r\n\t\t}\r\n\t\tthis._onClose.next(result); \r\n\t}\r\n close(result?: any, params: CfDialogCloseParams = {}): void { \r\n\t\tif (this.dialogConfig === null || this.dialogConfig.beforeClose === null) {\r\n\t\t\tthis.doClose(result, params);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tif (this.dialogConfig.beforeClose instanceof Promise) {\r\n\t\t\tthis.dialogConfig.beforeClose.then((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t}).catch(() => {});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.dialogConfig.beforeClose instanceof Observable) {\r\n\t\t\tthis.dialogConfig.beforeClose.pipe(takeUntil(this._onClose)).subscribe((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tconst beforeCloseResult: boolean | Observable<boolean> | Promise<boolean> = this.dialogConfig.beforeClose();\r\n\r\n\t\tif (beforeCloseResult instanceof Promise) {\r\n\t\t\tbeforeCloseResult.then((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t}).catch(() => {});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (beforeCloseResult instanceof Observable) {\r\n\t\t\tbeforeCloseResult.pipe(takeUntil(this._onClose)).subscribe((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (beforeCloseResult) {\r\n\t\t\tthis.doClose(result, params);\r\n\t\t}\r\n\t}\r\n forceClose(result?: any): void {\r\n this.doClose(result);\r\n }\r\n\tmessage(message: any): void { this._onMessage.next(message); }\r\n destroy(): void { this._onDestroy.next(undefined); }\r\n}\r\n","import { ResolveData } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DialogConfiguration } from \"../interfaces\";\r\n\r\nexport class DialogConfig implements DialogConfiguration {\r\n showCloseIcon: boolean = true;\r\n\tbeforeClose: null | (() => boolean | Observable<boolean> | Promise<boolean>) | Observable<boolean> | Promise<boolean> = null;\r\n\tignoreKeyUp: boolean = false;\r\n data: {[key: (string | number)]: any} = {};\r\n noPadding: boolean = false;\r\n\tkeepActiveElement: boolean = false;\r\n\tcontainerClasses: string[] = [];\r\n\tdialogClasses: string[] = [];\r\n resolve: ResolveData = {};\r\n\ttitle: string | null = null;\r\n contentElement: Element | null = null;\r\n single: boolean = false;\r\n width: string | null = null;\r\n\theight: string | null = null;\r\n getData(key: string | number, defaultOnUndefined: any = null): any {\r\n return this.data[key] !== undefined ? this.data[key] : defaultOnUndefined;\r\n }\r\n}\r\n","import { InjectionToken, Injector, Type } from \"@angular/core\";\r\n\r\nexport class DialogInjector implements Injector {\r\n constructor(private _parentInjector: Injector, private _additionalTokens: WeakMap<any, any>) { }\r\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: {}): T;\r\n get(token: any, notFoundValue?: any): any;\r\n get(token: any, notFoundValue?: any, _?: any): any {\r\n const value = this._additionalTokens.get(token);\r\n if (value) { return value; }\r\n return this._parentInjector.get<any>(token, notFoundValue);\r\n }\r\n}","import { InjectionToken } from \"@angular/core\";\r\nimport { AlertButtonConfiguration, AlertConfiguration } from \"../interfaces\";\r\n\r\nexport const ALERT_DEFAULT_BUTTON_CONFIGURATION: InjectionToken<AlertButtonConfiguration> = new InjectionToken('Alert default button', {\r\n\tfactory: (): AlertButtonConfiguration => {\r\n\t\treturn {\r\n\t\t\tlabel: 'alert.ok',\r\n\t\t\tseverity: 'success',\r\n\t\t\tcallback: ({ dialogRef }) => {\r\n\t\t\t\tdialogRef.close();\r\n\t\t\t},\r\n\t\t\tfocus: true,\r\n\t\t\ttranslateLabel: true\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const ALERT_CONFIGURATIONS: InjectionToken<{[key: string]: AlertConfiguration}> = new InjectionToken('Alert configurations predefined', {\r\n factory: (): {[key: string]: AlertConfiguration} => {\r\n return {};\r\n }\r\n});\r\n","import { InjectionToken, Type } from \"@angular/core\";\r\nimport { PredefinedDialogs } from \"../interfaces\";\r\n\r\nexport const PREDEFINED_DIALOGS: InjectionToken<PredefinedDialogs> = new InjectionToken('Predefined dialogs', {\r\n factory: (): PredefinedDialogs => {\r\n return {};\r\n }\r\n});\r\n\r\nexport const OPENED_DIALOG_BODY_CLASS: InjectionToken<string | null> = new InjectionToken('Opened dialog body class', {\r\n factory: (): string | null => {\r\n return null;\r\n }\r\n});\r\n\r\nexport const DIALOG_CONFIRM_COMPONENT: InjectionToken<Type<any> | null> = new InjectionToken('Dialog confirm component', {\r\n\tfactory: (): Type<any> | null => {\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\nexport const DIALOG_ALERT_COMPONENT: InjectionToken<Type<any> | null> = new InjectionToken('Dialog alert component', {\r\n\tfactory: (): Type<any> | null => {\r\n\t\treturn null;\r\n\t}\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { ConfirmConfiguration } from \"../interfaces\";\r\n\r\nexport const CONFIRM_CONFIGURATIONS: InjectionToken<{[key: string]: ConfirmConfiguration}> = new InjectionToken('Confirm configurations predefined', {\r\n factory: (): {[key: string]: ConfirmConfiguration} => {\r\n return {};\r\n }\r\n});\r\n","import { ComponentRef, Type } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DialogRef } from \"./classes/dialog.ref.class\";\r\n\r\nexport interface DialogComponentRefContainer {\r\n componentRef: ComponentRef<any>;\r\n container: HTMLDivElement;\r\n\topenIndex: number;\r\n}\r\n\r\nexport type PredefinedDialogs = {[key: string]: (() => Promise<Type<any>>) | {component: () => Promise<Type<any>>, configuration: DialogConfiguration}};\r\n\r\nexport interface DialogConfiguration {\r\n showCloseIcon?: boolean;\r\n\tbeforeClose?: CfDialogConfigurationBeforeClose;\r\n\tignoreKeyUp?: boolean;\r\n data?: any;\r\n noPadding?: boolean;\r\n\tkeepActiveElement?: boolean;\r\n\tcontainerClasses?: string[];\r\n\tdialogClasses?: string[];\r\n\ttitle?: string | null;\r\n contentElement?: Element | null;\r\n single?: boolean;\r\n width?: string | null;\r\n\theight?: string | null;\r\n}\r\n\r\nexport type CfDialogConfigurationBeforeClose = null | (() => boolean | Observable<boolean> | Promise<boolean>) | Observable<boolean> | Promise<boolean>;\r\n\r\nexport interface ConfirmConfiguration {\r\n title: string;\r\n text: string;\r\n acceptText: string;\r\n declineText: string;\r\n\thideDeclineButton?: boolean;\r\n switchButtonColors?: boolean;\r\n acceptTimeout?: number;\r\n acceptValidationText?: string;\r\n acceptValidationMode?: AcceptValidationMode;\r\n acceptValidationLabel?: string;\r\n}\r\n\r\nexport interface AlertConfiguration {\r\n title: string;\r\n text: string;\r\n\tshowCloseIcon?: boolean;\r\n\tbutton?: Partial<AlertButtonConfiguration>;\r\n}\r\n\r\nexport enum AcceptValidationMode {\r\n PATTERN = 'PATTERN',\r\n TEXT = 'TEXT'\r\n}\r\n\r\nexport interface AlertButtonConfiguration {\r\n\tlabel: string;\r\n\tseverity: string;\r\n\tcallback: (params: {dialogRef: DialogRef}) => void;\r\n\ttranslateLabel: boolean;\r\n\tfocus: boolean;\r\n}\r\n\r\nexport interface CfDialogCloseParams {\r\n message?: MessagePartial;\r\n}\r\n\r\nexport interface MessagePartial extends Partial<MessageConfiguration> {\r\n title: string;\r\n message: string;\r\n}\r\n\r\nexport interface MessageConfiguration {\r\n closeable: boolean;\r\n position: MessagePosition;\r\n lifetime: number | null;\r\n severity: MessageSeverity;\r\n\tkeepOnHover: boolean;\r\n}\r\nexport enum MessagePosition {\r\n TOP = 'top',\r\n BOTTOM = 'bottom'\r\n}\r\n\r\nexport enum MessageSeverity {\r\n SUCCESS = 'success',\r\n WARNING = 'warning',\r\n DANGER = 'danger',\r\n INFO = 'info'\r\n}\r\n\r\nexport interface LoadingConfiguration {\r\n title: string;\r\n text: string;\r\n\tloadingIcon?: string;\r\n iconSize?: number;\r\n}\r\n\r\nexport interface ModalWithButtonsConfiguration {\r\n title: string;\r\n text: string;\r\n\tshowCloseIcon?: boolean;\r\n\tbuttons: ButtonConfiguration[];\r\n}\r\n\r\nexport interface ButtonConfiguration {\r\n\tlabel: string;\r\n\tseverity: string;\r\n\tcallback?: (params: {dialogRef: DialogRef}) => void;\r\n\trouterLink?: any;\r\n\tfocus?: boolean;\r\n\tpermission?: string | string[];\r\n\ttranslateLabel?: boolean;\r\n}\r\n\r\nexport interface Message extends MessageConfiguration {\r\n title: string;\r\n message: string;\r\n}\r\n\r\nexport enum LogLevel {\r\n All = 0,\r\n Debug = 1,\r\n Info = 2,\r\n Warn = 3,\r\n Error = 4,\r\n Fatal = 5,\r\n Off = 6\r\n}\r\n\r\nexport enum TokenServiceMode {\r\n LOCALSTORAGE = 0,\r\n SESSIONSTORAGE = 1,\r\n COOKIE = 2\r\n}\r\n\r\nexport enum InterceptorType {\r\n ALL = 'ALL',\r\n ERROR = 'ERROR',\r\n LOADER = 'LOADER',\r\n MOCK = 'MOCK',\r\n TOKEN = 'TOKEN',\r\n PRECHECK = 'PRECHECK',\r\n LOCK = 'LOCK',\r\n\tREQUESTID = 'REQUESTID'\r\n}\r\n\r\nexport enum Precheck {\r\n ERROR = \"ERROR\",\r\n WARNING = \"WARNING\"\r\n}\r\n\r\nexport type PrecheckNullable = Precheck | null;\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { MessageConfiguration, MessagePosition, MessageSeverity } from \"../interfaces\";\r\n\r\nexport const MESSAGE_DEFAULT_CONFIGURATION: InjectionToken<MessageConfiguration> = new InjectionToken('Message default configuration', {\r\n\tfactory: (): MessageConfiguration => {\r\n\t\treturn {\r\n\t\t\tcloseable: true,\r\n\t\t\tlifetime: 3000,\r\n\t\t\tposition: MessagePosition.TOP,\r\n\t\t\tseverity: MessageSeverity.SUCCESS,\r\n\t\t\tkeepOnHover: false\r\n\t\t};\r\n\t}\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { LogLevel } from \"../interfaces\";\r\n\r\nexport const LOG_LEVEL: InjectionToken<LogLevel> = new InjectionToken('Log level', {\r\n factory: (): LogLevel => {\r\n return LogLevel.All;\r\n }\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const GOOGLE_MAPS_API_KEY: InjectionToken<string | null> = new InjectionToken('Google Maps Api Key', {\r\n factory: (): string | null => {\r\n return null;\r\n }\r\n});\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport {\r\n ApplicationRef,\r\n ComponentRef,\r\n createComponent,\r\n EmbeddedViewRef,\r\n inject,\r\n Injectable,\r\n Injector,\r\n PLATFORM_ID,\r\n Type\r\n} from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { filter, Subject, Subscription, throwError } from 'rxjs';\r\nimport { AlertConfiguration, DialogConfiguration, ConfirmConfiguration, LoadingConfiguration, ModalWithButtonsConfiguration, PredefinedDialogs, DialogComponentRefContainer } from '../interfaces';\r\nimport { DialogConfig, DialogInjector, DialogRef } from '../classes';\r\nimport { ALERT_CONFIGURATIONS, PREDEFINED_DIALOGS, CONFIRM_CONFIGURATIONS, OPENED_DIALOG_BODY_CLASS, DIALOG_CONFIRM_COMPONENT, DIALOG_ALERT_COMPONENT } from '../tokens';\r\nimport { MessageService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogService {\r\n\r\n\tprivate injector: Injector = inject(Injector);\r\n\tprivate predefinedConfirmConfigurations: {[key: string]: ConfirmConfiguration} = inject(CONFIRM_CONFIGURATIONS);\r\n\tprivate predefinedAlertConfigurations: {[key: string]: AlertConfiguration} = inject(ALERT_CONFIGURATIONS);\r\n\tprivate predefinedDialogs: PredefinedDialogs = inject(PREDEFINED_DIALOGS);\r\n\tprivate openedDialogBodyClass: string | null = inject(OPENED_DIALOG_BODY_CLASS);\r\n\tprivate dialogConfirmComponent: Type<any> | null = inject(DIALOG_CONFIRM_COMPONENT);\r\n\tprivate dialogAlertComponent: Type<any> | null = inject(DIALOG_ALERT_COMPONENT);\r\n\r\n\ttitle: Title = inject(Title);\r\n\tmessageService: MessageService = inject(MessageService);\r\n\r\n\tdialogs: Map<DialogRef, DialogComponentRefContainer> = new Map();\r\n\tdialogCountChanged: Subject<number> = new Subject();\r\n\topenIndex: number = 1;\r\n\tplatformId: Object = inject(PLATFORM_ID);\r\n\r\n constructor() {\r\n\t\tif (isPlatformBrowser(this.platformId)) {\r\n\t\t\tdocument.addEventListener(\"keyup\", (keyboardEvent: KeyboardEvent) => {\r\n\t\t\t\tif (keyboardEvent.key.toLowerCase() === 'escape') {\r\n\t\t\t\t\tlet lastOpenIndex: number = 0;\r\n\t\t\t\t\tlet lastOpenedDialogRef: DialogRef | null = null;\r\n\t\t\t\t\tfor (const [dialogRef, cfDialogComponentRefContainer] of this.dialogs.entries()) {\r\n\t\t\t\t\t\tif (cfDialogComponentRefContainer.openIndex > lastOpenIndex) {\r\n\t\t\t\t\t\t\tlastOpenIndex = cfDialogComponentRefContainer.openIndex;\r\n\t\t\t\t\t\t\tlastOpenedDialogRef = dialogRef;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tif (lastOpenedDialogRef !== null && lastOpenedDialogRef.dialogConfig !== null) {\r\n\t\t\t\t\t\tif (lastOpenedDialogRef.dialogConfig.ignoreKeyUp || document.activeElement instanceof HTMLInputElement || document.activeElement instanceof HTMLTextAreaElement) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tlastOpenedDialogRef.close();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.dialogCountChanged.subscribe((size: number) => {\r\n\t\t\tif (isPlatformBrowser(this.platformId) && this.openedDialogBodyClass !== null) {\r\n\t\t\t\tif (size === 0) {\r\n\t\t\t\t\tdocument.body.classList.remove(this.openedDialogBodyClass);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdocument.body.classList.add(this.openedDialogBodyClass);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t} \r\n\r\n\tasync openPredefined<T = any>(name: string, dialogConfiguration: DialogConfiguration = {}): Promise<DialogRef<T>> {\r\n\t\tif (this.predefinedDialogs[name] === undefined) {\r\n\t\t\tthrow Error('Dialog with name \"' + name + '\" not found!');\r\n\t\t}\r\n\t\tconst predefinedDialog = this.predefinedDialogs[name];\r\n\t\tif (typeof predefinedDialog === 'function') {\r\n\t\t\treturn this.openImport(predefinedDialog, dialogConfiguration);\r\n\t\t}\r\n\t\treturn this.openImport(predefinedDialog.component, {...predefinedDialog.configuration, ...dialogConfiguration});\r\n\t}\r\n\r\n\tasync openImport<T = any>(component: () => Promise<Type<any>>, dialogConfiguration: DialogConfiguration = {}): Promise<DialogRef<T>> {\r\n\t\treturn new Promise(async (resolve) => {\r\n\t\t\tresolve(this.open<T>(await component(), dialogConfiguration));\r\n\t\t});\r\n\t}\r\n\r\n open<T = any>(component: Type<any>, dialogConfiguration: DialogConfiguration = {}): DialogRef<T> {\r\n\r\n\t\tfor (let dialog of this.dialogs.entries()) {\r\n\t\t\tif (\r\n\t\t\t\t(dialogConfiguration.single && dialog[1].componentRef.componentType.name === component.name) ||\r\n\t\t\t\t(dialog[0].dialogConfig !== null && dialog[0].dialogConfig.single && dialog[1].componentRef.componentType.name === component.name)\r\n\t\t\t) {\r\n\t\t\t\treturn dialog[0];\r\n\t\t\t}\r\n\t\t}\r\n\r\n const dialogConfig: DialogConfig = this.createDialogConfig(dialogConfiguration);\r\n\r\n\t\tif (!dialogConfig.keepActiveElement) {\r\n\t\t\tif (document.activeElement instanceof HTMLElement) {\r\n\t\t\t\tdocument.activeElement.blur();\r\n\t\t\t}\r\n\t\t}\r\n\r\n const dialogRef: DialogRef<T> = this.appendToBody(component, dialogConfig);\r\n\t\tdialogRef.messageService = this.messageService;\r\n\t\tdialogRef.dialogConfig = dialogConfig;\r\n\r\n\t\tthis.changeAndStoreTitle(dialogRef);\r\n\r\n return dialogRef;\r\n }\r\n\r\n\tchangeAndStoreTitle(dialogRef: DialogRef): void {\r\n\t\tdialogRef.savedTitle = this.title.getTitle();\r\n\t\tif (dialogRef.dialogConfig !== null && dialogRef.dialogConfig.title !== null) {\r\n\t\t\tthis.title.setTitle(dialogRef.dialogConfig.title);\r\n\t\t}\r\n\t}\r\n\r\n createDialogConfig(dialogConfiguration: DialogConfiguration): DialogConfig {\r\n const dialogConfig: DialogConfig = new DialogConfig();\r\n if (dialogConfiguration.showCloseIcon !== undefined) {\r\n dialogConfig.showCloseIcon = dialogConfiguration.showCloseIcon;\r\n }\r\n\t\tif (dialogConfiguration.beforeClose !== undefined) {\r\n dialogConfig.beforeClose = dialogConfiguration.beforeClose;\r\n }\r\n\t\tif (dialogConfiguration.ignoreKeyUp !== undefined) {\r\n dialogConfig.ignoreKeyUp = dialogConfiguration.ignoreKeyUp;\r\n }\r\n if (dialogConfiguration.data !== undefined) {\r\n dialogConfig.data = dialogConfiguration.data;\r\n }\r\n if (dialogConfiguration.noPadding !== undefined) {\r\n dialogConfig.noPadding = dialogConfiguration.noPadding;\r\n }\r\n\t\tif (dialogConfiguration.keepActiveElement !== undefined) {\r\n\t\t\tdialogConfig.keepActiveElement = dialogConfiguration.keepActiveElement;\r\n\t\t}\r\n\t\tif (dialogConfiguration.containerClasses !== undefined) {\r\n\t\t\tdialogConfig.containerClasses = dialogConfiguration.containerClasses;\r\n\t\t}\r\n\t\tif (dialogConfiguration.dialogClasses !== undefined) {\r\n\t\t\tdialogConfig.dialogClasses = dialogConfiguration.dialogClasses;\r\n\t\t}\r\n\t\tif (dialogConfiguration.title !== undefined) {\r\n\t\t\tdialogConfig.title = dialogConfiguration.title;\r\n\t\t}\r\n\t\tif (dialogConfiguration.contentElement !== undefined) {\r\n\t\t\tdialogConfig.contentElement = dialogConfiguration.contentElement;\r\n\t\t}\r\n\t\tif (dialogConfiguration.single !== undefined) {\r\n\t\t\tdialogConfig.single = dialogConfiguration.single;\r\n\t\t}\r\n\t\tif (dialogConfiguration.width !== undefined) {\r\n\t\t\tdialogConfig.width = dialogConfiguration.width;\r\n\t\t}\r\n\t\tif (dialogConfiguration.height !== undefined) {\r\n\t\t\tdialogConfig.height = dialogConfiguration.height;\r\n\t\t}\r\n return dialogConfig;\r\n }\r\n\r\n appendToBody(component: Type<any>, dialogConfig: DialogConfig): DialogRef {\r\n\r\n\t\tconst appRef: ApplicationRef = this.injector.get(ApplicationRef);\r\n\r\n // CREATE INJECTION TOKENS\r\n const tokens: WeakMap<any, any> = new WeakMap();\r\n\r\n // CREATE DIALOG CONFIGURATION CLASS\r\n tokens.set(DialogConfig, dialogConfig);\r\n\r\n // CREATE DIALOG REFERENCE CLASS\r\n const dialogRef: DialogRef = new DialogRef();\r\n tokens.set(DialogRef, dialogRef);\r\n\r\n // LISTEN ON DIALOG CLOSE\r\n const closeSub: Subscription = dialogRef.onClose.subscribe(() => {\r\n this.removeFromBody(dialogRef);\r\n closeSub.unsubscribe();\r\n });\r\n\r\n // CREATE COMPONENT REF\r\n const componentRef: ComponentRef<any> = createComponent(component, {\r\n\t\t\tenvironmentInjector: appRef.injector,\r\n\t\t\telementInjector: new DialogInjector(this.injector, tokens)\r\n\t\t});\r\n\r\n // ATTACH VIEW TO ANGULAR\r\n appRef.attachView(componentRef.hostView);\r\n\r\n // CREATE DIALOG CONTAINER ELEMENT\r\n const dialogContainer: HTMLDivElement = document.createElement('div');\r\n dialogContainer.classList.add('cf-dialog-container');\r\n\t\tif (dialogConfig.containerClasses.length > 0) {\r\n\t\t\tdialogContainer.classList.add(...dialogConfig.containerClasses);\r\n\t\t}\r\n\r\n\t\t// APPEND DOM ELEMENT TO DIALOG\r\n\t\tconst childDomElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n\t\tchildDomElem.classList.add('cf-dialog');\r\n\t\t\r\n\t\tif (dialogConfig.width !== null) {\r\n\t\t\tchildDomElem.style.width = dialogConfig.width;\r\n\t\t}\r\n\t\tif (dialogConfig.height !== null) {\r\n\t\t\tchildDomElem.style.height = dialogConfig.height;\r\n\t\t}\r\n\t\tif (dialogConfig.noPadding) {\r\n childDomElem.classList.add('no-padding');\r\n }\r\n\t\tif (dialogConfig.dialogClasses.length > 0) {\r\n\t\t\tchildDomElem.classList.add(...dialogConfig.dialogClasses);\r\n\t\t}\r\n\r\n\t\tif (dialogConfig.contentElement !== null) {\r\n\t\t\tchildDomElem.appendChild(dialogConfig.contentElement);\r\n\t\t}\r\n\r\n\t\tdialogContainer.appendChild(childDomElem);\r\n\r\n // CLOSEABLE? APPEND BUTTON\r\n if (dialogConfig.showCloseIcon) {\r\n const closeElement: HTMLDivElement = document.createElement('div');\r\n closeElement.classList.add(...['cf-dialog-close', 'remixicon', 'close-line']);\r\n closeElement.onclick = () => {\r\n dialogRef.close();\r\n };\r\n childDomElem.appendChild(closeElement);\r\n }\r\n\r\n // APPEND DIALOG CONTAINER TO BODY\r\n document.body.appendChild(dialogContainer);\r\n\r\n this.dialogs.set(dialogRef, {\r\n componentRef,\r\n container: dialogContainer,\r\n\t\t\topenIndex: this.openIndex \r\n });\r\n\t\tthis.dialogCountChanged.next(this.dialogs.size);\r\n\r\n\t\tthis.openIndex++;\r\n\r\n return dialogRef;\r\n }\r\n\r\n removeFromBody(dialogRef: DialogRef): void {\r\n\r\n\t\tconst appRef: ApplicationRef = this.injector.get(ApplicationRef);\r\n\r\n if (!dialogRef || !this.dialogs.has(dialogRef)) {\r\n return;\r\n }\r\n const dialogComponentRefContainer: DialogComponentRefContainer | undefined = this.dialogs.get(dialogRef);\r\n if (dialogComponentRefContainer == undefined) {\r\n return;\r\n }\r\n\t\t\r\n appRef.detachView(dialogComponentRefContainer.componentRef.hostView);\r\n\r\n if (dialogComponentRefContainer.container !== null) {\r\n dialogComponentRefContainer.container.remove();\r\n }\r\n dialogComponentRefContainer.componentRef.destroy();\r\n this.dialogs.delete(dialogRef);\r\n\t\tthis.dialogCountChanged.next(this.dialogs.size);\r\n\r\n\t\tif (this.dialogs.size === 0) {\r\n\t\t\tthis.openIndex = 1;\r\n\t\t}\r\n\r\n\t\t// Restore title\r\n\t\tif (this.dialogs.size === 0) {\r\n\t\t\tthis.title.setTitle(dialogRef.savedTitle);\r\n\t\t} else {\r\n\t\t\tlet latestOpenedDialogRef: DialogRef | null = null;\r\n\t\t\tthis.dialogs.forEach((_, dialogRef: DialogRef) => {\r\n\t\t\t\tif (latestOpenedDialogRef === null) {\r\n\t\t\t\t\tlatestOpenedDialogRef = dialogRef;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (latestOpenedDialogRef.opened < dialogRef.opened) {\r\n\t\t\t\t\t\tlatestOpenedDialogRef = dialogRef;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (latestOpenedDialogRef !== null) {\r\n\t\t\t\t//this.title.setTitle(latestOpenedDialogRef.savedTitle);\r\n\t\t\t} else {\r\n\t\t\t\tthis.title.setTitle(dialogRef.savedTitle);\r\n\t\t\t}\r\n\t\t}\r\n }\r\n\r\n\tconfirm(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): Promise<boolean> {\r\n\t\tif (typeof configuration === 'string') {\r\n\t\t\tconst predefinedConfirmConfiguration: ConfirmConfiguration | undefined = this.predefinedConfirmConfigurations[configuration];\r\n\t\t\tif (predefinedConfirmConfiguration === undefined) {\r\n\t\t\t\tthrow new Error('Predefined confirm configuration not found for: ' + configuration);\r\n\t\t\t}\r\n\t\t\tconfiguration = predefinedConfirmConfiguration;\r\n\t\t}\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.open(component, {\r\n\t\t\t\t...dialogConfiguration,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tconfiguration\r\n\t\t\t\t},\r\n\t\t\t\tignoreKeyUp: true,\r\n\t\t\t\tshowCloseIcon: false\r\n\t\t\t}).onClose.pipe(filter(value => value !== undefined)).subscribe((accepted: boolean) => {\r\n\t\t\t\tif (accepted) {\r\n\t\t\t\t\tresolve(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treject(true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n async confirmAsync(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n return await new Promise((resolve) => {\r\n this.confirm(configuration, dialogConfiguration, component).then(() => {\r\n resolve(true);\r\n }).catch(() => {\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\t\r\n\tconfirmAccept(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tthis.confirm(configuration, dialogConfiguration, component).then(() => resolve(true)).catch(() => {});\r\n\t\t});\r\n\t}\r\n\t\r\n\tconfirmDecline(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tthis.confirm(configuration, dialogConfiguration, component).then(() => {}).catch(() => resolve(true));\r\n\t\t});\r\n\t}\r\n\r\n\tshowLoading(\r\n\t\tconfiguration: LoadingConfiguration,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): DialogRef {\r\n\t\treturn this.open(component, {\r\n\t\t\t...dialogConfiguration,\r\n\t\t\tshowCloseIcon: false,\r\n\t\t\tignoreKeyUp: true,\r\n\t\t\tdata: {\r\n\t\t\t\tconfiguration\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tshowAlert(\r\n\t\tconfiguration: AlertConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogAlertComponent\r\n\t): Promise<void> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for alert dialog!');\r\n\t\t}\r\n\t\tif (typeof configuration === 'string') {\r\n\t\t\tconst predefinedAlertConfiguration: AlertConfiguration | undefined = this.predefinedAlertConfigurations[configuration];\r\n\t\t\tif (predefinedAlertConfiguration === undefined) {\r\n\t\t\t\tthrow new Error('Predefined alert configuration not found for: ' + configuration);\r\n\t\t\t}\r\n\t\t\tconfiguration = predefinedAlertConfiguration;\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\treturn this.open(component, {\r\n\t\t\t\t...dialogConfiguration,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tconfiguration\r\n\t\t\t\t},\r\n\t\t\t\tignoreKeyUp: true,\r\n\t\t\t\tshowCloseIcon: false\r\n\t\t\t}).onClose.subscribe(() => {\r\n\t\t\t\tresolve();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tshowModalWithButtons(\r\n\t\tconfiguration: ModalWithButtonsConfiguration,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): DialogRef {\r\n\t\treturn this.open(component, {\r\n\t\t\t...dialogConfiguration,\r\n\t\t\tdata: {\r\n\t\t\t\tconfiguration\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { Subject, Subscription, timer } from 'rxjs';\r\nimport { Message, MessageConfiguration, MessageSeverity } from '../interfaces';\r\nimport { MESSAGE_DEFAULT_CONFIGURATION } from '../tokens';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class MessageService {\r\n\r\n /**\r\n * Default configuration\r\n * \r\n * Can be changed if you overwrite it or use the `MESSAGE_DEFAULT_CONFIGURATION` InjectionToken\r\n */\r\n public defaultConfiguration: MessageConfiguration = inject(MESSAGE_DEFAULT_CONFIGURATION);\r\n \r\n /**\r\n * Message subject\r\n */\r\n private messageSubject: Subject<Message> = new Subject();\r\n\r\n /**\r\n * Show\r\n * \r\n * Displays message with the given configuration\r\n * \r\n * @param messageConfiguration `Partial<MessageConfiguration>`\r\n */\r\n public show(title: string, message: string, configuration?: Partial<MessageConfiguration>): void {\r\n this.messageSubject.next({\r\n\t\t\t...this.defaultConfiguration,\r\n ...configuration,\r\n\t\t\ttitle,\r\n\t\t\tmessage\r\n });\r\n }\r\n\r\n /**\r\n * Show success message\r\n * \r\n * Display a message with default success severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showSuccessMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.SUCCESS\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show danger message\r\n * \r\n * Display a message with default danger severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showDangerMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.DANGER,\r\n\t\t\tkeepOnHover: true\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show warning message\r\n * \r\n * Display a message with default warning severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showWarningMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.WARNING\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show info message\r\n * \r\n * Display a message with default info severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showInfoMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.INFO\r\n\t\t});\r\n\t}\r\n\r\n private showMessage(message: Message): void {\r\n let container: HTMLElement | null = document.getElementById('cf-toasts-' + message.position + '-container');\r\n if (container === null) {\r\n container = document.createElement('div');\r\n container.id = 'cf-toasts-' + message.position + '-container';\r\n document.body.appendChild(container);\r\n }\r\n\r\n const div: HTMLElement = this.createMessageHtmlElement(message);\r\n\r\n container.appendChild(div);\r\n\r\n if (message.lifetime !== null) {\r\n\r\n\t\t\tlet disposeTimerSubscription: Subscription | null = timer(message.lifetime + 500).subscribe(() => {\r\n\t\t\t\tthis.hideMessage(div);\r\n\t\t\t});\r\n\r\n\t\t\tif (message.keepOnHover) {\r\n\t\t\t\tdiv.addEventListener('mouseenter', () => {\r\n\t\t\t\t\tif (disposeTimerSubscription !== null) {\r\n\t\t\t\t\t\tdisposeTimerSubscription.unsubscribe();\r\n\t\t\t\t\t\tdisposeTimerSubscription = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n }\r\n }\r\n\r\n private createMessageHtmlElement(message: Message): HTMLElement {\r\n const div: HTMLElement = document.createElement('div');\r\n div.classList.add('cf-toast', 'cf-' + message.severity + '-toast');\r\n const titleDiv: HTMLElement = document.createElement('div');\r\n titleDiv.classList.add('cf-toast-title');\r\n titleDiv.innerText = message.title;\r\n const messageDiv: HTMLElement = document.createElement('div');\r\n messageDiv.classList.add('cf-toast-message');\r\n messageDiv.innerText = message.message;\r\n div.appendChild(titleDiv);\r\n div.appendChild(messageDiv);\r\n if (message.closeable) {\r\n const closeIcon: HTMLElement = document.createElement('i');\r\n closeIcon.classList.add('close-icon', 'remixicon', 'close-line');\r\n closeIcon.onclick = () => {\r\n this.hideMessage(div, true);\r\n };\r\n div.appendChild(closeIcon);\r\n }\r\n return div;\r\n }\r\n\r\n private hideMessage(messageElement: HTMLElement, forceClose: boolean = false): void {\r\n messageElement.classList.add('hidden-toast');\r\n\r\n let remainOpen = false;\r\n messageElement.addEventListener('mouseenter', (() => {\r\n remainOpen = true;\r\n }));\r\n\r\n timer(500).subscribe(() => {\r\n if (remainOpen && !forceClose) {\r\n messageElement.classList.remove('hidden-toast');\r\n return;\r\n }\r\n messageElement.removeEventListener('mouseenter', (() => {}));\r\n messageElement.remove();\r\n });\r\n }\r\n\r\n constructor() {\r\n this.messageSubject.subscribe((message: Message) => {\r\n this.showMessage(message);\r\n });\r\n }\r\n\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { LogLevel } from '../interfaces';\r\nimport { LOG_LEVEL } from '../tokens';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class LoggerService {\r\n\r\n\tprivate _logLevel: LogLevel | null = inject(LOG_LEVEL);\r\n\r\n\tprivate logLevelColors: string[] = [\r\n\t\t'',\r\n\t\t'background-color: #D2BDF3; padding: 5px 10px;',\r\n\t\t'background-color: #A2DDFF; padding: 5px 10px;',\r\n\t\t'background-color: #FFD5C5; padding: 5px 10px;',\r\n\t\t'background-color: #EA4331; color: #FFFFFF; padding: 5px 10px;',\r\n\t\t'background-color: #F71900; color: #FFFFFF; padding: 5px 10px;',\r\n\t\t''\r\n\t];\r\n\r\n\tpublic debug(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Debug, group });\r\n\t}\r\n\r\n\tpublic info(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Info, group });\r\n\t}\r\n\r\n\tpublic warn(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Warn, group });\r\n\t}\r\n\r\n\tpublic error(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Error, group });\r\n\t}\r\n\r\n\tpublic fatal(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Fatal, group });\r\n\t}\r\n\r\n\tpublic groupEnd(): void {\r\n\t\tconsole.groupEnd();\r\n\t}\r\n\r\n\tprivate log(configuration: {\r\n\t\tlog: any,\r\n\t\tlogLevel: LogLevel,\r\n\t\tgroup: boolean\r\n\t}): void {\r\n\t\tif (this._logLevel === null || this._logLevel === LogLevel.Off || this._logLevel > configuration.logLevel) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (configuration.group) {\r\n\t\t\tconsole.group(configuration.log);\r\n\t\t} else {\r\n\t\t\tconsole.log('%c' + configuration.log, this.logLevelColors[configuration.logLevel]);\r\n\t\t}\r\n\t}\r\n\r\n\tset logLevel(logLevel: LogLevel | null) {\r\n\t\tthis._logLevel = logLevel;\r\n\t}\r\n\r\n\tget logLevel(): LogLevel | null {\r\n\t\treturn this._logLevel;\r\n\t}\r\n}\r\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { LoggerService } from \"./logger.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ApiService {\r\n\r\n\thttpClient: HttpClient = inject(HttpClient);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\tprivate _apiBaseUrl: string | null = null;\r\n\r\n\tpublic post<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.post<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic get<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.get<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic getFileArrayBuffer(endPoint: (string|number)[]): Observable<ArrayBuffer> {\r\n\t\treturn this.httpClient.get(this.generateUrl(endPoint), {\r\n\t\t\tresponseType: 'arraybuffer'\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getFileText(endPoint: (string|number)[]): Observable<string> {\r\n\t\treturn this.httpClient.get(this.generateUrl(endPoint), {\r\n\t\t\tresponseType: 'text'\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getWithHttpParams<T>(endPoint: (string|number)[], params: HttpParams | null = null): Observable<any> {\r\n\t\tif (params === null) {\r\n\t\t\treturn this.get(endPoint);\r\n\t\t} else {\r\n\t\t\treturn this.httpClient.get<T>(this.generateUrl(endPoint), {\r\n\t\t\t\tparams\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic delete<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.delete<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic patch<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.patch<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic head<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.head<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic options<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.options<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic put<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.put<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic generateUrl(endPoint: (string|number)[]): string {\r\n\t\tif (this._apiBaseUrl === null) {\r\n\t\t\tthrow new Error('No API base url set in generateUrl call!');\r\n\t\t}\r\n if (endPoint.length === 0) {\r\n return this._apiBaseUrl;\r\n }\r\n\t\tif (typeof endPoint[0] === 'string' && endPoint[0].startsWith('#')) {\r\n endPoint[0] = endPoint[0].slice(1);\r\n\t\t\treturn endPoint.map((v, i) => i === 0 ? v : encodeURIComponent(v)).join('/');\r\n\t\t}\r\n\t\treturn [this._apiBaseUrl, ...endPoint.map((v) => encodeURIComponent(v))].join('/');\r\n\t}\r\n\r\n\tset apiBaseUrl(apiBaseUrl: string) {\r\n\t\tthis.loggerService.info('Api Service base url set to: ' + apiBaseUrl);\r\n\t\tif (apiBaseUrl[apiBaseUrl.length - 1] === '/') {\r\n\t\t\tapiBaseUrl = apiBaseUrl.slice(0, apiBaseUrl.length - 1);\r\n\t\t}\r\n\t\tthis._apiBaseUrl = apiBaseUrl;\r\n\t}\r\n\r\n\tget apiBaseUrl(): string | null {\r\n\t\treturn this._apiBaseUrl;\r\n\t}\r\n}\r\n","import { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\r\nimport { inject, PLATFORM_ID } from \"@angular/core\";\r\n\r\nexport function isBrowser(): boolean {\r\n\tconst platformId: Object = inject(PLATFORM_ID);\r\n\treturn isPlatformBrowser(platformId);\r\n}\r\n\r\nexport function localStorage(): Storage | null {\r\n\tconst document: Document = inject(DOCUMENT);\r\n\tif (document.defaultView !== null) {\r\n\t\treturn document.defaultView.window.localStorage;\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nexport function sessionStorage(): Storage | null {\r\n\tconst document: Document = inject(DOCUMENT);\r\n\tif (document.defaultView !== null) {\r\n\t\treturn document.defaultView.window.sessionStorage;\r\n\t}\r\n\treturn null;\r\n}","import { DOCUMENT } from \"@angular/common\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\nimport { isBrowser } from \"../helpers\";\r\nimport { LoggerService } from \"./logger.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class CookieService {\r\n\r\n\tbrowser: boolean = isBrowser();\r\n\tdocument: Document = inject(DOCUMENT);\r\n\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\t/**\r\n\t * Get the value of a cookie by name, returns `null` if the cookie is not set\r\n\t * \r\n\t * @param name name of the cookie\r\n\t * @returns value of the cookie\r\n\t */\r\n\tget(name: string): string | null {\r\n\t\tif (!this.browser) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tconst cookies: {[key: string]: string} = this.cookies;\r\n\t\treturn cookies[name] || null;\r\n\t}\r\n\r\n\t/**\r\n\t * Set the value of a cookie with the given name\r\n\t * \r\n\t * @param name name of the cookie\r\n\t * @param value value of the cookie\r\n\t * @param expire expire of the cookie in seconds, if null, it will never expire\r\n\t * @param path path of the cookie, default is '/'\r\n\t * @param config optional configuration values (expire in seconds, path of cookie)\r\n\t */\r\n\tset(name: string, value: string, expire: number | null = null, path: string | null = '/'): void {\r\n\r\n\t\tif (!this.browser) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (path === null) {\r\n\t\t\tpath = '/';\r\n\t\t}\r\n\r\n\t\t// Default cookie informations\r\n\t\tlet cookie: string = `${name}=${value};`;\r\n\r\n\t\t// If we have an expire date, we need to set\r\n\t\tif (expire !== null) {\r\n\t\t\tlet d: Date = new Date();\r\n\t\t\td.setTime(d.getTime() + (expire * 1000));\r\n\t\t\tcookie += `expires=${d.toUTCString()};`;\r\n\t\t}\r\n\r\n\t\t// Set path\r\n\t\tcookie += `path=${path};`;\r\n\r\n\t\t// Log\r\n\t\tthis.loggerService.info('Cookie data to set: ' + cookie);\r\n\r\n\t\t// Set the cookie\r\n\t\tthis.document.cookie = cookie;\r\n\t}\r\n\r\n\t/**\r\n\t * Delete a cookie by its name\r\n\t * \r\n\t * @param name name of the cookie\r\n\t */\r\n\tdelete(name: string): void {\r\n\t\tif (!this.browser) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.set(name, '', -1);\r\n\t}\r\n\r\n\tget cookies(): {[key: string]: string} {\r\n\r\n\t\tif (!this.browser) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\r\n\t\tconst cookies: string = this.document.cookie;\r\n\t\tif (cookies.length === 0) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\t\tconst cookiesArray: string[] = cookies.split(';');\r\n\t\tconst cookiesObject: {[key: string]: string} = {};\r\n\t\tcookiesArray.forEach((cookiesArrayItem: string) => {\r\n\t\t\tconst cookiesArrayItemSplit: string[] = cookiesArrayItem.split('=');\r\n\t\t\tcookiesObject[cookiesArrayItemSplit[0].trim()] = cookiesArrayItemSplit[1];\r\n\t\t})\r\n\t\treturn cookiesObject;\r\n\t}\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { TokenServiceMode } from '../interfaces';\r\nimport { isBrowser, localStorage, sessionStorage } from '../helpers';\r\nimport { CookieService } from './cookie.service';\r\nimport { LoggerService } from './logger.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenService {\r\n\r\n\tcookieService: CookieService = inject(CookieService);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\tlocalStorage: Storage | null = localStorage();\r\n\tsessionStorage: Storage | null = sessionStorage();\r\n\tisBrowser: boolean = isBrowser();\r\n\r\n\tcookiePath: string | null = null;\r\n\taccessToken: string | null = null;\r\n\taccessTokenKey = 'acccessToken';\r\n\taccessTokenCookieExpireDays = 30;\r\n\tmode: TokenServiceMode = TokenServiceMode.LOCALSTORAGE;\r\n\r\n\tpublic init(accessTokenKey: string, mode: TokenServiceMode | null = null, readAndStore: boolean = true): void {\r\n\t\tthis.accessTokenKey = accessTokenKey;\r\n\t\tif (mode !== null) {\r\n\t\t\tthis.mode = mode;\r\n\t\t}\r\n\t\tif (readAndStore) {\r\n\t\t\tthis.accessToken = this.read();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic write(accessToken: string, mode: TokenServiceMode | null = null): void {\r\n\t\tthis.accessToken = accessToken;\r\n\t\tif (mode === null) {\r\n\t\t\tmode = this.mode;\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.localStorage !== null) {\r\n\t\t\t\t\tthis.localStorage.setItem(this.accessTokenKey, this.accessToken);\r\n\t\t\t\t\tthis.loggerService.debug('Token set to local storage: ' + this.accessToken);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to set localStorage on not a browser platform!');\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.sessionStorage.setItem(this.accessTokenKey, this.accessToken);\r\n\t\t\t\t\tthis.loggerService.debug('Token set to session storage: ' + this.accessToken);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to set sessionStorage on not a browser platform!');\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.COOKIE:\r\n\t\t\t\tthis.cookieService.set(this.accessTokenKey, this.accessToken, this.accessTokenCookieExpireDays * 24 * 60 * 60, this.cookiePath);\r\n\t\t\t\tthis.loggerService.debug('Token set to cookie: ' + this.accessToken);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t}\r\n\r\n\tpublic read(mode: TokenServiceMode | null = null): string | null {\r\n\t\tif (mode === null) {\r\n\t\t\tmode = this.mode;\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tthis.loggerService.debug('Trying to read token from local storage');\r\n\t\t\t\tif (this.isBrowser && this.localStorage !== null) {\r\n\t\t\t\t\tconst tokenLocalStorage: string | null = this.localStorage.getItem(this.accessTokenKey);\r\n\t\t\t\t\tif (tokenLocalStorage !== null) {\r\n\t\t\t\t\t\tthis.loggerService.debug('Token read from local storage: ' + tokenLocalStorage);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn tokenLocalStorage;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to read from localStorage on not a browser platform!');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Trying to read token from session storage');\r\n\t\t\t\t\tconst tokenSessionStorage: string | null = this.sessionStorage.getItem(this.accessTokenKey);\r\n\t\t\t\t\tif (tokenSessionStorage !== null) {\r\n\t\t\t\t\t\tthis.loggerService.debug('Token read from session storage: ' + tokenSessionStorage);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn tokenSessionStorage;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to read from sessionStorage on not a browser platform!');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\tcase TokenServiceMode.COOKIE: {\r\n\t\t\t\tthis.loggerService.debug('Trying to read token from session cookie');\r\n\t\t\t\tconst cookieAccessToken: string | null = this.cookieService.get(this.accessTokenKey);\r\n\t\t\t\tif (cookieAccessToken !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token read from cookie: ' + cookieAccessToken);\r\n\t\t\t\t}\r\n\t\t\t\treturn cookieAccessToken;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic readAndStore(): void {\r\n\r\n\t}\r\n\r\n\tpublic delete(mode: TokenServiceMode | null): void {\r\n\t\tif (mode === null) {\r\n\t\t\tthis.loggerService.error('Invalid mode for token delete!');\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tif (this.localStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token deleted from local storage');\r\n\t\t\t\t\tthis.localStorage.removeItem(this.accessTokenKey);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token deleted from session storage');\r\n\t\t\t\t\tthis.sessionStorage.removeItem(this.accessTokenKey);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.COOKIE: {\r\n\t\t\t\tthis.loggerService.debug('Token deleted from cookie');\r\n\t\t\t\tthis.cookieService.delete(this.accessTokenKey);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.accessToken = null;\r\n\t}\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpRequest } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { InterceptorType, PrecheckNullable } from \"../interfaces\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InterceptorsService {\r\n\r\n /**\r\n * Skip\r\n * \r\n * Skip interceptors from next http requests\r\n */\r\n\tskip: InterceptorType[] = [];\r\n\r\n /**\r\n * ResetSkip\r\n * \r\n * Resets to `skip` to empty array after first http request\r\n */\r\n resetSkip: boolean = true;\r\n\r\n\r\n /**\r\n * Precheck\r\n * \r\n * Tells the `PrecheckInterceptor` to set a header with the given value\r\n */\r\n precheck: PrecheckNullable = null;\r\n\r\n /**\r\n * ResetPrecheck\r\n * \r\n * Clear `precheck` after first http request \r\n */\r\n resetPrecheck: boolean = true;\r\n\r\n /**\r\n * Error callback function\r\n * \r\n * Function to call after every http error\r\n */\r\n\terrorCallbackfunction: ((httpErrorResponse: HttpErrorResponse) => void) | null = null;\r\n\r\n /**\r\n * Error skip status codes\r\n * \r\n * Skips the given status codes from `errorCallbackfunction`\r\n */\r\n\terrorSkipStatusCodes: number[] = [];\r\n\r\n /**\r\n * Mock callback function\r\n * \r\n * Function to call to mock an http request\r\n */\r\n\tmockCallbackFunction: ((request: HttpRequest<any>, requestUrl: URL, next: HttpHandler) => Observable<HttpEvent<any>>) | null = null;\r\n\r\n /**\r\n * RequestId HTTP Header name\r\n */\r\n\trequestIdHttpHeaderName: string = 'Request-Id';\r\n\r\n /**\r\n * RequestId repeat\r\n */\r\n\trequestIdRepeat: boolean = false;\r\n\r\n /**\r\n * RequestId repeat delay\r\n */\r\n\trequestIdRepeatDelay: number = 0;\r\n\r\n /**\r\n * RequestId repeat statuscodes\r\n */\r\n\trequestIdRepeatStatusCodes: number[] = [];\r\n}","import { inject, Injectable } from \"@angular/core\";\r\nimport { Observable, of, tap, throwError } from \"rxjs\";\r\nimport { InterceptorsService } from \"./interceptors.service\";\r\nimport { InterceptorType } from \"../interfaces\";\r\nimport { ApiService } from \"./api.service\";\r\nimport { GOOGLE_MAPS_API_KEY } from \"../tokens\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class GoogleMapsService {\r\n\r\n\tapiService: ApiService = inject(ApiService);\r\n\tinterceptorsService: InterceptorsService = inject(InterceptorsService);\r\n\tgoogleMapsApiKey: string | null = inject(GOOGLE_MAPS_API_KEY);\r\n\r\n\tmapsJsLoaded: boolean = false;\r\n\r\n\tload(): Observable<any> {\r\n\t\tif (this.googleMapsApiKey === null) {\r\n\t\t\tthrow new Error('Google maps api key is not set!');\r\n\t\t}\r\n\t\tif (this.mapsJsLoaded) {\r\n\t\t\treturn of(true);\r\n\t\t}\r\n\t\tthis.interceptorsService.skip = [InterceptorType.TOKEN];\r\n\t\treturn this.apiService.httpClient.jsonp(`https://maps.googleapis.com/maps/api/js?key=${this.googleMapsApiKey}`, 'callback').pipe(tap(() => {\r\n\t\t\tthis.interceptorsService.skip = [];\r\n\t\t\tthis.mapsJsLoaded = true;\r\n\t\t}));\r\n\t}\r\n\r\n\tcreateMaps(element: Element | null = null, config: any = {}): Observable<any> {\r\n\t\treturn this.load().pipe(tap(() => {\r\n\t\t\tnew (window as any).google.maps.Map(element, config);\r\n\t\t}));\r\n\t}\r\n\r\n}","import { inject, Injectable } from \"@angular/core\";\r\nimport { LoggerService } from \"../services\";\r\nimport { InterceptorsService } from \"../services/interceptors.service\";\r\nimport { InterceptorType } from \"../interfaces\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class BaseInterceptor {\r\n\r\n\ttype: InterceptorType | null = null;\r\n\r\n\tinterceptorsService: InterceptorsService = inject(InterceptorsService);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\tskipInterceptor(): boolean {\r\n\t\tif (this.type !== null && this.interceptorsService.skip.indexOf(InterceptorType.ALL) !== -1) {\r\n\t\t\tthis.loggerService.warn('Interceptor skipped, reason is ALL skipped: ' + this.type);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst skip: boolean = this.type !== null && this.interceptorsService.skip.indexOf(this.type) !== -1;\r\n\t\tif (skip) {\r\n\t\t\tthis.loggerService.warn('Interceptor skipped, reason is [' + this.interceptorsService.skip.join(', ') + '] skipped');\r\n\t\t}\r\n\t\treturn skip;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\ttype: InterceptorType\r\n\t) {\r\n\t\tthis.type = type;\r\n\t\tthis.loggerService.info('Interceptor initialized: ' + this.type);\r\n\t}\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { TokenService } from '../services';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class TokenInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\r\n\tprivate tokenService: TokenService = inject(TokenService);\r\n\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\tif (this.skipInterceptor()) {\r\n\t\t\treturn next.handle(request);\r\n\t\t}\r\n\t\tconst accessToken: string | null = this.tokenService.accessToken;\r\n\t\tif (accessToken !== null) {\r\n\t\t\trequest = request.clone({\r\n\t\t\t\tsetHeaders: {\r\n\t\t\t\t\tToken: accessToken\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn next.handle(request);\r\n\t}\r\n\r\n\tconstructor() {\r\n\t\tsuper(InterceptorType.TOKEN);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class PrecheckInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\tif (this.skipInterceptor()) {\r\n\t\t\treturn next.handle(request);\r\n\t\t}\r\n\t\tif (this.interceptorsService.precheck !== null) {\r\n\t\t\trequest = request.clone({\r\n\t\t\t\tsetHeaders: {\r\n\t\t\t\t\tPrecheck: this.interceptorsService.precheck\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (this.interceptorsService.resetPrecheck) {\r\n\t\t\t\tthis.interceptorsService.precheck = null;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn next.handle(request);\r\n\t}\r\n\r\n\tconstructor() {\r\n\t\tsuper(InterceptorType.PRECHECK);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.skipInterceptor()) {\r\n return next.handle(request);\r\n }\r\n return next.handle(request).pipe(\r\n catchError((httpErrorResponse: HttpErrorResponse) => {\r\n if (this.interceptorsService.errorCallbackfunction !== null && !this.interceptorsService.errorSkipStatusCodes.includes(httpErrorResponse.status)) {\r\n this.loggerService.info('Error Interceptor Callback Function Called');\r\n this.interceptorsService.errorCallbackfunction(httpErrorResponse);\r\n }\r\n return throwError(() => httpErrorResponse);\r\n })\r\n );\r\n }\r\n\r\n constructor() {\r\n \tsuper(InterceptorType.ERROR);\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { EnvironmentProviders, makeEnvironmentProviders, Type } from \"@angular/core\";\r\nimport { TokenInterceptor } from \"./interceptors/token.interceptor\";\r\nimport { DIALOG_ALERT_COMPONENT, DIALOG_CONFIRM_COMPONENT, GOOGLE_MAPS_API_KEY, OPENED_DIALOG_BODY_CLASS, PREDEFINED_DIALOGS } from \"./tokens\";\r\nimport { PredefinedDialogs } from \"./interfaces\";\r\n\r\nexport function provideTokenInterceptor(): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: TokenInterceptor,\r\n multi: true\r\n }]);\r\n}\r\n\r\nexport function providePredefinedDialogs(predefinedDialogs: PredefinedDialogs): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: PREDEFINED_DIALOGS,\r\n useValue: predefinedDialogs\r\n }]);\r\n}\r\n\r\nexport function provideOpenedDialogBodyClass(openedDialogBodyClass: string | null): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: OPENED_DIALOG_BODY_CLASS,\r\n useValue: openedDialogBodyClass\r\n }]);\r\n}\r\n\r\nexport function provideGoogleMapsApiKey(googleMapsApiKey: string | null): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: GOOGLE_MAPS_API_KEY,\r\n\t\tuseValue: googleMapsApiKey\r\n\t}]);\r\n}\r\n\r\nexport function provideDialogConfirmComponent(component: Type<any>): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: DIALOG_CONFIRM_COMPONENT,\r\n\t\tuseValue: component\r\n\t}]);\r\n}\r\n\r\nexport function provideDialogAlertComponent(component: Type<any>): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: DIALOG_ALERT_COMPONENT,\r\n\t\tuseValue: component\r\n\t}]);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.InterceptorType"],"mappings":"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"}
1
+ {"version":3,"file":"codefoxcore.mjs","sources":["../../../projects/codefoxcore/src/lib/classes/dialog.ref.class.ts","../../../projects/codefoxcore/src/lib/classes/dialog.config.class.ts","../../../projects/codefoxcore/src/lib/classes/dialog.injector.class.ts","../../../projects/codefoxcore/src/lib/tokens/alert.token.ts","../../../projects/codefoxcore/src/lib/tokens/dialog.token.ts","../../../projects/codefoxcore/src/lib/tokens/confirm.token.ts","../../../projects/codefoxcore/src/lib/interfaces.ts","../../../projects/codefoxcore/src/lib/tokens/message.token.ts","../../../projects/codefoxcore/src/lib/tokens/loglevel.token.ts","../../../projects/codefoxcore/src/lib/tokens/google.maps.token.ts","../../../projects/codefoxcore/src/lib/services/dialog.service.ts","../../../projects/codefoxcore/src/lib/services/message.service.ts","../../../projects/codefoxcore/src/lib/services/logger.service.ts","../../../projects/codefoxcore/src/lib/services/api.service.ts","../../../projects/codefoxcore/src/lib/helpers.ts","../../../projects/codefoxcore/src/lib/services/cookie.service.ts","../../../projects/codefoxcore/src/lib/services/token.service.ts","../../../projects/codefoxcore/src/lib/services/interceptors.service.ts","../../../projects/codefoxcore/src/lib/services/google.maps.service.ts","../../../projects/codefoxcore/src/lib/classes/dialog.class.ts","../../../projects/codefoxcore/src/lib/interceptors/base.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/token.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/precheck.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/error.interceptor.ts","../../../projects/codefoxcore/src/lib/providers.ts","../../../projects/codefoxcore/src/codefoxcore.ts"],"sourcesContent":["import { filter, Observable, Subject, takeUntil } from \"rxjs\";\r\nimport { CfDialogCloseParams } from \"../interfaces\";\r\nimport { MessageService } from \"../services\";\r\nimport { DialogConfig } from \"../classes\";\r\n\r\nexport class DialogRef<T = any> {\r\n\tmessageService: MessageService | null = null;\r\n dialogConfig: DialogConfig | null = null;\r\n\tprivate readonly _onClose: Subject<any> = new Subject<any>();\r\n onClose: Observable<T | undefined> = this._onClose.asObservable();\r\n onCloseValue: Observable<T> = this._onClose.pipe(filter(result => result !== undefined && result !== null));\r\n onCloseOnValue: (value: any) => Observable<any> = (value: any) => this._onClose.pipe(filter(result => result === value));\r\n private readonly _onMessage: Subject<any> = new Subject<any>();\r\n\tonMessage: Observable<any> = this._onMessage.asObservable();\r\n private readonly _onDestroy = new Subject<any>();\r\n onDestroy: Observable<any> = this._onDestroy.asObservable();\r\n\tsavedTitle: string = '';\r\n\ttitle: string | null = null;\r\n\topened: Date = new Date();\r\n\tprivate doClose(result?: any, params: CfDialogCloseParams = {}): void {\r\n\t\tif (params.message !== undefined && this.messageService !== null) {\r\n\t\t\tthis.messageService.show(params.message.title, params.message.message, params.message);\r\n\t\t}\r\n\t\tthis._onClose.next(result); \r\n\t}\r\n close(result?: any, params: CfDialogCloseParams = {}): void { \r\n\t\tif (this.dialogConfig === null || this.dialogConfig.beforeClose === null) {\r\n\t\t\tthis.doClose(result, params);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tif (this.dialogConfig.beforeClose instanceof Promise) {\r\n\t\t\tthis.dialogConfig.beforeClose.then((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t}).catch(() => {});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.dialogConfig.beforeClose instanceof Observable) {\r\n\t\t\tthis.dialogConfig.beforeClose.pipe(takeUntil(this._onClose)).subscribe((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tconst beforeCloseResult: boolean | Observable<boolean> | Promise<boolean> = this.dialogConfig.beforeClose();\r\n\r\n\t\tif (beforeCloseResult instanceof Promise) {\r\n\t\t\tbeforeCloseResult.then((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t}).catch(() => {});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (beforeCloseResult instanceof Observable) {\r\n\t\t\tbeforeCloseResult.pipe(takeUntil(this._onClose)).subscribe((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (beforeCloseResult) {\r\n\t\t\tthis.doClose(result, params);\r\n\t\t}\r\n\t}\r\n forceClose(result?: any): void {\r\n this.doClose(result);\r\n }\r\n\tmessage(message: any): void { this._onMessage.next(message); }\r\n destroy(): void { this._onDestroy.next(undefined); }\r\n}\r\n","import { ResolveData } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DialogConfiguration } from \"../interfaces\";\r\n\r\nexport class DialogConfig implements DialogConfiguration {\r\n showCloseIcon: boolean = true;\r\n\tbeforeClose: null | (() => boolean | Observable<boolean> | Promise<boolean>) | Observable<boolean> | Promise<boolean> = null;\r\n\tignoreKeyUp: boolean = false;\r\n data: {[key: (string | number)]: any} = {};\r\n noPadding: boolean = false;\r\n\tkeepActiveElement: boolean = false;\r\n\tcontainerClasses: string[] = [];\r\n\tdialogClasses: string[] = [];\r\n resolve: ResolveData = {};\r\n\ttitle: string | null = null;\r\n contentElement: Element | null = null;\r\n single: boolean = false;\r\n width: string | null = null;\r\n\theight: string | null = null;\r\n getData(key: string | number, defaultOnUndefined: any = null): any {\r\n return this.data[key] !== undefined ? this.data[key] : defaultOnUndefined;\r\n }\r\n}\r\n","import { InjectionToken, Injector, Type } from \"@angular/core\";\r\n\r\nexport class DialogInjector implements Injector {\r\n constructor(private _parentInjector: Injector, private _additionalTokens: WeakMap<any, any>) { }\r\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: {}): T;\r\n get(token: any, notFoundValue?: any): any;\r\n get(token: any, notFoundValue?: any, _?: any): any {\r\n const value = this._additionalTokens.get(token);\r\n if (value) { return value; }\r\n return this._parentInjector.get<any>(token, notFoundValue);\r\n }\r\n}","import { InjectionToken } from \"@angular/core\";\r\nimport { AlertButtonConfiguration, AlertConfiguration } from \"../interfaces\";\r\n\r\nexport const ALERT_DEFAULT_BUTTON_CONFIGURATION: InjectionToken<AlertButtonConfiguration> = new InjectionToken('Alert default button', {\r\n\tfactory: (): AlertButtonConfiguration => {\r\n\t\treturn {\r\n\t\t\tlabel: 'alert.ok',\r\n\t\t\tseverity: 'success',\r\n\t\t\tcallback: ({ dialogRef }) => {\r\n\t\t\t\tdialogRef.close();\r\n\t\t\t},\r\n\t\t\tfocus: true,\r\n\t\t\ttranslateLabel: true\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const ALERT_CONFIGURATIONS: InjectionToken<{[key: string]: AlertConfiguration}> = new InjectionToken('Alert configurations predefined', {\r\n factory: (): {[key: string]: AlertConfiguration} => {\r\n return {};\r\n }\r\n});\r\n","import { InjectionToken, Type } from \"@angular/core\";\r\nimport { PredefinedDialogs } from \"../interfaces\";\r\n\r\nexport const PREDEFINED_DIALOGS: InjectionToken<PredefinedDialogs> = new InjectionToken('Predefined dialogs', {\r\n factory: (): PredefinedDialogs => {\r\n return {};\r\n }\r\n});\r\n\r\nexport const OPENED_DIALOG_BODY_CLASS: InjectionToken<string | null> = new InjectionToken('Opened dialog body class', {\r\n factory: (): string | null => {\r\n return null;\r\n }\r\n});\r\n\r\nexport const DIALOG_CONFIRM_COMPONENT: InjectionToken<Type<any> | null> = new InjectionToken('Dialog confirm component', {\r\n\tfactory: (): Type<any> | null => {\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\nexport const DIALOG_ALERT_COMPONENT: InjectionToken<Type<any> | null> = new InjectionToken('Dialog alert component', {\r\n\tfactory: (): Type<any> | null => {\r\n\t\treturn null;\r\n\t}\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { ConfirmConfiguration } from \"../interfaces\";\r\n\r\nexport const CONFIRM_CONFIGURATIONS: InjectionToken<{[key: string]: ConfirmConfiguration}> = new InjectionToken('Confirm configurations predefined', {\r\n factory: (): {[key: string]: ConfirmConfiguration} => {\r\n return {};\r\n }\r\n});\r\n","import { ComponentRef, Type } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DialogRef } from \"./classes/dialog.ref.class\";\r\n\r\nexport interface DialogComponentRefContainer {\r\n componentRef: ComponentRef<any>;\r\n container: HTMLDivElement;\r\n\topenIndex: number;\r\n}\r\n\r\nexport type PredefinedDialogs = {[key: string]: (() => Promise<Type<any>>) | {component: () => Promise<Type<any>>, configuration: DialogConfiguration}};\r\n\r\nexport interface DialogConfiguration {\r\n showCloseIcon?: boolean;\r\n\tbeforeClose?: CfDialogConfigurationBeforeClose;\r\n\tignoreKeyUp?: boolean;\r\n data?: any;\r\n noPadding?: boolean;\r\n\tkeepActiveElement?: boolean;\r\n\tcontainerClasses?: string[];\r\n\tdialogClasses?: string[];\r\n\ttitle?: string | null;\r\n contentElement?: Element | null;\r\n single?: boolean;\r\n width?: string | null;\r\n\theight?: string | null;\r\n}\r\n\r\nexport type CfDialogConfigurationBeforeClose = null | (() => boolean | Observable<boolean> | Promise<boolean>) | Observable<boolean> | Promise<boolean>;\r\n\r\nexport interface ConfirmConfiguration {\r\n title: string;\r\n text: string;\r\n acceptText: string;\r\n declineText: string;\r\n\thideDeclineButton?: boolean;\r\n switchButtonColors?: boolean;\r\n acceptTimeout?: number;\r\n acceptValidationText?: string;\r\n acceptValidationMode?: AcceptValidationMode;\r\n acceptValidationLabel?: string;\r\n}\r\n\r\nexport interface AlertConfiguration {\r\n title: string;\r\n text: string;\r\n\tshowCloseIcon?: boolean;\r\n\tbutton?: Partial<AlertButtonConfiguration>;\r\n}\r\n\r\nexport enum AcceptValidationMode {\r\n PATTERN = 'PATTERN',\r\n TEXT = 'TEXT'\r\n}\r\n\r\nexport interface AlertButtonConfiguration {\r\n\tlabel: string;\r\n\tseverity: string;\r\n\tcallback: (params: {dialogRef: DialogRef}) => void;\r\n\ttranslateLabel: boolean;\r\n\tfocus: boolean;\r\n}\r\n\r\nexport interface CfDialogCloseParams {\r\n message?: MessagePartial;\r\n}\r\n\r\nexport interface MessagePartial extends Partial<MessageConfiguration> {\r\n title: string;\r\n message: string;\r\n}\r\n\r\nexport interface MessageConfiguration {\r\n closeable: boolean;\r\n position: MessagePosition;\r\n lifetime: number | null;\r\n severity: MessageSeverity;\r\n\tkeepOnHover: boolean;\r\n}\r\nexport enum MessagePosition {\r\n TOP = 'top',\r\n BOTTOM = 'bottom'\r\n}\r\n\r\nexport enum MessageSeverity {\r\n SUCCESS = 'success',\r\n WARNING = 'warning',\r\n DANGER = 'danger',\r\n INFO = 'info'\r\n}\r\n\r\nexport interface LoadingConfiguration {\r\n title: string;\r\n text: string;\r\n\tloadingIcon?: string;\r\n iconSize?: number;\r\n}\r\n\r\nexport interface ModalWithButtonsConfiguration {\r\n title: string;\r\n text: string;\r\n\tshowCloseIcon?: boolean;\r\n\tbuttons: ButtonConfiguration[];\r\n}\r\n\r\nexport interface ButtonConfiguration {\r\n\tlabel: string;\r\n\tseverity: string;\r\n\tcallback?: (params: {dialogRef: DialogRef}) => void;\r\n\trouterLink?: any;\r\n\tfocus?: boolean;\r\n\tpermission?: string | string[];\r\n\ttranslateLabel?: boolean;\r\n}\r\n\r\nexport interface Message extends MessageConfiguration {\r\n title: string;\r\n message: string;\r\n}\r\n\r\nexport enum LogLevel {\r\n All = 0,\r\n Debug = 1,\r\n Info = 2,\r\n Warn = 3,\r\n Error = 4,\r\n Fatal = 5,\r\n Off = 6\r\n}\r\n\r\nexport enum TokenServiceMode {\r\n LOCALSTORAGE = 0,\r\n SESSIONSTORAGE = 1,\r\n COOKIE = 2\r\n}\r\n\r\nexport enum InterceptorType {\r\n ALL = 'ALL',\r\n ERROR = 'ERROR',\r\n LOADER = 'LOADER',\r\n MOCK = 'MOCK',\r\n TOKEN = 'TOKEN',\r\n PRECHECK = 'PRECHECK',\r\n LOCK = 'LOCK',\r\n\tREQUESTID = 'REQUESTID'\r\n}\r\n\r\nexport enum Precheck {\r\n ERROR = \"ERROR\",\r\n WARNING = \"WARNING\"\r\n}\r\n\r\nexport type PrecheckNullable = Precheck | null;\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { MessageConfiguration, MessagePosition, MessageSeverity } from \"../interfaces\";\r\n\r\nexport const MESSAGE_DEFAULT_CONFIGURATION: InjectionToken<MessageConfiguration> = new InjectionToken('Message default configuration', {\r\n\tfactory: (): MessageConfiguration => {\r\n\t\treturn {\r\n\t\t\tcloseable: true,\r\n\t\t\tlifetime: 3000,\r\n\t\t\tposition: MessagePosition.TOP,\r\n\t\t\tseverity: MessageSeverity.SUCCESS,\r\n\t\t\tkeepOnHover: false\r\n\t\t};\r\n\t}\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { LogLevel } from \"../interfaces\";\r\n\r\nexport const LOG_LEVEL: InjectionToken<LogLevel> = new InjectionToken('Log level', {\r\n factory: (): LogLevel => {\r\n return LogLevel.All;\r\n }\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const GOOGLE_MAPS_API_KEY: InjectionToken<string | null> = new InjectionToken('Google Maps Api Key', {\r\n factory: (): string | null => {\r\n return null;\r\n }\r\n});\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport {\r\n ApplicationRef,\r\n ComponentRef,\r\n createComponent,\r\n EmbeddedViewRef,\r\n inject,\r\n Injectable,\r\n Injector,\r\n PLATFORM_ID,\r\n Type\r\n} from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { filter, Subject, Subscription, throwError } from 'rxjs';\r\nimport { AlertConfiguration, DialogConfiguration, ConfirmConfiguration, LoadingConfiguration, ModalWithButtonsConfiguration, PredefinedDialogs, DialogComponentRefContainer } from '../interfaces';\r\nimport { DialogConfig, DialogInjector, DialogRef } from '../classes';\r\nimport { ALERT_CONFIGURATIONS, PREDEFINED_DIALOGS, CONFIRM_CONFIGURATIONS, OPENED_DIALOG_BODY_CLASS, DIALOG_CONFIRM_COMPONENT, DIALOG_ALERT_COMPONENT } from '../tokens';\r\nimport { MessageService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogService {\r\n\r\n\tprivate injector: Injector = inject(Injector);\r\n\tprivate predefinedConfirmConfigurations: {[key: string]: ConfirmConfiguration} = inject(CONFIRM_CONFIGURATIONS);\r\n\tprivate predefinedAlertConfigurations: {[key: string]: AlertConfiguration} = inject(ALERT_CONFIGURATIONS);\r\n\tprivate predefinedDialogs: PredefinedDialogs = inject(PREDEFINED_DIALOGS);\r\n\tprivate openedDialogBodyClass: string | null = inject(OPENED_DIALOG_BODY_CLASS);\r\n\tprivate dialogConfirmComponent: Type<any> | null = inject(DIALOG_CONFIRM_COMPONENT);\r\n\tprivate dialogAlertComponent: Type<any> | null = inject(DIALOG_ALERT_COMPONENT);\r\n\r\n\ttitle: Title = inject(Title);\r\n\tmessageService: MessageService = inject(MessageService);\r\n\r\n\tdialogs: Map<DialogRef, DialogComponentRefContainer> = new Map();\r\n\tdialogCountChanged: Subject<number> = new Subject();\r\n\topenIndex: number = 1;\r\n\tplatformId: Object = inject(PLATFORM_ID);\r\n\r\n constructor() {\r\n\t\tif (isPlatformBrowser(this.platformId)) {\r\n\t\t\tdocument.addEventListener(\"keyup\", (keyboardEvent: KeyboardEvent) => {\r\n\t\t\t\tif (keyboardEvent.key.toLowerCase() === 'escape') {\r\n\t\t\t\t\tlet lastOpenIndex: number = 0;\r\n\t\t\t\t\tlet lastOpenedDialogRef: DialogRef | null = null;\r\n\t\t\t\t\tfor (const [dialogRef, cfDialogComponentRefContainer] of this.dialogs.entries()) {\r\n\t\t\t\t\t\tif (cfDialogComponentRefContainer.openIndex > lastOpenIndex) {\r\n\t\t\t\t\t\t\tlastOpenIndex = cfDialogComponentRefContainer.openIndex;\r\n\t\t\t\t\t\t\tlastOpenedDialogRef = dialogRef;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tif (lastOpenedDialogRef !== null && lastOpenedDialogRef.dialogConfig !== null) {\r\n\t\t\t\t\t\tif (lastOpenedDialogRef.dialogConfig.ignoreKeyUp || document.activeElement instanceof HTMLInputElement || document.activeElement instanceof HTMLTextAreaElement) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tlastOpenedDialogRef.close();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.dialogCountChanged.subscribe((size: number) => {\r\n\t\t\tif (isPlatformBrowser(this.platformId) && this.openedDialogBodyClass !== null) {\r\n\t\t\t\tif (size === 0) {\r\n\t\t\t\t\tdocument.body.classList.remove(this.openedDialogBodyClass);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdocument.body.classList.add(this.openedDialogBodyClass);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t} \r\n\r\n\tasync openPredefined<T = any>(name: string, dialogConfiguration: DialogConfiguration = {}): Promise<DialogRef<T>> {\r\n\t\tif (this.predefinedDialogs[name] === undefined) {\r\n\t\t\tthrow Error('Dialog with name \"' + name + '\" not found!');\r\n\t\t}\r\n\t\tconst predefinedDialog = this.predefinedDialogs[name];\r\n\t\tif (typeof predefinedDialog === 'function') {\r\n\t\t\treturn this.openImport(predefinedDialog, dialogConfiguration);\r\n\t\t}\r\n\t\treturn this.openImport(predefinedDialog.component, {...predefinedDialog.configuration, ...dialogConfiguration});\r\n\t}\r\n\r\n\tasync openImport<T = any>(component: () => Promise<Type<any>>, dialogConfiguration: DialogConfiguration = {}): Promise<DialogRef<T>> {\r\n\t\treturn new Promise(async (resolve) => {\r\n\t\t\tresolve(this.open<T>(await component(), dialogConfiguration));\r\n\t\t});\r\n\t}\r\n\r\n open<T = any>(component: Type<any>, dialogConfiguration: DialogConfiguration = {}): DialogRef<T> {\r\n\r\n\t\tfor (let dialog of this.dialogs.entries()) {\r\n\t\t\tif (\r\n\t\t\t\t(dialogConfiguration.single && dialog[1].componentRef.componentType.name === component.name) ||\r\n\t\t\t\t(dialog[0].dialogConfig !== null && dialog[0].dialogConfig.single && dialog[1].componentRef.componentType.name === component.name)\r\n\t\t\t) {\r\n\t\t\t\treturn dialog[0];\r\n\t\t\t}\r\n\t\t}\r\n\r\n const dialogConfig: DialogConfig = this.createDialogConfig(dialogConfiguration);\r\n\r\n\t\tif (!dialogConfig.keepActiveElement) {\r\n\t\t\tif (document.activeElement instanceof HTMLElement) {\r\n\t\t\t\tdocument.activeElement.blur();\r\n\t\t\t}\r\n\t\t}\r\n\r\n const dialogRef: DialogRef<T> = this.appendToBody(component, dialogConfig);\r\n\t\tdialogRef.messageService = this.messageService;\r\n\t\tdialogRef.dialogConfig = dialogConfig;\r\n\r\n\t\tthis.changeAndStoreTitle(dialogRef);\r\n\r\n return dialogRef;\r\n }\r\n\r\n\tchangeAndStoreTitle(dialogRef: DialogRef): void {\r\n\t\tdialogRef.savedTitle = this.title.getTitle();\r\n\t\tif (dialogRef.dialogConfig !== null && dialogRef.dialogConfig.title !== null) {\r\n\t\t\tthis.title.setTitle(dialogRef.dialogConfig.title);\r\n\t\t}\r\n\t}\r\n\r\n createDialogConfig(dialogConfiguration: DialogConfiguration): DialogConfig {\r\n const dialogConfig: DialogConfig = new DialogConfig();\r\n if (dialogConfiguration.showCloseIcon !== undefined) {\r\n dialogConfig.showCloseIcon = dialogConfiguration.showCloseIcon;\r\n }\r\n\t\tif (dialogConfiguration.beforeClose !== undefined) {\r\n dialogConfig.beforeClose = dialogConfiguration.beforeClose;\r\n }\r\n\t\tif (dialogConfiguration.ignoreKeyUp !== undefined) {\r\n dialogConfig.ignoreKeyUp = dialogConfiguration.ignoreKeyUp;\r\n }\r\n if (dialogConfiguration.data !== undefined) {\r\n dialogConfig.data = dialogConfiguration.data;\r\n }\r\n if (dialogConfiguration.noPadding !== undefined) {\r\n dialogConfig.noPadding = dialogConfiguration.noPadding;\r\n }\r\n\t\tif (dialogConfiguration.keepActiveElement !== undefined) {\r\n\t\t\tdialogConfig.keepActiveElement = dialogConfiguration.keepActiveElement;\r\n\t\t}\r\n\t\tif (dialogConfiguration.containerClasses !== undefined) {\r\n\t\t\tdialogConfig.containerClasses = dialogConfiguration.containerClasses;\r\n\t\t}\r\n\t\tif (dialogConfiguration.dialogClasses !== undefined) {\r\n\t\t\tdialogConfig.dialogClasses = dialogConfiguration.dialogClasses;\r\n\t\t}\r\n\t\tif (dialogConfiguration.title !== undefined) {\r\n\t\t\tdialogConfig.title = dialogConfiguration.title;\r\n\t\t}\r\n\t\tif (dialogConfiguration.contentElement !== undefined) {\r\n\t\t\tdialogConfig.contentElement = dialogConfiguration.contentElement;\r\n\t\t}\r\n\t\tif (dialogConfiguration.single !== undefined) {\r\n\t\t\tdialogConfig.single = dialogConfiguration.single;\r\n\t\t}\r\n\t\tif (dialogConfiguration.width !== undefined) {\r\n\t\t\tdialogConfig.width = dialogConfiguration.width;\r\n\t\t}\r\n\t\tif (dialogConfiguration.height !== undefined) {\r\n\t\t\tdialogConfig.height = dialogConfiguration.height;\r\n\t\t}\r\n return dialogConfig;\r\n }\r\n\r\n appendToBody(component: Type<any>, dialogConfig: DialogConfig): DialogRef {\r\n\r\n\t\tconst appRef: ApplicationRef = this.injector.get(ApplicationRef);\r\n\r\n // CREATE INJECTION TOKENS\r\n const tokens: WeakMap<any, any> = new WeakMap();\r\n\r\n // CREATE DIALOG CONFIGURATION CLASS\r\n tokens.set(DialogConfig, dialogConfig);\r\n\r\n // CREATE DIALOG REFERENCE CLASS\r\n const dialogRef: DialogRef = new DialogRef();\r\n tokens.set(DialogRef, dialogRef);\r\n\r\n // LISTEN ON DIALOG CLOSE\r\n const closeSub: Subscription = dialogRef.onClose.subscribe(() => {\r\n this.removeFromBody(dialogRef);\r\n closeSub.unsubscribe();\r\n });\r\n\r\n // CREATE COMPONENT REF\r\n const componentRef: ComponentRef<any> = createComponent(component, {\r\n\t\t\tenvironmentInjector: appRef.injector,\r\n\t\t\telementInjector: new DialogInjector(this.injector, tokens)\r\n\t\t});\r\n\r\n // ATTACH VIEW TO ANGULAR\r\n appRef.attachView(componentRef.hostView);\r\n\r\n // CREATE DIALOG CONTAINER ELEMENT\r\n const dialogContainer: HTMLDivElement = document.createElement('div');\r\n dialogContainer.classList.add('cf-dialog-container');\r\n\t\tif (dialogConfig.containerClasses.length > 0) {\r\n\t\t\tdialogContainer.classList.add(...dialogConfig.containerClasses);\r\n\t\t}\r\n\r\n\t\t// APPEND DOM ELEMENT TO DIALOG\r\n\t\tconst childDomElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n\t\tchildDomElem.classList.add('cf-dialog');\r\n\t\t\r\n\t\tif (dialogConfig.width !== null) {\r\n\t\t\tchildDomElem.style.width = dialogConfig.width;\r\n\t\t}\r\n\t\tif (dialogConfig.height !== null) {\r\n\t\t\tchildDomElem.style.height = dialogConfig.height;\r\n\t\t}\r\n\t\tif (dialogConfig.noPadding) {\r\n childDomElem.classList.add('no-padding');\r\n }\r\n\t\tif (dialogConfig.dialogClasses.length > 0) {\r\n\t\t\tchildDomElem.classList.add(...dialogConfig.dialogClasses);\r\n\t\t}\r\n\r\n\t\tif (dialogConfig.contentElement !== null) {\r\n\t\t\tchildDomElem.appendChild(dialogConfig.contentElement);\r\n\t\t}\r\n\r\n\t\tdialogContainer.appendChild(childDomElem);\r\n\r\n // CLOSEABLE? APPEND BUTTON\r\n if (dialogConfig.showCloseIcon) {\r\n const closeElement: HTMLDivElement = document.createElement('div');\r\n closeElement.classList.add(...['cf-dialog-close', 'remixicon', 'close-line']);\r\n closeElement.onclick = () => {\r\n dialogRef.close();\r\n };\r\n childDomElem.appendChild(closeElement);\r\n }\r\n\r\n // APPEND DIALOG CONTAINER TO BODY\r\n document.body.appendChild(dialogContainer);\r\n\r\n this.dialogs.set(dialogRef, {\r\n componentRef,\r\n container: dialogContainer,\r\n\t\t\topenIndex: this.openIndex \r\n });\r\n\t\tthis.dialogCountChanged.next(this.dialogs.size);\r\n\r\n\t\tthis.openIndex++;\r\n\r\n return dialogRef;\r\n }\r\n\r\n removeFromBody(dialogRef: DialogRef): void {\r\n\r\n\t\tconst appRef: ApplicationRef = this.injector.get(ApplicationRef);\r\n\r\n if (!dialogRef || !this.dialogs.has(dialogRef)) {\r\n return;\r\n }\r\n const dialogComponentRefContainer: DialogComponentRefContainer | undefined = this.dialogs.get(dialogRef);\r\n if (dialogComponentRefContainer == undefined) {\r\n return;\r\n }\r\n\t\t\r\n appRef.detachView(dialogComponentRefContainer.componentRef.hostView);\r\n\r\n if (dialogComponentRefContainer.container !== null) {\r\n dialogComponentRefContainer.container.remove();\r\n }\r\n dialogComponentRefContainer.componentRef.destroy();\r\n this.dialogs.delete(dialogRef);\r\n\t\tthis.dialogCountChanged.next(this.dialogs.size);\r\n\r\n\t\tif (this.dialogs.size === 0) {\r\n\t\t\tthis.openIndex = 1;\r\n\t\t}\r\n\r\n\t\t// Restore title\r\n\t\tif (this.dialogs.size === 0) {\r\n\t\t\tthis.title.setTitle(dialogRef.savedTitle);\r\n\t\t} else {\r\n\t\t\tlet latestOpenedDialogRef: DialogRef | null = null;\r\n\t\t\tthis.dialogs.forEach((_, dialogRef: DialogRef) => {\r\n\t\t\t\tif (latestOpenedDialogRef === null) {\r\n\t\t\t\t\tlatestOpenedDialogRef = dialogRef;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (latestOpenedDialogRef.opened < dialogRef.opened) {\r\n\t\t\t\t\t\tlatestOpenedDialogRef = dialogRef;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (latestOpenedDialogRef !== null) {\r\n\t\t\t\t//this.title.setTitle(latestOpenedDialogRef.savedTitle);\r\n\t\t\t} else {\r\n\t\t\t\tthis.title.setTitle(dialogRef.savedTitle);\r\n\t\t\t}\r\n\t\t}\r\n }\r\n\r\n\tconfirm(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): Promise<boolean> {\r\n\t\tif (typeof configuration === 'string') {\r\n\t\t\tconst predefinedConfirmConfiguration: ConfirmConfiguration | undefined = this.predefinedConfirmConfigurations[configuration];\r\n\t\t\tif (predefinedConfirmConfiguration === undefined) {\r\n\t\t\t\tthrow new Error('Predefined confirm configuration not found for: ' + configuration);\r\n\t\t\t}\r\n\t\t\tconfiguration = predefinedConfirmConfiguration;\r\n\t\t}\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.open(component, {\r\n\t\t\t\t...dialogConfiguration,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tconfiguration\r\n\t\t\t\t},\r\n\t\t\t\tignoreKeyUp: true,\r\n\t\t\t\tshowCloseIcon: false\r\n\t\t\t}).onClose.pipe(filter(value => value !== undefined)).subscribe((accepted: boolean) => {\r\n\t\t\t\tif (accepted) {\r\n\t\t\t\t\tresolve(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treject(true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n async confirmAsync(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n return await new Promise((resolve) => {\r\n this.confirm(configuration, dialogConfiguration, component).then(() => {\r\n resolve(true);\r\n }).catch(() => {\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\t\r\n\tconfirmAccept(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tthis.confirm(configuration, dialogConfiguration, component).then(() => resolve(true)).catch(() => {});\r\n\t\t});\r\n\t}\r\n\t\r\n\tconfirmDecline(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tthis.confirm(configuration, dialogConfiguration, component).then(() => {}).catch(() => resolve(true));\r\n\t\t});\r\n\t}\r\n\r\n\tshowLoading(\r\n\t\tconfiguration: LoadingConfiguration,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): DialogRef {\r\n\t\treturn this.open(component, {\r\n\t\t\t...dialogConfiguration,\r\n\t\t\tshowCloseIcon: false,\r\n\t\t\tignoreKeyUp: true,\r\n\t\t\tdata: {\r\n\t\t\t\tconfiguration\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tshowAlert(\r\n\t\tconfiguration: AlertConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogAlertComponent\r\n\t): Promise<void> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for alert dialog!');\r\n\t\t}\r\n\t\tif (typeof configuration === 'string') {\r\n\t\t\tconst predefinedAlertConfiguration: AlertConfiguration | undefined = this.predefinedAlertConfigurations[configuration];\r\n\t\t\tif (predefinedAlertConfiguration === undefined) {\r\n\t\t\t\tthrow new Error('Predefined alert configuration not found for: ' + configuration);\r\n\t\t\t}\r\n\t\t\tconfiguration = predefinedAlertConfiguration;\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\treturn this.open(component, {\r\n\t\t\t\t...dialogConfiguration,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tconfiguration\r\n\t\t\t\t},\r\n\t\t\t\tignoreKeyUp: true,\r\n\t\t\t\tshowCloseIcon: false\r\n\t\t\t}).onClose.subscribe(() => {\r\n\t\t\t\tresolve();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tshowModalWithButtons(\r\n\t\tconfiguration: ModalWithButtonsConfiguration,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): DialogRef {\r\n\t\treturn this.open(component, {\r\n\t\t\t...dialogConfiguration,\r\n\t\t\tdata: {\r\n\t\t\t\tconfiguration\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { Subject, Subscription, timer } from 'rxjs';\r\nimport { Message, MessageConfiguration, MessageSeverity } from '../interfaces';\r\nimport { MESSAGE_DEFAULT_CONFIGURATION } from '../tokens';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class MessageService {\r\n\r\n /**\r\n * Default configuration\r\n * \r\n * Can be changed if you overwrite it or use the `MESSAGE_DEFAULT_CONFIGURATION` InjectionToken\r\n */\r\n public defaultConfiguration: MessageConfiguration = inject(MESSAGE_DEFAULT_CONFIGURATION);\r\n \r\n /**\r\n * Message subject\r\n */\r\n private messageSubject: Subject<Message> = new Subject();\r\n\r\n /**\r\n * Show\r\n * \r\n * Displays message with the given configuration\r\n * \r\n * @param messageConfiguration `Partial<MessageConfiguration>`\r\n */\r\n public show(title: string, message: string, configuration?: Partial<MessageConfiguration>): void {\r\n this.messageSubject.next({\r\n\t\t\t...this.defaultConfiguration,\r\n ...configuration,\r\n\t\t\ttitle,\r\n\t\t\tmessage\r\n });\r\n }\r\n\r\n /**\r\n * Show success message\r\n * \r\n * Display a message with default success severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showSuccessMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.SUCCESS\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show danger message\r\n * \r\n * Display a message with default danger severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showDangerMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.DANGER,\r\n\t\t\tkeepOnHover: true\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show warning message\r\n * \r\n * Display a message with default warning severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showWarningMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.WARNING\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show info message\r\n * \r\n * Display a message with default info severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showInfoMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.INFO\r\n\t\t});\r\n\t}\r\n\r\n private showMessage(message: Message): void {\r\n let container: HTMLElement | null = document.getElementById('cf-toasts-' + message.position + '-container');\r\n if (container === null) {\r\n container = document.createElement('div');\r\n container.id = 'cf-toasts-' + message.position + '-container';\r\n document.body.appendChild(container);\r\n }\r\n\r\n const div: HTMLElement = this.createMessageHtmlElement(message);\r\n\r\n container.appendChild(div);\r\n\r\n if (message.lifetime !== null) {\r\n\r\n\t\t\tlet disposeTimerSubscription: Subscription | null = timer(message.lifetime + 500).subscribe(() => {\r\n\t\t\t\tthis.hideMessage(div);\r\n\t\t\t});\r\n\r\n\t\t\tif (message.keepOnHover) {\r\n\t\t\t\tdiv.addEventListener('mouseenter', () => {\r\n\t\t\t\t\tif (disposeTimerSubscription !== null) {\r\n\t\t\t\t\t\tdisposeTimerSubscription.unsubscribe();\r\n\t\t\t\t\t\tdisposeTimerSubscription = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n }\r\n }\r\n\r\n private createMessageHtmlElement(message: Message): HTMLElement {\r\n const div: HTMLElement = document.createElement('div');\r\n div.classList.add('cf-toast', 'cf-' + message.severity + '-toast');\r\n const titleDiv: HTMLElement = document.createElement('div');\r\n titleDiv.classList.add('cf-toast-title');\r\n titleDiv.innerText = message.title;\r\n const messageDiv: HTMLElement = document.createElement('div');\r\n messageDiv.classList.add('cf-toast-message');\r\n messageDiv.innerText = message.message;\r\n div.appendChild(titleDiv);\r\n div.appendChild(messageDiv);\r\n if (message.closeable) {\r\n const closeIcon: HTMLElement = document.createElement('i');\r\n closeIcon.classList.add('close-icon', 'remixicon', 'close-line');\r\n closeIcon.onclick = () => {\r\n this.hideMessage(div, true);\r\n };\r\n div.appendChild(closeIcon);\r\n }\r\n return div;\r\n }\r\n\r\n private hideMessage(messageElement: HTMLElement, forceClose: boolean = false): void {\r\n messageElement.classList.add('hidden-toast');\r\n\r\n let remainOpen = false;\r\n messageElement.addEventListener('mouseenter', (() => {\r\n remainOpen = true;\r\n }));\r\n\r\n timer(500).subscribe(() => {\r\n if (remainOpen && !forceClose) {\r\n messageElement.classList.remove('hidden-toast');\r\n return;\r\n }\r\n messageElement.removeEventListener('mouseenter', (() => {}));\r\n messageElement.remove();\r\n });\r\n }\r\n\r\n constructor() {\r\n this.messageSubject.subscribe((message: Message) => {\r\n this.showMessage(message);\r\n });\r\n }\r\n\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { LogLevel } from '../interfaces';\r\nimport { LOG_LEVEL } from '../tokens';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class LoggerService {\r\n\r\n\tprivate _logLevel: LogLevel | null = inject(LOG_LEVEL);\r\n\r\n\tprivate logLevelColors: string[] = [\r\n\t\t'',\r\n\t\t'background-color: #D2BDF3; padding: 5px 10px;',\r\n\t\t'background-color: #A2DDFF; padding: 5px 10px;',\r\n\t\t'background-color: #FFD5C5; padding: 5px 10px;',\r\n\t\t'background-color: #EA4331; color: #FFFFFF; padding: 5px 10px;',\r\n\t\t'background-color: #F71900; color: #FFFFFF; padding: 5px 10px;',\r\n\t\t''\r\n\t];\r\n\r\n\tpublic debug(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Debug, group });\r\n\t}\r\n\r\n\tpublic info(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Info, group });\r\n\t}\r\n\r\n\tpublic warn(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Warn, group });\r\n\t}\r\n\r\n\tpublic error(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Error, group });\r\n\t}\r\n\r\n\tpublic fatal(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Fatal, group });\r\n\t}\r\n\r\n\tpublic groupEnd(): void {\r\n\t\tconsole.groupEnd();\r\n\t}\r\n\r\n\tprivate log(configuration: {\r\n\t\tlog: any,\r\n\t\tlogLevel: LogLevel,\r\n\t\tgroup: boolean\r\n\t}): void {\r\n\t\tif (this._logLevel === null || this._logLevel === LogLevel.Off || this._logLevel > configuration.logLevel) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (configuration.group) {\r\n\t\t\tconsole.group(configuration.log);\r\n\t\t} else {\r\n\t\t\tconsole.log('%c' + configuration.log, this.logLevelColors[configuration.logLevel]);\r\n\t\t}\r\n\t}\r\n\r\n\tset logLevel(logLevel: LogLevel | null) {\r\n\t\tthis._logLevel = logLevel;\r\n\t}\r\n\r\n\tget logLevel(): LogLevel | null {\r\n\t\treturn this._logLevel;\r\n\t}\r\n}\r\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { LoggerService } from \"./logger.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ApiService {\r\n\r\n\thttpClient: HttpClient = inject(HttpClient);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\tprivate _apiBaseUrl: string | null = null;\r\n\r\n\tpublic post<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.post<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic get<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.get<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic getFileArrayBuffer(endPoint: (string|number)[]): Observable<ArrayBuffer> {\r\n\t\treturn this.httpClient.get(this.generateUrl(endPoint), {\r\n\t\t\tresponseType: 'arraybuffer'\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getFileText(endPoint: (string|number)[]): Observable<string> {\r\n\t\treturn this.httpClient.get(this.generateUrl(endPoint), {\r\n\t\t\tresponseType: 'text'\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getWithHttpParams<T>(endPoint: (string|number)[], params: HttpParams | null = null): Observable<any> {\r\n\t\tif (params === null) {\r\n\t\t\treturn this.get(endPoint);\r\n\t\t} else {\r\n\t\t\treturn this.httpClient.get<T>(this.generateUrl(endPoint), {\r\n\t\t\t\tparams\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic delete<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.delete<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic patch<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.patch<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic head<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.head<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic options<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.options<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic put<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.put<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic generateUrl(endPoint: (string|number)[]): string {\r\n\t\tif (this._apiBaseUrl === null) {\r\n\t\t\tthrow new Error('No API base url set in generateUrl call!');\r\n\t\t}\r\n if (endPoint.length === 0) {\r\n return this._apiBaseUrl;\r\n }\r\n\t\tif (typeof endPoint[0] === 'string' && endPoint[0].startsWith('#')) {\r\n endPoint[0] = endPoint[0].slice(1);\r\n\t\t\treturn endPoint.map((v, i) => i === 0 ? v : encodeURIComponent(v)).join('/');\r\n\t\t}\r\n\t\treturn [this._apiBaseUrl, ...endPoint.map((v) => encodeURIComponent(v))].join('/');\r\n\t}\r\n\r\n\tset apiBaseUrl(apiBaseUrl: string) {\r\n\t\tthis.loggerService.info('Api Service base url set to: ' + apiBaseUrl);\r\n\t\tif (apiBaseUrl[apiBaseUrl.length - 1] === '/') {\r\n\t\t\tapiBaseUrl = apiBaseUrl.slice(0, apiBaseUrl.length - 1);\r\n\t\t}\r\n\t\tthis._apiBaseUrl = apiBaseUrl;\r\n\t}\r\n\r\n\tget apiBaseUrl(): string | null {\r\n\t\treturn this._apiBaseUrl;\r\n\t}\r\n}\r\n","import { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\r\nimport { inject, PLATFORM_ID } from \"@angular/core\";\r\n\r\nexport function isBrowser(): boolean {\r\n\tconst platformId: Object = inject(PLATFORM_ID);\r\n\treturn isPlatformBrowser(platformId);\r\n}\r\n\r\nexport function localStorage(): Storage | null {\r\n\tconst document: Document = inject(DOCUMENT);\r\n\tif (document.defaultView !== null) {\r\n\t\treturn document.defaultView.window.localStorage;\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nexport function sessionStorage(): Storage | null {\r\n\tconst document: Document = inject(DOCUMENT);\r\n\tif (document.defaultView !== null) {\r\n\t\treturn document.defaultView.window.sessionStorage;\r\n\t}\r\n\treturn null;\r\n}","import { DOCUMENT } from \"@angular/common\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\nimport { isBrowser } from \"../helpers\";\r\nimport { LoggerService } from \"./logger.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class CookieService {\r\n\r\n\tbrowser: boolean = isBrowser();\r\n\tdocument: Document = inject(DOCUMENT);\r\n\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\t/**\r\n\t * Get the value of a cookie by name, returns `null` if the cookie is not set\r\n\t * \r\n\t * @param name name of the cookie\r\n\t * @returns value of the cookie\r\n\t */\r\n\tget(name: string): string | null {\r\n\t\tif (!this.browser) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tconst cookies: {[key: string]: string} = this.cookies;\r\n\t\treturn cookies[name] || null;\r\n\t}\r\n\r\n\t/**\r\n\t * Set the value of a cookie with the given name\r\n\t * \r\n\t * @param name name of the cookie\r\n\t * @param value value of the cookie\r\n\t * @param expire expire of the cookie in seconds, if null, it will never expire\r\n\t * @param path path of the cookie, default is '/'\r\n\t * @param config optional configuration values (expire in seconds, path of cookie)\r\n\t */\r\n\tset(name: string, value: string, expire: number | null = null, path: string | null = '/'): void {\r\n\r\n\t\tif (!this.browser) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (path === null) {\r\n\t\t\tpath = '/';\r\n\t\t}\r\n\r\n\t\t// Default cookie informations\r\n\t\tlet cookie: string = `${name}=${value};`;\r\n\r\n\t\t// If we have an expire date, we need to set\r\n\t\tif (expire !== null) {\r\n\t\t\tlet d: Date = new Date();\r\n\t\t\td.setTime(d.getTime() + (expire * 1000));\r\n\t\t\tcookie += `expires=${d.toUTCString()};`;\r\n\t\t}\r\n\r\n\t\t// Set path\r\n\t\tcookie += `path=${path};`;\r\n\r\n\t\t// Log\r\n\t\tthis.loggerService.info('Cookie data to set: ' + cookie);\r\n\r\n\t\t// Set the cookie\r\n\t\tthis.document.cookie = cookie;\r\n\t}\r\n\r\n\t/**\r\n\t * Delete a cookie by its name\r\n\t * \r\n\t * @param name name of the cookie\r\n\t */\r\n\tdelete(name: string): void {\r\n\t\tif (!this.browser) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.set(name, '', -1);\r\n\t}\r\n\r\n\tget cookies(): {[key: string]: string} {\r\n\r\n\t\tif (!this.browser) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\r\n\t\tconst cookies: string = this.document.cookie;\r\n\t\tif (cookies.length === 0) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\t\tconst cookiesArray: string[] = cookies.split(';');\r\n\t\tconst cookiesObject: {[key: string]: string} = {};\r\n\t\tcookiesArray.forEach((cookiesArrayItem: string) => {\r\n\t\t\tconst cookiesArrayItemSplit: string[] = cookiesArrayItem.split('=');\r\n\t\t\tcookiesObject[cookiesArrayItemSplit[0].trim()] = cookiesArrayItemSplit[1];\r\n\t\t})\r\n\t\treturn cookiesObject;\r\n\t}\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { TokenServiceMode } from '../interfaces';\r\nimport { isBrowser, localStorage, sessionStorage } from '../helpers';\r\nimport { CookieService } from './cookie.service';\r\nimport { LoggerService } from './logger.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenService {\r\n\r\n\tcookieService: CookieService = inject(CookieService);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\tlocalStorage: Storage | null = localStorage();\r\n\tsessionStorage: Storage | null = sessionStorage();\r\n\tisBrowser: boolean = isBrowser();\r\n\r\n\tcookiePath: string | null = null;\r\n\taccessToken: string | null = null;\r\n\taccessTokenKey = 'acccessToken';\r\n\taccessTokenCookieExpireDays = 30;\r\n\tmode: TokenServiceMode = TokenServiceMode.LOCALSTORAGE;\r\n\r\n\tpublic init(accessTokenKey: string, mode: TokenServiceMode | null = null, readAndStore: boolean = true): void {\r\n\t\tthis.accessTokenKey = accessTokenKey;\r\n\t\tif (mode !== null) {\r\n\t\t\tthis.mode = mode;\r\n\t\t}\r\n\t\tif (readAndStore) {\r\n\t\t\tthis.accessToken = this.read();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic write(accessToken: string, mode: TokenServiceMode | null = null): void {\r\n\t\tthis.accessToken = accessToken;\r\n\t\tif (mode === null) {\r\n\t\t\tmode = this.mode;\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.localStorage !== null) {\r\n\t\t\t\t\tthis.localStorage.setItem(this.accessTokenKey, this.accessToken);\r\n\t\t\t\t\tthis.loggerService.debug('Token set to local storage: ' + this.accessToken);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to set localStorage on not a browser platform!');\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.sessionStorage.setItem(this.accessTokenKey, this.accessToken);\r\n\t\t\t\t\tthis.loggerService.debug('Token set to session storage: ' + this.accessToken);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to set sessionStorage on not a browser platform!');\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.COOKIE:\r\n\t\t\t\tthis.cookieService.set(this.accessTokenKey, this.accessToken, this.accessTokenCookieExpireDays * 24 * 60 * 60, this.cookiePath);\r\n\t\t\t\tthis.loggerService.debug('Token set to cookie: ' + this.accessToken);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t}\r\n\r\n\tpublic read(mode: TokenServiceMode | null = null): string | null {\r\n\t\tif (mode === null) {\r\n\t\t\tmode = this.mode;\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tthis.loggerService.debug('Trying to read token from local storage');\r\n\t\t\t\tif (this.isBrowser && this.localStorage !== null) {\r\n\t\t\t\t\tconst tokenLocalStorage: string | null = this.localStorage.getItem(this.accessTokenKey);\r\n\t\t\t\t\tif (tokenLocalStorage !== null) {\r\n\t\t\t\t\t\tthis.loggerService.debug('Token read from local storage: ' + tokenLocalStorage);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn tokenLocalStorage;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to read from localStorage on not a browser platform!');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Trying to read token from session storage');\r\n\t\t\t\t\tconst tokenSessionStorage: string | null = this.sessionStorage.getItem(this.accessTokenKey);\r\n\t\t\t\t\tif (tokenSessionStorage !== null) {\r\n\t\t\t\t\t\tthis.loggerService.debug('Token read from session storage: ' + tokenSessionStorage);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn tokenSessionStorage;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to read from sessionStorage on not a browser platform!');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\tcase TokenServiceMode.COOKIE: {\r\n\t\t\t\tthis.loggerService.debug('Trying to read token from session cookie');\r\n\t\t\t\tconst cookieAccessToken: string | null = this.cookieService.get(this.accessTokenKey);\r\n\t\t\t\tif (cookieAccessToken !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token read from cookie: ' + cookieAccessToken);\r\n\t\t\t\t}\r\n\t\t\t\treturn cookieAccessToken;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic readAndStore(): void {\r\n\r\n\t}\r\n\r\n\tpublic delete(mode: TokenServiceMode | null): void {\r\n\t\tif (mode === null) {\r\n\t\t\tthis.loggerService.error('Invalid mode for token delete!');\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tif (this.localStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token deleted from local storage');\r\n\t\t\t\t\tthis.localStorage.removeItem(this.accessTokenKey);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token deleted from session storage');\r\n\t\t\t\t\tthis.sessionStorage.removeItem(this.accessTokenKey);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.COOKIE: {\r\n\t\t\t\tthis.loggerService.debug('Token deleted from cookie');\r\n\t\t\t\tthis.cookieService.delete(this.accessTokenKey);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.accessToken = null;\r\n\t}\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpRequest } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { InterceptorType, PrecheckNullable } from \"../interfaces\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InterceptorsService {\r\n\r\n /**\r\n * Skip\r\n * \r\n * Skip interceptors from next http requests\r\n */\r\n\tskip: InterceptorType[] = [];\r\n\r\n /**\r\n * ResetSkip\r\n * \r\n * Resets to `skip` to empty array after first http request\r\n */\r\n resetSkip: boolean = true;\r\n\r\n\r\n /**\r\n * Precheck\r\n * \r\n * Tells the `PrecheckInterceptor` to set a header with the given value\r\n */\r\n precheck: PrecheckNullable = null;\r\n\r\n /**\r\n * ResetPrecheck\r\n * \r\n * Clear `precheck` after first http request \r\n */\r\n resetPrecheck: boolean = true;\r\n\r\n /**\r\n * Error callback function\r\n * \r\n * Function to call after every http error\r\n */\r\n\terrorCallbackfunction: ((httpErrorResponse: HttpErrorResponse) => void) | null = null;\r\n\r\n /**\r\n * Error skip status codes\r\n * \r\n * Skips the given status codes from `errorCallbackfunction`\r\n */\r\n\terrorSkipStatusCodes: number[] = [];\r\n\r\n /**\r\n * Mock callback function\r\n * \r\n * Function to call to mock an http request\r\n */\r\n\tmockCallbackFunction: ((request: HttpRequest<any>, requestUrl: URL, next: HttpHandler) => Observable<HttpEvent<any>>) | null = null;\r\n\r\n /**\r\n * RequestId HTTP Header name\r\n */\r\n\trequestIdHttpHeaderName: string = 'Request-Id';\r\n\r\n /**\r\n * RequestId repeat\r\n */\r\n\trequestIdRepeat: boolean = false;\r\n\r\n /**\r\n * RequestId repeat delay\r\n */\r\n\trequestIdRepeatDelay: number = 0;\r\n\r\n /**\r\n * RequestId repeat statuscodes\r\n */\r\n\trequestIdRepeatStatusCodes: number[] = [];\r\n}","import { inject, Injectable } from \"@angular/core\";\r\nimport { Observable, of, tap, throwError } from \"rxjs\";\r\nimport { InterceptorsService } from \"./interceptors.service\";\r\nimport { InterceptorType } from \"../interfaces\";\r\nimport { ApiService } from \"./api.service\";\r\nimport { GOOGLE_MAPS_API_KEY } from \"../tokens\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class GoogleMapsService {\r\n\r\n\tapiService: ApiService = inject(ApiService);\r\n\tinterceptorsService: InterceptorsService = inject(InterceptorsService);\r\n\tgoogleMapsApiKey: string | null = inject(GOOGLE_MAPS_API_KEY);\r\n\r\n\tmapsJsLoaded: boolean = false;\r\n\r\n\tload(): Observable<any> {\r\n\t\tif (this.googleMapsApiKey === null) {\r\n\t\t\tthrow new Error('Google maps api key is not set!');\r\n\t\t}\r\n\t\tif (this.mapsJsLoaded) {\r\n\t\t\treturn of(true);\r\n\t\t}\r\n\t\tthis.interceptorsService.skip = [InterceptorType.TOKEN];\r\n\t\treturn this.apiService.httpClient.jsonp(`https://maps.googleapis.com/maps/api/js?key=${this.googleMapsApiKey}`, 'callback').pipe(tap(() => {\r\n\t\t\tthis.interceptorsService.skip = [];\r\n\t\t\tthis.mapsJsLoaded = true;\r\n\t\t}));\r\n\t}\r\n\r\n\tcreateMaps(element: Element | null = null, config: any = {}): Observable<any> {\r\n\t\treturn this.load().pipe(tap(() => {\r\n\t\t\tnew (window as any).google.maps.Map(element, config);\r\n\t\t}));\r\n\t}\r\n\r\n}","import { ChangeDetectorRef, DestroyRef, inject } from \"@angular/core\";\r\nimport { DialogRef } from \"./dialog.ref.class\";\r\nimport { DialogConfig } from \"./dialog.config.class\";\r\nimport { DialogService } from \"../services\";\r\n\r\nexport class Dialog {\r\n\tref: DialogRef = inject(DialogRef);\r\n\tconfig: DialogConfig = inject(DialogConfig);\r\n\tcdr: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n\tdestroyRef: DestroyRef = inject(DestroyRef);\r\n\tdialogService: DialogService = inject(DialogService);\r\n}","import { inject, Injectable } from \"@angular/core\";\r\nimport { LoggerService } from \"../services\";\r\nimport { InterceptorsService } from \"../services/interceptors.service\";\r\nimport { InterceptorType } from \"../interfaces\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class BaseInterceptor {\r\n\r\n\ttype: InterceptorType | null = null;\r\n\r\n\tinterceptorsService: InterceptorsService = inject(InterceptorsService);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\tskipInterceptor(): boolean {\r\n\t\tif (this.type !== null && this.interceptorsService.skip.indexOf(InterceptorType.ALL) !== -1) {\r\n\t\t\tthis.loggerService.warn('Interceptor skipped, reason is ALL skipped: ' + this.type);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst skip: boolean = this.type !== null && this.interceptorsService.skip.indexOf(this.type) !== -1;\r\n\t\tif (skip) {\r\n\t\t\tthis.loggerService.warn('Interceptor skipped, reason is [' + this.interceptorsService.skip.join(', ') + '] skipped');\r\n\t\t}\r\n\t\treturn skip;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\ttype: InterceptorType\r\n\t) {\r\n\t\tthis.type = type;\r\n\t\tthis.loggerService.info('Interceptor initialized: ' + this.type);\r\n\t}\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { TokenService } from '../services';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class TokenInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\r\n\tprivate tokenService: TokenService = inject(TokenService);\r\n\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\tif (this.skipInterceptor()) {\r\n\t\t\treturn next.handle(request);\r\n\t\t}\r\n\t\tconst accessToken: string | null = this.tokenService.accessToken;\r\n\t\tif (accessToken !== null) {\r\n\t\t\trequest = request.clone({\r\n\t\t\t\tsetHeaders: {\r\n\t\t\t\t\tToken: accessToken\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn next.handle(request);\r\n\t}\r\n\r\n\tconstructor() {\r\n\t\tsuper(InterceptorType.TOKEN);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class PrecheckInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\tif (this.skipInterceptor()) {\r\n\t\t\treturn next.handle(request);\r\n\t\t}\r\n\t\tif (this.interceptorsService.precheck !== null) {\r\n\t\t\trequest = request.clone({\r\n\t\t\t\tsetHeaders: {\r\n\t\t\t\t\tPrecheck: this.interceptorsService.precheck\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (this.interceptorsService.resetPrecheck) {\r\n\t\t\t\tthis.interceptorsService.precheck = null;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn next.handle(request);\r\n\t}\r\n\r\n\tconstructor() {\r\n\t\tsuper(InterceptorType.PRECHECK);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.skipInterceptor()) {\r\n return next.handle(request);\r\n }\r\n return next.handle(request).pipe(\r\n catchError((httpErrorResponse: HttpErrorResponse) => {\r\n if (this.interceptorsService.errorCallbackfunction !== null && !this.interceptorsService.errorSkipStatusCodes.includes(httpErrorResponse.status)) {\r\n this.loggerService.info('Error Interceptor Callback Function Called');\r\n this.interceptorsService.errorCallbackfunction(httpErrorResponse);\r\n }\r\n return throwError(() => httpErrorResponse);\r\n })\r\n );\r\n }\r\n\r\n constructor() {\r\n \tsuper(InterceptorType.ERROR);\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { EnvironmentProviders, makeEnvironmentProviders, Type } from \"@angular/core\";\r\nimport { TokenInterceptor } from \"./interceptors/token.interceptor\";\r\nimport { DIALOG_ALERT_COMPONENT, DIALOG_CONFIRM_COMPONENT, GOOGLE_MAPS_API_KEY, OPENED_DIALOG_BODY_CLASS, PREDEFINED_DIALOGS } from \"./tokens\";\r\nimport { PredefinedDialogs } from \"./interfaces\";\r\n\r\nexport function provideTokenInterceptor(): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: TokenInterceptor,\r\n multi: true\r\n }]);\r\n}\r\n\r\nexport function providePredefinedDialogs(predefinedDialogs: PredefinedDialogs): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: PREDEFINED_DIALOGS,\r\n useValue: predefinedDialogs\r\n }]);\r\n}\r\n\r\nexport function provideOpenedDialogBodyClass(openedDialogBodyClass: string | null): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: OPENED_DIALOG_BODY_CLASS,\r\n useValue: openedDialogBodyClass\r\n }]);\r\n}\r\n\r\nexport function provideGoogleMapsApiKey(googleMapsApiKey: string | null): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: GOOGLE_MAPS_API_KEY,\r\n\t\tuseValue: googleMapsApiKey\r\n\t}]);\r\n}\r\n\r\nexport function provideDialogConfirmComponent(component: Type<any>): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: DIALOG_CONFIRM_COMPONENT,\r\n\t\tuseValue: component\r\n\t}]);\r\n}\r\n\r\nexport function provideDialogAlertComponent(component: Type<any>): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: DIALOG_ALERT_COMPONENT,\r\n\t\tuseValue: component\r\n\t}]);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.InterceptorType"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ChangeDetectorRef, DestroyRef } from "@angular/core";
2
+ import { DialogRef } from "./dialog.ref.class";
3
+ import { DialogConfig } from "./dialog.config.class";
4
+ import { DialogService } from "../services";
5
+ export declare class Dialog {
6
+ ref: DialogRef;
7
+ config: DialogConfig;
8
+ cdr: ChangeDetectorRef;
9
+ destroyRef: DestroyRef;
10
+ dialogService: DialogService;
11
+ }
@@ -1,3 +1,4 @@
1
1
  export * from './dialog.ref.class';
2
2
  export * from './dialog.config.class';
3
3
  export * from './dialog.injector.class';
4
+ export * from './dialog.class';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codefoxcore",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.1.0",
6
6
  "@angular/core": "^16.1.0"