{"version":3,"sources":["Components/Ajax.js"],"names":["ignoreError","xhr","url","options","method","XMLHttpRequest","open","headers","header","setRequestHeader","token","document","querySelector","value","data","FormData","Promise","resolve","reject","onerror","onreadystatechange","readyState","DONE","status","result","responseText","JSON","parse","e","location","getResponseHeader","onprogress","send"],"mappings":";;;;;AAAA,aAASA,WAAT,GAAuB,CACtB;;AAED,aAASC,GAAT,CAAaC,GAAb,EAAkBC,OAAlB,EAA2B;AACvBA,kBAAUA,WAAW,EAArB;;AAEA,YAAMC,SAASD,QAAQC,MAAR,IAAkB,KAAjC;AACA,YAAIH,MAAM,IAAII,cAAJ,EAAV;AACAJ,YAAIK,IAAJ,CAASF,MAAT,EAAiBF,GAAjB,EAAsB,IAAtB;;AAEA,YAAIC,QAAQI,OAAZ,EAAqB;AACjB,iBAAK,IAAIC,MAAT,IAAmBL,QAAQI,OAA3B,EAAoC;AAChCN,oBAAIQ,gBAAJ,CAAqBD,MAArB,EAA6BL,QAAQI,OAAR,CAAgBC,MAAhB,CAA7B;AACH;AACJ;;AAED,YAAIJ,WAAW,KAAX,IAAoBA,WAAW,MAAnC,EAA2C;AACvC,gBAAMM,QAAQC,SAASC,aAAT,CAAuB,qCAAvB,CAAd;AACA,gBAAIF,KAAJ,EAAW;AACPT,oBAAIQ,gBAAJ,CAAqB,0BAArB,EAAiDC,MAAMG,KAAvD;AACH;AACJ;;AAED,YAAI,CAAC,CAACV,QAAQI,OAAT,IAAoB,CAACJ,QAAQI,OAAR,CAAgB,cAAhB,CAAtB,KAA0D,EAAEJ,QAAQW,IAAR,YAAwBC,QAA1B,CAA9D,EAAmG;AAC/Fd,gBAAIQ,gBAAJ,CAAqB,cAArB,EAAqC,kBAArC;AACH;;AAEDR,YAAIQ,gBAAJ,CAAqB,kBAArB,EAAyC,gBAAzC;;AAEA,eAAO,IAAIO,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACpCjB,gBAAIkB,OAAJ,GAAc,YAAM;AAChBD,uBAAOjB,GAAP;AACH,aAFD;;AAIAA,gBAAImB,kBAAJ,GAAyB,YAAM;AAC3B,oBAAInB,IAAIoB,UAAJ,KAAmBhB,eAAeiB,IAAtC,EAA4C;AACxC;AACH;;AAED,oBAAIrB,IAAIsB,MAAJ,KAAe,GAAnB,EAAwB;AACpB,wBAAIC,SAAS,EAAb;AACA,wBAAI;AACAA,iCAASvB,IAAIwB,YAAJ,GAAmBC,KAAKC,KAAL,CAAW1B,IAAIwB,YAAf,CAAnB,GAAkD,IAA3D;AAEH,qBAHD,CAGE,OAAOG,CAAP,EAAU;AACRV,+BAAOjB,GAAP;AACH;AACD,2BAAOgB,QAAQO,MAAR,EAAgBvB,GAAhB,CAAP;AACH;;AAED;AACA,oBAAIA,IAAIsB,MAAJ,KAAe,GAAf,IAAsBtB,IAAIsB,MAAJ,KAAe,GAAzC,EAA8C;AAC1C,2BAAON,QAAQhB,GAAR,CAAP;AACH;;AAED;AACA,oBAAIA,IAAIsB,MAAJ,KAAe,GAAf,IAAsBtB,IAAIsB,MAAJ,KAAe,GAArC,IAA4CtB,IAAIsB,MAAJ,KAAe,GAA/D,EAAqE;AACjE,wBAAMM,WAAW5B,IAAI6B,iBAAJ,CAAsB,UAAtB,CAAjB;AACA,2BAAOb,QAAQhB,IAAI4B,QAAJ,CAAR,CAAP;AACH;;AAED;AACA;AACA,oBAAI5B,IAAIsB,MAAJ,KAAe,GAAnB,EAAwB;AACpB,wBAAMM,YAAW5B,IAAI6B,iBAAJ,CAAsB,UAAtB,CAAjB;AACA,2BAAOb,QAAQY,SAAR,EAAkB1B,OAAlB,CAAP;AACH;;AAED;AACA;AACAe,uBAAOjB,GAAP;AACH,aArCD;;AAuCA,gBAAIE,QAAQ4B,UAAZ,EAAwB;AACpB9B,oBAAI8B,UAAJ,GAAiBA,UAAjB;AACH;;AAED,gBAAI5B,QAAQW,IAAZ,EAAkB;AACdb,oBAAI+B,IAAJ,CAAS7B,QAAQW,IAAjB;AACH,aAFD,MAEO;AACHb,oBAAI+B,IAAJ;AACH;AACJ,SArDM,CAAP;AAsDH;;;;;mCAEQhC,W;;2BAAaC,G","file":"Ajax.js","sourcesContent":["function ignoreError() {\r\n}\r\n\r\nfunction xhr(url, options) {\r\n options = options || {};\r\n\r\n const method = options.method || \"GET\";\r\n let xhr = new XMLHttpRequest();\r\n xhr.open(method, url, true);\r\n\r\n if (options.headers) {\r\n for (let header in options.headers) {\r\n xhr.setRequestHeader(header, options.headers[header]);\r\n }\r\n }\r\n\r\n if (method !== \"GET\" && method !== \"HEAD\") {\r\n const token = document.querySelector(\"[name='__RequestVerificationToken']\");\r\n if (token) {\r\n xhr.setRequestHeader(\"RequestVerificationToken\", token.value);\r\n }\r\n }\r\n\r\n if ((!options.headers || !options.headers[\"Content-Type\"]) && !(options.data instanceof FormData)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\r\n }\r\n\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n\r\n return new Promise((resolve, reject) => {\r\n xhr.onerror = () => {\r\n reject(xhr);\r\n };\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState !== XMLHttpRequest.DONE) {\r\n return;\r\n }\r\n\r\n if (xhr.status === 200) {\r\n var result = \"\";\r\n try {\r\n result = xhr.responseText ? JSON.parse(xhr.responseText) : null;\r\n\r\n } catch (e) {\r\n reject(xhr);\r\n }\r\n return resolve(result, xhr);\r\n }\r\n\r\n // Server accepted but no body is returned.\r\n if (xhr.status === 202 || xhr.status === 204) {\r\n return resolve(xhr);\r\n }\r\n\r\n // Server returned/accepted but we need to redirect and use a GET method.\r\n if (xhr.status === 201 || xhr.status === 302 || xhr.status === 303 ) {\r\n const location = xhr.getResponseHeader(\"Location\");\r\n return resolve(xhr(location));\r\n }\r\n\r\n // Special case, HTTP 307 Temporary Redirect tells browsers to do a redirect\r\n // but MUST keep the original method. So let's do that.\r\n if (xhr.status === 307) {\r\n const location = xhr.getResponseHeader(\"Location\");\r\n return resolve(location, options);\r\n }\r\n\r\n // If we got here, it's not a successful status code (or one we care about) So\r\n // lets punt them down the error path!\r\n reject(xhr);\r\n }\r\n\r\n if (options.onprogress) {\r\n xhr.onprogress = onprogress;\r\n }\r\n\r\n if (options.data) {\r\n xhr.send(options.data);\r\n } else {\r\n xhr.send();\r\n }\r\n });\r\n}\r\n\r\nexport { ignoreError, xhr };\r\n"]}