{"version":3,"file":"Home.min.js","sources":["EncompassWebServices/includes/Home.js"],"sourcesContent":["\"use strict\";\r\n\r\nlet loadedTestScriptCount = 0;\r\nlet firstLoaded = false;\r\n\r\nEWS.Ready((EWS) => {\r\n if (window.mocha) {\r\n mocha.setup(\"bdd\");\r\n }\r\n\r\n const Grid = document.querySelector(\"#Dashboard .gridster ul\");\r\n\r\n if (Grid) {\r\n LoadAllDashboardItems();\r\n\r\n if (!EC_Fmt.isMobile || navigator.userAgent.indexOf(\"iPad\") !== -1 || (navigator.userAgent.toLowerCase().indexOf(\"mobile\") === -1 && navigator.userAgent.toLowerCase().indexOf(\"android\") > -1)) {\r\n EWS.Dashboard = $(Grid).gridster({\r\n namespace: \"#Dashboard div.gridster\",\r\n widget_margins: [2, 2],\r\n widget_base_dimensions: [100, 50],\r\n autogrow_cols: true,\r\n avoid_overlapped_widgets: true,\r\n max_size_x: 20,\r\n extra_rows: 15,\r\n extra_cols: 15,\r\n resize: {\r\n enabled: false\r\n }\r\n }).data(\"gridster\");\r\n\r\n const Dashboard = EWS.Dashboard;\r\n\r\n Dashboard.disable();\r\n const inner = document.querySelector(\"#Content .Inner\");\r\n\r\n if (inner) {\r\n inner.style.overflow = \"hidden\";\r\n\r\n setTimeout(() => {\r\n inner.style.overflow = \"auto\";\r\n }, 500);\r\n }\r\n } else {\r\n const Menu = document.getElementById(\"Menu\");\r\n\r\n if (Menu?.classList.contains(\"MenuOpened\") && !Menu.classList.contains(\"FullMenu\") && !Menu.classList.contains(\"MenuCollapsed\")) {\r\n Grid.style.width = `${window.innerWidth - Menu.offsetWidth - 10}px`;\r\n } else {\r\n Grid.style.width = `${window.innerWidth - 10}px`;\r\n }\r\n document.getElementById(\"MobileBodyWrap\").classList.add(\"phone-grid\");\r\n }\r\n\r\n const liArr = Grid.querySelectorAll(\"li\");\r\n\r\n for (let i = 0; i < liArr.length; i++) {\r\n const li = liArr[i];\r\n li.style.display = \"block\";\r\n }\r\n } else {\r\n LoadAllDashboardItems();\r\n\r\n const dashboardItemArr = document.querySelectorAll(\".dashboard-item\");\r\n\r\n for (let i = 0; i < dashboardItemArr.length; i++) {\r\n const dashboardItem = dashboardItemArr[i];\r\n dashboardItem.style.display = \"block\";\r\n }\r\n }\r\n\r\n const ewsDashboard = document.querySelector(\".ews-dashboard\");\r\n\r\n if (ewsDashboard) {\r\n ewsDashboard.addEventListener(\"scroll\", () => {\r\n const AutocompleteMenuArr = document.querySelectorAll(\".AutocompleteMenu\");\r\n\r\n // Task 838089: Uncaught Type Error on Invoice Manual Edit\r\n for (let i = 0; i < AutocompleteMenuArr.length; i++) {\r\n const AutocompleteMenu = AutocompleteMenuArr[i];\r\n AutocompleteMenu.style.display = \"none\";\r\n }\r\n }, { passive: true });\r\n }\r\n});\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction Dashboard_Fullscreen(DashboardID) {\r\n EWS.VerifySession(() => {\r\n ECP.Dialog.ShowLoading();\r\n\r\n const myFullscreenSetupDialogRequest = new ECP.EC_Request(\"Dashboard_FullscreenSetupDialog\");\r\n\r\n myFullscreenSetupDialogRequest.Submit().then((result) => {\r\n const dialog = ECP.Dialog.ShowDialog(result.title, result.content, {\r\n width: 650,\r\n height: 700,\r\n cancelButtonTitle: result.cancel,\r\n confirmButtonTitle: result.start,\r\n confirmButtonAction() {\r\n const dashboards = [];\r\n const checkedDashboardArr = dialog.querySelectorAll(\"input[name='DashboardID']:checked\");\r\n\r\n for (let i = 0; i < checkedDashboardArr.length; i++) {\r\n const checkedDashboard = checkedDashboardArr[i];\r\n dashboards.push(parseInt(checkedDashboard.value));\r\n }\r\n\r\n if (dashboards.length === 0) {\r\n ECP.Dialog.Alert(\"Please select at least one dashboard!\");\r\n dialog.style.display = \"flex\";\r\n\r\n return;\r\n }\r\n\r\n ECP.Dialog.ShowLoading();\r\n\r\n const fullscreenArgs = {\r\n rotate: (parseInt(dialog.querySelector(\"#ews-fullscreen-rotate\").value)),\r\n dashboards,\r\n current: 1\r\n };\r\n\r\n const mySaveFullRequest = new ECP.EC_Request(\"Dashboard_SaveFullscreenDashboards\");\r\n\r\n mySaveFullRequest.SetReturnType(ECP.EC_ReturnType.Text);\r\n mySaveFullRequest.AddRequestVariable(\"DashboardList\", fullscreenArgs.dashboards.join(), ECP.EC_Verb.Post);\r\n mySaveFullRequest.AddRequestVariable(\"RotateRate\", fullscreenArgs.rotate, ECP.EC_Verb.Post);\r\n\r\n mySaveFullRequest.Submit().then(() => {\r\n window.location.href = `Home?DashboardID=169588&RotateRate=${fullscreenArgs.rotate}&DashboardIDList=${fullscreenArgs.dashboards.join()}`;\r\n }).catch((err) => {\r\n ECP.Dialog.HideLoading();\r\n throw err;\r\n });\r\n }\r\n });\r\n\r\n dialog.querySelector(\".ecp-dialog-content\").style.overflow = \"hidden\";\r\n\r\n const myGetFullscreenDashboardsRequest = new ECP.EC_Request(\"Dashboard_GetFullscreenDashboards\");\r\n\r\n myGetFullscreenDashboardsRequest.Submit().then((dashboardsResult) => {\r\n let html = \"\";\r\n\r\n dialog.querySelector(\"#ews-fullscreen-rotate\").value = dashboardsResult.rotate;\r\n\r\n dialog.querySelector(\"#ews-fullscreen-dashboards\").innerHTML = html;\r\n\r\n ECP.Dialog.HideLoading();\r\n });\r\n }).catch((err) => {\r\n ECP.Dialog.HideLoading();\r\n throw err;\r\n });\r\n });\r\n}\r\n\r\nasync function LoadAllDashboardItems() {\r\n const dashboardItemArr = document.querySelectorAll(\"#Dashboard .gridster > ul > li, .container-fluid .dashboard-item\");\r\n // Task 909469: Experiencing Site Slowness on Eriebeer.encompass8.com as well as Support.Encompass8.com\r\n const promiseArr = [];\r\n\r\n for (let i = 0; i < dashboardItemArr.length; i++) {\r\n const dashboardItem = dashboardItemArr[i];\r\n\r\n // Task 737678: Dashboard: LoadDashboardItem not support Dashboard Widget\r\n let url = dashboardItem.getAttribute(\"url\");\r\n\r\n if (firstLoaded && !url) {\r\n const widgetId = dashboardItem.getAttribute(\"widgetId\");\r\n\r\n if (widgetId !== \"7\") {\r\n url = `api?APICommand=DashboardWidget_WriteWidgetCode&DashboardItemID=${dashboardItem.getAttribute(\"id\")}&DashboardWidgetID=${widgetId}`;\r\n\r\n if (EC_Fmt.GetPageParameter(\"WidgetRelease\") && EC_Fmt.GetPageParameter(\"WidgetRelease\").toLowerCase() === \"false\") {\r\n url += \"&WidgetRelease=False\";\r\n }\r\n }\r\n }\r\n\r\n promiseArr.push(LoadDashboardItem(dashboardItem, url));\r\n }\r\n\r\n await Promise.all(promiseArr);\r\n const dashboardContainer = document.querySelector(\".ews-dashboard\");\r\n\r\n if (dashboardContainer) {\r\n dashboardContainer.style.overflow = \"hidden\";\r\n\r\n setTimeout(() => {\r\n dashboardContainer.style.overflow = \"initial\";\r\n }, 500);\r\n }\r\n\r\n firstLoaded = true;\r\n\r\n // Task 723798: AR Aging, not taken back to the same place in the list after applying payments\r\n if (window.history.state && (window.history.state.scrollLeft !== undefined || window.history.state.scrollTop !== undefined)) {\r\n const innerContent = document.querySelector(\"#Content .Inner\");\r\n\r\n if (innerContent) {\r\n innerContent.scrollTo(window.history.state.scrollLeft, window.history.state.scrollTop);\r\n }\r\n }\r\n}\r\n\r\nasync function LoadDashboardItem(Item, URL) {\r\n const Content = Item.querySelector(\".content\");\r\n\r\n if (URL) {\r\n if (window.PageParameters?.Search.QuickKey && PageParameters.Search.QuickKey.length > 0) {\r\n URL += `&QuickKey=${PageParameters.Search.QuickKey[0]}`;\r\n }\r\n\r\n Content.innerHTML = \"\";\r\n\r\n if (navigator.cookieEnabled) {\r\n const response = await fetch(URL, {\r\n credentials: \"same-origin\"\r\n });\r\n\r\n const html = await response.text();\r\n await InitDashboardItem(Content, html, Item);\r\n } else {\r\n await InitDashboardItem(Content, \"Cookies not enabled
Cookies are required to use this site for authentication\", Item);\r\n }\r\n } else {\r\n await InitDashboardItem(Content, \"\", Item);\r\n }\r\n}\r\n\r\nasync function InitDashboardItem(Content, html, Item) {\r\n let CurrentFooter = Item.querySelector(\".ContentFooter\");\r\n\r\n // Task 917004: Errors on Override Codes: TypeError: Cannot set property 'innerHTML' of null\r\n if (html !== \"\") {\r\n Content.innerHTML = html;\r\n }\r\n\r\n EC_Fmt.ReLoadScripts(Content.querySelectorAll(\"script\"), () => { });\r\n\r\n if (Item.getAttribute(\"url\") || Item.getAttribute(\"widgetId\") !== \"7\") {\r\n const ajaxInputArr = Content.querySelectorAll(\"input[KeyValue][DisplayVal][LimitToList]\");\r\n\r\n for (let i = 0; i < ajaxInputArr.length; i++) {\r\n const ajaxInput = ajaxInputArr[i];\r\n const FieldID = ajaxInput.parentElement.parentElement.getAttribute(\"FieldID\");\r\n EWS.AjaxInputs[FieldID] = new ECP.HTML.AjaxInput(ajaxInput);\r\n }\r\n }\r\n\r\n const tipsContainerArr = Item.querySelectorAll(\".header .ews-dashboard-tips-container\");\r\n\r\n for (let i = 0; i < tipsContainerArr.length; i++) {\r\n const tipsContainer = tipsContainerArr[i];\r\n tipsContainer.parentElement.removeChild(tipsContainer);\r\n }\r\n\r\n if (CurrentFooter) {\r\n CurrentFooter.parentElement.removeChild(CurrentFooter);\r\n }\r\n\r\n CurrentFooter = Content.parentElement.querySelector(\".ContentFooter\");\r\n\r\n if (CurrentFooter) {\r\n Item.appendChild(CurrentFooter);\r\n Content.style.borderBottom = `${CurrentFooter.offsetHeight + 8}px solid transparent`;\r\n } else {\r\n Content.style.borderBottom = \"0 none\";\r\n }\r\n\r\n // Run code js\r\n const scriptFunction = window[`codeItemJs${Item.getAttribute(\"id\").replace(\"-\", \"N\")}`];\r\n\r\n if (scriptFunction) {\r\n await scriptFunction(Item);\r\n }\r\n\r\n const itemType = Item.getAttribute(\"item-type\");\r\n\r\n if (itemType) {\r\n const itemFields = Get_DashboardItem_ItemFields(Item);\r\n const loadedPromise = EWS.DashboardItemTypesManager.onLoaded(itemType, Item, itemFields);\r\n\r\n if (loadedPromise instanceof Promise) {\r\n await loadedPromise;\r\n }\r\n\r\n EWS.DashboardItemTypesManager.createViewButtons(itemType, Item, itemFields);\r\n }\r\n\r\n const testDocumentId = Item.getAttribute(\"data-itemfield-testdocumentid\");\r\n const globalTestDocumentId = Item.getAttribute(\"data-itemfield-globaltestdocumentid\");\r\n\r\n if (testDocumentId || globalTestDocumentId || Item.getAttribute(\"is-published\")) {\r\n loadedTestScriptCount += 1;\r\n\r\n if (loadedTestScriptCount === (document.querySelectorAll(\".dashboard-item[data-itemfield-testdocumentid]\").length + document.querySelectorAll(\".dashboard-item[data-itemfield-globaltestdocumentid]\").length + document.querySelectorAll(\".dashboard-item[is-published]\").length)) {\r\n if (window.mocha) {\r\n mocha.run(() => {\r\n if (window.__coverage__ && !window.MochaTested) {\r\n ProcessTestScriptResult(window.__coverage__, document);\r\n }\r\n\r\n window.MochaTested = true;\r\n });\r\n }\r\n }\r\n }\r\n\r\n const header = Item.querySelector(\".header\");\r\n\r\n if (EC_Fmt.isMobile) {\r\n header.style.backgroundColor = getComputedStyle(Item).backgroundColor;\r\n }\r\n}\r\n\r\nfunction ProcessTestScriptResult(__coverage__, contentDocument, isUnload) {\r\n const dashboardItemIdArr = Object.keys(__coverage__);\r\n\r\n for (let i = 0; i < dashboardItemIdArr.length; i++) {\r\n const dashboardItemID = dashboardItemIdArr[i];\r\n const codeCoverage = __coverage__[dashboardItemID];\r\n let count = 0;\r\n const fKeyArr = Object.keys(codeCoverage.f);\r\n\r\n for (let j = 0; j < fKeyArr.length; j++) {\r\n const fKey = fKeyArr[j];\r\n if (codeCoverage.f[fKey] > 0) {\r\n count += 1;\r\n }\r\n }\r\n\r\n const fCoverage = Object.getOwnPropertyNames(codeCoverage.f).length > 0 ? (count / Object.getOwnPropertyNames(codeCoverage.f).length) : \"\";\r\n count = 0;\r\n let total = 0;\r\n const bKeyArr = Object.keys(codeCoverage.b);\r\n\r\n for (let j = 0; j < bKeyArr.length; j++) {\r\n const bKey = bKeyArr[j];\r\n total += codeCoverage.b[bKey].length;\r\n\r\n for (let k = 0; k < codeCoverage.b[bKey].length; k++) {\r\n if (codeCoverage.b[bKey][k] > 0) {\r\n count += 1;\r\n }\r\n }\r\n }\r\n\r\n const bCoverage = total > 0 ? (count / total) : \"\";\r\n count = 0;\r\n const sKeyArr = Object.keys(codeCoverage.s);\r\n\r\n for (let j = 0; j < sKeyArr.length; j++) {\r\n const sKey = sKeyArr[j];\r\n if (codeCoverage.s[sKey] > 0) {\r\n count += 1;\r\n }\r\n }\r\n\r\n const sCoverage = Object.getOwnPropertyNames(codeCoverage.s).length > 0 ? (count / Object.getOwnPropertyNames(codeCoverage.s).length) : \"\";\r\n let testReportTitle;\r\n const elements = contentDocument.querySelectorAll(\"#mocha-report a\");\r\n\r\n for (let j = 0; j < elements.length; j++) {\r\n const element = elements[j];\r\n if (RegExp(`Dashboard Item ${dashboardItemID}`).test(element.textContent)) {\r\n testReportTitle = element;\r\n break;\r\n }\r\n }\r\n\r\n if (testReportTitle) {\r\n const info = EC_Fmt.HtmlStrToElement(`

Statements: ${sCoverage !== \"\" ? `${sCoverage.toFixed(2) * 100}%` : sCoverage};    Functions: ${fCoverage !== \"\" ? `${fCoverage.toFixed(2) * 100}%` : fCoverage};    Branches: ${bCoverage !== \"\" ? `${bCoverage.toFixed(2) * 100}%` : bCoverage};

`);\r\n testReportTitle.parentElement.parentElement.insertBefore(info, testReportTitle.parentElement.nextElementSibling);\r\n }\r\n }\r\n\r\n if (isUnload && contentDocument.getElementById(\"mocha\")) {\r\n const warning = EC_Fmt.HtmlStrToElement(\"
The test script run failed because the test page has been unload.
\");\r\n contentDocument.getElementById(\"mocha\").insertBefore(warning, contentDocument.getElementById(\"mocha\").firstElementChild);\r\n }\r\n}\r\n\r\n// EC-4716: DashboardEdit.js and Home.js do not parse Dashboard ItemFields the same\r\nfunction Get_DashboardItem_ItemFields(DashboardItem) {\r\n const DashboardItemFields = {};\r\n // EC-4808: Dashboard Load: Allow loading multiple Dashboard Field Items of varying length into ItemFields on a Dashboard\r\n const ItemFieldArr = EWS.DashboardItemTypesManager.getItemFields(DashboardItem.getAttribute(\"item-type\"));\r\n\r\n for (let i = 0; i < ItemFieldArr.length; i++) {\r\n let ItemFieldName = ItemFieldArr[i];\r\n\r\n if (ItemFieldName.startsWith(\"*\")) {\r\n ItemFieldName = ItemFieldName.substring(1);\r\n const LookupName = `data-itemfield-${ItemFieldName.toLowerCase()}`;\r\n\r\n const DashboardItemAttrArr = DashboardItem.attributes;\r\n for (let j = 0; j < DashboardItemAttrArr.length; j++) {\r\n const CurrentAttribute = DashboardItemAttrArr[j];\r\n\r\n if (CurrentAttribute.name.startsWith(LookupName)) {\r\n DashboardItemFields[ItemFieldName + CurrentAttribute.name.split(LookupName)[1]] = CurrentAttribute.value;\r\n }\r\n }\r\n } else {\r\n DashboardItemFields[ItemFieldName] = DashboardItem.getAttribute(`data-itemfield-${ItemFieldName.toLowerCase()}`);\r\n }\r\n }\r\n\r\n return DashboardItemFields;\r\n}\r\n\r\n// Task 639455: TinyMCE editor is being loaded on every single table view - Should not be used unless the is an HTML data type column on the page\r\n// eslint-disable-next-line no-unused-vars\r\nfunction Load_QuicklinkMenu(trigger, url, name, processUrlCallback) {\r\n if (window.QuickLink_Menu) {\r\n QuickLink_Menu(trigger, url, name, processUrlCallback);\r\n } else {\r\n const loadingTimeout = setTimeout(() => {\r\n ECP.Dialog.ShowLoading();\r\n }, 250);\r\n\r\n ECP.HTML.AddControl(ECP.HTML.ControlType.QuickLink);\r\n ECP.HTML.LoadControls(true).then(() => {\r\n clearTimeout(loadingTimeout);\r\n ECP.Dialog.HideLoading();\r\n\r\n QuickLink_Menu(trigger, url, name, processUrlCallback);\r\n });\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction answerCallFromQueue(CallSid, ToNumber, UserID) {\r\n const request = function () {\r\n const myRequest = new ECP.EC_Request(`SalesComm_VoiceControls_AnswerCall`);\r\n myRequest.SetReturnType(ECP.EC_ReturnType.Text);\r\n myRequest.AddRequestVariable(\"CallSid\", CallSid, ECP.EC_Verb.Post);\r\n myRequest.AddRequestVariable(\"ToNumber\", ToNumber, ECP.EC_Verb.Post);\r\n myRequest.AddRequestVariable(\"UserID\", UserID, ECP.EC_Verb.Post);\r\n myRequest.Submit();\r\n };\r\n\r\n const temp = window.localStorage.getItem(\"ActiveDialerCount\");\r\n let count = 0;\r\n if (temp) {\r\n count = parseInt(temp);\r\n }\r\n\r\n if (count > 0) {\r\n request();\r\n } else {\r\n window.open(\"Home?DashboardID=138848\").focus();\r\n\r\n setTimeout(() => {\r\n request();\r\n }, 5000);\r\n }\r\n}\r\n"],"names":["let","loadedTestScriptCount","firstLoaded","EWS","Ready","window","mocha","setup","Grid","document","querySelector","LoadAllDashboardItems","EC_Fmt","isMobile","navigator","userAgent","indexOf","toLowerCase","Dashboard","$","gridster","namespace","widget_margins","widget_base_dimensions","autogrow_cols","avoid_overlapped_widgets","max_size_x","extra_rows","extra_cols","resize","enabled","data","disable","inner","style","overflow","setTimeout","Menu","getElementById","classList","contains","width","innerWidth","offsetWidth","add","liArr","querySelectorAll","i","length","li","display","dashboardItemArr","dashboardItem","ewsDashboard","addEventListener","AutocompleteMenuArr","AutocompleteMenu","passive","Dashboard_Fullscreen","DashboardID","VerifySession","ECP","Dialog","ShowLoading","myFullscreenSetupDialogRequest","EC_Request","Submit","then","dialog","ShowDialog","result","title","content","height","cancelButtonTitle","cancel","confirmButtonTitle","start","confirmButtonAction","dashboards","checkedDashboardArr","checkedDashboard","push","parseInt","value","Alert","fullscreenArgs","rotate","current","mySaveFullRequest","SetReturnType","EC_ReturnType","Text","AddRequestVariable","join","EC_Verb","Post","location","href","catch","HideLoading","err","myGetFullscreenDashboardsRequest","html","dashboardsResult","selected","dashboard","id","category","name","innerHTML","async","promiseArr","url","getAttribute","widgetId","GetPageParameter","LoadDashboardItem","await","Promise","all","dashboardContainer","history","state","scrollLeft","undefined","scrollTop","innerContent","scrollTo","Item","URL","Content","PageParameters","Search","QuickKey","cookieEnabled","response","fetch","credentials","text","InitDashboardItem","CurrentFooter","ReLoadScripts","ajaxInputArr","ajaxInput","FieldID","parentElement","AjaxInputs","HTML","AjaxInput","tipsContainerArr","tipsContainer","removeChild","appendChild","borderBottom","offsetHeight","scriptFunction","replace","itemType","itemFields","Get_DashboardItem_ItemFields","loadedPromise","DashboardItemTypesManager","onLoaded","createViewButtons","testDocumentId","globalTestDocumentId","run","__coverage__","MochaTested","ProcessTestScriptResult","header","backgroundColor","getComputedStyle","contentDocument","isUnload","dashboardItemIdArr","Object","keys","dashboardItemID","codeCoverage","count","fKeyArr","f","j","fKey","fCoverage","getOwnPropertyNames","total","bKeyArr","b","bKey","k","bCoverage","sKeyArr","s","sKey","sCoverage","testReportTitle","elements","element","RegExp","test","textContent","info","HtmlStrToElement","toFixed","insertBefore","nextElementSibling","warning","firstElementChild","DashboardItem","DashboardItemFields","ItemFieldArr","getItemFields","ItemFieldName","startsWith","substring","LookupName","DashboardItemAttrArr","attributes","CurrentAttribute","split","Load_QuicklinkMenu","trigger","processUrlCallback","QuickLink_Menu","loadingTimeout","AddControl","ControlType","QuickLink","LoadControls","clearTimeout","answerCallFromQueue","CallSid","ToNumber","UserID","request","myRequest","temp","localStorage","getItem","open","focus"],"mappings":"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"}