{"version":3,"file":"pad-ui-lib-toast.mjs","sources":["../../../components/toast/toast-injector.ts","../../../components/toast/toast-ref.ts","../../../components/toast/components/toast-container.component.ts","../../../components/toast/components/toast-container.component.html","../../../components/toast/toast-animation.ts","../../../components/toast/toast-data.ts","../../../components/toast/components/toast.component.ts","../../../components/toast/components/toast.component.html","../../../components/toast/toast-config.ts","../../../components/toast/toast.service.ts","../../../components/toast/toast.module.ts","../../../components/toast/toast.provider.ts","../../../components/toast/pad-ui-lib-toast.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nimport { PadToastConfig } from \"./toast-config\";\nimport { PadToastData } from \"./toast-data\";\n\nexport const PAD_TOAST_CONFIG = new InjectionToken<PadToastConfig>(\"PadToastConfig\");\nexport const PAD_TOAST_DATA = new InjectionToken<PadToastData>(\"PadToastData\");\n","import { PadToastContainerComponent } from \"./components/toast-container.component\";\n\nexport class PadToastRef {\n  id = Symbol();\n  readonly #container: PadToastContainerComponent;\n\n  constructor(container: PadToastContainerComponent) {\n    this.#container = container;\n  }\n\n  close() {\n    this.#container.remove(this.id);\n  }\n}\n","import { ComponentPortal, Portal, PortalModule } from \"@angular/cdk/portal\";\nimport { NgFor } from \"@angular/common\";\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Injector,\n  ViewEncapsulation,\n  inject,\n  signal,\n} from \"@angular/core\";\nimport { PadToastConfig } from \"../toast-config\";\nimport { PadToastData } from \"../toast-data\";\nimport { PAD_TOAST_CONFIG, PAD_TOAST_DATA } from \"../toast-injector\";\nimport { PadToastRef } from \"../toast-ref\";\n\nexport interface ActiveToast {\n  id: symbol;\n  data: PadToastData;\n  config?: PadToastConfig;\n  ref: PadToastRef;\n  portal: Portal<unknown>;\n}\n\n@Component({\n  selector: \"pad-toast-container\",\n  styleUrls: [\"./toast-container.component.scss\"],\n  templateUrl: \"toast-container.component.html\",\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: \"pad-toast-container\",\n  },\n  imports: [PortalModule, NgFor],\n})\nexport class PadToastContainerComponent {\n  readonly #globalConfig = inject(PAD_TOAST_CONFIG);\n  readonly #injector = inject(Injector);\n  readonly toasts = signal<ActiveToast[]>([]);\n\n  create(data: PadToastData, config?: Partial<PadToastConfig>): PadToastRef {\n    const mergeConfig = this.#getMergeConfig(config);\n    const ref = new PadToastRef(this);\n    const injector = this.#createInjector(data, mergeConfig, ref, this.#injector);\n    const portal = new ComponentPortal(mergeConfig.component, null, injector);\n\n    this.toasts.mutate(toasts =>\n      toasts.push({ id: ref.id, ref, data, config: mergeConfig, portal })\n    );\n\n    return ref;\n  }\n\n  remove(id: symbol) {\n    this.toasts.update(toasts => toasts.filter(toast => toast.id !== id));\n  }\n\n  #getMergeConfig(config?: Partial<PadToastConfig>): PadToastConfig {\n    if (config == null) {\n      return this.#globalConfig;\n    }\n\n    return { ...this.#globalConfig, ...config };\n  }\n\n  #createInjector(\n    data: PadToastData,\n    config: PadToastConfig,\n    ref: PadToastRef,\n    parentInjector: Injector\n  ): Injector {\n    return Injector.create({\n      providers: [\n        {\n          provide: PAD_TOAST_CONFIG,\n          useValue: config,\n        },\n        {\n          provide: PAD_TOAST_DATA,\n          useValue: data,\n        },\n        {\n          provide: PadToastRef,\n          useValue: ref,\n        },\n      ],\n      parent: parentInjector,\n    });\n  }\n}\n","<ng-container *ngFor=\"let item of toasts()\">\n  <ng-template [cdkPortalOutlet]=\"item.portal\"></ng-template>\n</ng-container>\n","import {\n  AnimationTriggerMetadata,\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n} from \"@angular/animations\";\n\nexport const notificationMotion: AnimationTriggerMetadata = trigger(\n  \"notificationMotion\",\n  [\n    state(\"enterRight\", style({ opacity: 1, transform: \"translateX(0)\" })),\n    transition(\"* => enterRight\", [\n      style({ opacity: 0, transform: \"translateX(5%)\" }),\n      animate(\"{{ easeTime }}ms linear\"),\n    ]),\n    state(\"enterLeft\", style({ opacity: 1, transform: \"translateX(0)\" })),\n    transition(\"* => enterLeft\", [\n      style({ opacity: 0, transform: \"translateX(-5%)\" }),\n      animate(\"{{ easeTime }}ms linear\"),\n    ]),\n    state(\"enterTop\", style({ opacity: 1, transform: \"translateY(0)\" })),\n    transition(\"* => enterTop\", [\n      style({ opacity: 0, transform: \"translateY(-5%)\" }),\n      animate(\"{{ easeTime }}ms linear\"),\n    ]),\n    state(\"enterBottom\", style({ opacity: 1, transform: \"translateY(0)\" })),\n    transition(\"* => enterBottom\", [\n      style({ opacity: 0, transform: \"translateY(5%)\" }),\n      animate(\"{{ easeTime }}ms linear\"),\n    ]),\n    state(\n      \"leave\",\n      style({\n        opacity: 0,\n        transform: \"scaleY(0.8)\",\n        transformOrigin: \"0% 0%\",\n      })\n    ),\n    transition(\"* => leave\", [\n      style({\n        opacity: 1,\n        transform: \"scaleY(1)\",\n        transformOrigin: \"0% 0%\",\n      }),\n      animate(\"{{ easeTime }}ms linear\"),\n    ]),\n  ]\n);\n","export enum PadToastType {\n  Success,\n  Error,\n  Info,\n  Warning,\n}\n\nexport interface PadToastData {\n  type: PadToastType;\n  title?: string;\n  message?: string;\n  iconKey?: string;\n  width?: number | string;\n}\n","import { AnimationEvent } from \"@angular/animations\";\nimport { NgIf } from \"@angular/common\";\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  DestroyRef,\n  OnInit,\n  ViewEncapsulation,\n  inject,\n  signal,\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { PadButtonModule } from \"pad-ui-lib/button\";\nimport { PadIconModule } from \"pad-ui-lib/icon\";\nimport { take, timer } from \"rxjs\";\nimport { notificationMotion } from \"../toast-animation\";\nimport { PadToastType } from \"../toast-data\";\nimport { PAD_TOAST_CONFIG, PAD_TOAST_DATA } from \"../toast-injector\";\nimport { PadToastRef } from \"../toast-ref\";\n@Component({\n  selector: \"pad-toast\",\n  styleUrls: [\"./toast.component.scss\"],\n  templateUrl: \"./toast.component.html\",\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  animations: [notificationMotion],\n  standalone: true,\n  imports: [NgIf, PadIconModule, PadButtonModule],\n})\nexport class PadToastComponent implements OnInit {\n  readonly data = inject(PAD_TOAST_DATA);\n  readonly iconKey: string;\n  readonly toastClasses: string;\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #config = inject(PAD_TOAST_CONFIG);\n  readonly #ref = inject(PadToastRef);\n\n  color: \"gray\" | \"error\" | \"warning\" | \"success\" = \"gray\";\n  state = signal<{\n    value: \"enterRight\" | \"leave\";\n    params: { easeTime: number | string; easing: string };\n  }>({\n    value: \"enterRight\",\n    params: { easeTime: this.#config.easeTime, easing: \"ease\" },\n  });\n  constructor() {\n    const classes = [\"pad-toast\"];\n    this.iconKey = \"check-circle\";\n    if (this.data.type == PadToastType.Success) {\n      classes.push(\"pad-toast-success\");\n      this.iconKey = \"check-circle\";\n      this.color = \"success\";\n    }\n\n    if (this.data.type == PadToastType.Error) {\n      classes.push(\"pad-toast-error\");\n      this.iconKey = \"alert-circle\";\n      this.color = \"error\";\n    }\n\n    if (this.data.type == PadToastType.Warning) {\n      classes.push(\"pad-toast-warning\");\n      this.iconKey = \"alert-circle\";\n      this.color = \"warning\";\n    }\n\n    if (this.data.type == PadToastType.Info) {\n      classes.push(\"pad-toast-info\");\n      this.iconKey = \"alert-circle\";\n      this.color = \"gray\";\n    }\n\n    if (!this.data.title) {\n      classes.push(\"not-title\");\n    }\n    this.toastClasses = classes.join(\" \");\n  }\n\n  ngOnInit() {\n    timer(this.#config.timeout)\n      .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n      .subscribe(() => this.#close());\n  }\n\n  onCloseClick() {\n    this.#close();\n  }\n\n  animationDone(event: AnimationEvent) {\n    if (event.toState == \"leave\") {\n      this.#ref.close();\n    }\n  }\n\n  #close() {\n    // update animation state\n    this.state.update(state => ({ ...state, value: \"leave\" }));\n\n    // waiting for animation run to end, then close toast\n    // timer(this.#config.easeTime)\n    //   .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n    //   .subscribe(() => this.#ref.close());\n  }\n}\n","<div\n  [@notificationMotion]=\"state()\"\n  (@notificationMotion.done)=\"animationDone($event)\"\n  [class]=\"toastClasses\">\n  <div\n    [class.has-title]=\"data.title\"\n    [style.width]=\"data.width\"\n    class=\"pad-toast__container\">\n    <div class=\"pad-toast__left\">\n      <pad-icon [key]=\"iconKey\"></pad-icon>\n    </div>\n    <div class=\"pad-toast__right\">\n      <h4 *ngIf=\"data.title\" class=\"pad-toast__title\">{{ data.title }}</h4>\n      <p *ngIf=\"data.message\" class=\"pad-toast__message\">{{ data.message }}</p>\n    </div>\n\n    <button\n      (click)=\"onCloseClick()\"\n      padSize=\"md\"\n      padStyle=\"basic\"\n      [padColor]=\"color\"\n      pad-icon-button\n      class=\"pad-toast__button-close\">\n      <pad-icon key=\"x-close\"></pad-icon>\n    </button>\n  </div>\n</div>\n","import { ComponentType } from \"@angular/cdk/portal\";\r\nimport { PadToastComponent } from \"./components/toast.component\";\r\nexport class PadToastConfig {\r\n  /**\r\n   * toast time to live in milliseconds\r\n   * default: 5000\r\n   */\r\n  timeout = 5000;\r\n\r\n  /**\r\n   * Angular toast component to be shown\r\n   * default: Toast\r\n   */\r\n  component: ComponentType<unknown> = PadToastComponent;\r\n  /**\r\n   * animation ease time on toast\r\n   * default: 300\r\n   */\r\n  easeTime = 200;\r\n  /**\r\n   * animation easing on toast\r\n   * default: ease-in\r\n   */\r\n  easing = \"ease-in\";\r\n}\r\n","import { Overlay } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable, Injector, inject } from \"@angular/core\";\nimport { PadToastContainerComponent } from \"./public-api\";\nimport { PadToastConfig } from \"./toast-config\";\nimport { PadToastData, PadToastType } from \"./toast-data\";\nimport { PAD_TOAST_CONFIG } from \"./toast-injector\";\n\ntype PadToastParams = Omit<PadToastData, \"type\">;\n\n@Injectable()\nexport class PadToastService {\n  readonly #globalConfig = inject(PAD_TOAST_CONFIG);\n  readonly #overlay = inject(Overlay);\n  readonly #injector = inject(Injector);\n  #container?: PadToastContainerComponent;\n\n  info(params: PadToastParams, config?: Partial<PadToastConfig>) {\n    return this.#buildToast({ type: PadToastType.Info, ...params }, config);\n  }\n\n  warning(params: PadToastParams, config?: Partial<PadToastConfig>) {\n    return this.#buildToast({ type: PadToastType.Warning, ...params }, config);\n  }\n\n  error(params: PadToastParams, config?: Partial<PadToastConfig>) {\n    return this.#buildToast({ type: PadToastType.Error, ...params }, config);\n  }\n\n  success(params: PadToastParams, config?: Partial<PadToastConfig>) {\n    return this.#buildToast({ type: PadToastType.Success, ...params }, config);\n  }\n\n  #buildToast(data: PadToastData, config?: Partial<PadToastConfig>) {\n    const container = this.#getContainer();\n    return container.create(data, config);\n  }\n\n  #getContainer() {\n    if (this.#container) {\n      return this.#container;\n    }\n\n    const overlayRef = this.#overlay.create({\n      // hasBackdrop: false,\n      // scrollStrategy: this.#overlay.scrollStrategies.noop(),\n      positionStrategy: this.#overlay\n        .position()\n        .global()\n        .top(20 + \"px\")\n        .right(20 + \"px\"),\n    });\n\n    const injector = this.#createContainerInjector(this.#globalConfig, this.#injector);\n    const containerPortal = new ComponentPortal(\n      PadToastContainerComponent,\n      null,\n      injector\n    );\n\n    const containerRef = overlayRef.attach(containerPortal);\n    this.#container = containerRef.instance;\n    return containerRef.instance;\n  }\n\n  #createContainerInjector(config: PadToastConfig, parentInjector: Injector): Injector {\n    return Injector.create({\n      providers: [\n        {\n          provide: PAD_TOAST_CONFIG,\n          useValue: config,\n        },\n      ],\n      parent: parentInjector,\n    });\n  }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { PadToastContainerComponent } from \"./components/toast-container.component\";\nimport { PadToastComponent } from \"./components/toast.component\";\n\nimport { PadToastConfig } from \"./toast-config\";\nimport { PAD_TOAST_CONFIG } from \"./toast-injector\";\nimport { PadToastService } from \"./toast.service\";\n\n@NgModule({\n  imports: [PadToastComponent, PadToastContainerComponent],\n  providers: [PadToastService],\n  exports: [PadToastComponent],\n})\nexport class PadToastModule {\n  static forRoot(config?: Partial<PadToastConfig>): ModuleWithProviders<PadToastModule> {\n    return {\n      ngModule: PadToastModule,\n      providers: [\n        {\n          provide: PAD_TOAST_CONFIG,\n          useValue: config ? config : new PadToastConfig(),\n        },\n      ],\n    };\n  }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { EnvironmentProviders, Provider, makeEnvironmentProviders } from \"@angular/core\";\n\nimport { PadToastConfig } from \"./toast-config\";\nimport { PAD_TOAST_CONFIG } from \"./toast-injector\";\nimport { PadToastService } from \"./toast.service\";\n\nexport const providePadToast = (\n  config: Partial<PadToastConfig> = {}\n): EnvironmentProviders => {\n  const defaultConfig = new PadToastConfig();\n\n  const providers: Provider[] = [\n    CommonModule,\n    PadToastService,\n    {\n      provide: PAD_TOAST_CONFIG,\n      useValue: { ...config, ...defaultConfig },\n    },\n  ];\n\n  return makeEnvironmentProviders(providers);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}