{"version":3,"file":"antoniocorraliza-foundry-core.mjs","sources":["../../../../projects/antoniocorraliza/foundry-core/src/lib/constants/foundry-network.constants.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/constants/foundry-storage.constants.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/constants/foundry-theme.constants.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/constants/foundry-dialog-tokens.constants.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/constants/foundry-broadcast.constants.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/storage/foundry-browser-storage.service.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/config/foundry-configuration.service.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/user-interface/internal/foundry-notification-container/foundry-notification-container.component.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/user-interface/internal/foundry-notification-container/foundry-notification-container.component.html","../../../../projects/antoniocorraliza/foundry-core/src/lib/user-interface/services/foundry-notification.service.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/user-interface/class/foundry-dialog-reference.class.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/user-interface/internal/foundry-default-confirm/foundry-default-confirm-dialog.component.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/user-interface/internal/foundry-default-confirm/foundry-default-confirm-dialog.component.html","../../../../projects/antoniocorraliza/foundry-core/src/lib/user-interface/services/foundry-dialog-window.service.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/user-interface/internal/foundry-default-loader/foundry-default-loader.component.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/user-interface/internal/foundry-default-loader/foundry-default-loader.component.html","../../../../projects/antoniocorraliza/foundry-core/src/lib/user-interface/services/foundry-loading-indicator.service.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/errors/foundry-global-error-handler.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/state/foundry-broadcast-channel.service.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/security/class/foundry-auth.context.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/security/class/foundry-refresh-token-provider.class.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/security/services/foundry-token.service.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/security/services/foundry-auth-refresh-state.service.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/security/interceptors/foundry-jwt.interceptor.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/security/interceptors/foundry-auth-refresh.interceptor.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/network/services/foundry-api-request-dispatcher.service.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/network/class/foundry-network.context.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/network/services/foundry-http-client.service.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/network/interceptors/foundry-api-prefix.interceptor.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/network/interceptors/foundry-loader.interceptor.ts","../../../../projects/antoniocorraliza/foundry-core/src/lib/routing/foundry-router.service.ts","../../../../projects/antoniocorraliza/foundry-core/src/antoniocorraliza-foundry-core.ts"],"sourcesContent":["export enum FoundryHttpStatus {\n  /** 1xx Informational */\n  continue = 100,\n  switchingProtocols = 101,\n  processing = 102,\n  /** 2xx Success */\n  ok = 200,\n  created = 201,\n  accepted = 202,\n  noContent = 204,\n  resetContent = 205,\n  partialContent = 206,\n  /** 3xx Redirection */\n  multipleChoices = 300,\n  movedPermanently = 301,\n  found = 302,\n  seeOther = 303,\n  notModified = 304,\n  temporaryRedirect = 307,\n  permanentRedirect = 308,\n  /** 4xx Client Errors */\n  badRequest = 400,\n  unauthorized = 401,\n  paymentRequired = 402,\n  forbidden = 403,\n  notFound = 404,\n  methodNotAllowed = 405,\n  notAcceptable = 406,\n  requestTimeout = 408,\n  conflict = 409,\n  gone = 410,\n  lengthRequired = 411,\n  preconditionFailed = 412,\n  payloadTooLarge = 413,\n  uriTooLong = 414,\n  unsupportedMediaType = 415,\n  expectationFailed = 417,\n  teapot = 418,\n  unprocessableEntity = 422,\n  tooManyRequests = 429,\n  /** 5xx Server Errors */\n  internalServerError = 500,\n  notImplemented = 501,\n  badGateway = 502,\n  serviceUnavailable = 503,\n  gatewayTimeout = 504,\n  httpVersionNotSupported = 505\n}\nexport const FoundryHttpHeaders = {\n  authorization: 'Authorization',\n  bearer: 'Bearer ',\n  noAuth: 'No Auth',\n  contentType: 'Content-Type',\n  applicationJson: 'application/json',\n  multipartFormData: 'multipart/form-data'\n} as const;\nexport const FoundryNetworkMessages: Record<number, string> = {\n  /** 1xx Informational */\n  [FoundryHttpStatus.continue]: 'The server has received the request headers and the client should proceed to send the request body.',\n  [FoundryHttpStatus.switchingProtocols]: 'The server is switching protocols as requested by the client.',\n  [FoundryHttpStatus.processing]: 'The server is processing the request, but no response is available yet.',\n  /** 2xx Success */\n  [FoundryHttpStatus.ok]: 'The request was completed successfully.',\n  [FoundryHttpStatus.created]: 'The resource has been successfully created.',\n  [FoundryHttpStatus.accepted]: 'The request has been accepted for processing, but the processing is not yet complete.',\n  [FoundryHttpStatus.noContent]: 'The request was successfully processed, but there is no content to return.',\n  [FoundryHttpStatus.resetContent]: 'The request was successfully processed. Please reset the current view.',\n  [FoundryHttpStatus.partialContent]: 'The server is delivering only a part of the requested resource.',\n  /** 3xx Redirection */\n  [FoundryHttpStatus.multipleChoices]: 'There are multiple options for the resource. Please choose one.',\n  [FoundryHttpStatus.movedPermanently]: 'The requested resource has been permanently moved to a new location.',\n  [FoundryHttpStatus.found]: 'The requested resource was found temporarily under a different location.',\n  [FoundryHttpStatus.seeOther]: 'The response to the request can be found under another location using a GET method.',\n  [FoundryHttpStatus.notModified]: 'The resource has not been modified since the last request.',\n  [FoundryHttpStatus.temporaryRedirect]: 'The requested resource resides temporarily under a different location.',\n  [FoundryHttpStatus.permanentRedirect]: 'The requested resource has been permanently moved to another location.',\n  /** 4xx Client Errors */\n  [FoundryHttpStatus.badRequest]: 'The request could not be processed due to invalid syntax or missing parameters.',\n  [FoundryHttpStatus.unauthorized]: 'Session expired or invalid credentials. Please log in again.',\n  [FoundryHttpStatus.paymentRequired]: 'Payment is required to access this resource.',\n  [FoundryHttpStatus.forbidden]: 'Access denied. You do not have the necessary permissions for this action.',\n  [FoundryHttpStatus.notFound]: 'The requested resource could not be found on the server.',\n  [FoundryHttpStatus.methodNotAllowed]: 'The requested HTTP method is not supported for this resource.',\n  [FoundryHttpStatus.notAcceptable]: 'The server cannot produce a response matching the list of acceptable values.',\n  [FoundryHttpStatus.requestTimeout]: 'The server timed out waiting for the request.',\n  [FoundryHttpStatus.conflict]: 'A conflict occurred with the current state of the resource.',\n  [FoundryHttpStatus.gone]: 'The requested resource is no longer available and will not be back.',\n  [FoundryHttpStatus.lengthRequired]: 'The request did not specify the length of its content, which is required.',\n  [FoundryHttpStatus.preconditionFailed]: 'The server does not meet one of the preconditions specified in the request.',\n  [FoundryHttpStatus.payloadTooLarge]: 'The uploaded file or payload exceeds the maximum size allowed.',\n  [FoundryHttpStatus.uriTooLong]: 'The requested URL is too long for the server to process.',\n  [FoundryHttpStatus.unsupportedMediaType]: 'The media type of the requested data is not supported by the server.',\n  [FoundryHttpStatus.expectationFailed]: 'The server cannot meet the requirements of the Expect request-header field.',\n  [FoundryHttpStatus.teapot]: 'The server refuses to brew coffee because it is, permanently, a teapot.',\n  [FoundryHttpStatus.unprocessableEntity]: 'Validation failed. Please check the provided data for errors.',\n  [FoundryHttpStatus.tooManyRequests]: 'Too many requests. Please wait a moment before trying again.',\n  /** 5xx Server Errors */\n  [FoundryHttpStatus.internalServerError]: 'An unexpected server error occurred. Our team has been notified.',\n  [FoundryHttpStatus.notImplemented]: 'The server does not support the functionality required to fulfill the request.',\n  [FoundryHttpStatus.badGateway]: 'The server received an invalid response from the upstream server.',\n  [FoundryHttpStatus.serviceUnavailable]: 'The server is temporarily down for maintenance. Please try again later.',\n  [FoundryHttpStatus.gatewayTimeout]: 'The gateway timed out while waiting for a response from the server.',\n  [FoundryHttpStatus.httpVersionNotSupported]: 'The HTTP protocol version used in the request is not supported by the server.'\n};\nexport const DefaultNetworkErrorMessage: string = 'An unexpected connection error occurred. Please try again later.';\n","export enum FoundryStorageType {\n  local = 'localStorage',\n  session = 'sessionStorage'\n}\nexport enum FoundryStorageKeys {\n  token = 'token',\n  refreshToken = 'refreshToken',\n  language = 'foundryAppLang',\n  userPreferences = 'foundryUserPreferences',\n  navigationState = 'foundryNavState',\n  lastSync = 'foundrySyncTimestamp',\n  sessionId = 'foundrySessionId'\n}\nexport const FoundryStorageDefaultPrefix: string = 'fndy_';\n","export enum FoundryThemeVariant {\n  primary = 'primary',\n  secondary = 'secondary',\n  tertiary = 'tertiary',\n  quaternary = 'quaternary',\n  success = 'success',\n  warning = 'warning',\n  error = 'error',\n  info = 'info'\n}\nexport enum FoundryNotificationClass {\n  feedback = 'feedbackSnackbar',\n  error = 'errorSnackbar',\n  warning = 'warningSnackbar',\n  info = 'infoSnackbar'\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FOUNDRY_DIALOG_DATA: InjectionToken<any> = new InjectionToken<any>('FoundryDialogData');\n","export enum FoundryBroadcastEventType {\n  sessionLogout = 'sessionLogout',\n  sessionExpired = 'sessionExpired',\n  userPreferencesUpdated = 'userPreferencesUpdated',\n  dataSynchronization = 'dataSynchronization',\n  applicationNotification = 'applicationNotification',\n  customDomainEvent = 'customDomainEvent',\n  silentBackgroundRefresh = 'silentBackgroundRefresh'\n}\n","import { Injectable } from '@angular/core';\nimport { FoundryStorageType, FoundryStorageKeys, FoundryStorageDefaultPrefix } from '../constants/foundry-storage.constants';\n\n@Injectable({ providedIn: 'root' })\n\nexport class FoundryBrowserStorageService {\n  /** ACTIONS */\n  remove(type: FoundryStorageType, key: FoundryStorageKeys | string): void {\n    window[type].removeItem(this.resolveKey(key));\n  }\n  clear(type: FoundryStorageType): void {\n    window[type].clear();\n  }\n\n  /** GETTERS & SETTERS */\n  get<T>(type: FoundryStorageType, key: FoundryStorageKeys | string): T | null {\n    const storageKey = this.resolveKey(key);\n    const item = window[type].getItem(storageKey);\n    if (!item) return null;\n    try {\n      return JSON.parse(item) as T;\n    } catch {\n      return item as unknown as T;\n    }\n  }\n  set(type: FoundryStorageType, key: FoundryStorageKeys | string, value: any): void {\n    const storageKey = this.resolveKey(key);\n    const data = typeof value === 'string' ? value : JSON.stringify(value);\n    window[type].setItem(storageKey, data);\n  }\n\n  /** AUXILIAR FUNCTIONS */\n  private resolveKey(key: string): string {\n    const isStandard = Object.values(FoundryStorageKeys).includes(key as FoundryStorageKeys);\n    return isStandard ? key : `${FoundryStorageDefaultPrefix}${key}`;\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\n\nexport class FoundryConfigurationService {\n  /** CONTROL VARIABLES */\n  private config: any = null;\n\n  /** GETTERS & SETTERS */\n  get isInitialized(): boolean {\n    return this.config !== null;\n  }\n  get<T>(key: string, defaultValue: T | null = null): T | null {\n    if (!this.config || !(key in this.config)) return defaultValue;\n    return this.config[key] as T;\n  }\n  get all(): any {\n    return this.config ? { ...this.config } : {};\n  }\n  setConfiguration(config: any): void {\n    if (this.isInitialized) return;\n    this.config = Object.freeze({ ...config });\n  }\n}\n","import { Component, OnInit, OnDestroy, inject, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { FoundryNotificationService } from '../../services/foundry-notification.service';\nimport { FoundryThemeVariant, FoundryNotificationClass } from '../../../constants/foundry-theme.constants';\nimport { FoundryNotificationPayload } from '../../../interfaces/foundry-notification-payload.interface';\n\ninterface InternalToast {\n  payload: FoundryNotificationPayload;\n  isLeaving: boolean;\n}\n\n@Component({\n  selector: 'foundry-notification-container',\n  standalone: true,\n  templateUrl: './foundry-notification-container.component.html',\n  styleUrls: ['./foundry-notification-container.component.scss'],\n  imports: [CommonModule],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FoundryNotificationContainerComponent implements OnInit, OnDestroy {\n  /** INJECTORS */\n  private readonly foundryNotificationSE: FoundryNotificationService = inject(FoundryNotificationService);\n  private readonly changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n  /** LISTENERS */\n  private subscription: Subscription = new Subscription();\n\n  /** CONTROL VARIABLES */\n  activeToasts: Array<InternalToast> = [];\n\n  /** LIFECYCLE HOOKS */\n  ngOnInit(): void {\n    this.initializeSubscription();\n  }\n  ngOnDestroy(): void {\n    this.destroySubscription();\n  }\n\n  /** ACTIONS */\n  addNotification(payload: FoundryNotificationPayload): void {\n    const toast: InternalToast = { payload, isLeaving: false };\n    this.activeToasts.push(toast);\n    this.changeDetectorRef.detectChanges();\n    setTimeout(() => {\n      toast.isLeaving = true;\n      this.changeDetectorRef.detectChanges();\n      setTimeout(() => {\n        this.activeToasts = this.activeToasts.filter(t => t !== toast);\n        this.changeDetectorRef.detectChanges();\n      }, 300);\n    }, payload.duration || 4500);\n  }\n\n  /** GETTERS & SETTERS */\n  getStyleClass(type: FoundryThemeVariant): string {\n    const classMap: Record<string, string> = {\n      [FoundryThemeVariant.success]: FoundryNotificationClass.feedback,\n      [FoundryThemeVariant.error]: FoundryNotificationClass.error,\n      [FoundryThemeVariant.warning]: FoundryNotificationClass.warning,\n      [FoundryThemeVariant.info]: FoundryNotificationClass.info,\n    };\n    return classMap[type] || '';\n  }\n\n  /** AUXILIAR FUNCTIONS */\n  private initializeSubscription() {\n    this.subscription = this.foundryNotificationSE.notifications.subscribe(payload => { this.addNotification(payload); });\n  }\n  private destroySubscription() {\n    this.subscription.unsubscribe();\n  }\n}\n","<div class=\"coreNotificationStack\">\n  @for (toast of activeToasts; track toast) {\n  <div class=\"coreSnackbarItem\" [ngClass]=\"[getStyleClass(toast.payload.type), toast.isLeaving ? 'leaving' : '']\">\n    <div class=\"content\">\n      @if (toast.payload.title) {\n      <strong class=\"title\">{{ toast.payload.title }}</strong>\n      }\n      <p class=\"message\">{{ toast.payload.message }}</p>\n    </div>\n  </div>\n  }\n</div>","import { Injectable, ApplicationRef, ComponentRef, createComponent, EnvironmentInjector, inject } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { FoundryThemeVariant } from '../../constants/foundry-theme.constants';\nimport { FoundryNotificationPayload } from '../../interfaces/foundry-notification-payload.interface';\nimport { FoundryNotificationContainerComponent } from '../internal/foundry-notification-container/foundry-notification-container.component';\n\n@Injectable({ providedIn: 'root' })\n\nexport class FoundryNotificationService {\n  /** INJECTORS */\n  private readonly applicationReference: ApplicationRef = inject(ApplicationRef);\n  private readonly enviromentInjector: EnvironmentInjector = inject(EnvironmentInjector);\n\n  /** LISTENERS */\n  private notification$ = new Subject<FoundryNotificationPayload>();\n  public notifications: Observable<FoundryNotificationPayload> = this.notification$.asObservable();\n\n  /** CONTROL VARIABLES */\n  private containerRef: ComponentRef<FoundryNotificationContainerComponent> | null = null;\n\n  /** ACTIONS */\n  showSuccess(message: string, title?: string, duration?: number): void {\n    this.notify({ type: FoundryThemeVariant.success, message, title, duration });\n  }\n  showError(message: string, title?: string, duration?: number): void {\n    this.notify({ type: FoundryThemeVariant.error, message, title, duration });\n  }\n  showWarning(message: string, title?: string, duration?: number): void {\n    this.notify({ type: FoundryThemeVariant.warning, message, title, duration });\n  }\n  showInfo(message: string, title?: string, duration?: number): void {\n    this.notify({ type: FoundryThemeVariant.info, message, title, duration });\n  }\n\n  /** VALIDATIONS */\n  private ensureContainerExists(): void {\n    if (this.containerRef) return;\n    if (this.containerRef) return;\n    this.containerRef = createComponent(FoundryNotificationContainerComponent, { environmentInjector: this.enviromentInjector });\n    this.applicationReference.attachView(this.containerRef.hostView);\n    const domElement: HTMLElement = (this.containerRef.hostView as any).rootNodes[0] as HTMLElement;\n    document.body.appendChild(domElement);\n    this.containerRef.changeDetectorRef.detectChanges();\n  }\n\n  /** AUXILIAR FUNCTIONS */\n  private notify(payload: FoundryNotificationPayload): void {\n    this.ensureContainerExists();\n    this.notification$.next(payload);\n  }\n}\n","import { Subject, Observable } from 'rxjs';\n\nexport class FoundryDialogReference<Result = any> {\n  /** LISTENERS */\n  private readonly afterClosed$: Subject<Result | undefined> = new Subject<Result | undefined>();\n  public readonly afterClosed: Observable<Result | undefined> = this.afterClosed$.asObservable();\n\n  constructor(public readonly id: string, private closeFunction: (id: string, result?: Result) => void) { }\n\n  /** ACTIONS */\n  closeDialog(result?: Result): void {\n    this.afterClosed$.next(result);\n    this.afterClosed$.complete();\n    this.closeFunction(this.id, result);\n  }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { FoundryConfirmDialogOptions } from '../../../interfaces';\nimport { FOUNDRY_DIALOG_DATA } from '../../../constants';\nimport { FoundryDialogReference } from '../../class/foundry-dialog-reference.class';\n\n@Component({\n  selector: 'foundry-default-confirm-dialog',\n  standalone: true,\n  templateUrl: './foundry-default-confirm-dialog.component.html',\n  styleUrls: ['./foundry-default-confirm-dialog.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class FoundryDefaultConfirmDialogComponent {\n  /** INJECTORS */\n  public readonly foundryDialogData: FoundryConfirmDialogOptions = inject(FOUNDRY_DIALOG_DATA);\n  private readonly foundryDialogReference: FoundryDialogReference = inject(FoundryDialogReference);\n\n  /** ACTIONS */\n  onConfirm(event: Event): void {\n    event.stopImmediatePropagation();\n    this.foundryDialogReference.closeDialog({ activeAction: true });\n  }\n  onCancel(event: Event): void {\n    event.stopImmediatePropagation();\n    this.foundryDialogReference.closeDialog({ activeAction: false });\n  }\n\n}\n","<div class=\"coreConfirmCard\" (click)=\"$event.stopImmediatePropagation()\">\n  <header class=\"coreConfirmHeader\">\n    @if (foundryDialogData.icon) {\n    <span class=\"material-symbols-outlined notranslate coreConfirmIcon\">{{ foundryDialogData.icon }}</span>\n    }\n    <h2 class=\"coreConfirmTitle\">{{ foundryDialogData.title }}</h2>\n  </header>\n\n  <main class=\"coreConfirmBody\">\n    @if (foundryDialogData.description) {\n    <p class=\"coreConfirmDescription\">{{ foundryDialogData.description }}</p>\n    }\n    @if (foundryDialogData.extraDescription) {\n    <p class=\"coreConfirmExtraDescription\">{{ foundryDialogData.extraDescription }}</p>\n    }\n  </main>\n\n  <footer class=\"coreConfirmActions\">\n    <button type=\"button\" class=\"coreButton coreButtonCancel\" (click)=\"onCancel($event)\">\n      {{ foundryDialogData.buttonCancelText || 'No, cancel' }}\n    </button>\n\n    <button type=\"button\" class=\"coreButton coreButtonConfirm\" (click)=\"onConfirm($event)\">\n      {{ foundryDialogData.buttonConfirmText || 'Yes, confirm' }}\n    </button>\n  </footer>\n</div>\n","import { Injectable, Type, ApplicationRef, EnvironmentInjector, createComponent, ComponentRef, Injector, inject, NgZone } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { FoundryActionDialogOptions, FoundryConfirmDialogOptions } from '../../interfaces';\nimport { FoundryDialogReference } from '../class/foundry-dialog-reference.class';\nimport { FOUNDRY_DIALOG_DATA } from '../../constants';\nimport { FoundryDefaultConfirmDialogComponent } from '../internal/foundry-default-confirm/foundry-default-confirm-dialog.component';\nimport { FoundryDialogInstance } from '../../interfaces/foundry-dialog-instance.inerface';\n\n@Injectable({ providedIn: 'root' })\n\nexport class FoundryDialogWindowService {\n  /** INJECTORS */\n  private readonly appReference: ApplicationRef = inject(ApplicationRef);\n  private readonly environmentInjector: EnvironmentInjector = inject(EnvironmentInjector);\n  private readonly parentInjector: Injector = inject(Injector);\n  private readonly ngZone: NgZone = inject(NgZone);\n\n  /** CONTROL VARIABLES */\n  private dialogs: Array<FoundryDialogInstance> = [];\n  private dialogCounter: number = 0;\n\n  constructor() {\n    this.initializeGlobalListeners();\n  }\n\n  /** ACTIONS */\n  openDialog<T>(component: Type<T>, data?: any, animationClass?: string, disableClose = false): FoundryDialogReference {\n    const dialogId = `dialog-${this.dialogCounter++}`;\n    const closeFunction = (id: string, result?: any) => this.destroyDialog(id);\n    const dialogReference: FoundryDialogReference = new FoundryDialogReference(dialogId, closeFunction);\n\n    const customInjector = Injector.create({\n      parent: this.parentInjector,\n      providers: [\n        { provide: FoundryDialogReference, useValue: dialogReference },\n        { provide: FOUNDRY_DIALOG_DATA, useValue: data }\n      ]\n    });\n\n    const wrapperElement: HTMLDivElement = document.createElement('div');\n    wrapperElement.id = dialogId;\n    wrapperElement.className = 'foundryDialogWrapper';\n\n    if (animationClass) wrapperElement.classList.add(animationClass);\n\n    Object.assign(wrapperElement.style, {\n      position: 'fixed', top: '0', left: '0', width: '100vw', height: '100dvh',\n      backgroundColor: 'rgba(0,0,0,0.5)', display: 'flex', justifyContent: 'center',\n      alignItems: 'center', zIndex: 'var(--foundry-z-modal)'\n    });\n\n    wrapperElement.addEventListener('click', (event: Event) => {\n      event.stopImmediatePropagation()\n      if (event.target === wrapperElement && !disableClose) dialogReference.closeDialog();\n    });\n\n    const componentReference: ComponentRef<T> = createComponent(component, {\n      environmentInjector: this.environmentInjector,\n      elementInjector: customInjector\n    });\n\n    this.appReference.attachView(componentReference.hostView);\n\n    const domElement: HTMLElement = (componentReference.hostView as any).rootNodes[0] as HTMLElement;\n    wrapperElement.appendChild(domElement);\n    document.body.appendChild(wrapperElement);\n    document.body.style.overflow = 'hidden';\n\n    this.dialogs.push({ id: dialogId, reference: dialogReference, componentReference, wrapperElement, disableClose });\n\n    return dialogReference;\n  }\n  openConfirm(options: FoundryConfirmDialogOptions): void {\n    const componentToRender = options.component ?? FoundryDefaultConfirmDialogComponent;\n    const dialogReference: FoundryDialogReference = this.openDialog(componentToRender, options, undefined, options.disableClose);\n\n    dialogReference.afterClosed.pipe(take(1)).subscribe((result: any) => {\n      if (result?.activeAction && options.callback) options.callback();\n    });\n  }\n  openAction(options: FoundryActionDialogOptions): void {\n    const dialogReference: FoundryDialogReference = this.openDialog(options.component, options.data, options.animationClass, options.disableClose);\n    dialogReference.afterClosed.pipe(take(1)).subscribe((result: any) => {\n      if (!result) return;\n      const { callback, hasReturnedData } = options;\n      if (callback) hasReturnedData ? callback(result) : callback();\n    });\n  }\n  closeLast(): void {\n    if (this.dialogs.length > 0) {\n      const lastDialog = this.dialogs[this.dialogs.length - 1];\n      lastDialog.reference.closeDialog();\n    }\n  }\n  closeAll(): void {\n    [...this.dialogs].reverse().forEach(dialog => dialog.reference.closeDialog());\n  }\n\n  /** AUXILIAR FUNCTIONS */\n  private initializeGlobalListeners(): void {\n    this.ngZone.runOutsideAngular(() => {\n      document.addEventListener('keydown', (event: KeyboardEvent) => {\n        if (event.key === 'Escape' && this.dialogs.length > 0) {\n          this.ngZone.run(() => {\n            const lastDialog = this.dialogs[this.dialogs.length - 1];\n            const { disableClose, reference } = lastDialog;\n            if (!disableClose) reference.closeDialog();\n          });\n\n        }\n      });\n    });\n  }\n  private destroyDialog(id: string): void {\n    const index = this.dialogs.findIndex(d => d.id === id);\n    if (index === -1) return;\n\n    const selectedDialog: FoundryDialogInstance = this.dialogs[index];\n    selectedDialog.wrapperElement.classList.add('fadeOut');\n    this.dialogs.splice(index, 1);\n\n    setTimeout(() => {\n      const { componentReference, wrapperElement } = selectedDialog;\n      this.appReference.detachView(componentReference.hostView);\n      componentReference.destroy();\n      wrapperElement.remove();\n      if (this.dialogs.length === 0) document.body.style.overflow = '';\n    }, 150);\n  }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n  selector: 'foundry-default-loader',\n  standalone: true,\n  templateUrl: './foundry-default-loader.component.html',\n  styleUrls: ['./foundry-default-loader.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class FoundryDefaultLoaderComponent { }\n","<div class=\"coreLoaderOverlay\">\n  <div class=\"coreSpinner\"></div>\n</div>","import { Injectable, ApplicationRef, EnvironmentInjector, createComponent, ComponentRef, Type, inject } from '@angular/core';\nimport { FoundryDefaultLoaderComponent } from '../internal/foundry-default-loader/foundry-default-loader.component';\n\n@Injectable({ providedIn: 'root' })\n\nexport class FoundryLoadingIndicatorService {\n  /** INJECTORS */\n  private readonly appReference: ApplicationRef = inject(ApplicationRef);\n  private readonly enviromentInjector: EnvironmentInjector = inject(EnvironmentInjector);\n\n  /** CONTROL VARIABLES */\n  private defaultLoader: Type<any> = FoundryDefaultLoaderComponent;\n  private activeRequests: number = 0;\n  private componentRef: ComponentRef<any> | null = null;\n\n  /** ACTIONS */\n  showLoader(customComponent?: Type<any>): void {\n    this.activeRequests++;\n    if (this.activeRequests === 1) {\n      const componentToUse = customComponent ?? this.defaultLoader;\n      this.attachLoader(componentToUse);\n    }\n  }\n  hideLoader(): void {\n    if (this.activeRequests > 0) this.activeRequests--;\n    if (this.activeRequests === 0) this.detachLoader();\n  }\n  forceHide(): void {\n    this.activeRequests = 0;\n    this.detachLoader();\n  }\n\n  /** GETTERS & SETTERS */\n  setDefaultLoader(component: Type<any>): void {\n    this.defaultLoader = component;\n  }\n\n  /** AUXILIAR FUNCTIONS */\n  private attachLoader(component: Type<any>): void {\n    if (this.componentRef) return;\n    this.componentRef = createComponent(component, { environmentInjector: this.enviromentInjector });\n    this.appReference.attachView(this.componentRef.hostView);\n    const domElem = (this.componentRef.hostView as any).rootNodes[0] as HTMLElement;\n    document.body.appendChild(domElem);\n  }\n  private detachLoader(): void {\n    if (!this.componentRef) return;\n    this.appReference.detachView(this.componentRef.hostView);\n    this.componentRef.destroy();\n    this.componentRef = null;\n  }\n}\n","import { ErrorHandler, inject, Injectable, Injector, NgZone } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { FoundryNotificationService } from '../user-interface/services';\nimport { DefaultNetworkErrorMessage, FoundryHttpStatus, FoundryNetworkMessages } from '../constants';\n\n@Injectable()\nexport class FoundryGlobalErrorHandler implements ErrorHandler {\n  /** INJECTORS */\n  private readonly injector: Injector = inject(Injector);\n\n  /** HANDLERS */\n  handleError(error: unknown): void {\n    const foundryNotificationSE: FoundryNotificationService = this.injector.get(FoundryNotificationService);\n    const zone: NgZone = this.injector.get(NgZone);\n    const extractedError: any = this.resolveError(error);\n    console.error('[Foundry global error]:', extractedError);\n    zone.run(() => { foundryNotificationSE.showError(extractedError.message, extractedError.title); });\n  }\n\n  /** AUXILIAR FUNCTIONS */\n  private resolveError(error: any): any {\n    if (error instanceof HttpErrorResponse) {\n      const mappedMessage: string = FoundryNetworkMessages[error.status] || DefaultNetworkErrorMessage;\n      let errorTitle: string = 'Network error';\n\n      switch (error.status) {\n        case FoundryHttpStatus.unauthorized:\n        case FoundryHttpStatus.forbidden:\n          errorTitle = 'Authorization error';\n          break;\n        case FoundryHttpStatus.badRequest:\n        case FoundryHttpStatus.unprocessableEntity:\n        case FoundryHttpStatus.notAcceptable:\n        case FoundryHttpStatus.conflict:\n          errorTitle = 'Validation error';\n          break;\n        case FoundryHttpStatus.notFound:\n          errorTitle = 'Resource not found';\n          break;\n        case FoundryHttpStatus.requestTimeout:\n        case FoundryHttpStatus.gatewayTimeout:\n          errorTitle = 'Timeout error';\n          break;\n        case FoundryHttpStatus.tooManyRequests:\n          errorTitle = 'Rate limit exceeded';\n          break;\n        default:\n          if (error.status >= FoundryHttpStatus.internalServerError) {\n            errorTitle = 'Server error';\n          } else if (error.status >= FoundryHttpStatus.badRequest) {\n            errorTitle = 'Client error';\n          }\n          break;\n      }\n\n      return { type: 'httpError', status: error.status, message: mappedMessage, title: errorTitle, url: error.url, originalError: error.message };\n    }\n\n    return { type: 'runtimeError', title: 'System error', message: error?.message || error?.toString() || 'An unexpected runtime error occurred.', stack: error?.stack || null };\n  }\n}\n","import { Injectable, OnDestroy, DestroyRef, inject } from '@angular/core';\nimport { FoundryBroadcastMessage } from '../interfaces/foundry-broadcast-message.interface';\nimport { FoundryChannelStore } from '../interfaces/foundry-channel-store.interface';\nimport { FoundryBroadcastEventType } from '../constants';\n\n@Injectable({ providedIn: 'root' })\n\nexport class FoundryBroadcastChannelService implements OnDestroy {\n  /** CONTROL VARIABLES */\n  private readonly activeChannels: Map<string, FoundryChannelStore> = new Map<string, FoundryChannelStore>();\n  private readonly originatorIdentifier: string =\n    typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function' ? crypto.randomUUID() : Math.random().toString(36).substring(2);\n\n  /** LIFECYCLE HOOKS */\n  ngOnDestroy(): void {\n    this.activeChannels.forEach((store: FoundryChannelStore) => store.channel.close());\n    this.activeChannels.clear();\n  }\n\n  /** ACTIONS */\n  listen(channelName: string, methodCalls: Function | Array<Function>): void {\n    let destroyReference: DestroyRef | null = null;\n    try {\n      destroyReference = inject(DestroyRef);\n    } catch (e) {\n      console.warn(`[Foundry] Broadcast channel service: 'listen' for \"${channelName}\" called outside injection context.`);\n    }\n\n    const store: FoundryChannelStore = this.getOrCreateChannel(channelName);\n    const functionsToAdd: Array<Function> = Array.isArray(methodCalls) ? methodCalls : [methodCalls];\n\n    functionsToAdd.forEach((fn: Function) => {\n      if (typeof fn === 'function') {\n        store.callbacks.push(fn);\n        if (destroyReference) destroyReference.onDestroy(() => this.removeCallback(channelName, fn));\n      }\n    });\n  }\n  publishSignal(channelName: string): void {\n    const store: FoundryChannelStore = this.getOrCreateChannel(channelName);\n    const message: FoundryBroadcastMessage<boolean> = this.buildMessage(FoundryBroadcastEventType.dataSynchronization, true);\n    store.channel.postMessage(message);\n    store.data = message;\n    this.triggerLocalCallbacks(channelName);\n  }\n  publish<T>(channelName: string, type: FoundryBroadcastEventType, payload?: T): void {\n    const store: FoundryChannelStore = this.getOrCreateChannel(channelName);\n    const message: FoundryBroadcastMessage<T> = this.buildMessage(type, payload);\n    store.channel.postMessage(message);\n    store.data = message;\n    this.triggerLocalCallbacks(channelName);\n  }\n  private triggerLocalCallbacks(channelName: string): void {\n    const store: FoundryChannelStore | undefined = this.activeChannels.get(channelName);\n    if (store && store.callbacks.length > 0) store.callbacks.forEach((fn: Function) => fn());\n  }\n\n  /** GETTERS & SETTERS */\n  getChannelStore(channelName: string): FoundryChannelStore {\n    return this.getOrCreateChannel(channelName);\n  }\n  private getOrCreateChannel(channelName: string): FoundryChannelStore {\n    let store: FoundryChannelStore | undefined = this.activeChannels.get(channelName);\n\n    if (!store) {\n      const channel = new BroadcastChannel(channelName);\n      store = { channel, data: null, callbacks: [] };\n      channel.onmessage = (event: MessageEvent<FoundryBroadcastMessage>) => {\n        const internalStore = this.activeChannels.get(channelName);\n        if (internalStore) {\n          internalStore.data = event.data;\n          this.triggerLocalCallbacks(channelName);\n        }\n      };\n\n      this.activeChannels.set(channelName, store);\n    }\n    return store;\n  }\n\n  /** AUXILIAR FUNCTIONS */\n  private removeCallback(channelName: string, functionToRemove: Function): void {\n    const store: FoundryChannelStore | undefined = this.activeChannels.get(channelName);\n    if (!store) return;\n    const index: number = store.callbacks.indexOf(functionToRemove);\n    if (index > -1) store.callbacks.splice(index, 1);\n    if (store.callbacks.length === 0) {\n      store.channel.close();\n      this.activeChannels.delete(channelName);\n    }\n  }\n  private buildMessage<T>(type: FoundryBroadcastEventType, payload?: T): FoundryBroadcastMessage<T> {\n    return { type: type, payload: payload, timestamp: Date.now(), originatorIdentifier: this.originatorIdentifier };\n  }\n}\n","import { HttpContextToken } from '@angular/common/http';\n\nexport const foundrySkipAuth = new HttpContextToken<boolean>(() => false);\nexport const foundrySkipAuthRefresh = new HttpContextToken<boolean>(() => false);\n","import { Observable } from 'rxjs';\n\nexport abstract class FoundryRefreshTokenProvider {\n  abstract refreshToken(): Observable<string>;\n}\n","import { Injectable, inject } from '@angular/core';\nimport { FoundryBrowserStorageService } from '../../storage';\nimport { FoundryStorageKeys, FoundryStorageType } from '../../constants';\n\n@Injectable({ providedIn: 'root' })\nexport class FoundryTokenService {\n  /** INJECTORS */\n  private readonly foundryBrowserStorageSE: FoundryBrowserStorageService = inject(FoundryBrowserStorageService);\n\n  /** ACTIONS */\n  clearToken(): void {\n    this.foundryBrowserStorageSE.remove(FoundryStorageType.local, FoundryStorageKeys.token);\n    this.foundryBrowserStorageSE.remove(FoundryStorageType.session, FoundryStorageKeys.token);\n  }\n  clearRefreshToken(): void {\n    this.foundryBrowserStorageSE.remove(FoundryStorageType.local, FoundryStorageKeys.refreshToken);\n    this.foundryBrowserStorageSE.remove(FoundryStorageType.session, FoundryStorageKeys.refreshToken);\n  }\n\n  /** GETTERS & SETTERS */\n  getToken(): string | null {\n    return this.foundryBrowserStorageSE.get<string>(FoundryStorageType.session, FoundryStorageKeys.token) ||\n      this.foundryBrowserStorageSE.get<string>(FoundryStorageType.local, FoundryStorageKeys.token);\n  }\n  getRefreshToken(): string | null {\n    return this.foundryBrowserStorageSE.get<string>(FoundryStorageType.session, FoundryStorageKeys.refreshToken) ||\n      this.foundryBrowserStorageSE.get<string>(FoundryStorageType.local, FoundryStorageKeys.refreshToken);\n  }\n  setToken(token: string, storageType?: FoundryStorageType): void {\n    const targetStorage = storageType || (this.foundryBrowserStorageSE.get(FoundryStorageType.session, FoundryStorageKeys.token) ? FoundryStorageType.session : FoundryStorageType.local);\n    this.foundryBrowserStorageSE.set(targetStorage, FoundryStorageKeys.token, token);\n  }\n  setRefreshToken(refreshToken: string, storageType?: FoundryStorageType): void {\n    const targetStorage = storageType || (this.foundryBrowserStorageSE.get(FoundryStorageType.session, FoundryStorageKeys.refreshToken) ? FoundryStorageType.session : FoundryStorageType.local);\n    this.foundryBrowserStorageSE.set(targetStorage, FoundryStorageKeys.refreshToken, refreshToken);\n  }\n\n  /** VALIDATIONS */\n  hasToken(): boolean {\n    return !!this.getToken();\n  }\n  hasRefreshToken(): boolean {\n    return !!this.getRefreshToken();\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\n\nexport class FoundryAuthRefreshStateService {\n  /** LISTENERS */\n  refreshTokenBS: BehaviorSubject<string | null> = new BehaviorSubject<string | null>(null);\n\n  /** CONTROL VARIABLES */\n  isRefreshing: boolean = false;\n\n}\n","import { HttpInterceptorFn, HttpRequest } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { FoundryTokenService } from '../services';\nimport { foundrySkipAuth } from '../class';\n\n\nexport const foundryJwtInterceptor: HttpInterceptorFn = (request, next) => {\n  const foundryTokenSE: FoundryTokenService = inject(FoundryTokenService);\n  const isSkipAuth: boolean = request.context.get(foundrySkipAuth);\n  const token: string | null = foundryTokenSE.getToken();\n\n  if (token && !isSkipAuth) {\n    const authRequest: HttpRequest<unknown> = request.clone({ setHeaders: { Authorization: `Bearer ${token}` } });\n    return next(authRequest);\n  }\n\n  return next(request);\n};\n","import { inject } from '@angular/core';\nimport { HttpInterceptorFn, HttpErrorResponse } from '@angular/common/http';\nimport { catchError, switchMap, throwError, filter, take } from 'rxjs';\nimport { FoundryRefreshTokenProvider, foundrySkipAuthRefresh } from '../class';\nimport { FoundryAuthRefreshStateService } from '../services/foundry-auth-refresh-state.service';\nimport { FoundryNetworkMessages } from '../../constants';\n\nexport const foundryAuthRefreshInterceptor: HttpInterceptorFn = (request, next) => {\n  const foundryRefreshTokenSP: FoundryRefreshTokenProvider = inject(FoundryRefreshTokenProvider);\n  const foundryAuthRefreshStateSE: FoundryAuthRefreshStateService = inject(FoundryAuthRefreshStateService);\n  const isSkipAuth: boolean = request.context.get(foundrySkipAuthRefresh);\n\n  if (isSkipAuth) return next(request);\n\n  return next(request).pipe(\n    catchError((error: HttpErrorResponse) => {\n      if (error.status !== 401) return throwError(() => error);\n\n      if (!foundryAuthRefreshStateSE.isRefreshing) {\n        foundryAuthRefreshStateSE.isRefreshing = true;\n        foundryAuthRefreshStateSE.refreshTokenBS.next(null);\n\n        return foundryRefreshTokenSP.refreshToken().pipe(\n          switchMap((newToken: string) => {\n            foundryAuthRefreshStateSE.isRefreshing = false;\n            foundryAuthRefreshStateSE.refreshTokenBS.next(newToken);\n            return next(request);\n          }),\n          catchError((refreshError: any) => {\n            foundryAuthRefreshStateSE.isRefreshing = false;\n            const unauthorizedError = new HttpErrorResponse({ error: refreshError.error || { message: FoundryNetworkMessages[401] }, status: 401, statusText: 'Unauthorized', url: request.url });\n            return throwError(() => unauthorizedError);\n          })\n        );\n\n      } else {\n        return foundryAuthRefreshStateSE.refreshTokenBS.pipe(filter((token: string | null) => token !== null), take(1), switchMap(() => next(request)));\n      }\n    })\n  );\n};\n","import { Injectable, inject } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { FoundryApiResponse } from '../../interfaces/foundry-api-response.interface';\nimport { FoundryNotificationService } from '../../user-interface/services/foundry-notification.service';\nimport { FoundryBroadcastChannelService } from '../../state/foundry-broadcast-channel.service';\nimport { DefaultNetworkErrorMessage, FoundryNetworkMessages } from '../../constants';\nimport { FoundryRequestOptions } from '../../interfaces';\n\n@Injectable({ providedIn: 'root' })\n\nexport class FoundryApiRequestDispatcherService {\n  /** INJECTORS */\n  private readonly foundryNotificationSE: FoundryNotificationService = inject(FoundryNotificationService);\n  private readonly foundryBroadcastChannelSE: FoundryBroadcastChannelService = inject(FoundryBroadcastChannelService);\n\n  /** CONTROL DE ERRORES */\n  private readonly activeErrorMessages = new Set<string>();\n\n  /** ACTIONS */\n  dispatchRequest<T>(request: Observable<any>, options?: FoundryRequestOptions<T>): Observable<FoundryApiResponse<T>> {\n    const showError = options?.showErrorNotification !== false;\n\n    return request.pipe(\n      map((response: any) => {\n        const responseBody: any = response?.body !== undefined ? response.body : response;\n        const defaultData: any = responseBody?.data !== undefined ? responseBody.data : responseBody;\n        const parsedData: any = options?.successDataParser ? options.successDataParser(response) : defaultData;\n        const statusCode: number = response?.status ? response.status : 200;\n        const backendMessage = responseBody?.message || response?.message || '';\n        const apiResponse: FoundryApiResponse<T> = { ok: true, status: statusCode, message: backendMessage, data: parsedData };\n\n        if (options?.showSuccessNotification) {\n          const title: string = options.successNotificationTitle || 'Action completed';\n          const notificationMessage: string = apiResponse.message || 'The request was executed successfully.';\n          this.foundryNotificationSE.showSuccess(notificationMessage, title);\n        }\n\n        if (options?.updateTabChannel) this.foundryBroadcastChannelSE.publishSignal(options.updateTabChannel);\n\n        return apiResponse;\n      }),\n      catchError((error: HttpErrorResponse) => {\n        if (options?.customErrorHandler) options.customErrorHandler(error);\n        if (error.status === 0) return of({ ok: false, status: 0, message: 'Request cancelled', data: undefined } as FoundryApiResponse<T>);\n        const realStatus = Number(error.status) || Number(error.error?.status) || 500;\n        const serverMessage: string = typeof error.error === 'string' ? error.error : (error.error?.message || error.error?.error || error.message);\n        const mappedMessage: string = FoundryNetworkMessages[error.status] || DefaultNetworkErrorMessage;\n        const finalErrorMessage: string = serverMessage || mappedMessage || DefaultNetworkErrorMessage;\n\n        const apiResponse: FoundryApiResponse<T> = { ok: false, status: realStatus, message: finalErrorMessage, data: undefined };\n\n        if (showError) {\n          const title: string = options?.errorNotificationTitle || this.getDefaultTitleByStatus(realStatus);\n          const errorKey: string = `${title}-${realStatus}`;\n\n          if (!this.activeErrorMessages.has(errorKey)) {\n            this.activeErrorMessages.add(errorKey);\n            this.foundryNotificationSE.showError(finalErrorMessage, title);\n            setTimeout(() => { this.activeErrorMessages.delete(errorKey); }, 3000);\n          }\n        }\n\n        return of(apiResponse);\n      })\n    );\n  }\n\n  /** GETTERS & SETTERS */\n  private getDefaultTitleByStatus(status: number): string {\n    if (status === 401) return 'Session expired';\n    if (status === 403) return 'Access denied';\n    if (status === 404) return 'Resource not found';\n    if (status >= 500) return 'Server error';\n    return 'Attention required';\n  };\n}\n","import { HttpContextToken } from \"@angular/common/http\";\n\nexport const foundrySkipLoader = new HttpContextToken<boolean>(() => false);\n","import { Injectable, inject } from '@angular/core';\nimport { HttpClient, HttpContext } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { FoundryApiRequestDispatcherService } from './foundry-api-request-dispatcher.service';\nimport { FoundryApiResponse, FoundryRequestOptions } from '../../interfaces';\nimport { foundrySkipLoader } from '../class';\nimport { foundrySkipAuth, foundrySkipAuthRefresh } from '../../security/class';\n\n@Injectable({ providedIn: 'root' })\nexport class FoundryHttpClientService {\n  /** INJECTORS */\n  private readonly http: HttpClient = inject(HttpClient);\n  private readonly foundryApiRequestDispatcherSE: FoundryApiRequestDispatcherService = inject(FoundryApiRequestDispatcherService);\n\n  /** HTTP METHODS */\n  public get<T>(url: string, options?: FoundryRequestOptions<T>): Observable<FoundryApiResponse<T>> {\n    return this.executeRequest<T>('GET', url, null, options);\n  }\n  public post<T>(url: string, body: any, options?: FoundryRequestOptions<T>): Observable<FoundryApiResponse<T>> {\n    return this.executeRequest<T>('POST', url, body, options);\n  }\n  public put<T>(url: string, body: any, options?: FoundryRequestOptions<T>): Observable<FoundryApiResponse<T>> {\n    return this.executeRequest<T>('PUT', url, body, options);\n  }\n  public patch<T>(url: string, body: any, options?: FoundryRequestOptions<T>): Observable<FoundryApiResponse<T>> {\n    return this.executeRequest<T>('PATCH', url, body, options);\n  }\n  public delete<T>(url: string, options?: FoundryRequestOptions<T>): Observable<FoundryApiResponse<T>> {\n    return this.executeRequest<T>('DELETE', url, null, options);\n  }\n\n  /** ACTIONS */\n  private executeRequest<T>(method: string, url: string, body?: any, options?: FoundryRequestOptions<T>): Observable<FoundryApiResponse<T>> {\n    let requestContext: HttpContext = options?.context || new HttpContext();\n    if (options?.skipLoader) requestContext = requestContext.set(foundrySkipLoader, true);\n    if (options?.skipAuth) requestContext = requestContext.set(foundrySkipAuth, true);\n    if (options?.skipAuthRefresh) requestContext = requestContext.set(foundrySkipAuthRefresh, true);\n    const request: Observable<any> = this.http.request(method, url, {\n      body,\n      ...options,\n      context: requestContext,\n      observe: 'response'\n    });\n    return this.foundryApiRequestDispatcherSE.dispatchRequest<T>(request, options);\n  }\n}\n","import { HttpInterceptorFn, HttpRequest } from '@angular/common/http';\n\n\nexport function foundryApiPrefixInterceptor(baseUrl: string): HttpInterceptorFn {\n  return (request, next) => {\n    if (request.url.startsWith('http') || !baseUrl) {\n      if (!baseUrl && !request.url.startsWith('http')) {\n        console.warn('⚠️ Foundry api prefix interceptor: baseUrl not provided. Request will be sent as-is.');\n      }\n      return next(request);\n    }\n    const cleanedUrl: string = request.url.startsWith('/') ? request.url.slice(1) : request.url;\n    const apiRequest: HttpRequest<unknown> = request.clone({ url: `${baseUrl.replace(/\\/$/, '')}/${cleanedUrl}` });\n\n    return next(apiRequest);\n  };\n}\n","import { HttpInterceptorFn } from \"@angular/common/http\";\nimport { inject } from \"@angular/core\";\nimport { finalize } from \"rxjs\";\nimport { FoundryLoadingIndicatorService } from \"../../user-interface/services\";\nimport { foundrySkipLoader } from \"../class\";\n\nexport const foundryLoaderInterceptor: HttpInterceptorFn = (request, next) => {\n  const foundryLoadingIndicatorSE: FoundryLoadingIndicatorService = inject(FoundryLoadingIndicatorService);\n  const isSkipLoader: boolean = request.context.get(foundrySkipLoader);\n  if (isSkipLoader) return next(request);\n  foundryLoadingIndicatorSE.showLoader();\n  return next(request).pipe(finalize(() => foundryLoadingIndicatorSE.hideLoader()));\n};\n","import { Location } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { ActivatedRoute, NavigationExtras, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FoundryNavigationOptions } from '../interfaces';\n\n@Injectable({ providedIn: 'root' })\n\nexport class FoundryRouterService {\n  /** INJECTORS */\n  private readonly router: Router = inject(Router);\n  private readonly activatedRoute: ActivatedRoute = inject(ActivatedRoute);\n  private readonly location: Location = inject(Location);\n\n  /** ACTIONS */\n  async navigateTo(path: string | Array<any>, options?: FoundryNavigationOptions): Promise<boolean> {\n    const commands = Array.isArray(path) ? path : [path];\n    try {\n      if (options?.newTab) {\n        const urlTree = this.router.createUrlTree(commands, { queryParams: options.params, fragment: options.fragment });\n        window.open(this.router.serializeUrl(urlTree), '_blank');\n        return true;\n      }\n      const navigationExtras: NavigationExtras = { queryParams: options?.params, state: options?.state, fragment: options?.fragment, skipLocationChange: options?.skipLocationChange };\n      const success: boolean = await this.router.navigate(commands, navigationExtras);\n      if (!success) console.warn(`[Foundry navigation]: Navigation to ${JSON.stringify(commands)} blocked or failed.`);\n      return success;\n    } catch (error) {\n      console.error('[Foundry navigation]: Critical error while browsing', error);\n      return false;\n    }\n  }\n  goBack(): void {\n    this.location.back();\n  }\n  async reloadCurrentRoute(): Promise<void> {\n    const currentUrl: string = this.router.url;\n    await this.router.navigateByUrl('/', { skipLocationChange: true });\n    await this.router.navigateByUrl(currentUrl);\n  }\n\n  /** GETTERS & SETTERS */\n  getQueryParams(): Observable<Record<string, any>> {\n    return this.activatedRoute.queryParams;\n  }\n  getPathParams(): Observable<Record<string, any>> {\n    return this.activatedRoute.params;\n  }\n  getCurrentUrl(): string {\n    return this.router.url.split('?')[0].split('#')[0];\n  }\n  getNavigationState(): any {\n    return this.router.getCurrentNavigation()?.extras.state || null;\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["take","catchError"],"mappings":"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"}