{"version":3,"file":"ngxarch-commons.mjs","sources":["../../../../libs/commons/src/lib/commons.module.ts","../../../../libs/commons/src/lib/tokens/ngxa-is-authenticated.ts","../../../../libs/commons/src/lib/tokens/confirm-delegate.ts","../../../../libs/commons/src/lib/tokens/alert-delegate.ts","../../../../libs/commons/src/lib/tokens/log-delegate.ts","../../../../libs/commons/src/lib/tokens/process-delegate.ts","../../../../libs/commons/src/lib/tokens/prompt-delegate.ts","../../../../libs/commons/src/lib/interfaces/log-level.ts","../../../../libs/commons/src/lib/interfaces/process-status.ts","../../../../libs/commons/src/lib/utils/map-to-process-on-complete.ts","../../../../libs/commons/src/lib/utils/map-to-process-on-error.ts","../../../../libs/commons/src/lib/utils/handle-process.ts","../../../../libs/commons/src/lib/utils/process-is-running.ts","../../../../libs/commons/src/lib/utils/process-had-error.ts","../../../../libs/commons/src/lib/utils/complete-process.ts","../../../../libs/commons/src/lib/utils/running-process.ts","../../../../libs/commons/src/lib/utils/connect-http-process.ts","../../../../libs/commons/src/lib/utils/process-is-complete.ts","../../../../libs/commons/src/lib/utils/error-process.ts","../../../../libs/commons/src/lib/utils/process-from-http-event.ts","../../../../libs/commons/src/lib/directives/is-authenticated.directive.ts","../../../../libs/commons/src/lib/utils/log.ts","../../../../libs/commons/src/lib/utils/alert.ts","../../../../libs/commons/src/lib/utils/confirm.ts","../../../../libs/commons/src/lib/utils/prompt.ts","../../../../libs/commons/src/ngxarch-commons.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n  imports: [CommonModule],\n})\nexport class CommonsModule {}\n","import { InjectionToken } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\nexport const NGXA_IS_AUTHENTICATED = new InjectionToken<Observable<boolean>>(\"NGXA_IS_AUTHENTICATED\");","import { InjectionToken } from \"@angular/core\";\nimport { ConfirmDelegate } from \"../interfaces/confirm-delegate\";\n\nexport const NGXA_CONFIRM = new InjectionToken<ConfirmDelegate<unknown, unknown, unknown>>('Ngxa confirm delegate');","import { InjectionToken } from \"@angular/core\";\nimport { AlertDelegate } from \"../interfaces/alert-delegate\";\n\nexport const NGXA_ALERT = new InjectionToken<AlertDelegate<unknown, unknown, unknown>>('Ngxa alert delegate');","import { InjectionToken } from \"@angular/core\";\nimport { LogDelegate } from \"../interfaces/log-delegate\";\n\nexport const NGXA_LOG = new InjectionToken<LogDelegate<unknown, unknown, unknown>>('Ngxa log delegate');\n","import { InjectionToken } from \"@angular/core\";\nimport { ProcessDelegate } from \"../interfaces/process-delegate\";\n\nexport const NGXA_PROCESS = new InjectionToken<ProcessDelegate<unknown>>(\"Ngxa process delegate\");","import { InjectionToken } from \"@angular/core\";\nimport { PromptDelegate } from \"../interfaces/prompt-delegate\";\n\nexport const NGXA_PROMPT = new InjectionToken<PromptDelegate<unknown, unknown, unknown>>(\"Ngxa prompt delegate\");","export enum LogLevel {\n    /**\n     * ERROR the log level that should be used when the application hits an issue preventing one or more functionalities from properly functioning. The ERROR log level can be used when one of the payment systems is not available, but there is still the option to check out the basket in the e-commerce application or when your social media logging option is not working for some reason.\n     */\n    ERROR = 'error',\n    /**\n     * FATAL the log level that tells that the application encountered an event or entered a state in which one of the crucial business functionality is no longer working. A FATAL log level may be used when the application is not able to connect to a crucial data store like a database or all the payment systems are not available and users can’t checkout their baskets in your e-commerce.\n     */\n    FATAL = 'fatal',\n    /**\n     * WARN the log level that indicates that something unexpected happened in the application, a problem, or a situation that might disturb one of the processes. But that doesn’t mean that the application failed. The WARN level should be used in situations that are unexpected, but the code can continue the work. For example, a parsing error occurred that resulted in a certain document not being processed.\n     */\n    WARN = 'warning',\n    /**\n     * TRACE - the most fine-grained information only used in rare cases where you need the full visibility of what is happening in your application and inside the third-party libraries that you use. You can expect the TRACE logging level to be very verbose. You can use it for example to annotate each step in the algorithm or each individual query with parameters in your code.\n     */\n    TRACE = 'trace',\n    /**\n     * INFO -the standard log level indicating that something happened, the application entered a certain state, etc. For example, a controller of your authorization API may include an INFO log level with information on which user requested authorization if the authorization was successful or not. The information logged using the INFO log level should be purely informative and not looking into them on a regular basis shouldn’t result in missing any important information.\n     */\n    INFO = 'info'\n}","export enum ProcessStatus {\n  IDLE = 'idle',\n  PENDING = 'pending',\n  RUNNING = 'running',\n  STOPPED = 'stopped',\n  COMPLETED = 'completed',\n  ERRORED = 'errored',\n}\n","import { OperatorFunction, map } from \"rxjs\";\nimport { Process } from \"../interfaces/process\";\nimport { ProcessStatus } from \"../interfaces/process-status\";\n\nexport function mapToProcessComplete<T>(): OperatorFunction<T, Process<T>> {\n    return map(result => ({ status: ProcessStatus.COMPLETED, payload: result }));\n  }","import { catchError, OperatorFunction, throwError } from \"rxjs\";\nimport { Process } from \"../interfaces/process\";\nimport { ProcessStatus } from \"../interfaces/process-status\";\n\nexport function mapToProcessOnError<T>(): OperatorFunction<Process<T>, Process<T>> {\n    return catchError((error: Error) => throwError(() => ({ status: ProcessStatus.ERRORED, payload: error })));\n}","import { Observable } from \"rxjs\";\nimport { mapToProcessComplete } from \"./map-to-process-on-complete\";\nimport { mapToProcessOnError } from \"./map-to-process-on-error\";\nimport { Process } from \"../interfaces/process\";\n\nexport function handleProcess<T>(observable: Observable<any>): Observable<Process<T | Error>> {\n    return observable.pipe(mapToProcessComplete<T>(), mapToProcessOnError());\n  }","import { Observable, map } from 'rxjs';\nimport type { Process } from '../interfaces/process';\nimport { ProcessStatus } from '../interfaces/process-status';\n\nexport function isRunning<T>(process: Observable<Process<T>>): Observable<boolean> {\n  return process.pipe(map(({ status }) => status === ProcessStatus.RUNNING));\n}\n","import { Observable, map } from 'rxjs';\nimport type { Process } from '../interfaces/process';\nimport { ProcessStatus } from '../interfaces/process-status';\n\nexport function hadError<T>(process: Observable<Process<T>>): Observable<boolean> {\n  return process.pipe(\n    map(process => {\n      if (process.status === ProcessStatus.ERRORED) {\n        return true;\n      }\n      return false;\n    })\n  );\n}\n","import { Process } from \"../interfaces/process\";\nimport { ProcessStatus } from \"../interfaces/process-status\";\n\n\nexport function completeProcess<T>(payload: T): Process<T> {\n  return {\n    status: ProcessStatus.COMPLETED,\n    payload,\n  };\n}\n","import { Process } from \"../interfaces/process\";\nimport { ProcessStatus } from \"../interfaces/process-status\";\n\n\nexport function runningProcess<T>(payload: T): Process<T> {\n  return {\n    status: ProcessStatus.RUNNING,\n    payload,\n  };\n}\n","import { HttpEvent, HttpEventType } from '@angular/common/http';\nimport { Observable, map, catchError, of } from 'rxjs';\nimport { completeProcess } from './complete-process';\nimport { Process } from '../interfaces/process';\nimport { ProcessStatus } from '../interfaces/process-status';\nimport { runningProcess } from './running-process';\n\n/**\n * @param observable\n * @deprecated Use `processFromHttpEvent` instead.\n * @returns\n */\nexport function connectHttpProcess<T>(\n  observable: Observable<HttpEvent<T>>\n): Observable<Process<T | Error>> {\n  return observable.pipe(\n    map((event: HttpEvent<T>) => {\n      if (event.type === HttpEventType.Response) {\n        if (event.body) {\n          return completeProcess(event.body);\n        }\n      }\n\n      if (event.type === HttpEventType.Sent) {\n        return runningProcess([] as unknown as T);\n      }\n\n      return {\n        status: ProcessStatus.IDLE,\n        payload: [] as unknown as T,\n      };\n    }),\n    catchError((error: Error) =>\n      of({\n        status: ProcessStatus.ERRORED,\n        payload: error,\n      })\n    )\n  );\n}\n","import { Observable, map } from 'rxjs';\nimport type { Process } from '../interfaces/process';\nimport { ProcessStatus } from '../interfaces/process-status';\n\nexport function isComplete<T>(process: Observable<Process<T>>): Observable<boolean> {\n  return process.pipe(map(({ status }) => status === ProcessStatus.COMPLETED));\n}\n","import { Process } from '../interfaces/process';\nimport { ProcessStatus } from '../interfaces/process-status';\n\nexport function errorProcess<T>(error: T): Process<T> {\n  return {\n    status: ProcessStatus.ERRORED,\n    payload: error,\n  };\n}\n","import { HttpEvent, HttpEventType, HttpUserEvent } from '@angular/common/http';\nimport { Observable, map, catchError, of, startWith } from 'rxjs';\nimport { ProcessStatus } from '../interfaces/process-status';\nimport { completeProcess } from './complete-process';\nimport { errorProcess } from './error-process';\nimport { runningProcess } from './running-process';\n\nclass ConfigurationException extends Error {}\n\ntype ProcessFromHttpEventProps<T> = {\n  observable: Observable<HttpEvent<T>>;\n};\n\ntype OptionalInitialState = {\n  initialState?: Record<string, unknown>;\n};\n\ntype RequiredInitialState = {\n  initialState: Record<string, unknown>;\n};\n\nconst PROCESS_INITIAL_INDICATOR = '_classification';\n\nexport function processFromHttpEvent<T>({\n  observable,\n  initialState,\n}: ProcessFromHttpEventProps<T> & OptionalInitialState) {\n  if (initialState && typeof initialState === 'object') {\n    return processWithInitialStateFromHttpEvent<T>({\n      observable,\n      initialState,\n    });\n  } else {\n    return observable.pipe(\n      map(mapHttpEventToProcess),\n      catchError((error: Error) => of(errorProcess(error)))\n    );\n  }\n}\n\nfunction processWithInitialStateFromHttpEvent<T>({\n  observable,\n  initialState,\n}: ProcessFromHttpEventProps<T> & RequiredInitialState) {\n  if (initialState[PROCESS_INITIAL_INDICATOR]) {\n    throw new ConfigurationException(\n      `is using reserved name \"${PROCESS_INITIAL_INDICATOR}\"`\n    );\n  }\n  return observable.pipe(\n    startWith({\n      ...initialState,\n      type: HttpEventType.User,\n      _classification: ProcessStatus.IDLE,\n    } as unknown as HttpUserEvent<T>),\n    map(mapHttpEventToProcess),\n    catchError((error: Error) => of(errorProcess(error)))\n  );\n}\n\nfunction mapHttpEventToProcess<T>(event: HttpEvent<T>) {\n  if (event.type === HttpEventType.User) {\n    // eslint-disable-next-line no-prototype-builtins\n    if (event.hasOwnProperty(PROCESS_INITIAL_INDICATOR)) {\n      return {\n        status: ProcessStatus.IDLE,\n        payload: event as unknown as T,\n      };\n    }\n  }\n\n  if (event.type === HttpEventType.Response) {\n    if (event.body) {\n      return completeProcess(event.body);\n    }\n  }\n\n  if (event.type === HttpEventType.Sent) {\n    return runningProcess([] as unknown as T);\n  }\n\n  return {\n    status: ProcessStatus.IDLE,\n    payload: [] as unknown as T,\n  };\n}\n","import { Directive, Inject, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Observable, OperatorFunction, Subject, takeUntil, tap } from 'rxjs';\nimport { NGXA_IS_AUTHENTICATED } from '../tokens/ngxa-is-authenticated';\n\n@Directive({\n  selector: '[ngxaIsAuthenticated]',\n  standalone: true,\n})\nexport class NgxaIsAuthenticatedDirective implements OnInit, OnDestroy {\n\n  @Input('ngxaIsAuthenticated') public else!: TemplateRef<unknown>;\n\n  private readonly _destroy = new Subject<void>;\n  private readonly _onDestroy = this._destroy.asObservable();\n  public constructor(\n    @Inject(NGXA_IS_AUTHENTICATED) private readonly _isAuthenticated: Observable<boolean>,\n    private readonly _templateRef: TemplateRef<unknown>,\n    private readonly _viewContainerRef: ViewContainerRef\n  ) {\n    this._viewContainerRef.clear()\n  }\n\n  private _mapAuthenticationToView(): OperatorFunction<boolean, boolean> {\n    return tap(isAuthenticated => {\n      if (isAuthenticated) {\n        this._viewContainerRef.clear()\n        this._viewContainerRef.createEmbeddedView(this._templateRef);\n      } else {\n        this._viewContainerRef.clear();\n        if(this.else){\n          this._viewContainerRef.createEmbeddedView(this.else);\n        }\n      }\n    })\n  }\n\n  public ngOnInit(){\n    this._isAuthenticated.\n    pipe(\n      takeUntil(this._onDestroy),\n      this._mapAuthenticationToView()\n    ).subscribe();\n  }\n\n  public ngOnDestroy(){\n      this._destroy.complete();\n      this._destroy.unsubscribe();\n  }\n\n\n}\n","import { inject } from \"@angular/core\";\nimport { LogDelegate } from \"../interfaces/log-delegate\";\nimport { LogLevel } from \"../interfaces/log-level\";\nimport { NGXA_LOG } from \"../tokens/log-delegate\";\n\nexport function provideLogger<T>() {\n    return inject(NGXA_LOG) as unknown as T;\n}\n\nexport function logInfo(message: string, logger: LogDelegate<unknown, string, LogLevel>, issuer?: unknown): void {\n    return logger.log(message, LogLevel.INFO, issuer);\n}\n\nexport function logError(message: string, logger: LogDelegate<unknown, string, LogLevel>, issuer?: unknown): void {\n    return logger.log(message, LogLevel.ERROR, issuer);\n}\n\nexport function logWarn(message: string, logger: LogDelegate<unknown, string, LogLevel>, issuer?: unknown): void {\n    return logger.log(message, LogLevel.WARN, issuer);\n}\n\nexport function logFatal(message: string, logger: LogDelegate<unknown, string, LogLevel>, issuer?: unknown): void {\n    return logger.log(message, LogLevel.FATAL, issuer);\n}\n\nexport function logTrace(message: string, logger: LogDelegate<unknown, string, LogLevel>, issuer?: unknown): void {\n    return logger.log(message, LogLevel.TRACE, issuer);\n}","import { inject } from \"@angular/core\";\nimport { NGXA_ALERT } from \"../tokens/alert-delegate\";\n\nexport function provideAlert<T>() {\n    return inject(NGXA_ALERT) as unknown as T;\n}","import { inject } from \"@angular/core\";\nimport { NGXA_CONFIRM } from \"../tokens/confirm-delegate\";\n\nexport function provideConfirm<T>() {\n    return inject(NGXA_CONFIRM) as unknown as T;\n}","import { inject } from \"@angular/core\";\nimport { NGXA_PROMPT } from \"../tokens/prompt-delegate\";\n\nexport function providePrompt<T>(){\n    return inject(NGXA_PROMPT) as unknown as T;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}