{"version":3,"file":"cty-mobile-ui-alert.mjs","sources":["../../../packages/components/alert/alert.ts","../../../packages/components/alert/alert.html","../../../packages/components/alert/module.ts","../../../packages/components/alert/controller.ts","../../../packages/components/alert/cty-mobile-ui-alert.ts"],"sourcesContent":["import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\nimport { AlertButton } from './types';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CtyOverlay } from 'cty-mobile-ui/overlay';\r\nimport { CtyIcon } from 'cty-mobile-ui/icon';\r\nimport { IonButton } from '@ionic/angular/standalone';\r\nimport { CTYUtilService } from 'cty-mobile-ui/services';\r\n\r\n@Component({\r\n  selector: 'cty-alert',\r\n  templateUrl: './alert.html',\r\n  styleUrls: ['./alert.scss'],\r\n  standalone: true,\r\n  imports: [CommonModule, CtyOverlay, CtyIcon, IonButton],\r\n})\r\nexport class CtyAlert implements OnInit {\r\n  @Output() ctyDismiss = new EventEmitter<CtyAlert>(true);\r\n  @Output() ctyTap = new EventEmitter<{ item: AlertButton; index: number }>(true);\r\n  @Input() backdropDismiss: boolean = false;\r\n  @Input() title: string = '';\r\n  @Input() img: string = '';\r\n  @Input() closeable: boolean = true;\r\n  @Input() closeIcon: string = 'cty-close2';\r\n  @Input() \r\n  get content():SafeHtml{\r\n    return this._content;\r\n  };\r\n  set content(content:string){\r\n    this._content = this.ctyUtilService.BypassSecurityTrust(content);\r\n  }\r\n  @Input() \r\n  get buttons ():Array<AlertButton>{\r\n    return this._buttonList;\r\n  };\r\n  set buttons (buttons:Array<AlertButton | string>){\r\n    this._buttonList = buttons.map((p) => {\r\n      if (typeof p === 'string') {\r\n        const item: Record<string, any> = {};\r\n        item['text'] = p;\r\n        return item;\r\n      }\r\n      if (p?.cssClass) {\r\n        let cssclass: Record<string, any> = {};\r\n        if (typeof p.cssClass === 'string') {\r\n          const arr = p.cssClass.split(' ');\r\n          arr.forEach((p) => {\r\n            cssclass[p] = true;\r\n          });\r\n        } else if (Array.isArray(p.cssClass)) {\r\n          p.cssClass.forEach((p) => {\r\n            cssclass[p] = true;\r\n          });\r\n        } else {\r\n          cssclass = p.cssClass;\r\n        }\r\n        return { ...p, cssclass };\r\n      }\r\n      return p;\r\n    });\r\n  }\r\n  private _content: SafeHtml = '';\r\n  private _buttonList: AlertButton[] = [];\r\n\r\n  constructor(public ctyUtilService: CTYUtilService) {}\r\n\r\n  ngOnInit() {\r\n  }\r\n  _buttonClick(item: AlertButton, index: number) {\r\n    item.handler && item.handler(this.buttons[index]);\r\n    this.ctyTap.emit({item, index});\r\n    if (item.action && item.action.toLowerCase() === 'cancel') {\r\n      this._dismiss();\r\n    }\r\n  }\r\n  _dismiss() {\r\n    this.ctyDismiss.emit();\r\n  }\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/interactive-supports-focus -->\r\n<!-- eslint-disable @angular-eslint/template/click-events-have-key-events -->\r\n<cty-overlay [backdropDismiss]=\"backdropDismiss\" (ctyDismiss)=\"_dismiss()\">\r\n    <ng-content select=\"[name=alert]\"></ng-content>\r\n    <div class=\"cty-alert\" (click)=\"$event.stopPropagation();\">\r\n        <img *ngIf=\"img\" [src]=\"img\" class=\"cty-alert__img\">\r\n        <div class=\"cty-alert__close flex-center\" *ngIf=\"closeable\" (click)=\"_dismiss()\">\r\n            <cty-icon [name]=\"closeIcon\"></cty-icon>\r\n        </div>\r\n        <ng-content select=\"[name=header]\"></ng-content>\r\n        <div class=\"cty-alert__header flex-align-center\">\r\n            <ng-content select=\"[name=title-start]\"></ng-content>\r\n            <h3 class=\"cty-alert__title\">{{title}}</h3>\r\n            <ng-content select=\"[name=title-end]\"></ng-content>\r\n        </div>\r\n        <ng-content select=\"[name=content]\"></ng-content>\r\n        <div *ngIf=\"content\" class=\"cty-alert__content\" [innerHTML]=\"content\"></div>\r\n        <ng-content select=\"[name=buttons]\"></ng-content>\r\n        <div *ngIf=\"buttons.length>0\" class=\"cty-alert__buttons flex\">\r\n            <ion-button *ngFor=\"let item of buttons;let idx = index\" class=\"cty-alert__button\" (click)=\"_buttonClick(item,idx)\" [ngClass]=\"item.cssClass\">{{item.text}}</ion-button>\r\n        </div>\r\n        <ng-content select=\"[name=bottom]\"></ng-content>\r\n    </div>\r\n</cty-overlay>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CtyAlert } from './alert';\r\n@NgModule({\r\n  imports: [CommonModule, CtyAlert],\r\n  exports: [CtyAlert],\r\n})\r\nexport class CtyAlertModule {}\r\n","import {\r\n  Injectable,\r\n  ApplicationRef,\r\n  EmbeddedViewRef,\r\n  EnvironmentInjector,\r\n  ComponentRef,\r\n  createComponent,\r\n} from '@angular/core';\r\nimport { CtyAlert } from './alert';\r\nimport { AlertOptions } from './types';\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class CtyAlertController {\r\n  constructor(\r\n    public applicationRef: ApplicationRef,\r\n    public injector: EnvironmentInjector\r\n  ) {}\r\n\r\n  public async create(\r\n    opt?: AlertOptions,\r\n    selector: string = 'app-root',\r\n    className: string = ''\r\n  ): Promise<CtyAlert> {\r\n    const componentRef: ComponentRef<CtyAlert> = createComponent(CtyAlert, {\r\n      environmentInjector: this.injector,\r\n    });\r\n    this.applicationRef.attachView(componentRef.hostView);\r\n    const customEle = (componentRef.hostView as EmbeddedViewRef<any>)\r\n      .rootNodes[0] as HTMLElement;\r\n    customEle.className = className;\r\n    document.body.querySelector(selector)!.appendChild(customEle);\r\n    const component: any = componentRef.instance;\r\n    for (const key in opt) {\r\n      component[key] = opt[key as keyof AlertOptions];\r\n    }\r\n    component.ctyDismiss.subscribe(() => {\r\n      componentRef.destroy();\r\n    });\r\n    component.ctyTap.subscribe(() => {\r\n      componentRef.destroy();\r\n    });\r\n    return component;\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}