{"version":3,"file":"catrx-ui-side-window.mjs","sources":["../../../../projects/catrx/ui/side-window/src/side-window.ts","../../../../projects/catrx/ui/side-window/src/side-window.component.ts","../../../../projects/catrx/ui/side-window/src/cat-side-window.service.ts","../../../../projects/catrx/ui/side-window/catrx-ui-side-window.ts"],"sourcesContent":["import { InjectionToken, Injectable, Inject } from '@angular/core';\nimport { CatSideWindowConfig } from './cat-side-window.service';\n\nexport const CAT_SIDE_WINDOW_CONFIG = new InjectionToken('CatSideWindowConfig');\nexport const CAT_SIDE_WINDOW_REF_TOKEN = new InjectionToken(\n  'CatSideWindowRefToken'\n);\n\n@Injectable()\nexport class CatSideWindowRef {\n  constructor(\n    @Inject(CAT_SIDE_WINDOW_CONFIG) private config: CatSideWindowConfig,\n    @Inject(CAT_SIDE_WINDOW_REF_TOKEN) private elementId: string\n  ) {}\n\n  close() {\n    const elDialog = document.getElementById(this.elementId);\n    if (elDialog) {\n      const elSideWindowContent = document.querySelector(\n        `#${this.elementId} .cat-side-window-content`\n      );\n      elSideWindowContent?.classList.add('animate__animated');\n      elSideWindowContent?.classList.add('animate__slideOutRight');\n      setTimeout(() => elDialog.remove(), 200);\n\n      if (this.config.onClose) this.config.onClose();\n    }\n  }\n}\n","import { Component, Inject, OnInit, Type } from '@angular/core';\nimport {\n  CatDynamicComponent,\n  CatDynamicComponentModule,\n} from '@catrx/ui/dynamic-component';\nimport { CatSideWindowConfig } from './cat-side-window.service';\nimport { CatSideWindowRef, CAT_SIDE_WINDOW_CONFIG } from './side-window';\nimport { NavigationStart, Router } from '@angular/router';\nimport { Subscription } from 'rxjs/internal/Subscription';\nimport { CatTooltipModule } from '@catrx/ui/tooltip';\n\ninterface SideWindowConfig extends CatSideWindowConfig {\n  component: Type<any>;\n}\n\n@Component({\n  template: `<div class=\"cat-side-window-content\">\n    <button\n      type=\"button\"\n      (click)=\"close()\"\n      class=\"btn-close-side-window\"\n      catTooltip=\"Fechar\"\n    >\n      <i class=\"fa-solid fa-chevron-right\"></i>\n    </button>\n    <cat-dynamic-component [component]=\"getComponent()\"></cat-dynamic-component>\n  </div>`,\n  standalone: true,\n  imports: [CatDynamicComponentModule, CatTooltipModule],\n})\nexport class SideWindowComponent implements OnInit {\n  private subscriptionRouter: Subscription;\n\n  constructor(\n    @Inject(CAT_SIDE_WINDOW_CONFIG) public config: SideWindowConfig,\n    private sideWindowRef: CatSideWindowRef,\n    private router: Router\n  ) {}\n\n  ngOnInit(): void {\n    this.subscriptionRouter = this.router.events.subscribe((event) => {\n      if (event instanceof NavigationStart) {\n        this.close();\n      }\n    });\n  }\n\n  getComponent() {\n    return new CatDynamicComponent(this.config.component, this.config.data);\n  }\n\n  close() {\n    this.subscriptionRouter.unsubscribe();\n    this.sideWindowRef.close();\n  }\n}\n","import {\n  ApplicationRef,\n  ComponentFactoryResolver,\n  EmbeddedViewRef,\n  Injectable,\n  Injector,\n  Type,\n} from '@angular/core';\nimport { randomString } from '@koalarx/utils/operators/string';\nimport {\n  CatSideWindowRef,\n  CAT_SIDE_WINDOW_CONFIG,\n  CAT_SIDE_WINDOW_REF_TOKEN,\n} from './side-window';\nimport { SideWindowComponent } from './side-window.component';\n\nexport interface CatSideWindowConfig {\n  data?: any;\n  onClose?: () => void;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CatSideWindowService {\n  constructor(\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private appRef: ApplicationRef\n  ) {}\n\n  public open(component: Type<any>, options?: CatSideWindowConfig) {\n    const elementId = this.generateElementId();\n    const contentApp = document.querySelector('main #cat-content-app');\n    const componentRef = this.componentFactoryResolver\n      .resolveComponentFactory(SideWindowComponent)\n      .create(\n        Injector.create({\n          providers: [\n            {\n              provide: CAT_SIDE_WINDOW_CONFIG,\n              useValue: {\n                ...(options ?? {}),\n                component,\n              },\n            },\n            { provide: CAT_SIDE_WINDOW_REF_TOKEN, useValue: elementId },\n            {\n              provide: CatSideWindowRef,\n              deps: [CAT_SIDE_WINDOW_CONFIG, CAT_SIDE_WINDOW_REF_TOKEN],\n            },\n          ],\n        })\n      );\n\n    this.appRef.attachView(componentRef.hostView);\n\n    const elSideWindow = (componentRef.hostView as EmbeddedViewRef<any>)\n      .rootNodes[0] as HTMLElement;\n    elSideWindow.id = elementId;\n\n    contentApp.appendChild(elSideWindow);\n\n    const elSideWindowContent = document.querySelector(\n      `#${elementId} .cat-side-window-content`\n    );\n    elSideWindowContent?.classList.add('animate__animated');\n    elSideWindowContent?.classList.add('animate__slideInRight');\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CatSideWindowRef"],"mappings":"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"}