{"version":3,"file":"ng-vibe-dialog.mjs","sources":["../../../../libs/dialog/src/tools/service-injector/locator.service.ts","../../../../libs/dialog/src/tools/string-manipulation/random-unique-string.ts","../../../../libs/dialog/src/providers/dialog-provider.ts","../../../../libs/dialog/src/components/default-loader/default-loader.component.ts","../../../../libs/dialog/src/components/default-loader/default-loader.component.html","../../../../libs/dialog/src/animations/keyframes.ts","../../../../libs/dialog/src/animations/box.animations.ts","../../../../libs/dialog/src/animations/overlay-animation.ts","../../../../libs/dialog/src/animations/fadein-out-animation.ts","../../../../libs/dialog/src/providers/remote-control-provider.ts","../../../../libs/dialog/src/services/dialog-component-helper.service.ts","../../../../libs/dialog/src/components/dialog-component/dialog.component.ts","../../../../libs/dialog/src/components/dialog-component/dialog.component.html","../../../../libs/dialog/src/enums/animation.enum.ts","../../../../libs/dialog/src/config/default-dialog-options.ts","../../../../libs/dialog/src/services/helper.service.ts","../../../../libs/dialog/src/services/state-management.service.ts","../../../../libs/dialog/src/services/dialog.service.ts","../../../../libs/dialog/src/services/public-dialog.service.ts","../../../../libs/dialog/src/models/dialog.remote-control.model.ts","../../../../libs/dialog/src/ng-vibe-dialog.ts"],"sourcesContent":["import { Injector } from '@angular/core';\n\nexport function setupServiceLocator(injector: Injector): void {\n  ServiceLocator.injector = injector;\n}\nexport class ServiceLocator {\n  static injector: Injector;\n}\n","export function generateRandomString(): string {\n  return Math.random().toString(36).substring(2, 12);\n}\n","import { APP_INITIALIZER, Injector, Provider } from '@angular/core';\nimport { provideAnimations } from '@angular/platform-browser/animations';\nimport { setupServiceLocator } from '../tools';\n\nexport function provideNgVibeDialog(): Provider[] {\n  return [\n    provideAnimations(),\n    {\n      provide: APP_INITIALIZER,\n      useFactory: (injector: Injector) => () => setupServiceLocator(injector),\n      deps: [Injector],\n      multi: true,\n    },\n  ];\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ng-vibe-dialog-default-loader',\n  standalone: true,\n  templateUrl: './default-loader.component.html',\n  styleUrls: ['./default-loader.component.scss'],\n})\nexport class DefaultLoaderComponent {}\n","<div class=\"box-position\">\n  <div class=\"loader-center\">\n    <span class=\"loader\"></span>\n  </div>\n</div>\n","import { style } from '@angular/animations';\n\n// in\nexport const bounceIn = [\n  style({\n    transform: 'scale3d(0.7, 0.7, 0.7)',\n    offset: 0,\n    opacity: 0,\n  }),\n  style({\n    transform: 'scale3d(1.3, 1.3, 1.3)',\n    offset: 0.3,\n    opacity: 0.3,\n  }),\n  style({\n    transform: 'scale3d(0.95, 0.95, 0.95)',\n    offset: 0.6,\n    opacity: 1,\n  }),\n  style({\n    transform: 'scale3d(1.03, 1.03, 1.03)',\n    opacity: 1,\n    offset: 0.8,\n  }),\n  style({\n    transform: 'scale3d(0.97, 0.97, 0.97)',\n    offset: 0.9,\n  }),\n  style({\n    transform: 'scale3d(1, 1, 1)',\n    offset: 1,\n    opacity: 1,\n  }),\n];\n\nexport const swing = [\n  style({ offset: 0, opacity: 0 }),\n  style({ transform: 'rotate3d(0, 0, 1, 10deg)', offset: 0.2 }),\n  style({ transform: 'rotate3d(0, 0, 1, -7deg)', offset: 0.3, opacity: 1 }),\n  style({ transform: 'rotate3d(0, 0, 1, 3deg)', offset: 0.55 }),\n  style({ transform: 'rotate3d(0, 0, 1, -3deg)', offset: 0.8 }),\n  style({ transform: 'none', offset: 1 }),\n];\n\nexport const zoomIn = [\n  style({\n    transform: 'scale3d(0.3, 0.3, 0.3)',\n    offset: 0,\n  }),\n  style({\n    offset: 0.1,\n    opacity: 1,\n  }),\n  style({\n    transform: 'scale3d(1, 1, 1)',\n    offset: 1,\n  }),\n];\n\nexport const zoomInRotate = [\n  style({\n    transform: 'scale(0.1) rotate(30deg)',\n    offset: 0,\n    opacity: 0,\n  }),\n  style({\n    transform: 'rotate(-10deg)',\n    offset: 0.5,\n    opacity: 1,\n  }),\n  style({\n    transform: 'rotate(3deg)',\n    offset: 0.7,\n  }),\n  style({\n    transform: 'scale(1)',\n    offset: 1,\n  }),\n];\n\nexport const elastic = [\n  style({ transform: 'scale3d(1, 1, 1)', offset: 0, opacity: 0 }),\n  style({ transform: 'scale3d(1.25, 0.75, 1)', offset: 0.3 }),\n  style({ transform: 'scale3d(0.75, 1.25, 1)', offset: 0.4, opacity: 1 }),\n  style({ transform: 'scale3d(1.15, 0.85, 1)', offset: 0.5 }),\n  style({ transform: 'scale3d(0.95, 1.05, 1)', offset: 0.6 }),\n  style({ transform: 'scale3d(1.05, 0.95, 1)', offset: 0.7 }),\n  style({ transform: 'scale3d(1, 1, 1)', offset: 1 }),\n];\n\nexport const jello = [\n  style({ offset: 0, opacity: 0 }),\n  style({ transform: 'skewX(-12.5deg) skewY(-12.5deg)', offset: 0.111 }),\n  style({ transform: 'skewX(6.25deg) skewY(6.25deg)', offset: 0.222 }),\n  style({\n    transform: 'skewX(-3.125deg) skewY(-3.125deg)',\n    offset: 0.333,\n    opacity: 1,\n  }),\n  style({ transform: 'skewX(1.5625deg) skewY(1.5625deg)', offset: 0.444 }),\n  style({ transform: 'skewX(-0.78125deg) skewY(-0.78125deg)', offset: 0.555 }),\n  style({ transform: 'skewX(0.390625deg) skewY(0.390625deg)', offset: 0.666 }),\n  style({ transform: 'skewX(0.390625deg) skewY(0.390625deg)', offset: 0.777 }),\n  style({\n    transform: 'skewX(-0.1953125deg) skewY(-0.1953125deg)',\n    offset: 0.888,\n  }),\n  style({ transform: 'none', offset: 1 }),\n];\n\nexport const fadeIn = [\n  style({ offset: 0, opacity: 0 }),\n  style({ offset: 1, opacity: 1 }),\n];\n\nexport const slideInUp = [\n  style({ offset: 0, opacity: 0, transform: 'translate3d(0, 100%, 0)' }),\n  style({ offset: 1, opacity: 1, transform: 'translate3d(0, 0, 0)' }),\n];\n\nexport const slideInDown = [\n  style({ offset: 0, opacity: 0, transform: 'translate3d(0, -100%, 0)' }),\n  style({ offset: 1, opacity: 1, transform: 'translate3d(0, 0, 0)' }),\n];\n\nexport const slideInLeft = [\n  style({ offset: 0, opacity: 0, transform: 'translate3d(-100%, 0, 0)' }),\n  style({ offset: 1, opacity: 1, transform: 'translate3d(0, 0, 0)' }),\n];\n\nexport const slideInRight = [\n  style({ offset: 0, opacity: 0, transform: 'translate3d(100%, 0, 0)' }),\n  style({ offset: 1, opacity: 1, transform: 'translate3d(0, 0, 0)' }),\n];\n\n// out\n\nexport const fadeOut = [\n  style({ offset: 0, opacity: 1 }),\n  style({ offset: 1, opacity: 0 }),\n];\n\nexport const zoomOutWind = [\n  style({\n    transform: 'scale3d(.475, .475, .475) translate3d(-42px, 0, 0)',\n    offset: 0.4,\n  }),\n  style({\n    transform: 'scale(.1) translate3d(400px, 0, 0)',\n    'transform-origin': 'top center',\n    offset: 1,\n    opacity: 0,\n  }),\n];\n\nexport const bounceOut = [\n  style({\n    transform: 'scale3d(1.3, 1.3, 1.3)',\n    offset: 0.3,\n  }),\n  style({\n    transform: 'scale3d(0.9, 0.9, 0.9)',\n    offset: 0.5,\n  }),\n  style({\n    transform: 'scale3d(0.3, 0.3, 0.3)',\n    opacity: 0,\n    offset: 1,\n  }),\n];\n\nexport const flipOutY = [\n  style({ transform: 'perspective(400px)', offset: 0 }),\n  style({\n    transform: 'perspective(400px) rotate3d(0, 1, 0, -15deg)',\n    opacity: 1,\n    offset: 0.33,\n  }),\n  style({\n    transform: 'perspective(400px) rotate3d(0, 1, 0, 90deg)',\n    opacity: 0,\n    offset: 0.9,\n  }),\n];\n\nexport const zoomOut = [\n  style({\n    opacity: 1,\n    offset: 0,\n  }),\n  style({\n    offset: 0.5,\n    transform: 'scale3d(0.3, 0.3, 0.3)',\n    opacity: 0,\n  }),\n  style({\n    offset: 1,\n    opacity: 0,\n  }),\n];\n\nexport const zoomOutRotate = [\n  style({\n    opacity: 1,\n    offset: 0,\n  }),\n  style({\n    offset: 0.9,\n    transform: 'rotate(200deg) scale(0.1)',\n    opacity: 0,\n  }),\n];\n\nexport const slideOutUp = [\n  style({ transform: 'translate3d(0, 0, 0)', offset: 0 }),\n  style({ transform: 'translate3d(0, -100%, 0)', opacity: 0, offset: 1 }),\n];\n\nexport const slideOutDown = [\n  style({ transform: 'translate3d(0, 0, 0)', offset: 0 }),\n  style({ transform: 'translate3d(0, 100%, 0)', opacity: 0, offset: 1 }),\n];\n\nexport const slideOutLeft = [\n  style({ transform: 'translate3d(0, 0, 0)', offset: 0 }),\n  style({ transform: 'translate3d(-100%, 0, 0)', opacity: 0, offset: 1 }),\n];\n\nexport const slideOutRight = [\n  style({ transform: 'translate3d(0, 0, 0)', offset: 0 }),\n  style({ transform: 'translate3d(100%, 0, 0)', opacity: 0, offset: 1 }),\n];\n\n// motion\n\nexport const wobble = [\n  style({\n    transform: 'translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)',\n    offset: 0.15,\n  }),\n  style({\n    transform: 'translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)',\n    offset: 0.3,\n  }),\n  style({\n    transform: 'translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)',\n    offset: 0.45,\n  }),\n  style({\n    transform: 'translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)',\n    offset: 0.6,\n  }),\n  style({\n    transform: 'translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)',\n    offset: 0.75,\n  }),\n  style({ transform: 'none', offset: 1 }),\n];\n","import {\n  animate,\n  AnimationTriggerMetadata,\n  keyframes,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\nimport * as kf from './keyframes';\n\nexport const boxAnimations: AnimationTriggerMetadata = trigger(\n  'boxAnimations',\n  [\n    state('initial', style({ opacity: 0 })),\n    state('reset', style({ opacity: 1 })),\n    // in\n    state('noneIn', style({ opacity: 1 })),\n    state('bounceIn', style({ opacity: 1 })),\n    state('swing', style({ opacity: 1 })),\n    state('zoomIn', style({ opacity: 1 })),\n    state('zoomInRotate', style({ opacity: 1 })),\n    state('elastic', style({ opacity: 1 })),\n    state('jello', style({ opacity: 1 })),\n    state('fadeIn', style({ opacity: 1 })),\n    state('slideInUp', style({ opacity: 1 })),\n    state('slideInDown', style({ opacity: 1 })),\n    state('slideInLeft', style({ opacity: 1 })),\n    state('slideInRight', style({ opacity: 1 })),\n\n    transition('* => noneIn', animate('10ms', keyframes(kf.fadeIn))),\n    transition(\n      '* => bounceIn',\n      animate(\n        '1000ms cubic-bezier(0.215, 0.61, 0.355, 1)',\n        keyframes(kf.bounceIn)\n      )\n    ),\n    transition('* => swing', animate('800ms', keyframes(kf.swing))),\n    transition('* => zoomIn', animate('400ms ease-in', keyframes(kf.zoomIn))),\n    transition(\n      '* => zoomInRotate',\n      animate('800ms ease-in', keyframes(kf.zoomInRotate))\n    ),\n    transition('* => elastic', animate('1000ms', keyframes(kf.elastic))),\n    transition('* => jello', animate(1000, keyframes(kf.jello))),\n    transition('* => fadeIn', animate('400ms ease-in', keyframes(kf.fadeIn))),\n    transition(\n      '* => slideInUp',\n      animate('400ms ease-in', keyframes(kf.slideInUp))\n    ),\n    transition(\n      '* => slideInDown',\n      animate('400ms ease-in', keyframes(kf.slideInDown))\n    ),\n    transition(\n      '* => slideInLeft',\n      animate('400ms ease-in', keyframes(kf.slideInLeft))\n    ),\n    transition(\n      '* => slideInRight',\n      animate('400ms ease-in', keyframes(kf.slideInRight))\n    ),\n    transition('* => reset', style({ opacity: 1 })),\n\n    // out\n    state('noneOut', style({ opacity: 0 })),\n    state('fadeOut', style({ opacity: 0 })),\n    state('zoomOutWind', style({ opacity: 0 })),\n    state('bounceOut', style({ opacity: 0 })),\n    state('flipOutY', style({ opacity: 0 })),\n    state('zoomOut', style({ opacity: 0 })),\n    state('zoomOutRotate', style({ opacity: 0 })),\n    state('slideOutUp', style({ opacity: 0 })),\n    state('slideOutDown', style({ opacity: 0 })),\n    state('slideOutLeft', style({ opacity: 0 })),\n    state('slideOutRight', style({ opacity: 0 })),\n\n    transition(\n      '* => noneOut',\n      animate('100ms ease-out', keyframes(kf.fadeOut))\n    ),\n    transition(\n      '* => fadeOut',\n      animate('300ms ease-out', keyframes(kf.fadeOut))\n    ),\n    transition(\n      '* => zoomOutWind',\n      animate('400ms ease-out', keyframes(kf.zoomOutWind))\n    ),\n    transition(\n      '* => bounceOut',\n      animate('400ms ease-out', keyframes(kf.bounceOut))\n    ),\n    transition(\n      '* => flipOutY',\n      animate('400ms ease-out', keyframes(kf.flipOutY))\n    ),\n    transition(\n      '* => zoomOut',\n      animate('400ms ease-out', keyframes(kf.zoomOut))\n    ),\n    transition(\n      '* => zoomOutRotate',\n      animate('400ms ease-out', keyframes(kf.zoomOutRotate))\n    ),\n    transition(\n      '* => slideOutUp',\n      animate('300ms ease-out', keyframes(kf.slideOutUp))\n    ),\n    transition(\n      '* => slideOutDown',\n      animate('300ms ease-out', keyframes(kf.slideOutDown))\n    ),\n    transition(\n      '* => slideOutLeft',\n      animate('300ms ease-out', keyframes(kf.slideOutLeft))\n    ),\n    transition(\n      '* => slideOutRight',\n      animate('300ms ease-out', keyframes(kf.slideOutRight))\n    ),\n\n    // motion\n    transition('* => wobble', animate(1000, keyframes(kf.wobble))),\n  ]\n);\n","import {\n  animate,\n  animateChild,\n  AnimationTriggerMetadata,\n  group,\n  query,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\nexport const overlayAnimation: AnimationTriggerMetadata = trigger(\n  'overlayAnimation',\n  [\n    state('enter', style({ opacity: 1 })),\n\n    state('leave', style({ opacity: 0 })),\n    transition('void => enter', [\n      style({ opacity: 0 }),\n      group([\n        animate('300ms ease-in', style({ opacity: 1 })),\n        query('@boxAnimations', animateChild(), { optional: true }),\n      ]),\n    ]),\n    transition('enter => leave', [\n      group([\n        query('@boxAnimations', animateChild(), { optional: true }),\n        animate('600ms ease-out', style({ opacity: 0 })),\n      ]),\n    ]),\n  ]\n);\n","import {\n  animate,\n  animateChild,\n  AnimationTriggerMetadata,\n  group,\n  query,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\nexport const fadeinOutAnimation: AnimationTriggerMetadata = trigger(\n  'fadeinOutAnimation',\n  [\n    state('enter', style({ opacity: 1 })),\n\n    state('leave', style({ opacity: 0 })),\n    transition('* => enter', [\n      style({ opacity: 0 }),\n      group([\n        animate('100ms ease-in', style({ opacity: 1 })),\n        query('*', animateChild(), { optional: true }),\n      ]),\n    ]),\n    transition('enter => leave', [\n      group([\n        query('*', animateChild(), { optional: true }),\n        animate('100ms ease-out', style({ opacity: 0 })),\n      ]),\n    ]),\n  ]\n);\n","import { Provider } from '@angular/core';\nimport { DialogRemoteControl } from '../models';\n\nexport function provideRemoteControl(\n  remoteControl: DialogRemoteControl\n): Provider[] {\n  return [\n    {\n      provide: DialogRemoteControl,\n      useValue: remoteControl,\n    },\n  ];\n}\n","import {\n  ChangeDetectorRef,\n  inject,\n  Injectable,\n  Injector,\n  Type,\n  ViewContainerRef,\n} from '@angular/core';\nimport { DialogRemoteControl } from '../models';\nimport { provideRemoteControl } from '../providers/remote-control-provider';\n\ntype RemoteControlType = DialogRemoteControl;\n\n@Injectable()\nexport class DialogComponentHelperService {\n  private cd: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n  loadComponent(\n    content: ViewContainerRef,\n    remoteControl: RemoteControlType,\n    componentType?: Type<any>\n  ): void {\n    if (!content || !componentType) return; // Guard condition\n\n    const injector = Injector.create({\n      providers: provideRemoteControl(remoteControl),\n    });\n\n    content.clear();\n    content.createComponent(componentType, { injector });\n    this.cd.detectChanges();\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  Component,\n  EventEmitter,\n  inject,\n  Output,\n  Type,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\nimport {\n  boxAnimations,\n  fadeinOutAnimation,\n  overlayAnimation,\n} from '../../animations';\nimport { AppearanceAnimation, DisappearanceAnimation } from '../../enums';\nimport { IDialogOptions } from '../../interfaces';\nimport { DialogRemoteControl } from '../../models';\nimport { DialogComponentHelperService } from '../../services/dialog-component-helper.service';\n\n@Component({\n  selector: 'ng-vibe-dialog',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './dialog.component.html',\n  animations: [overlayAnimation, boxAnimations, fadeinOutAnimation],\n  providers: [DialogComponentHelperService],\n})\nexport class DialogComponent implements AfterViewInit {\n  @ViewChild('dialogContent', { read: ViewContainerRef })\n  dialogContent!: ViewContainerRef;\n  @Output()\n  animationDone = new EventEmitter<void>();\n  public options!: IDialogOptions;\n  public boxAnimationState:\n    | AppearanceAnimation\n    | DisappearanceAnimation\n    | 'initial' = 'initial';\n  public overlayAnimationState: 'enter' | 'leave' = 'enter';\n  public contentAnimationState: 'enter' | 'leave' = 'enter';\n  public overlayVisible = false;\n  private loaderComponentType?: Type<any>;\n  private mainComponentType?: Type<any>;\n  public dialogRemoteControl!: DialogRemoteControl;\n  private helper: DialogComponentHelperService = inject(\n    DialogComponentHelperService\n  );\n\n  ngAfterViewInit(): void {\n    this.overlayVisible = this.options.showOverlay;\n    this.boxAnimationState = this.options.animationIn!;\n    this.loadComponent();\n  }\n\n  public prepareComponentForLoad(\n    component: Type<any>,\n    remoteControl: DialogRemoteControl\n  ): void {\n    this.mainComponentType = component;\n    this.dialogRemoteControl = remoteControl;\n    if (!this.loaderComponentType) {\n      // If no loader, load the main component immediately\n      this.loadComponent();\n    }\n  }\n\n  public stopLoader(): void {\n    if (this.loaderComponentType) {\n      this.contentAnimationState = 'leave';\n      // timeout for smooth animation\n      setTimeout(() => {\n        this.loaderComponentType = undefined; // Clear loader component\n        this.loadComponent(); // Load main component\n      }, 300);\n    }\n  }\n\n  public setLoaderComponent(component: Type<any>): void {\n    this.loaderComponentType = component;\n  }\n\n  private loadComponent(): void {\n    const componentType = this.loaderComponentType || this.mainComponentType;\n    this.helper.loadComponent(\n      this.dialogContent,\n      this.dialogRemoteControl,\n      componentType\n    );\n    this.contentAnimationState = 'enter';\n  }\n\n  onAnimationDone(event: any) {\n    if (event.toState === this.options.animationOut!) {\n      this.animationDone.emit();\n    }\n  }\n\n  getDialogStyles() {\n    let styles: { [key: string]: string } = {\n      width: this.options.width,\n      height: this.options.height,\n      minWidth: this.options.minWidth,\n      maxWidth: this.options.maxWidth,\n      minHeight: this.options.minHeight,\n      maxHeight: this.options.maxHeight,\n    };\n    if (this.options.fullScreen) {\n      styles = {\n        ...styles,\n        width: '100vw',\n        height: '100vh',\n        minWidth: 'auto',\n        maxWidth: 'auto',\n        minHeight: 'auto',\n        maxHeight: 'auto',\n        borderRadius: '0',\n      };\n    }\n    return styles;\n  }\n}\n","@if (overlayVisible) {\n<div\n  class=\"ng-vibe-dialog-overlay\"\n  [@overlayAnimation]=\"overlayAnimationState\"\n></div>\n}\n<div class=\"ng-vibe-dialog-wrapper\">\n  <div\n    [@boxAnimations]=\"boxAnimationState\"\n    (@boxAnimations.done)=\"onAnimationDone($event)\"\n    class=\"ng-vibe-dialog\"\n    [ngStyle]=\"getDialogStyles()\"\n  >\n    <div class=\"dialog-content\" [@fadeinOutAnimation]=\"contentAnimationState\">\n      <ng-template #dialogContent></ng-template>\n    </div>\n  </div>\n</div>\n","export enum AppearanceAnimation {\n  NONE = 'noneIn',\n  BOUNCE_IN = 'bounceIn',\n  SWING = 'swing',\n  ZOOM_IN = 'zoomIn',\n  ZOOM_IN_ROTATE = 'zoomInRotate',\n  ELASTIC = 'elastic',\n  JELLO = 'jello',\n  FADE_IN = 'fadeIn',\n  SLIDE_IN_UP = 'slideInUp',\n  SLIDE_IN_DOWN = 'slideInDown',\n  SLIDE_IN_LEFT = 'slideInLeft',\n  SLIDE_IN_RIGHT = 'slideInRight',\n}\n\nexport enum DisappearanceAnimation {\n  NONE = 'noneOut',\n  FADE_OUT = 'fadeOut',\n  ZOOM_OUT_WIND = 'zoomOutWind',\n  BOUNCE_OUT = 'bounceOut',\n  FLIP_OUT = 'flipOutY',\n  ZOOM_OUT = 'zoomOut',\n  ZOOM_OUT_ROTATE = 'zoomOutRotate',\n  SLIDE_OUT_UP = 'slideOutUp',\n  SLIDE_OUT_DOWN = 'slideOutDown',\n  SLIDE_OUT_LEFT = 'slideOutLeft',\n  SLIDE_OUT_RIGHT = 'slideOutRight',\n}\n","import { AppearanceAnimation, DisappearanceAnimation } from '../enums';\nimport { IDialogOptions } from '../interfaces';\n\nexport const DEFAULT_DIALOG_OPTIONS: IDialogOptions = {\n  width: 'auto',\n  height: 'auto',\n  minWidth: 'auto',\n  maxWidth: 'none',\n  minHeight: 'auto',\n  maxHeight: 'none',\n  fullScreen: false,\n  showOverlay: true,\n  animationIn: AppearanceAnimation.ZOOM_IN,\n  animationOut: DisappearanceAnimation.ZOOM_OUT,\n};\n","import { DOCUMENT } from '@angular/common';\nimport {\n  ApplicationRef,\n  ComponentRef,\n  createComponent,\n  EnvironmentInjector,\n  Inject,\n  inject,\n  Injectable,\n  Type,\n} from '@angular/core';\n\ntype RemoteControlTypeHelper = {\n  options: any;\n};\n\ntype ParentComponentTypeHelper = {\n  options: any;\n  setLoaderComponent(component: Type<any>): void;\n  prepareComponentForLoad(\n    component: Type<any>,\n    remoteControl: RemoteControlTypeHelper\n  ): void;\n};\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class HelperService {\n  private appRef: ApplicationRef = inject(ApplicationRef);\n  private environmentInjector = inject(EnvironmentInjector);\n\n  constructor(@Inject(DOCUMENT) private document: Document) {}\n\n  public manageView(\n    action: 'attach' | 'detach',\n    componentRef: ComponentRef<any>\n  ): void {\n    if (action === 'attach') {\n      this.appRef.attachView(componentRef.hostView);\n      this.document.body.appendChild(componentRef.location.nativeElement);\n    } else if (action === 'detach') {\n      this.appRef.detachView(componentRef.hostView);\n      componentRef.destroy();\n    }\n  }\n\n  public createAndConfigureDynamicComponents<\n    ParentComponentType,\n    RemoteControlType\n  >(\n    remoteControl: RemoteControlType & RemoteControlTypeHelper,\n    childComponent: Type<any>,\n    parentComponent: Type<ParentComponentTypeHelper>,\n    loaderComponent?: Type<any>\n  ): ComponentRef<ParentComponentType> {\n    const parentComponentRef = createComponent(parentComponent, {\n      environmentInjector: this.environmentInjector,\n    });\n\n    if (loaderComponent) {\n      parentComponentRef.instance.setLoaderComponent(loaderComponent);\n    }\n\n    parentComponentRef.instance.prepareComponentForLoad(\n      childComponent,\n      remoteControl\n    );\n\n    parentComponentRef.instance.options = remoteControl.options;\n\n    return parentComponentRef as ComponentRef<ParentComponentType>;\n  }\n}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport { BehaviorSubject, filter, map, Observable, Subject, take } from 'rxjs';\nimport { DialogRemoteControl } from '../models';\n\ntype RemoteControlType = DialogRemoteControl;\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class StateManagementService {\n  public instanceStatesSubject: BehaviorSubject<\n    Map<string, RemoteControlType>\n  > = new BehaviorSubject(new Map());\n  public instanceStates$ = this.instanceStatesSubject.asObservable();\n  public instances: Map<string, ComponentRef<any>> = new Map();\n  private instanceCloseSubject: Subject<{ id: string; data?: any }> =\n    new Subject();\n\n  public addInstance(\n    id: string,\n    componentRef: ComponentRef<any>,\n    remoteControl: RemoteControlType\n  ): void {\n    this.instances.set(id, componentRef);\n    this.updateState(id, remoteControl);\n  }\n\n  public instanceExists(id: string): boolean {\n    return this.instances.has(id);\n  }\n\n  public getInstance(id: string): ComponentRef<any> | undefined {\n    return this.instances.get(id);\n  }\n  public deleteInstance(id: string): boolean {\n    return this.instances.delete(id);\n  }\n\n  public getDialogStates$(): Observable<Map<string, RemoteControlType>> {\n    return this.instanceStatesSubject.asObservable();\n  }\n\n  public getDialogCloseSubject(): Subject<{ id: string; data?: any }> {\n    return this.instanceCloseSubject;\n  }\n\n  public listenForClose(id: string): Observable<any> {\n    return this.instanceCloseSubject.asObservable().pipe(\n      filter((event) => event.id === id),\n      map((event) => event.data),\n      take(1)\n    );\n  }\n\n  public updateState(id: string, remoteControl: RemoteControlType): void {\n    const currentStates = this.instanceStatesSubject.getValue();\n    currentStates.set(id, remoteControl);\n    this.instanceStatesSubject.next(currentStates);\n  }\n\n  public removeDialogState(id: string): void {\n    const currentStates = this.instanceStatesSubject.getValue();\n    if (currentStates.delete(id)) {\n      this.instanceStatesSubject.next(currentStates);\n    }\n  }\n\n  public sendCloseData(id: string, data?: any): void {\n    this.instanceCloseSubject.next({ id, data });\n  }\n\n  closeEmmit(id: string, data?: any) {\n    this.deleteInstance(id);\n    this.removeDialogState(id);\n    this.sendCloseData(id, data);\n  }\n}\n","import { inject, Injectable, Type } from '@angular/core';\nimport { Observable, take } from 'rxjs';\nimport { DialogComponent } from '../components';\nimport { DialogRemoteControl } from '../models';\nimport { HelperService } from './helper.service';\nimport { StateManagementService } from './state-management.service';\n\ntype RemoteControlType = DialogRemoteControl;\ntype ParentComponentType = DialogComponent;\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DialogService {\n  private helperService = inject(HelperService);\n  private stateService = inject(StateManagementService);\n\n  public open(\n    remoteControl: RemoteControlType,\n    childComponent: Type<any>,\n    loaderComponent?: Type<any>\n  ): Observable<any> {\n    if (this.stateService.instanceExists(remoteControl.id)) {\n      return this.stateService.listenForClose(remoteControl.id);\n    }\n\n    const parentComponentRef =\n      this.helperService.createAndConfigureDynamicComponents<\n        ParentComponentType,\n        RemoteControlType\n      >(remoteControl, childComponent, DialogComponent, loaderComponent);\n\n    this.stateService.addInstance(\n      remoteControl.id,\n      parentComponentRef,\n      remoteControl\n    );\n\n    this.helperService.manageView('attach', parentComponentRef);\n    return this.stateService.listenForClose(remoteControl.id);\n  }\n\n  public removeLoaderComponent(id: string): void {\n    const dialogComponentRef = this.stateService.getInstance(id);\n    if (dialogComponentRef) {\n      dialogComponentRef.instance.stopLoader();\n    }\n  }\n  public close(id: string, data?: any): void {\n    const parentRef = this.stateService.getInstance(id);\n    if (parentRef) {\n      parentRef.instance.overlayAnimationState = 'leave';\n      parentRef.instance.boxAnimationState =\n        parentRef.instance.options.animationOut;\n\n      parentRef.instance.animationDone.pipe(take(1)).subscribe(() => {\n        this.helperService.manageView('detach', parentRef);\n        this.stateService.closeEmmit(id, data);\n      });\n    }\n  }\n\n  public closeAll(): void {\n    const dialogs = this.stateService.instances;\n\n    dialogs.forEach((drawerComponentRef, id) => {\n      this.close(id);\n    });\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { filter, map, Observable } from 'rxjs';\nimport { DialogRemoteControl } from '../models';\nimport { DialogService } from './dialog.service';\nimport { StateManagementService } from './state-management.service';\n\ntype RemoteControlType = DialogRemoteControl;\n@Injectable({\n  providedIn: 'root',\n})\nexport class PublicDialogService {\n  private service: DialogService = inject(DialogService);\n  private state = inject(StateManagementService);\n\n  /**\n   * An Observable that emits the count of active dialogues by listening to the state changes\n   * and calculates the total amount active dialogues.\n   */\n  public activeDialogsCount$: Observable<number> =\n    this.state.instanceStates$.pipe(\n      map((states) => Array.from(states.values()).length)\n    );\n\n  /**\n   * Retrieves the DialogRemoteControl object associated with a specific dialogue ID.\n   * @param {string} id The unique identifier for the dialogue.\n   * @returns {DialogRemoteControl | undefined} The DialogRemoteControl object if found, otherwise undefined.\n   */\n  public getRemoteControl(id: string): RemoteControlType | undefined {\n    return this.state.instanceStatesSubject.getValue().get(id);\n  }\n\n  /**\n   * Returns an Observable that emits the DialogRemoteControl object for a given dialogue ID.\n   * The Observable filters out any undefined states, ensuring subscribers only receive defined DialogRemoteControl objects.\n   * @param {string} id The unique identifier for the dialogue.\n   * @returns {Observable<DialogRemoteControl | undefined>} An Observable emitting the DialogRemoteControl object or undefined.\n   */\n  public selectRemoteControl$(\n    id: string\n  ): Observable<RemoteControlType | undefined> {\n    return this.state.instanceStates$.pipe(\n      map((states) => states.get(id)),\n      filter((state): state is RemoteControlType => state !== undefined)\n    );\n  }\n\n  /**\n   * Triggers the closing of all dialogs.\n   */\n  public closeAll(): void {\n    this.service.closeAll();\n  }\n}\n","import { Type } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DefaultLoaderComponent } from '../components';\nimport { DEFAULT_DIALOG_OPTIONS } from '../config';\nimport { IDialogOptions } from '../interfaces';\nimport { DialogService } from '../services';\nimport { generateRandomString, ServiceLocator } from '../tools';\n\n/**\n * Provides control over a specific dialog instance, allowing for opening, closing, and configuring the dialog.\n */\nexport class DialogRemoteControl {\n  /** A unique identifier for the dialog instance. */\n  readonly id = generateRandomString();\n  #options: IDialogOptions = DEFAULT_DIALOG_OPTIONS;\n  readonly #childComponent: Type<any>;\n  #loaderComponent?: Type<any>;\n  /** Custom payload data that can be passed to the dialog. */\n  public payload: null | any = null;\n\n  /**\n   * Sets dialog options, merging provided options with default dialog options.\n   * @param {Partial<IDialogOptions>} options Custom options to configure the dialog.\n   */\n  set options(options: Partial<IDialogOptions>) {\n    this.#options = {\n      ...this.#options,\n      ...this.#preSetup(options),\n    };\n  }\n\n  /**\n   * Returns the current configuration options of the dialog.\n   * @returns {IDialogOptions} The current set of dialog options.\n   */\n  get options(): IDialogOptions {\n    return this.#options;\n  }\n  private dialogService: DialogService;\n\n  constructor(component: Type<any>) {\n    this.#childComponent = component;\n    this.dialogService = ServiceLocator.injector.get(DialogService);\n  }\n\n  /**\n   * Configures the dialog to show a loader until explicitly stopped. Optionally, a custom loader component can be provided.\n   * @param {Type<any>=} component The component to use as a loader. If not provided, a default loader is used.\n   */\n  public withLoader(component?: Type<any>): void {\n    this.#loaderComponent = component || DefaultLoaderComponent;\n  }\n\n  /**\n   * Stops the loader, if any, and reveals the dialog's main content.\n   */\n  public stopLoader(): void {\n    this.dialogService.removeLoaderComponent(this.id);\n  }\n\n  /**\n   * Opens the dialog with the configured settings and component. Optionally, a payload can be passed to the dialog.\n   * @param {any=} payload Custom data to be passed to the dialog component.\n   * @returns {Observable<any>} An Observable that emits when the dialog is closed, returning any result data.\n   */\n  public openDialog(payload?: any): Observable<any> {\n    this.payload = payload || null;\n    return this.dialogService.open(\n      this,\n      this.#childComponent,\n      this.#loaderComponent\n    );\n  }\n\n  /**\n   * Closes the dialog and optionally returns data to the opener.\n   * @param {any=} data Optional data to return as the result of the dialog.\n   */\n  public closeDialog(data?: any): void {\n    this.dialogService.close(this.id, data);\n  }\n\n  #preSetup(options: Partial<IDialogOptions>): IDialogOptions {\n    return {\n      ...DEFAULT_DIALOG_OPTIONS,\n      ...options,\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["kf.fadeIn","kf.bounceIn","kf.swing","kf.zoomIn","kf.zoomInRotate","kf.elastic","kf.jello","kf.slideInUp","kf.slideInDown","kf.slideInLeft","kf.slideInRight","kf.fadeOut","kf.zoomOutWind","kf.bounceOut","kf.flipOutY","kf.zoomOut","kf.zoomOutRotate","kf.slideOutUp","kf.slideOutDown","kf.slideOutLeft","kf.slideOutRight","kf.wobble"],"mappings":"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"}