{"version":3,"file":"catrx-ui-button.mjs","sources":["../../../../projects/catrx/ui/button/loader-button.component.ts","../../../../projects/catrx/ui/button/cat-button.directive.ts","../../../../projects/catrx/ui/button/cat-button.module.ts","../../../../projects/catrx/ui/button/catrx-ui-button.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n  template: `<cat-loader />`,\n})\nexport class LoaderButtonComponent {}\n","import {\n  ApplicationRef,\n  ComponentFactoryResolver,\n  ComponentRef,\n  Directive,\n  ElementRef,\n  EmbeddedViewRef,\n  Injector,\n  Input,\n  OnChanges,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core';\nimport { LoaderButtonComponent } from './loader-button.component';\n\nexport type CatButtonColor =\n  | 'default'\n  | 'primary'\n  | 'secondary'\n  | 'success'\n  | 'warning'\n  | 'danger'\n  | 'info';\n\n@Directive({\n  selector: 'button[catButton]',\n})\nexport class CatButtonDirective implements OnInit, OnChanges {\n  @Input({ required: true }) catButton: CatButtonColor;\n  @Input() outline = false;\n  @Input() showLoader = false;\n\n  private componentRef: ComponentRef<LoaderButtonComponent> = null;\n  private defaultElementsOnHost: ChildNode[] = [];\n\n  constructor(\n    private elementRef: ElementRef<HTMLButtonElement>,\n    private appRef: ApplicationRef,\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private injector: Injector\n  ) { }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['showLoader']) {\n      this.showLoaderOnButton();\n    }\n  }\n\n  ngOnInit(): void {\n    if (this.showLoader) {\n      this.showLoaderOnButton();\n    }\n\n    if (this.componentRef === null) {\n      const componentFactory =\n        this.componentFactoryResolver.resolveComponentFactory(\n          LoaderButtonComponent\n        );\n      this.componentRef = componentFactory.create(this.injector);\n\n      this.appRef.attachView(this.componentRef.hostView);\n\n      this.elementRef.nativeElement.classList.add('btn');\n      this.elementRef.nativeElement.classList.add('btn-sm');\n      this.elementRef.nativeElement.classList.add(this.getClassByVariant());\n\n      this.elementRef.nativeElement.childNodes.forEach((node) =>\n        this.defaultElementsOnHost.push(node)\n      );\n    }\n  }\n\n  private getClassByVariant() {\n    switch (this.catButton) {\n      case 'default':\n        return `btn${this.outline ? '-outline-' : '-'}default`;\n      case 'primary':\n        return `btn${this.outline ? '-outline-' : '-'}primary`;\n      case 'secondary':\n        return `btn${this.outline ? '-outline-' : '-'}secondary`;\n      case 'success':\n        return `btn${this.outline ? '-outline-' : '-'}success`;\n      case 'warning':\n        return `btn${this.outline ? '-outline-' : '-'}warning`;\n      case 'danger':\n        return `btn${this.outline ? '-outline-' : '-'}danger`;\n      case 'info':\n        return `btn${this.outline ? '-outline-' : '-'}info`;\n    }\n  }\n\n  private showLoaderOnButton() {\n    this.elementRef.nativeElement.disabled = this.showLoader;\n\n    if (this.defaultElementsOnHost.length > 0) {\n      this.elementRef.nativeElement.innerHTML = '';\n\n      if (this.showLoader) {\n        const loaderElem = (this.componentRef.hostView as EmbeddedViewRef<any>)\n          .rootNodes[0] as HTMLElement;\n\n        this.elementRef.nativeElement.appendChild(loaderElem);\n      }\n\n      this.defaultElementsOnHost.forEach((node) => {\n        if (\n          (node.nodeName === 'I' && !this.showLoader) ||\n          node.nodeName !== 'I'\n        ) {\n          this.elementRef.nativeElement.appendChild(node);\n        }\n      });\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CatLoaderModule } from '@catrx/ui/loader';\nimport { CatButtonDirective } from './cat-button.directive';\nimport { LoaderButtonComponent } from './loader-button.component';\n\n@NgModule({\n  declarations: [CatButtonDirective, LoaderButtonComponent],\n  exports: [CatButtonDirective],\n  imports: [CatLoaderModule],\n})\nexport class CatButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}