{"version":3,"file":"catrx-ui-dialog.mjs","sources":["../../../../projects/catrx/ui/dialog/src/cat-dialog.ts","../../../../projects/catrx/ui/dialog/src/cat-dialog.service.ts","../../../../projects/catrx/ui/dialog/src/cat-dialog.component.ts","../../../../projects/catrx/ui/dialog/catrx-ui-dialog.ts"],"sourcesContent":["import { InjectionToken, Injectable, Inject } from '@angular/core';\nimport { CatDialogOptions } from './cat-dialog.interface';\n\nexport const CAT_DIALOG_DATA = new InjectionToken('CatDialogData');\nexport const CAT_DIALOG_OPTIONS = new InjectionToken('CatDialogOptions');\nexport const CAT_DIALOG_REF_TOKEN = new InjectionToken('CatDialogRefToken');\n\n@Injectable()\nexport class CatDialogRef {\n  constructor(\n    @Inject(CAT_DIALOG_OPTIONS) private options: CatDialogOptions,\n    @Inject(CAT_DIALOG_REF_TOKEN) private elementId: string\n  ) {}\n\n  close(value?: any) {\n    const elDialog = document.getElementById(this.elementId);\n    if (elDialog) {\n      const elDialogBackdrop = document.querySelector(\n        `#${this.elementId} .cat-dialog`\n      );\n      elDialogBackdrop?.classList.add('animate__animated');\n      elDialogBackdrop?.classList.add('animate__fadeOut');\n\n      const elDialogContent = document.querySelector(\n        `#${this.elementId} .cat-dialog-content`\n      );\n      elDialogContent?.classList.add('animate__animated');\n      elDialogContent?.classList.add('animate__zoomOut');\n      setTimeout(() => elDialog.remove(), 200);\n\n      if (\n        this.options?.closeTrigger === value ||\n        (typeof this.options?.closeTrigger === 'object' &&\n          typeof value === 'object')\n      ) {\n        if (this.options.callbackCloseTrigger)\n          this.options.callbackCloseTrigger(value);\n      }\n    }\n  }\n}\n","import {\n  ApplicationRef,\n  ComponentFactoryResolver,\n  EmbeddedViewRef,\n  Injectable,\n  Injector,\n  Type,\n} from '@angular/core';\nimport { CatDialogOptions } from './cat-dialog.interface';\nimport { randomString } from '@koalarx/utils/operators/string';\nimport {\n  CatDialogRef,\n  CAT_DIALOG_DATA,\n  CAT_DIALOG_OPTIONS,\n  CAT_DIALOG_REF_TOKEN,\n} from './cat-dialog';\n\n@Injectable({ providedIn: 'root' })\nexport class CatDialogService {\n  constructor(\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private appRef: ApplicationRef\n  ) {}\n\n  public open(component: Type<any>, options?: CatDialogOptions) {\n    const elementId = this.generateElementId();\n    const main = document.querySelector('main');\n    const componentRef = this.componentFactoryResolver\n      .resolveComponentFactory(component)\n      .create(\n        Injector.create({\n          providers: [\n            { provide: CAT_DIALOG_DATA, useValue: options?.data },\n            { provide: CAT_DIALOG_OPTIONS, useValue: options },\n            { provide: CAT_DIALOG_REF_TOKEN, useValue: elementId },\n            {\n              provide: CatDialogRef,\n              deps: [CAT_DIALOG_OPTIONS, CAT_DIALOG_REF_TOKEN],\n            },\n          ],\n        })\n      );\n\n    this.appRef.attachView(componentRef.hostView);\n\n    const elDialog = (componentRef.hostView as EmbeddedViewRef<any>)\n      .rootNodes[0] as HTMLElement;\n    elDialog.id = elementId;\n    elDialog.children?.[0].classList.add(\n      `dialog-size-${options?.size ?? 'auto'}`\n    );\n\n    main.appendChild(elDialog);\n\n    const elDialogBackdrop = document.querySelector(\n      `#${elementId} .cat-dialog`\n    );\n    elDialogBackdrop?.classList.add('animate__animated');\n    elDialogBackdrop?.classList.add('animate__fadeIn');\n\n    const elDialogContent = document.querySelector(\n      `#${elementId} .cat-dialog-content`\n    );\n    elDialogContent?.classList.add('animate__animated');\n    elDialogContent?.classList.add('animate__zoomIn');\n  }\n\n  private generateElementId() {\n    let elementId: string;\n\n    do {\n      elementId = randomString(50, {\n        numbers: false,\n        lowercase: true,\n        uppercase: true,\n        specialCharacters: false,\n      });\n    } while (document.getElementById(elementId));\n\n    return elementId;\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'cat-dialog',\n  standalone: true,\n  template: `\n    <div class=\"cat-dialog\">\n      <div class=\"cat-dialog-content\">\n        <div class=\"cat-modal-header\">\n          <ng-content select=\"div[header]\"></ng-content>\n        </div>\n        <div class=\"cat-modal-content\">\n          <ng-content select=\"div[content]\"></ng-content>\n        </div>\n        <div class=\"cat-modal-actions\">\n          <ng-content select=\"div[actions]\"></ng-content>\n        </div>\n      </div>\n    </div>\n  `,\n})\nexport class CatDialogComponent {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}