{"version":3,"file":"pmeig-ngb-alert.mjs","sources":["../../../projects/bootstrap/components/alert/src/lib/directives/b-alert.directive.ts","../../../projects/bootstrap/components/alert/src/lib/directives/b-alert-header.directive.ts","../../../projects/bootstrap/components/alert/src/lib/directives/b-alert-link.directive.ts","../../../projects/bootstrap/components/alert/src/lib/b-alert.module.ts","../../../projects/bootstrap/components/alert/src/pmeig-ngb-alert.ts"],"sourcesContent":["import { booleanAttribute, Directive, input } from '@angular/core';\nimport {\n  ColorAttribute,\n  colorAttributeToString,\n  Empty,\n  emptyBooleanAttribute,\n  EmptyBooleanAttribute,\n  timeoutAttribute,\n  TimeoutAttribute\n} from '@pmeig/ng-material-core';\nimport { BOOTSTRAP_ANIMATION_TIMEOUT, BTagTemplateDirective } from '@pmeig/ngb-core';\nimport { Nullable, Timeout, TimeoutUnit } from '@pmeig/ng-core';\nimport { delay, of } from 'rxjs';\n\n@Directive({\n  selector: '[alert]',\n})\nexport class BAlertDirective extends BTagTemplateDirective {\n\n  private lastColor = 'alert-danger';\n  private closeId?: string;\n\n  alert = input<boolean, EmptyBooleanAttribute>(false, { transform: alert => alert === '' ? false : booleanAttribute(alert) });\n  alertColor = input<string, Empty<ColorAttribute>>('alert-danger', { transform: color => colorAttributeToString(color || 'danger', 'alert') });\n  alertClose = input<boolean, EmptyBooleanAttribute>(false, { transform: emptyBooleanAttribute});\n  alertTimeout = input<Nullable<Timeout>, TimeoutAttribute>({\n    value: 3,\n    unit: TimeoutUnit.SECOND\n  }, { transform: timeoutAttribute });\n\n  constructor() {\n    super();\n    this.effect(this.refreshColor);\n    this.effect(this.refreshDOMWithAlert);\n  }\n\n  protected override onShow() {\n    this.putClass('alert', 'alert-dismissible', 'fade');\n    this.refreshColor();\n    setTimeout(() => {\n      this.putClass('show')\n    }, 250);\n    if (this.alertClose() || !this.alertTimeout()) {\n      this.addCloseButtonIfNotExist();\n    }\n    const timeout = this.alertTimeout();\n    if (timeout) {\n      this.closeId = this.addTimeout(() => {\n        this.hide();\n      }, timeout).id;\n    }\n  }\n\n\n  protected override onHide() {\n    this.removeClass('show');\n    this.clearTimeout(this.closeId);\n    return of(true).pipe(delay(BOOTSTRAP_ANIMATION_TIMEOUT))\n  }\n\n\n  private refreshDOMWithAlert() {\n    if (this.alert()) {\n      this.show();\n    } else {\n      this.hide();\n    }\n  }\n\n  private refreshColor() {\n    this.removeClass(this.lastColor);\n    this.lastColor = this.alertColor();\n    this.putClass(this.lastColor);\n  }\n\n  private addCloseButtonIfNotExist() {\n    const lastChild = this.element.lastChild as unknown as Element;\n    if (['btn-close', 'btn-close-white'].every(value => !lastChild?.classList?.contains(value))) {\n      this.addCloseButtonIfNotExist = () => {\n        const button = this.renderer.createElement('button') as HTMLButtonElement;\n        this.putClass(button, 'btn-close');\n        this.renderer.listen(button, 'click', () => this.hide());\n        this.renderer.appendChild(this.element, button);\n      };\n      this.addCloseButtonIfNotExist();\n    }\n  }\n}\n","import { AfterViewInit, Directive, ElementRef, Host, Optional, Renderer2 } from '@angular/core';\nimport { BAlertDirective } from './b-alert.directive';\nimport { putClass } from '@pmeig/ng-material-core';\n\n@Directive({\n  selector: 'h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, header',\n})\nexport class BAlertHeaderDirective implements AfterViewInit {\n\n  constructor(private readonly element: ElementRef<Element>,\n              private readonly renderer: Renderer2,\n              @Host() @Optional() private readonly host?: BAlertDirective) {\n  }\n\n  ngAfterViewInit(): void {\n    if (this.host) {\n      putClass(this.element.nativeElement, this.renderer, ['alert-heading']);\n    }\n  }\n\n}\n","import { AfterViewInit, Directive, ElementRef, Host, Optional, Renderer2 } from '@angular/core';\nimport { BAlertDirective } from './b-alert.directive';\nimport { putClass } from '@pmeig/ng-material-core';\n\n@Directive({\n  selector: 'a, [link]',\n})\nexport class BAlertLinkDirective implements AfterViewInit {\n\n  constructor(public readonly link: ElementRef<Element>,\n              private readonly renderer: Renderer2,\n              @Host() @Optional() private readonly alert: BAlertDirective) {\n  }\n\n  ngAfterViewInit(): void {\n    if (this.alert) {\n      putClass(this.link.nativeElement, this.renderer, ['alert-link']);\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { BAlertDirective } from './directives/b-alert.directive';\nimport { BAlertLinkDirective } from './directives/b-alert-link.directive';\nimport { BAlertHeaderDirective } from './directives/b-alert-header.directive';\n\nconst ALERT_DIRECTIVES = [BAlertDirective, BAlertLinkDirective, BAlertHeaderDirective];\n\n@NgModule({\n  imports: ALERT_DIRECTIVES,\n  exports: ALERT_DIRECTIVES,\n})\nexport class AlertMaterial {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.BAlertDirective"],"mappings":"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"}