{
  "version": 3,
  "sources": ["../../src/managers/ToastManager/helpers/LifetimeManager.ts"],
  "sourcesContent": ["import {\n  customToastCloseHandlersDictionary,\n  removeCustomToast,\n  removeTransactionToast\n} from 'store/actions/toasts/toastsActions';\n\ninterface IToastProgressManagerParams {\n  successfulToastLifetime?: number;\n}\n\nconst DEFAULT_SUCCESSFUL_TOAST_LIFETIME = 10_000;\n\nexport class LifetimeManager {\n  private timeoutIntervals: Map<string, ReturnType<typeof setTimeout>> =\n    new Map();\n  private successfulToastLifetime: number = DEFAULT_SUCCESSFUL_TOAST_LIFETIME;\n\n  constructor() {}\n\n  public init({ successfulToastLifetime }: IToastProgressManagerParams) {\n    this.successfulToastLifetime =\n      successfulToastLifetime ?? DEFAULT_SUCCESSFUL_TOAST_LIFETIME;\n  }\n\n  public start = (toastId: string) => {\n    this.stop(toastId);\n\n    if (this.successfulToastLifetime <= 0) {\n      return;\n    }\n\n    const timeout = setTimeout(() => {\n      removeTransactionToast(toastId);\n    }, this.successfulToastLifetime);\n\n    this.timeoutIntervals.set(toastId, timeout);\n  };\n\n  public startWithCustomDuration = (toastId: string, duration: number) => {\n    this.stop(toastId);\n\n    if (duration <= 0) {\n      return;\n    }\n\n    const timeout = setTimeout(() => {\n      removeCustomToast(toastId);\n      const handleClose = customToastCloseHandlersDictionary[toastId];\n      handleClose?.();\n    }, duration);\n\n    this.timeoutIntervals.set(toastId, timeout);\n  };\n\n  public stop = (toastId: string) => {\n    const timeout = this.timeoutIntervals.get(toastId);\n    if (timeout) {\n      clearTimeout(timeout);\n      this.timeoutIntervals.delete(toastId);\n    }\n  };\n\n  public destroy() {\n    this.timeoutIntervals.forEach((interval) => clearTimeout(interval));\n    this.timeoutIntervals.clear();\n  }\n}\n"],
  "mappings": "uDAUA,IAAMA,EAAoC,IAE7BC,EAAN,KAAsB,CAK3B,aAAc,CAJd,KAAQ,iBACN,IAAI,IACN,KAAQ,wBAAkCD,EAS1C,KAAO,MAASE,GAAoB,CAGlC,GAFA,KAAK,KAAKA,CAAO,EAEb,KAAK,yBAA2B,EAClC,OAGF,IAAMC,EAAU,WAAW,IAAM,CAC/BC,EAAuBF,CAAO,CAChC,EAAG,KAAK,uBAAuB,EAE/B,KAAK,iBAAiB,IAAIA,EAASC,CAAO,CAC5C,EAEA,KAAO,wBAA0B,CAACD,EAAiBG,IAAqB,CAGtE,GAFA,KAAK,KAAKH,CAAO,EAEbG,GAAY,EACd,OAGF,IAAMF,EAAU,WAAW,IAAM,CAC/BG,EAAkBJ,CAAO,EACzB,IAAMK,EAAcC,EAAmCN,CAAO,EAC9DK,IAAc,CAChB,EAAGF,CAAQ,EAEX,KAAK,iBAAiB,IAAIH,EAASC,CAAO,CAC5C,EAEA,KAAO,KAAQD,GAAoB,CACjC,IAAMC,EAAU,KAAK,iBAAiB,IAAID,CAAO,EAC7CC,IACF,aAAaA,CAAO,EACpB,KAAK,iBAAiB,OAAOD,CAAO,EAExC,CA3Ce,CAER,KAAK,CAAE,wBAAAO,CAAwB,EAAgC,CACpE,KAAK,wBACHA,GAA2BT,CAC/B,CAwCO,SAAU,CACf,KAAK,iBAAiB,QAASU,GAAa,aAAaA,CAAQ,CAAC,EAClE,KAAK,iBAAiB,MAAM,CAC9B,CACF",
  "names": ["DEFAULT_SUCCESSFUL_TOAST_LIFETIME", "LifetimeManager", "toastId", "timeout", "removeTransactionToast", "duration", "removeCustomToast", "handleClose", "customToastCloseHandlersDictionary", "successfulToastLifetime", "interval"]
}
