{"version":3,"file":"ngx-wonton-message.mjs","sources":["../../components/message/base.ts","../../components/message/message.component.ts","../../components/message/message-container.component.ts","../../components/message/message.service.module.ts","../../components/message/message.service.ts","../../components/message/message.module.ts","../../components/message/ngx-wonton-message.ts"],"sourcesContent":["\r\nimport { AnimationEvent } from '@angular/animations';\r\nimport { ComponentType, Overlay } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { ChangeDetectorRef, Directive, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, take } from 'rxjs/operators';\r\n\r\nimport { WtSingletonService } from 'ngx-wonton/core/services';\r\n\r\nimport { WtMessageData, WtMessageDataOptions } from './typings';\r\n\r\nlet globalCounter = 0;\r\n\r\nexport abstract class WtMNService {\r\n  protected abstract componentPrefix: string;\r\n  protected container?: WtMNContainerComponent;\r\n\r\n  constructor(\r\n    protected wtSingletonService: WtSingletonService,\r\n    protected overlay: Overlay,\r\n    private injector: Injector\r\n  ) {}\r\n\r\n  remove(id?: string): void {\r\n    if (this.container) {\r\n      if (id) {\r\n        this.container.remove(id);\r\n      } else {\r\n        this.container.removeAll();\r\n      }\r\n    }\r\n  }\r\n\r\n  protected getInstanceId(): string {\r\n    return `${this.componentPrefix}-${globalCounter++}`;\r\n  }\r\n\r\n  protected withContainer<T extends WtMNContainerComponent>(ctor: ComponentType<T>): T {\r\n    let containerInstance = this.wtSingletonService.getSingletonWithKey(this.componentPrefix);\r\n    if (containerInstance) {\r\n      return containerInstance as T;\r\n    }\r\n\r\n    const overlayRef = this.overlay.create({\r\n      hasBackdrop: false,\r\n      scrollStrategy: this.overlay.scrollStrategies.noop(),\r\n      positionStrategy: this.overlay.position().global()\r\n    });\r\n    const componentPortal = new ComponentPortal(ctor, null, this.injector);\r\n    const componentRef = overlayRef.attach(componentPortal);\r\n    const overlayPane = overlayRef.overlayElement;\r\n    overlayPane.style.zIndex = '9010';\r\n\r\n    if (!containerInstance) {\r\n      this.container = containerInstance = componentRef.instance;\r\n      this.wtSingletonService.registerSingletonWithKey(this.componentPrefix, containerInstance);\r\n    }\r\n\r\n    return containerInstance as T;\r\n  }\r\n}\r\n\r\n@Directive()\r\nexport abstract class WtMNContainerComponent implements OnInit, OnDestroy {\r\n  \r\n  instances: Array<Required<WtMessageData>> = [];\r\n\r\n  protected readonly destroy$ = new Subject<void>();\r\n\r\n  constructor(protected cdr: ChangeDetectorRef) {\r\n    this.updateConfig();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    \r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  create(data: WtMessageData): Required<WtMessageData> {\r\n    const instance = this.onCreate(data);\r\n\r\n    if (this.instances.length >= 8) {\r\n      this.instances = this.instances.slice(1);\r\n    }\r\n\r\n    this.instances = [...this.instances, instance];\r\n\r\n    this.readyInstances();\r\n\r\n    return instance;\r\n  }\r\n\r\n  remove(id: string, userAction: boolean = false): void {\r\n    this.instances.some((instance, index) => {\r\n      if (instance.messageId === id) {\r\n        this.instances.splice(index, 1);\r\n        this.instances = [...this.instances];\r\n        this.onRemove(instance, userAction);\r\n        this.readyInstances();\r\n        return true;\r\n      }\r\n      return false;\r\n    });\r\n  }\r\n\r\n  removeAll(): void {\r\n    this.instances.forEach(i => this.onRemove(i, false));\r\n    this.instances = [];\r\n\r\n    this.readyInstances();\r\n  }\r\n\r\n  protected onCreate(instance: WtMessageData): Required<WtMessageData> {\r\n    instance.options = this.mergeOptions(instance.options);\r\n    instance.onClose = new Subject<boolean>();\r\n    return instance as Required<WtMessageData>;\r\n  }\r\n\r\n  protected onRemove(instance: Required<WtMessageData>, userAction: boolean): void {\r\n    instance.onClose.next(userAction);\r\n    instance.onClose.complete();\r\n  }\r\n\r\n  protected readyInstances(): void {\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n  protected abstract updateConfig(): void;\r\n\r\n  \r\n\r\n  protected mergeOptions(options?: WtMessageDataOptions): WtMessageDataOptions {    \r\n    return { ...options };\r\n  }\r\n}\r\n\r\n@Directive()\r\nexport abstract class WtMNComponent implements OnInit, OnDestroy {\r\n  instance!: Required<WtMessageData>;\r\n  index?: number;\r\n\r\n  readonly destroyed = new EventEmitter<{ id: string; userAction: boolean }>();\r\n  readonly animationStateChanged: Subject<AnimationEvent> = new Subject<AnimationEvent>();\r\n\r\n  protected options!: Required<WtMessageDataOptions>;\r\n  protected autoClose?: boolean;\r\n  protected closeTimer?: any;\r\n  protected userAction: boolean = false;\r\n  protected eraseTimer: any | null = null;\r\n  protected eraseTimingStart?: number;\r\n  protected eraseTTL!: number;\r\n\r\n  protected constructor(protected cdr: ChangeDetectorRef) {}\r\n\r\n  ngOnInit(): void {\r\n    this.options = this.instance.options as Required<WtMessageDataOptions>;\r\n\r\n    if (this.options.wtAnimate) {\r\n      this.instance.state = 'enter';\r\n      this.animationStateChanged\r\n        .pipe(\r\n          filter(event => event.phaseName === 'done' && event.toState === 'leave'),\r\n          take(1)\r\n        )\r\n        .subscribe(() => {\r\n          clearTimeout(this.closeTimer);\r\n          this.destroyed.next({ id: this.instance.messageId, userAction: this.userAction });\r\n        });\r\n    }\r\n\r\n    this.autoClose = this.options.wtDuration > 0;\r\n\r\n    if (this.autoClose) {\r\n      this.initErase();\r\n      this.startEraseTimeout();\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.autoClose) {\r\n      this.clearEraseTimeout();\r\n    }\r\n    this.animationStateChanged.complete();\r\n  }\r\n\r\n  onEnter(): void {\r\n    if (this.autoClose && this.options.wtPauseOnHover) {\r\n      this.clearEraseTimeout();\r\n      this.updateTTL();\r\n    }\r\n  }\r\n\r\n  onLeave(): void {\r\n    if (this.autoClose && this.options.wtPauseOnHover) {\r\n      this.startEraseTimeout();\r\n    }\r\n  }\r\n\r\n  protected destroy(userAction: boolean = false): void {\r\n    this.userAction = userAction;\r\n    if (this.options.wtAnimate) {\r\n      this.instance.state = 'leave';\r\n      this.cdr.detectChanges();\r\n      this.closeTimer = setTimeout(() => {\r\n        this.closeTimer = undefined;\r\n        this.destroyed.next({ id: this.instance.messageId, userAction });\r\n      }, 200);\r\n    } else {\r\n      this.destroyed.next({ id: this.instance.messageId, userAction });\r\n    }\r\n  }\r\n\r\n  private initErase(): void {\r\n    this.eraseTTL = this.options.wtDuration;\r\n    this.eraseTimingStart = Date.now();\r\n  }\r\n\r\n  private updateTTL(): void {\r\n    if (this.autoClose) {\r\n      this.eraseTTL -= Date.now() - this.eraseTimingStart!;\r\n    }\r\n  }\r\n\r\n  private startEraseTimeout(): void {\r\n    if (this.eraseTTL > 0) {\r\n      this.clearEraseTimeout();\r\n      this.eraseTimer = setTimeout(() => this.destroy(), this.eraseTTL);\r\n      this.eraseTimingStart = Date.now();\r\n    } else {\r\n      this.destroy();\r\n    }\r\n  }\r\n\r\n  private clearEraseTimeout(): void {\r\n    if (this.eraseTimer !== null) {\r\n      clearTimeout(this.eraseTimer);\r\n      this.eraseTimer = null;\r\n    }\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\n\r\nimport { moveUpMotion } from 'ngx-wonton/core/animation';\r\n\r\nimport { WtMNComponent } from './base';\r\nimport { WtMessageData } from './typings';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  encapsulation: ViewEncapsulation.None,\r\n  selector: 'wt-message',\r\n  exportAs: 'wtMessage',\r\n  preserveWhitespaces: false,\r\n  animations: [moveUpMotion],\r\n  template: `\r\n    <div\r\n      class=\"ant-message-notice\"\r\n      [@moveUpMotion]=\"instance.state\"\r\n      (@moveUpMotion.done)=\"animationStateChanged.next($event)\"\r\n      (mouseenter)=\"onEnter()\"\r\n      (mouseleave)=\"onLeave()\"\r\n    >\r\n      <div class=\"ant-message-notice-content\">\r\n        <div class=\"ant-message-custom-content\" [ngClass]=\"'ant-message-' + instance.type\">\r\n          <ng-container [ngSwitch]=\"instance.type\">\r\n            <span *ngSwitchCase=\"'success'\" wt-icon wtType=\"check-circle\"></span>\r\n            <span *ngSwitchCase=\"'info'\" wt-icon wtType=\"info-circle\"></span>\r\n            <span *ngSwitchCase=\"'warning'\" wt-icon wtType=\"exclamation-circle\"></span>\r\n            <span *ngSwitchCase=\"'error'\" wt-icon wtType=\"close-circle\"></span>\r\n            <span *ngSwitchCase=\"'loading'\" wt-icon wtType=\"loading\"></span>\r\n          </ng-container>\r\n          <ng-container *wtStringTemplateOutlet=\"instance.content\">\r\n            <span [innerHTML]=\"instance.content\"></span>\r\n          </ng-container>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  `\r\n})\r\nexport class WtMessageComponent extends WtMNComponent implements OnInit, OnDestroy {\r\n  @Input() override instance!: Required<WtMessageData>;\r\n  @Output() override readonly destroyed = new EventEmitter<{ id: string; userAction: boolean }>();\r\n\r\n  constructor(cdr: ChangeDetectorRef) {\r\n    super(cdr);\r\n  }\r\n}\r\n","import { Direction } from '@angular/cdk/bidi';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { toCssPixel } from 'ngx-wonton/core/util';\r\n\r\nimport { WtMNContainerComponent } from './base';\r\n\r\n\r\nconst WT_MESSAGE_DEFAULT_CONFIG: Required<any> = {\r\n  wtAnimate: true,\r\n  wtDuration: 3000,\r\n  wtMaxStack: 7,\r\n  wtPauseOnHover: true,\r\n  wtTop: 24,\r\n  wtDirection: 'ltr'\r\n};\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  encapsulation: ViewEncapsulation.None,\r\n  selector: 'wt-message-container',\r\n  exportAs: 'wtMessageContainer',\r\n  preserveWhitespaces: false,\r\n  template: `\r\n    <div class=\"ant-message\" [class.ant-message-rtl]=\"dir === 'rtl'\" [style.top]=\"top\">\r\n      <wt-message\r\n        *ngFor=\"let instance of instances\"\r\n        [instance]=\"instance\"\r\n        (destroyed)=\"remove($event.id, $event.userAction)\"\r\n      ></wt-message>\r\n    </div>\r\n  `\r\n})\r\nexport class WtMessageContainerComponent extends WtMNContainerComponent {\r\n  dir: Direction = 'ltr';\r\n  top?: string | null;\r\n  config: any;\r\n\r\n  constructor(cdr: ChangeDetectorRef) {\r\n    super(cdr);    \r\n    this.dir = 'ltr';\r\n  }\r\n\r\n  protected updateConfig(): void {\r\n    this.config = {\r\n      ...WT_MESSAGE_DEFAULT_CONFIG,\r\n    };\r\n\r\n    this.top = toCssPixel(this.config.wtTop);\r\n    this.cdr.markForCheck();\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule()\r\nexport class WtMessageServiceModule {}\r\n","import { Overlay } from '@angular/cdk/overlay';\r\nimport { Injectable, Injector, TemplateRef } from '@angular/core';\r\n\r\nimport { WtSingletonService } from 'ngx-wonton/core/services';\r\n\r\nimport { WtMNService } from './base';\r\nimport { WtMessageContainerComponent } from './message-container.component';\r\nimport { WtMessageServiceModule } from './message.service.module';\r\nimport { WtMessageData, WtMessageDataOptions, WtMessageRef } from './typings';\r\n\r\n@Injectable({\r\n  providedIn: WtMessageServiceModule\r\n})\r\nexport class WtMessageService extends WtMNService {\r\n  protected override container?: WtMessageContainerComponent;\r\n  protected componentPrefix = 'message-';\r\n\r\n  constructor(wtSingletonService: WtSingletonService, overlay: Overlay, injector: Injector) {\r\n    super(wtSingletonService, overlay, injector);\r\n  }\r\n\r\n  success(content: string | TemplateRef<void>, options?: WtMessageDataOptions): WtMessageRef {\r\n    return this.createInstance({ type: 'success', content }, options);\r\n  }\r\n\r\n  error(content: string | TemplateRef<void>, options?: WtMessageDataOptions): WtMessageRef {\r\n    return this.createInstance({ type: 'error', content }, options);\r\n  }\r\n\r\n  info(content: string | TemplateRef<void>, options?: WtMessageDataOptions): WtMessageRef {\r\n    return this.createInstance({ type: 'info', content }, options);\r\n  }\r\n\r\n  warning(content: string | TemplateRef<void>, options?: WtMessageDataOptions): WtMessageRef {\r\n    return this.createInstance({ type: 'warning', content }, options);\r\n  }\r\n\r\n  loading(content: string | TemplateRef<void>, options?: WtMessageDataOptions): WtMessageRef {\r\n    return this.createInstance({ type: 'loading', content }, options);\r\n  }\r\n\r\n  create(\r\n    type: 'success' | 'info' | 'warning' | 'error' | 'loading' | string,\r\n    content: string | TemplateRef<void>,\r\n    options?: WtMessageDataOptions\r\n  ): WtMessageRef {\r\n    return this.createInstance({ type, content }, options);\r\n  }\r\n\r\n  private createInstance(message: WtMessageData, options?: WtMessageDataOptions): WtMessageRef {\r\n    this.container = this.withContainer(WtMessageContainerComponent);\r\n\r\n    return this.container.create({\r\n      ...message,\r\n      ...{\r\n        createdAt: new Date(),\r\n        messageId: this.getInstanceId(),\r\n        options\r\n      }\r\n    });\r\n  }\r\n}\r\n","import { BidiModule } from '@angular/cdk/bidi';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { WtOutletModule } from 'ngx-wonton/core/outlet';\r\nimport { WtIconModule } from 'ngx-wonton/icon';\r\n\r\nimport { WtMessageContainerComponent } from './message-container.component';\r\nimport { WtMessageComponent } from './message.component';\r\nimport { WtMessageServiceModule } from './message.service.module';\r\n\r\n@NgModule({\r\n  imports: [BidiModule, CommonModule, OverlayModule, WtIconModule, WtOutletModule, WtMessageServiceModule],\r\n  declarations: [WtMessageContainerComponent, WtMessageComponent]\r\n})\r\nexport class WtMessageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.WtMessageComponent","i1","i2"],"mappings":"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"}