{"version":3,"file":"ng-devui-toast.mjs","sources":["../../devui/toast/toast.component.ts","../../devui/toast/toast.component.html","../../devui/toast/toast.service.ts","../../devui/toast/toast.module.ts","../../devui/toast/ng-devui-toast.ts"],"sourcesContent":["import {\r\n  AfterViewInit,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  TemplateRef,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { isEqual } from 'lodash-es';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { throttleTime } from 'rxjs/operators';\r\n\r\nexport interface Message {\r\n  severity?: string;\r\n  summary?: string;\r\n  detail?: string;\r\n  content?: string | TemplateRef<any>;\r\n  life?: number;\r\n  id?: any;\r\n}\r\n\r\n@Component({\r\n  selector: 'd-toast',\r\n  templateUrl: './toast.component.html',\r\n  styleUrls: ['./toast.component.scss'],\r\n  preserveWhitespaces: false,\r\n})\r\nexport class ToastComponent implements OnInit, AfterViewInit, OnDestroy {\r\n  @ViewChild('container', { static: true }) containerViewChild: ElementRef;\r\n  @Input() set value(val: Array<Message>) {\r\n    if (val?.length) {\r\n      this._value = this.appendUpperLimit > 0 ? [...val, ...this._value].slice(0, this.appendUpperLimit) : val;\r\n      this.rest = this._value;\r\n      if (this.container) {\r\n        this.handleValueChange();\r\n      }\r\n    } else {\r\n      this._value = [];\r\n      this.rest = [];\r\n      this.onHidden();\r\n    }\r\n  }\r\n\r\n  get value(): Array<Message> {\r\n    return this._value;\r\n  }\r\n\r\n  @Input() sticky: boolean;\r\n  @Input() life: number;\r\n  @Input() style: object;\r\n  @Input() styleClass: string;\r\n  @Input() appendUpperLimit = 0;\r\n  @Input() lifeMode: 'single' | 'global' = 'global';\r\n  @Output() closeEvent: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() valueChange: EventEmitter<Message[]> = new EventEmitter<Message[]>();\r\n\r\n  _value: Array<Message>;\r\n  rest: Array<Message>; // 单个toast消失后需要保持上下位置不能从_value中移除，从rest中移除并发送valueChange\r\n  zIndex = 1060;\r\n  container: HTMLDivElement;\r\n  timeout: any;\r\n  timeoutArr = [];\r\n  timestamp: number;\r\n  clickSub = new Subject();\r\n  subItem: Subscription;\r\n\r\n  get _life() {\r\n    if (this.life) {\r\n      return this.life;\r\n    } else {\r\n      if (this.value && this.value.length > 0) {\r\n        return this.severityDelay(this.value[0]);\r\n      } else {\r\n        return 5000;\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.subItem = this.clickSub\r\n      .pipe(throttleTime(250, undefined, { leading: true, trailing: false }))\r\n      .subscribe((obj: any) => this.remove(obj.index, obj.dom));\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.container = <HTMLDivElement>this.containerViewChild.nativeElement;\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (!this.sticky) {\r\n      if (this.lifeMode === 'single') {\r\n        this.timeoutArr.forEach((item) => item && clearTimeout(item));\r\n      } else {\r\n        clearTimeout(this.timeout);\r\n      }\r\n    }\r\n    if (this.subItem) {\r\n      this.subItem.unsubscribe();\r\n    }\r\n  }\r\n\r\n  severityDelay(item: Message) {\r\n    switch (item.severity) {\r\n    case 'warn':\r\n    case 'error':\r\n      return 10000;\r\n    default:\r\n      // common | success | info | default\r\n      return 5000;\r\n    }\r\n  }\r\n\r\n  show() {\r\n    if (!this.container) {\r\n      this.container = <HTMLDivElement>this.containerViewChild.nativeElement;\r\n    }\r\n    this.handleValueChange();\r\n  }\r\n\r\n  // Will overwrite this method in toast service\r\n  close() {}\r\n\r\n  // Will overwrite this method in toast service\r\n  onHidden() {}\r\n\r\n  handleValueChange() {\r\n    this.zIndex++;\r\n    const doms = this.container.children;\r\n    setTimeout(() => this._value.forEach((v, i) => v && doms[i]?.classList.add('slide-in')));\r\n\r\n    if (!this.sticky) {\r\n      if (this.timeout) {\r\n        clearTimeout(this.timeout);\r\n      }\r\n      if (this.timeoutArr.length > 0) {\r\n        this.timeoutArr.forEach((item) => item && clearTimeout(item));\r\n        this.timeoutArr = [];\r\n      }\r\n      this.timestamp = new Date().getTime();\r\n      if (this.lifeMode === 'single') {\r\n        setTimeout(() => {\r\n          this._value.forEach((v, i) => {\r\n            this.timeoutArr[i] = setTimeout(() => this.singleModeRemove(v, doms[i]), v.life || this.severityDelay(v));\r\n          });\r\n        });\r\n      } else {\r\n        this.timeout = setTimeout(() => {\r\n          this.removeAll();\r\n        }, this._life);\r\n      }\r\n    }\r\n  }\r\n\r\n  singleModeRemove(msg: Message, msgItem: any) {\r\n    let dom = msgItem;\r\n    // 当点击关闭某个后，重新渲染导致原来赋予的dom失效，需要重新获取\r\n    if (!msgItem) {\r\n      const index = this._value.findIndex((item) => item === msg);\r\n      const doms = this.container.children;\r\n      dom = doms[index];\r\n    }\r\n    if (dom) {\r\n      dom.classList.remove('slide-in');\r\n    }\r\n    setTimeout(() => {\r\n      dom.style.display = 'none';\r\n      this.closeEvent.emit({ message: msg });\r\n      if (this.container.querySelectorAll('.slide-in').length === 0) {\r\n        this.value = [];\r\n        this.valueChange.emit(this.value);\r\n        this.onHidden();\r\n      } else {\r\n        this.rest = this.rest.filter((item) => item !== msg);\r\n        this.valueChange.emit(this.rest);\r\n      }\r\n    }, 300);\r\n  }\r\n\r\n  interrupt(index: number, msgItem: any) {\r\n    // 避免正在动画中的toast触发方法\r\n    if (msgItem.className.indexOf('slide-in') === -1) {\r\n      return;\r\n    }\r\n    if (this.lifeMode === 'single') {\r\n      if (this.timeoutArr[index]) {\r\n        clearTimeout(this.timeoutArr[index]);\r\n      }\r\n    } else {\r\n      this.resetDelay(() => {\r\n        const otherToasts = this._value.slice(0);\r\n        otherToasts.splice(index, 1, undefined);\r\n        const doms = this.container.children;\r\n        otherToasts.forEach((v, i) => v && doms[i]?.classList.remove('slide-in'));\r\n      });\r\n    }\r\n  }\r\n\r\n  resetDelay(fn: Function) {\r\n    if (!this.sticky && this.timeout) {\r\n      clearTimeout(this.timeout);\r\n      const remainTime = this._life - (new Date().getTime() - this.timestamp);\r\n      this.timeout = setTimeout(() => fn(), remainTime);\r\n    }\r\n  }\r\n\r\n  remove(index: number, msgItem: any) {\r\n    if (this.lifeMode === 'single' && this.timeoutArr[index]) {\r\n      clearTimeout(this.timeoutArr[index]);\r\n      this.timeoutArr.splice(index, 1);\r\n    }\r\n    msgItem.classList.remove('slide-in');\r\n    setTimeout(() => {\r\n      this.closeEvent.emit({ message: this.value[index] });\r\n      this._value = this.value.filter((val, i) => i !== index);\r\n      this.valueChange.emit(this._value);\r\n      if (this.container.querySelectorAll('.slide-in').length === 0) {\r\n        this.onHidden();\r\n      }\r\n      if (this.lifeMode === 'global') {\r\n        this.removeReset();\r\n      }\r\n    }, 300);\r\n  }\r\n\r\n  removeAll() {\r\n    if (this.value && this.value.length) {\r\n      const doms = this.container.children;\r\n      this._value.forEach((v, i) => v && doms[i]?.classList.remove('slide-in'));\r\n      setTimeout(() => {\r\n        this.value.forEach((msg, index) => this.closeEvent.emit({ message: this.value[index] }));\r\n        this.value = [];\r\n        this.valueChange.emit(this.value);\r\n      }, 300);\r\n    }\r\n  }\r\n\r\n  removeThrottle(index: number, msgItem: any) {\r\n    this.clickSub.next({ index: index, dom: msgItem });\r\n  }\r\n\r\n  removeIndexThrottle(index: number) {\r\n    const doms = this.container.children;\r\n    if (index < doms.length) {\r\n      this.clickSub.next({ index: index, dom: doms[index] });\r\n    }\r\n  }\r\n\r\n  removeMsgThrottle(msg: any) {\r\n    const doms = this.container.children;\r\n    const index = this._value.findIndex((item) => {\r\n      return isEqual(item, msg);\r\n    });\r\n    if (index < doms.length && index > -1) {\r\n      this.clickSub.next({ index: index, dom: doms[index] });\r\n    }\r\n  }\r\n\r\n  removeReset(index?: number, msgItem?: any, msg?: any) {\r\n    // 避免点击关闭但正在动画中或自动消失正在动画中的toast触发重置方法\r\n    const removed = this._value.findIndex((item) => item === msg) === -1;\r\n    if (removed || msgItem.className.indexOf('slide-in') === -1) {\r\n      return;\r\n    }\r\n    if (this.lifeMode === 'single') {\r\n      const msgLife = msg.life || this.severityDelay(msg);\r\n      const remainTime = msgLife - (new Date().getTime() - this.timestamp);\r\n      this.timeoutArr[index] = setTimeout(() => this.singleModeRemove(msg, msgItem), remainTime);\r\n    } else {\r\n      this.resetDelay(() => this.removeAll());\r\n    }\r\n  }\r\n}\r\n","<div #container [ngClass]=\"'devui-toast'\" [style.zIndex]=\"zIndex\" [ngStyle]=\"style\" [class]=\"styleClass\">\n  <div\n    #msgItem\n    *ngFor=\"let msg of value; let i = index\"\n    class=\"devui-toast-item-container\"\n    aria-live=\"polite\"\n    [ngClass]=\"{\n      'devui-toast-message-info': msg.severity == 'info',\n      'devui-toast-message-warn': msg.severity == 'warn',\n      'devui-toast-message-error': msg.severity == 'error',\n      'devui-toast-message-success': msg.severity == 'success',\n      'devui-toast-message-common': msg.severity == 'common'\n    }\"\n    (mouseenter)=\"interrupt(i, msgItem)\"\n    (mouseleave)=\"removeReset(i, msgItem, msg)\"\n  >\n    <div class=\"devui-toast-item\" [ngSwitch]=\"msg.severity\">\n      <div *ngIf=\"!(!msg.summary && life)\" class=\"devui-toast-icon-close\" (click)=\"removeThrottle(i, msgItem)\">\n        <svg\n          width=\"16px\"\n          height=\"16px\"\n          viewBox=\"0 0 14 14\"\n          version=\"1.1\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n        >\n          <polygon\n            class=\"devui-toast-close-icon\"\n            points=\"8.07106781 6.65685425 10.8994949 3.82842712 12.3137085 5.24264069 9.48528137 8.07106781 12.3137085 10.8994949 10.8994949 12.3137085 8.07106781 9.48528137 5.24264069 12.3137085 3.82842712 10.8994949 6.65685425 8.07106781 3.82842712 5.24264069 5.24264069 3.82842712\"\n          ></polygon>\n        </svg>\n      </div>\n      <span\n        class=\"devui-toast-image\"\n        [ngClass]=\"{\n          'devui-toast-image-info': msg.severity === 'info',\n          'devui-toast-image-warning': msg.severity === 'warn',\n          'devui-toast-image-error': msg.severity === 'error',\n          'devui-toast-image-success': msg.severity === 'success'\n        }\"\n        *ngIf=\"msg.severity !== 'common'\"\n      >\n        <ng-container *ngSwitchCase=\"'info'\">\n          <svg\n            width=\"16px\"\n            height=\"16px\"\n            viewBox=\"0 0 16 16\"\n            version=\"1.1\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          >\n            <g id=\"info\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n              <path class=\"devui-toast-image-info-path\" d=\"M7,13 L7,6 L9,6 L9,13 L7,13 Z M7,5 L7,3 L9,3 L9,5 L7,5 Z\" id=\"info\"></path>\n            </g>\n          </svg>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"'warn'\">\n          <svg\n            width=\"16px\"\n            height=\"16px\"\n            viewBox=\"0 0 16 16\"\n            version=\"1.1\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          >\n            <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n              <path\n                class=\"devui-icon-warning-outer\"\n                d=\"M8.96244623,0.57254229 L15.8714442,13.4101975 C16.1549662,13.9370117 15.9538562,14.5918482 15.4222523,14.8728158 C15.2642579,14.9563203 15.0879506,15 14.9088903,15 L1.09089441,15 C0.488410063,15 0,14.5159904 0,13.9189343 C0,13.7414873 0.0440768395,13.5667684 0.128340519,13.4101975 L7.03733844,0.57254229 C7.32086049,0.0457280838 7.98165058,-0.153569987 8.51325441,0.127397589 C8.70423071,0.228333932 8.8605922,0.383286648 8.96244623,0.57254229 Z\"\n              ></path>\n              <path\n                class=\"devui-icon-warning-inner\"\n                stroke-width=\"0.3\"\n                fill-rule=\"nonzero\"\n                d=\"M8.87894737,13 L7.08947368,13 L7.08947368,11.2105263 L8.87894737,11.2105263 L8.87894737,13 Z M8.62102372,9.86842105 L7.32800539,9.86842105 L7,4.5 L8.96842105,4.5 L8.62102372,9.86842105 Z\"\n              ></path>\n            </g>\n          </svg>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"'error'\">\n          <svg\n            width=\"16px\"\n            height=\"16px\"\n            viewBox=\"0 0 16 16\"\n            version=\"1.1\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          >\n            <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n              <circle cx=\"8\" cy=\"8\" r=\"8\"></circle>\n              <path\n                class=\"devui-toast-image-error-path\"\n                d=\"M11.5355339,4.46446609 C11.9260582,4.85499039 11.9260582,5.48815536 11.5355339,5.87867966 L9.41421356,8 L11.5355339,10.1213203 C11.9260582,10.5118446 11.9260582,11.1450096 11.5355339,11.5355339 C11.1450096,11.9260582 10.5118446,11.9260582 10.1213203,11.5355339 L8,9.41421356 L5.87867966,11.5355339 C5.48815536,11.9260582 4.85499039,11.9260582 4.46446609,11.5355339 C4.0739418,11.1450096 4.0739418,10.5118446 4.46446609,10.1213203 L6.58578644,8 L4.46446609,5.87867966 C4.0739418,5.48815536 4.0739418,4.85499039 4.46446609,4.46446609 C4.85499039,4.0739418 5.48815536,4.0739418 5.87867966,4.46446609 L8,6.58578644 L10.1213203,4.46446609 C10.5118446,4.0739418 11.1450096,4.0739418 11.5355339,4.46446609 Z\"\n              ></path>\n            </g>\n          </svg>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"'success'\">\n          <svg\n            width=\"16px\"\n            height=\"16px\"\n            viewBox=\"0 0 16 16\"\n            version=\"1.1\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          >\n            <defs>\n              <polygon\n                id=\"path-s\"\n                points=\"6.53553391 9.77817459 12.1923882 4.12132034 13.6066017 5.53553391 6.53553391 12.6066017 3 9.07106781 4.41421356 7.65685425 6.53553391 9.77817459\"\n              ></polygon>\n            </defs>\n            <g id=\"correct\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n              <mask id=\"mask-2\" fill=\"white\">\n                <use xlink:href=\"#path-s\"></use>\n              </mask>\n              <use id=\"Mask\" class=\"devui-toast-image-success-path\" xlink:href=\"#path-s\"></use>\n            </g>\n          </svg>\n        </ng-container>\n      </span>\n      <div class=\"devui-toast-message\">\n        <span *ngIf=\"!!msg.summary\" class=\"devui-toast-title\">{{ msg.summary }}</span>\n        <ng-template\n          *ngIf=\"msg.content; else detailTemplate\"\n          [ngTemplateOutlet]=\"msg.content | dIsTemplatePipe : plainText\"\n          [ngTemplateOutletContext]=\"{ msg: msg }\"\n        ></ng-template>\n        <ng-template #plainText>\n          <p [style.marginTop]=\"msg.summary ? '4px' : '0'\">{{ msg.content }}</p>\n        </ng-template>\n        <ng-template #detailTemplate>\n          <p *ngIf=\"msg.detail\" [style.marginTop]=\"msg.summary ? '4px' : '0'\" [innerHTML]=\"msg.detail | safe : 'html'\"></p>\n        </ng-template>\n      </div>\n    </div>\n  </div>\n</div>\n","import { ComponentFactoryResolver, Injectable, Injector, Type } from '@angular/core';\r\nimport { OverlayContainerRef } from 'ng-devui/overlay-container';\r\nimport { assign } from 'lodash-es';\r\nimport { Message, ToastComponent } from './toast.component';\r\n\r\nexport interface IToastOptions {\r\n  value?: Array<Message>;\r\n  life?: number;\r\n  lifeMode?: string;\r\n  style?: object;\r\n  styleClass?: string;\r\n  sticky?: boolean;\r\n  injector?: Injector;\r\n  appendUpperLimit?: number;\r\n  component?: Type<any>;\r\n  componentFactoryResolver?: ComponentFactoryResolver;\r\n}\r\n\r\n@Injectable()\r\nexport class ToastService {\r\n  constructor(private overlayContainerRef: OverlayContainerRef, private componentFactoryResolver: ComponentFactoryResolver) {}\r\n\r\n  open({\r\n    value,\r\n    life = 5000,\r\n    lifeMode = 'global',\r\n    sticky = false,\r\n    style,\r\n    styleClass,\r\n    appendUpperLimit,\r\n    injector,\r\n    /**\r\n     * @deprecated\r\n     */\r\n    component,\r\n    componentFactoryResolver,\r\n  }: IToastOptions = {}) {\r\n    const finalComponentFactoryResolver = componentFactoryResolver || this.componentFactoryResolver;\r\n    const toastRef = this.overlayContainerRef.createComponent(\r\n      finalComponentFactoryResolver.resolveComponentFactory(ToastComponent),\r\n      injector\r\n    );\r\n    assign(toastRef.instance, {\r\n      lifeMode: lifeMode,\r\n      sticky: sticky,\r\n      style: style,\r\n      styleClass: styleClass,\r\n      value: value,\r\n      life: life,\r\n      appendUpperLimit: appendUpperLimit,\r\n    });\r\n\r\n    toastRef.instance.close = (index?: number | Message) => {\r\n      if (typeof index === 'number' && index > -1) {\r\n        toastRef.instance.removeIndexThrottle(index);\r\n      } else if (index) {\r\n        toastRef.instance.removeMsgThrottle(index);\r\n      } else {\r\n        setTimeout(() => {\r\n          toastRef.instance.removeAll();\r\n          setTimeout(() => {\r\n            if (toastRef) {\r\n              toastRef.destroy();\r\n            }\r\n          }, 300);\r\n        });\r\n      }\r\n    };\r\n\r\n    toastRef.instance.onHidden = () => {\r\n      if (toastRef?.hostView) {\r\n        toastRef.hostView.destroy();\r\n      }\r\n    };\r\n\r\n    toastRef.instance.show();\r\n    return {\r\n      toastInstance: toastRef.instance,\r\n    };\r\n  }\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OverlayContainerModule } from 'ng-devui/overlay-container';\nimport { IsTemplateModule, SafePipeModule } from 'ng-devui/utils';\nimport { ToastComponent } from './toast.component';\nimport { ToastService } from './toast.service';\n@NgModule({\n  imports: [CommonModule, IsTemplateModule, SafePipeModule, OverlayContainerModule],\n  exports: [ToastComponent],\n  declarations: [ToastComponent],\n  providers: [ToastService],\n})\nexport class ToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}