{"version":3,"file":"dom_request.min.mjs","sources":["../../../../src/util/internals/dom_request.ts"],"sourcesContent":["import { getFabricWindow } from '../../env';\nimport { noop } from '../../constants';\nimport type { Abortable } from '../../typedefs';\nimport { SignalAbortedError } from './console';\n\ntype requestOptions = Abortable & {\n  onComplete?: (xhr: XMLHttpRequest) => void;\n};\n\n/**\n * Cross-browser abstraction for sending XMLHttpRequest\n * @deprecated this has to go away, we can use a modern browser method to do the same.\n * @param {String} url URL to send XMLHttpRequest to\n * @param {Object} [options] Options object\n * @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal\n * @param {Function} options.onComplete Callback to invoke when request is completed\n * @return {XMLHttpRequest} request\n */\n\nexport function request(url: string, options: requestOptions = {}) {\n  const onComplete = options.onComplete || noop,\n    xhr = new (getFabricWindow().XMLHttpRequest)(),\n    signal = options.signal,\n    abort = function () {\n      xhr.abort();\n    },\n    removeListener = function () {\n      signal && signal.removeEventListener('abort', abort);\n      xhr.onerror = xhr.ontimeout = noop;\n    };\n\n  if (signal && signal.aborted) {\n    throw new SignalAbortedError('request');\n  } else if (signal) {\n    signal.addEventListener('abort', abort, { once: true });\n  }\n\n  /** @ignore */\n  xhr.onreadystatechange = function () {\n    if (xhr.readyState === 4) {\n      removeListener();\n      onComplete(xhr);\n      xhr.onreadystatechange = noop;\n    }\n  };\n\n  xhr.onerror = xhr.ontimeout = removeListener;\n\n  xhr.open('get', url, true);\n\n  xhr.send();\n  return xhr;\n}\n"],"names":["request","url","options","arguments","length","undefined","onComplete","noop","xhr","getFabricWindow","signal","abort","removeListener","removeEventListener","onerror","ontimeout","aborted","SignalAbortedError","addEventListener","once","onreadystatechange","readyState","open","send"],"mappings":"gKAmBO,SAASA,EAAQC,GAA2C,IAA9BC,EAAuBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC7D,MAAMG,EAAaJ,EAAQI,YAAcC,EACvCC,EAAM,IAAKC,IAAgC,gBAC3CC,EAASR,EAAQQ,OACjBC,EAAQ,WACNH,EAAIG,OACL,EACDC,EAAiB,WACfF,GAAUA,EAAOG,oBAAoB,QAASF,GAC9CH,EAAIM,QAAUN,EAAIO,UAAYR,GAGlC,GAAIG,GAAUA,EAAOM,QACnB,MAAM,IAAIC,EAAmB,WAmB/B,OAlBWP,GACTA,EAAOQ,iBAAiB,QAASP,EAAO,CAAEQ,MAAM,IAIlDX,EAAIY,mBAAqB,WACA,IAAnBZ,EAAIa,aACNT,IACAN,EAAWE,GACXA,EAAIY,mBAAqBb,IAI7BC,EAAIM,QAAUN,EAAIO,UAAYH,EAE9BJ,EAAIc,KAAK,MAAOrB,GAAK,GAErBO,EAAIe,OACGf,CACT"}