{"version":3,"file":"PrintPreview.min.js","sources":["EncompassWebServices/Controls/PrintPreview.js"],"sourcesContent":["\"use strict\";\r\n\r\nconst BC_PrintPreview = function (EWS) {\r\n this.EWS = EWS;\r\n\r\n this.Dialog = false;\r\n\r\n this.File = false;\r\n this.Type = false;\r\n this.Report = false;\r\n};\r\n\r\nBC_PrintPreview.prototype.Load = async function () {\r\n if (this.Dialog && this.File && this.Type) {\r\n const me = this;\r\n const myResult = new ECP.EC_Request(\"GetPrintPreviewResult\");\r\n myResult.SetReturnType(ECP.EC_ReturnType.Text);\r\n\r\n let grid = \"False\";\r\n if (me.Dialog.querySelector(\"#ews-print-grid\").checked) {\r\n grid = \"True\";\r\n }\r\n\r\n myResult.AddRequestVariable(\"Request\", \"Print\");\r\n myResult.AddRequestVariable(\"FileName\", me.File, ECP.EC_Verb.Post);\r\n\r\n if (me.Report && me.Report >= 0) {\r\n myResult.AddRequestVariable(\"ReportID\", me.Report);\r\n }\r\n\r\n myResult.AddRequestVariable(\"Type\", me.Type);\r\n myResult.AddRequestVariable(\"ShowGridLines\", grid);\r\n\r\n let breaks = \"False\";\r\n\r\n if (me.Dialog.querySelector(\"#ews-print-break\").checked) {\r\n breaks = \"True\";\r\n }\r\n\r\n myResult.AddRequestVariable(\"PageBreaks\", breaks);\r\n\r\n myResult.AddRequestVariable(\"WorksheetIndex\", me.Dialog.querySelector(\"#ews-print-sheet\").value || \"\");\r\n\r\n myResult.AddRequestVariable(\"HeaderTopLeft\", me.Dialog.querySelector(\"#ews-print-header-top-left\").value || \"None\");\r\n myResult.AddRequestVariable(\"HeaderTopRight\", me.Dialog.querySelector(\"#ews-print-header-top-right\").value || \"None\");\r\n myResult.AddRequestVariable(\"HeaderBottomLeft\", me.Dialog.querySelector(\"#ews-print-header-bottom-left\").value || \"None\");\r\n myResult.AddRequestVariable(\"HeaderBottomRight\", me.Dialog.querySelector(\"#ews-print-header-bottom-right\").value || \"None\");\r\n\r\n myResult.AddRequestVariable(\"Orientation\", me.Dialog.querySelector(\"#ews-print-orientation\").value);\r\n myResult.AddRequestVariable(\"PaperSize\", me.Dialog.querySelector(\"#ews-print-size\").value);\r\n myResult.AddRequestVariable(\"Margin\", me.Dialog.querySelector(\"#ews-print-margin\").value);\r\n myResult.AddRequestVariable(\"Scale\", me.Dialog.querySelector(\"#ews-print-scale\").value);\r\n\r\n myResult.AddRequestVariable(\"Submit\", \"True\");\r\n\r\n let result = await myResult.Submit();\r\n\r\n if (EC_Fmt.Browser === ECP.Browser.Firefox) {\r\n result = decodeURIComponent(result);\r\n\r\n if (result.indexOf(\"../\") >= 0) {\r\n result = result.replace(\"../\", \"\");\r\n }\r\n\r\n if (result.indexOf(\"?\") >= 0) {\r\n me.Dialog.querySelector(\"#ews-print-preview\").src = `${result}&t=${new Date().getTime()}`;\r\n } else {\r\n me.Dialog.querySelector(\"#ews-print-preview\").src = `${result}?t=${new Date().getTime()}`;\r\n }\r\n } else {\r\n me.Dialog.querySelector(\"#ews-print-preview\").src = `Controls/PrintPreview.html?file=${result}&t=${new Date().getTime()}`;\r\n }\r\n }\r\n};\r\n\r\nBC_PrintPreview.prototype.Print = function (file, type, report, master, processUrlCallback) {\r\n const me = this;\r\n\r\n if (!type) {\r\n if (file.toLowerCase().indexOf(\".xlsx\") >= 0) {\r\n type = \"XLSX\";\r\n } else {\r\n type = \"PDF\";\r\n }\r\n }\r\n\r\n if (EC_Fmt.isMobile) {\r\n ECP.Dialog.Alert(\"You can not print from a mobile device.\");\r\n } else if (file.length < 5000) {\r\n const printArgs = {\r\n file,\r\n type,\r\n report,\r\n master,\r\n processUrlCallback\r\n };\r\n\r\n let hasFilters = \"\";\r\n\r\n if (document.querySelector(\".FiltersSheet\")) {\r\n hasFilters = \"True\";\r\n }\r\n\r\n if (document.querySelector(\".ecp-printPreview-dialog\")) {\r\n document.querySelector(\".ecp-printPreview-dialog\").parentNode.style.display = \"block\";\r\n return;\r\n }\r\n\r\n EWS.VerifySession(async () => {\r\n const myResult = new ECP.EC_Request(\"GetPrintPreviewResult\");\r\n myResult.AddRequestVariable(\"Request\", \"Dialog\");\r\n myResult.AddRequestVariable(\"HasFilters\", hasFilters);\r\n\r\n const result = await myResult.Submit();\r\n\r\n const Dialog = ECP.Dialog.ShowDialog(result.title, result.content, {\r\n width: 930,\r\n height: 790,\r\n cancelButtonTitle: result.cancel,\r\n confirmButtonTitle: result.print,\r\n confirmButtonAction(dialog) {\r\n if (EC_Fmt.Browser !== ECP.Browser.Firefox) {\r\n const frame = dialog.querySelector(\"#ews-print-preview\");\r\n\r\n if (frame) {\r\n frame.focus();\r\n frame.contentWindow.print();\r\n } else {\r\n ECP.Dialog.Alert(\"Print preview is loading.\");\r\n }\r\n }\r\n }\r\n });\r\n\r\n Dialog.firstElementChild.classList.add(\"ecp-printPreview-dialog\");\r\n\r\n const confirmButton = Dialog.querySelector(\".ecp-dialog-confirm-button\");\r\n if (EC_Fmt.Browser === ECP.Browser.Firefox) {\r\n confirmButton.classList.add(\"disabled\");\r\n confirmButton.parentNode.insertBefore(EC_Fmt.HtmlStrToElement(\"\"), confirmButton);\r\n\r\n Dialog.querySelector(\".firefox-floater-tip\").style.display = \"block\";\r\n } else {\r\n confirmButton.parentNode.insertBefore(EC_Fmt.HtmlStrToElement(\"\"), confirmButton);\r\n }\r\n\r\n const printPreview = Dialog.querySelector(\"#ews-print-preview\");\r\n\r\n const printSettingsForm = Dialog.querySelector(\"#ews-print-settings-form\");\r\n printSettingsForm.addEventListener(\"change\", (event) => {\r\n const target = event.target;\r\n\r\n if (target.tagName.toLowerCase() === \"input\" || target.tagName.toLowerCase() === \"select\") {\r\n // Task 640348: Changing options on the print dialog for a fusion report causes the 'Preview' button to become un-readable\r\n printPreview.classList.add(\"ActionButtonAttention\");\r\n\r\n if (EC_Fmt.Browser !== ECP.Browser.Firefox) {\r\n confirmButton.classList.add(\"disabled\");\r\n\r\n Dialog.querySelector(\".floater-tip\").style.display = \"block\";\r\n }\r\n }\r\n });\r\n\r\n const printPreviewButton = Dialog.querySelector(\"#ews-print-preview-button\");\r\n printPreviewButton.addEventListener(\"click\", (event) => {\r\n me.Load();\r\n event.currentTarget.classList.remove(\"ActionButtonAttention\");\r\n\r\n if (EC_Fmt.Browser !== ECP.Browser.Firefox) {\r\n confirmButton.classList.remove(\"disabled\");\r\n Dialog.querySelector(\".floater-tip\").style.display = \"none\";\r\n }\r\n });\r\n\r\n const printDownloadButton = Dialog.querySelector(\"#ews-print-download-button\");\r\n\r\n if (EC_Fmt.Browser !== ECP.Browser.Firefox) {\r\n printDownloadButton.classList.add(\"disabled\");\r\n }\r\n\r\n printDownloadButton.addEventListener(\"click\", () => {\r\n if (EC_Fmt.Browser !== ECP.Browser.Firefox) {\r\n const inner = (printPreview.contentDocument || printPreview.contentWindow.document);\r\n const url = inner.getElementById(\"raw-pdf\").getAttribute(\"src\");\r\n\r\n const printPreviewResult = new ECP.EC_Request(\"GetPrintPreviewResult\");\r\n printPreviewResult.SetReturnType(ECP.EC_ReturnType.Text);\r\n\r\n printPreviewResult.AddRequestVariable(\"Request\", \"FileURL\");\r\n printPreviewResult.AddRequestVariable(\"Url\", url);\r\n printPreviewResult.Submit().then((resultURL) => {\r\n let title = document.getElementsByTagName(\"title\");\r\n if (title.length > 0) {\r\n title = title[0].innerHTML;\r\n }\r\n\r\n let downloadUrl = `api?APICommand=GetPrintPreviewResult&Request=Download&Url=${url}`;\r\n if (resultURL) {\r\n downloadUrl = resultURL.replace(\"../\", \"\");\r\n }\r\n\r\n EC_Fmt.DownloadFileFromURL(downloadUrl, EC_Fmt.Null2EmptyStr(title));\r\n });\r\n } else {\r\n ECP.Dialog.Alert(\"Download Not Supported in Firefox\");\r\n }\r\n });\r\n\r\n Dialog.querySelector(\"#ews-print-next-page-button\").addEventListener(\"click\", () => {\r\n if (printPreview?.getAttribute(\"src\") !== \"about:blank\") {\r\n printPreview.contentWindow.NextPage();\r\n }\r\n });\r\n\r\n Dialog.querySelector(\"#ews-print-previous-page-button\").addEventListener(\"click\", () => {\r\n if (printPreview?.getAttribute(\"src\") !== \"about:blank\") {\r\n frame.contentWindow.PreviousPage();\r\n }\r\n });\r\n\r\n printPreview.src = \"about:blank\";\r\n\r\n me.Dialog = Dialog;\r\n me.File = printArgs.file;\r\n me.Type = printArgs.type;\r\n me.Report = printArgs.report;\r\n\r\n if (printArgs.processUrlCallback) {\r\n me.File = printArgs.processUrlCallback(me.File, \"Print\");\r\n }\r\n\r\n if (printArgs.type === \"XLSX\") {\r\n printSettingsForm.querySelectorAll(\"input, select, table\").forEach((input) => {\r\n input.disabled = false;\r\n });\r\n\r\n printPreviewButton.style.display = \"\";\r\n printDownloadButton.style.display = \"block\";\r\n\r\n const printPreviewResult = new ECP.EC_Request(\"GetPrintPreviewResult\");\r\n printPreviewResult.AddRequestVariable(\"Request\", \"PrintSettings\");\r\n printPreviewResult.AddRequestVariable(\"FileName\", printArgs.file, ECP.EC_Verb.Post);\r\n if (printArgs.report && printArgs.report >= 0) {\r\n printPreviewResult.AddRequestVariable(\"ReportID\", printArgs.report);\r\n }\r\n if (printArgs.master === true) {\r\n printPreviewResult.AddRequestVariable(\"FromMaster\", \"True\");\r\n }\r\n\r\n const printResult = await printPreviewResult.Submit();\r\n\r\n Dialog.querySelector(\"#ews-print-grid\").checked = printResult.grid;\r\n Dialog.querySelector(\"#ews-print-break\").checked = printResult.break;\r\n\r\n Dialog.querySelector(\"#ews-print-size\").value = printResult.size;\r\n Dialog.querySelector(\"#ews-print-orientation\").value = printResult.orientation;\r\n Dialog.querySelector(\"#ews-print-scale\").value = printResult.scale;\r\n Dialog.querySelector(\"#ews-print-margin\").value = printResult.margin;\r\n\r\n Dialog.querySelector(\"#ews-print-header-top-left\").value = printResult.header.top.left;\r\n Dialog.querySelector(\"#ews-print-header-top-right\").value = printResult.header.top.right;\r\n Dialog.querySelector(\"#ews-print-header-bottom-left\").value = printResult.header.bottom.left;\r\n Dialog.querySelector(\"#ews-print-header-bottom-right\").value = printResult.header.bottom.right;\r\n\r\n const printSheet = Dialog.querySelector(\"#ews-print-sheet\");\r\n if (printResult.sheet && printResult.sheet.length > 0) {\r\n let html = ``;\r\n\r\n for (let i = 0; i < printResult.sheet.length; i++) {\r\n html += ``;\r\n }\r\n\r\n printSheet.disabled = false;\r\n printSheet.innerHTML = html;\r\n printSheet.value = \"\";\r\n } else {\r\n printSheet.disabled = true;\r\n printSheet.innerHTML = \"\";\r\n printSheet.value = \"\";\r\n }\r\n\r\n if (printResult.sheet && printResult.sheet.length > 0) {\r\n printSheet.disabled = false;\r\n }\r\n\r\n me.Load();\r\n } else {\r\n printSettingsForm.querySelectorAll(\"input, select, table\").forEach((input) => {\r\n input.disabled = true;\r\n });\r\n\r\n printPreviewButton.style.display = \"none\";\r\n printDownloadButton.style.display = \"none\";\r\n\r\n printPreview.src = `Controls/PrintPreview.html?file=${encodeURIComponent(`../${me.File}`)}&t=${new Date().getTime()}`;\r\n }\r\n\r\n Dialog.querySelector(\".ecp-dialog-cancel-button\").addEventListener(\"click\", () => {\r\n me.Dialog = false;\r\n me.File = false;\r\n me.Type = false;\r\n me.Report = false;\r\n });\r\n }, true, null, () => {\r\n // Task 604081: Export and print buttons do nothing on Quicklinks reports - Add option to login when clicking those buttons\r\n ECP.Dialog.ShowDialog(\"Confirm\", `
You are impersonating a user.Do you want to leave and go back to your login?
`, {\r\n cancelButtonTitle: \"Cancel\",\r\n confirmButtonTitle: \"OK\",\r\n confirmButtonAction: () => {\r\n window.location.href = `Home?DashboardID=${ECP.CommonDashboards.LogOn}&DestURL=${encodeURIComponent(window.location.href)}`;\r\n }\r\n });\r\n });\r\n } else {\r\n ECP.Dialog.Alert(\"This page needs to be a saved to print. Please click Save Report before printing.\");\r\n }\r\n};\r\n\r\n(function (EWS) {\r\n // eslint-disable-next-line no-shadow\r\n EWS.Ready((EWS) => {\r\n EWS.PrintPreview = new BC_PrintPreview(EWS);\r\n });\r\n}(EWS));\r\n\r\nfunction Print_Preview(file, type, report, master, processUrlCallback) {\r\n if (EWS?.PrintPreview) {\r\n EWS.PrintPreview.Print(file, type, report, master, processUrlCallback);\r\n }\r\n}\r\n"],"names":["BC_PrintPreview","EWS","this","Dialog","File","Type","Report","prototype","Load","async","me","myResult","ECP","EC_Request","SetReturnType","EC_ReturnType","Text","let","grid","querySelector","checked","AddRequestVariable","EC_Verb","Post","breaks","value","result","await","Submit","EC_Fmt","Browser","Firefox","decodeURIComponent","indexOf","replace","src","Date","getTime","Print","file","type","report","master","processUrlCallback","toLowerCase","isMobile","Alert","length","printArgs","hasFilters","document","parentNode","style","display","VerifySession","ShowDialog","title","content","width","height","cancelButtonTitle","cancel","confirmButtonTitle","print","confirmButtonAction","dialog","frame","focus","contentWindow","firstElementChild","classList","add","confirmButton","insertBefore","HtmlStrToElement","printPreview","printSettingsForm","addEventListener","target","event","tagName","printPreviewButton","currentTarget","remove","printDownloadButton","inner","contentDocument","url","getElementById","getAttribute","printPreviewResult","then","getElementsByTagName","innerHTML","downloadUrl","resultURL","DownloadFileFromURL","Null2EmptyStr","NextPage","PreviousPage","querySelectorAll","forEach","input","disabled","printResult","break","size","orientation","scale","margin","header","top","left","right","bottom","printSheet","sheet","html","allSheets","i","name","encodeURIComponent","window","location","href","CommonDashboards","LogOn","Ready","PrintPreview","Print_Preview"],"mappings":"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"}