{"version":3,"sources":["../../../XHRInterceptor.ts"],"names":[],"mappings":"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","file":"XHRInterceptor.js","sourcesContent":["(function (xhrRequest: any): void {\n type openPrototype = (method: string, url: string, async?: boolean, user?: string, password?: string) => void;\n type sendPrototype = (data: any) => void;\n\n const open: openPrototype = xhrRequest.prototype.open as openPrototype;\n const send: sendPrototype = xhrRequest.prototype.send as sendPrototype;\n\n function getParameterByName(name: string): string {\n let url: string = window.location.href;\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\n let regex: RegExp = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\");\n let results: any = regex.exec(url);\n\n if (!results) {\n return null;\n }\n\n if (!results[2]) {\n return \"\";\n }\n\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n }\n\n xhrRequest.prototype.open = function (method: string, url: string, async?: boolean, user?: string, password?: string): void {\n this.GetMethod = function (): string {\n return method.toUpperCase();\n };\n\n MSTrgovina.Common.Spinner.Start();\n\n return open.apply(this, arguments);\n };\n\n xhrRequest.prototype.send = function (data: any): any {\n if (typeof this.GetMethod === \"function\") {\n let method: string = this.GetMethod();\n\n switch (method) {\n case \"POST\":\n case \"PUT\":\n case \"PATCH\":\n case \"DELETE\": {\n const token: string = $(\"#appConstants input[name=AntiforgeryToken]\").val() as string;\n //let token: string = Common.Cookies.getCookie(\"XSRF-TOKEN\");\n this.setRequestHeader(\"X-CSRF-TOKEN\", token);\n break;\n }\n default:\n // other request methods don't require AntiForgeryToken\n break;\n }\n } else {\n throw new Error(\"Can't determine HTTP Method. Something went wrong!\");\n }\n\n //// add page id header\n //let pageId: string = (document).PageID;\n //this.setRequestHeader(\"X-page-id\", pageId);\n\n //this.setRequestHeader(\"X-Is-Ajax\", \"true\");\n\n //// add main entity id header\n //let mainEntityID: string = (document).App_MainEntityID;\n //if (mainEntityID !== null && mainEntityID !== \"\") {\n // this.setRequestHeader(\"X-main-entity-id\", mainEntityID);\n //}\n\n const xhr: XMLHttpRequest = this;\n\n function HandleRewriteUrlRequest(): void {\n if (xhr.readyState === XMLHttpRequest.HEADERS_RECEIVED) {\n\n // rewrite url\n let rewriteUrl: string = xhr.getResponseHeader(\"X-rewrite-url-to\");\n\n // get MesageBox items\n let messageBoxItemsBase64: string = xhr.getResponseHeader(\"X-MessageBox-Items\");\n\n // redirect url\n let redirectUrl: string = xhr.getResponseHeader(\"X-redirect-url-to\");\n if (redirectUrl !== null && redirectUrl !== \"\") {\n if (messageBoxItemsBase64 !== null && messageBoxItemsBase64 !== \"\") {\n localStorage.setItem(\"X-MessageBox-Items\", messageBoxItemsBase64);\n }\n\n window.location.href = redirectUrl;\n } else {\n //// rewrite url\n //if (rewriteUrl !== null && rewriteUrl !== \"\") {\n // let currentState: any = history.state;\n\n // history.replaceState(currentState, document.title, rewriteUrl);\n\n // (document).App_MainEntityID = getParameterByName(\"MainEntityID\");\n //}\n\n //// MesageBox items\n //if (messageBoxItemsBase64 !== null && messageBoxItemsBase64 !== \"\") {\n // let items: string = Nrl.Common.EncodingHelper.b64DecodeUnicode(messageBoxItemsBase64);\n // let itemsObj: any[] = JSON.parse(items);\n\n // for (let i: number = 0; i < itemsObj.length; i++) {\n // let item: any = itemsObj[i];\n\n // Nrl.Common.MessageBox.ShowMessage(\n // item.Title,\n // item.Message,\n // Nrl.Common.MessageBox.MessageType[item.MessageType],\n // item.TimeOut\n // );\n // }\n //}\n\n }\n\n xhr.removeEventListener(\"readystatechange\", HandleRewriteUrlRequest);\n }\n }\n\n function HandleRequestEnded(): void {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n let popupCallbackBase64: string = xhr.getResponseHeader(\"X-popup-callback-function\");\n\n // // get custom exception header\n // let exceptionTypeHeader: string = xhr.getResponseHeader(\"X-exception-type\");\n // let request: any = xhr;\n // if (exceptionTypeHeader === Nrl.Common.Enums.ExceptionTypes.BusinessException\n // && (request.GetMethod() !== \"DELETE\" && request.GetMethod() !== \"PUT\")\n // && xhr.response !== null && xhr.response !== \"\") {\n // let errorMessageItem: any = JSON.parse(xhr.response);\n\n // if (errorMessageItem.error === true) {\n // Nrl.Common.MessageBox.ShowMessage(\n // \"\",\n // errorMessageItem.message,\n // Nrl.Common.MessageBox.MessageType.Error,\n // 10\n // );\n // }\n // }\n\n if (popupCallbackBase64 !== null && popupCallbackBase64 !== \"\") {\n let callbackString: string = MSTrgovina.Common.Helpers.EncodingHelper.b64DecodeUnicode(popupCallbackBase64);\n let callbackFunction: any = MSTrgovina.Common.Helpers.EvalHelper.GetFunction(callbackString);\n\n if (callbackFunction) {\n callbackFunction(xhr.responseText);\n }\n }\n\n //// handle file download\n //let contentDisposition: string = xhr.getResponseHeader(\"content-disposition\");\n //if (typeof contentDisposition !== \"undefined\" && contentDisposition !== null && contentDisposition !== \"\") {\n // let contentType: string = xhr.getResponseHeader(\"content-type\");\n // let blob: any = new Blob([xhr.response], { type: contentType });\n // let filename: string;\n // if (contentDisposition && contentDisposition.indexOf(\"attachment\") !== -1) {\n // let filenameRegex: RegExp = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n // let matches: RegExpExecArray = filenameRegex.exec(contentDisposition);\n // if (matches != null && matches[1]) {\n // filename = matches[1].replace(/['\"]/g, \"\");\n // }\n // }\n // (window).saveAs(blob, filename);\n //}\n\n //Nrl.Common.Validation.ReAttachValidationMutationObservers();\n MSTrgovina.Common.Spinner.Stop();\n\n xhr.removeEventListener(\"readystatechange\", HandleRequestEnded);\n }\n }\n\n xhr.addEventListener(\"readystatechange\", HandleRewriteUrlRequest, false);\n xhr.addEventListener(\"readystatechange\", HandleRequestEnded, false);\n\n return send.apply(this, arguments);\n };\n\n})(XMLHttpRequest);\n"]}