{"version":3,"file":"check_delayed_result-qkiGbIZw.js","sources":["../../../node_modules/@slideslive/fuse-kit/dist/utils/utilities/check_delayed_result.js"],"sourcesContent":["import slidesLiveDomain from \"./slideslive_domain.js\";\nimport now from \"./now.js\";\nclass DelayedResultCheck {\n  constructor(urlOrDelayedResultId, checkInterval, callback, errorsCallback) {\n    this.url = this.urlOrDelayedResultIdToUrl(urlOrDelayedResultId);\n    this.checkInterval = checkInterval || 2e3;\n    this.callback = callback;\n    this.errorsCallback = errorsCallback;\n    this.checkTimeoutId = null;\n    this.request = null;\n    this.abortController = null;\n    this.aborted = false;\n    this.startedAt = now();\n    this.maxDuration = 30 * 60 * 1e3;\n  }\n  abort() {\n    this.aborted = true;\n    if (this.request) {\n      this.abortController.abort();\n      this.abortController = null;\n      this.request = null;\n    }\n    if (this.checkTimeoutId) {\n      clearTimeout(this.checkTimeoutId);\n      this.checkTimeoutId = null;\n    }\n  }\n  scheduleCheck(checkInterval = null) {\n    if (this.aborted) {\n      return;\n    }\n    this.checkTimeoutId = setTimeout(this.check.bind(this), checkInterval || this.checkInterval);\n  }\n  check() {\n    if (this.checkTimeoutId) {\n      clearTimeout(this.checkTimeoutId);\n      this.checkTimeoutId = null;\n    }\n    if (this.elapsedTime > this.maxDuration) {\n      this.abort();\n      if (this.errorsCallback) {\n        this.errorsCallback([`Timed out after ${this.maxDuration / 1e3} seconds.`]);\n      }\n      return;\n    }\n    if (this.aborted) {\n      return;\n    }\n    this.abortController = new AbortController();\n    this.request = fetch(this.url, {\n      signal: this.abortController.signal,\n      method: \"GET\",\n      mode: \"cors\",\n      cache: \"no-cache\",\n      credentials: \"omit\",\n      headers: { Accept: \"text/plain\" },\n      redirect: \"follow\",\n      referrerPolicy: \"no-referrer\"\n    }).catch(() => this.scheduleCheck()).then((response) => response.json()).then((response) => {\n      if (!response.success) {\n        console.warn(\"DelayedResult errors:\", response.errors);\n        if (this.errorsCallback) {\n          this.errorsCallback(response.errors || [\"Server error.\"]);\n        }\n        return;\n      }\n      if (response.data.status === \"success\" || response.data.status === \"fail\") {\n        this.callback(response.data.result);\n      } else {\n        this.scheduleCheck();\n      }\n    }).catch((error) => {\n      console.warn(error);\n      this.scheduleCheck();\n    });\n  }\n  urlOrDelayedResultIdToUrl(urlOrDelayedResultId) {\n    let url;\n    if (urlOrDelayedResultId.indexOf(\"/\") < 0) {\n      url = `${this.delayedResultUrl()}?id=${urlOrDelayedResultId}`;\n    } else {\n      url = urlOrDelayedResultId;\n    }\n    return url;\n  }\n  delayedResultUrl() {\n    var _a;\n    if ((_a = window.gon) == null ? void 0 : _a.delayed_result_url) {\n      return window.gon.delayed_result_url;\n    }\n    const domain = slidesLiveDomain();\n    return `https://${domain}/-/delayed_result`;\n  }\n  get elapsedTime() {\n    return now() - this.startedAt;\n  }\n}\nfunction checkDelayedResult(urlOrDelayedResultId, callback, checkInterval, errorsCallback) {\n  const check = new DelayedResultCheck(urlOrDelayedResultId, checkInterval, callback, errorsCallback);\n  check.scheduleCheck(750);\n  return check;\n}\nexport {\n  checkDelayedResult as default\n};\n"],"names":["DelayedResultCheck","urlOrDelayedResultId","checkInterval","callback","errorsCallback","now","response","error","url","_a","slidesLiveDomain","checkDelayedResult","check"],"mappings":"8DAEA,MAAMA,CAAmB,CACvB,YAAYC,EAAsBC,EAAeC,EAAUC,EAAgB,CACzE,KAAK,IAAM,KAAK,0BAA0BH,CAAoB,EAC9D,KAAK,cAAgBC,GAAiB,IACtC,KAAK,SAAWC,EAChB,KAAK,eAAiBC,EACtB,KAAK,eAAiB,KACtB,KAAK,QAAU,KACf,KAAK,gBAAkB,KACvB,KAAK,QAAU,GACf,KAAK,UAAYC,EAAK,EACtB,KAAK,YAAc,GAAK,GAAK,GACjC,CACE,OAAQ,CACN,KAAK,QAAU,GACX,KAAK,UACP,KAAK,gBAAgB,MAAO,EAC5B,KAAK,gBAAkB,KACvB,KAAK,QAAU,MAEb,KAAK,iBACP,aAAa,KAAK,cAAc,EAChC,KAAK,eAAiB,KAE5B,CACE,cAAcH,EAAgB,KAAM,CAC9B,KAAK,UAGT,KAAK,eAAiB,WAAW,KAAK,MAAM,KAAK,IAAI,EAAGA,GAAiB,KAAK,aAAa,EAC/F,CACE,OAAQ,CAKN,GAJI,KAAK,iBACP,aAAa,KAAK,cAAc,EAChC,KAAK,eAAiB,MAEpB,KAAK,YAAc,KAAK,YAAa,CACvC,KAAK,MAAO,EACR,KAAK,gBACP,KAAK,eAAe,CAAC,mBAAmB,KAAK,YAAc,GAAG,WAAW,CAAC,EAE5E,MACN,CACQ,KAAK,UAGT,KAAK,gBAAkB,IAAI,gBAC3B,KAAK,QAAU,MAAM,KAAK,IAAK,CAC7B,OAAQ,KAAK,gBAAgB,OAC7B,OAAQ,MACR,KAAM,OACN,MAAO,WACP,YAAa,OACb,QAAS,CAAE,OAAQ,YAAc,EACjC,SAAU,SACV,eAAgB,aACjB,CAAA,EAAE,MAAM,IAAM,KAAK,cAAa,CAAE,EAAE,KAAMI,GAAaA,EAAS,KAAI,CAAE,EAAE,KAAMA,GAAa,CAC1F,GAAI,CAACA,EAAS,QAAS,CACrB,QAAQ,KAAK,wBAAyBA,EAAS,MAAM,EACjD,KAAK,gBACP,KAAK,eAAeA,EAAS,QAAU,CAAC,eAAe,CAAC,EAE1D,MACR,CACUA,EAAS,KAAK,SAAW,WAAaA,EAAS,KAAK,SAAW,OACjE,KAAK,SAASA,EAAS,KAAK,MAAM,EAElC,KAAK,cAAe,CAE5B,CAAK,EAAE,MAAOC,GAAU,CAClB,QAAQ,KAAKA,CAAK,EAClB,KAAK,cAAe,CAC1B,CAAK,EACL,CACE,0BAA0BN,EAAsB,CAC9C,IAAIO,EACJ,OAAIP,EAAqB,QAAQ,GAAG,EAAI,EACtCO,EAAM,GAAG,KAAK,iBAAgB,CAAE,OAAOP,CAAoB,GAE3DO,EAAMP,EAEDO,CACX,CACE,kBAAmB,CACjB,IAAIC,EACJ,OAAKA,EAAK,OAAO,MAAQ,MAAgBA,EAAG,mBACnC,OAAO,IAAI,mBAGb,WADQC,EAAkB,CACT,mBAC5B,CACE,IAAI,aAAc,CAChB,OAAOL,EAAG,EAAK,KAAK,SACxB,CACA,CACA,SAASM,EAAmBV,EAAsBE,EAAUD,EAAeE,EAAgB,CACzF,MAAMQ,EAAQ,IAAIZ,EAAmBC,EAAsBC,EAAeC,EAAUC,CAAc,EAClG,OAAAQ,EAAM,cAAc,GAAG,EAChBA,CACT","x_google_ignoreList":[0]}