{"version":3,"sources":["EncompassWebServices/UI/DashboardItemTypesManager.js"],"names":["dashboardItemTypes","EWS","BC_DashboardItemTypesManager","prototype","add","type","itemType","defaultItemType","showEditButton","enableFilters","itemFields","[object Object]","createNewItemCallback","title","dashboardItem","editItemCallback","isEdit","Object","assign","hasItemType","undefined","addItem","editItem","getItemFields","this","getDashboardDocuments","onLoaded","createViewButtons","buttons","showPlus","classList","contains","plusArr","querySelectorAll","i","length","plus","parentElement","removeChild","getAttribute","widgetSizey","parseInt","hideElementArr","hideElement","style","display","Dashboard","resize_widget","$","minHeight","querySelector","appendChild","EC_Fmt","HtmlStrToElement","plusFunction","trigger","isExpand","isWaitRequest","mySetDashboardItemStatusRequest","ECP","EC_Request","SetReturnType","EC_ReturnType","Text","AddRequestVariable","Settings","DashboardID","Submit","then","isMobile","remove","ulArr","document","ul","width","setAttribute","setTimeout","LoadDashboardItem","addEventListener","viewButtons","editControl","viewButton","createEditButtons","DashboardItemTypesManager"],"mappings":"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","file":"DashboardItemTypesManager.min.js","sourcesContent":["\"use strict\";\n\n(function () {\n const dashboardItemTypes = {};\n\n EWS.BC_DashboardItemTypesManager = function () {\n\n };\n\n EWS.BC_DashboardItemTypesManager.prototype.add = function (type, itemType) {\n if (!dashboardItemTypes[type]) {\n const defaultItemType = {\n showEditButton: false,\n enableFilters: false,\n itemFields: [],\n addItem(createNewItemCallback) {\n // createNewItemCallback has two parameters, title and itemfields, then return the new item\n createNewItemCallback();\n },\n editItem(title, itemFields, dashboardItem, editItemCallback) {\n\n },\n onLoaded(dashboardItem, itemFields, isEdit) {\n\n },\n createViewButtons(dashboardItem, itemFields) {\n\n },\n createEditButtons(dashboardItem, itemFields) {\n\n },\n getDashboardDocuments(dashboardItem, itemFields) {\n // Type\n // GlobalDocumentID\n }\n };\n\n itemType = Object.assign(defaultItemType, itemType);\n\n dashboardItemTypes[type] = itemType;\n }\n };\n\n EWS.BC_DashboardItemTypesManager.prototype.hasItemType = function (type) {\n return dashboardItemTypes[type] !== undefined;\n };\n\n EWS.BC_DashboardItemTypesManager.prototype.addItem = function (type, createNewItemCallback) {\n dashboardItemTypes[type].addItem(createNewItemCallback);\n };\n\n EWS.BC_DashboardItemTypesManager.prototype.editItem = function (type, title, itemFields, dashboardItem, editItemCallback) {\n dashboardItemTypes[type].editItem(title, itemFields, dashboardItem, editItemCallback);\n };\n\n EWS.BC_DashboardItemTypesManager.prototype.showEditButton = function (type) {\n return dashboardItemTypes[type].showEditButton;\n };\n\n EWS.BC_DashboardItemTypesManager.prototype.enableFilters = function (type) {\n return dashboardItemTypes[type].enableFilters;\n };\n\n EWS.BC_DashboardItemTypesManager.prototype.getItemFields = function (type) {\n if (this.hasItemType(type)) {\n return dashboardItemTypes[type].itemFields;\n }\n\n return [];\n };\n\n EWS.BC_DashboardItemTypesManager.prototype.getDashboardDocuments = function (type, dashboardItem, itemFields) {\n if (this.hasItemType(type)) {\n return dashboardItemTypes[type].getDashboardDocuments(dashboardItem, itemFields);\n }\n\n return [];\n };\n\n EWS.BC_DashboardItemTypesManager.prototype.onLoaded = function (type, dashboardItem, itemFields, isEdit) {\n if (this.hasItemType(type)) {\n return dashboardItemTypes[type].onLoaded(dashboardItem, itemFields, isEdit);\n }\n\n return [];\n };\n\n EWS.BC_DashboardItemTypesManager.prototype.createViewButtons = function (type, dashboardItem, itemFields) {\n let buttons = \"\";\n const showPlus = type !== \"Spacer\" && (!dashboardItem.classList.contains(\"hide-border\") || dashboardItem.classList.contains(\"dashboard-item\"));\n\n let plusArr = dashboardItem.querySelectorAll(\".edit-control [action='Plus']\");\n\n for (let i = 0; i < plusArr.length; i++) {\n const plus = plusArr[i];\n\n plus.parentElement.removeChild(plus);\n }\n\n if (!dashboardItem.classList.contains(\"dashboard-item\") || dashboardItem.classList.contains(\"show-expand\")) {\n if (dashboardItem.getAttribute(\"Collapsed\") === \"False\") {\n buttons += ` `;\n } else {\n const widgetSizey = parseInt(dashboardItem[\"data-sizey\"] || dashboardItem.getAttribute(\"data-sizey\"), 10);\n const hideElementArr = dashboardItem.querySelectorAll(\".content, .ContentFooter\");\n\n for (let i = 0; i < hideElementArr.length; i++) {\n const hideElement = hideElementArr[i];\n hideElement.style.display = \"none\";\n }\n\n dashboardItem[\"data-sizey\"] = widgetSizey;\n\n if (EWS.Dashboard && EWS.Dashboard.resize_widget) {\n EWS.Dashboard.resize_widget($(dashboardItem), dashboardItem.getAttribute(\"data-sizex\"), 1);\n } else {\n dashboardItem.style.minHeight = \"36px\";\n }\n\n buttons += ` `;\n }\n }\n\n if (buttons) {\n dashboardItem.querySelector(\".edit-control\").appendChild(EC_Fmt.HtmlStrToElement(buttons));\n }\n\n plusArr = dashboardItem.querySelectorAll(\".edit-control [action='Plus']\");\n\n const plusFunction = function () {\n const trigger = this;\n const isExpand = trigger.classList.contains(\"ews-icon-minus-square-o\");\n const isWaitRequest = dashboardItem.isWaitRequest;\n\n if (isExpand) {\n if (!isWaitRequest) {\n dashboardItem.isWaitRequest = true;\n const mySetDashboardItemStatusRequest = new ECP.EC_Request(\"Dashboard_SetDashboardItemStatus\");\n\n mySetDashboardItemStatusRequest.SetReturnType(ECP.EC_ReturnType.Text);\n mySetDashboardItemStatusRequest.AddRequestVariable(\"DashboardID\", Settings.DashboardID);\n mySetDashboardItemStatusRequest.AddRequestVariable(\"DashboardItemID\", dashboardItem.getAttribute(\"id\"));\n mySetDashboardItemStatusRequest.AddRequestVariable(\"Collapsed\", \"True\");\n\n mySetDashboardItemStatusRequest.Submit().then(() => {\n const widgetSizey = parseInt(dashboardItem.getAttribute(\"data-sizey\"), 10);\n const hideElementArr = dashboardItem.querySelectorAll(\".content, .ContentFooter\");\n\n for (let i = 0; i < hideElementArr.length; i++) {\n const hideElement = hideElementArr[i];\n hideElement.style.display = \"none\";\n }\n\n dashboardItem[\"data-sizey\"] = widgetSizey;\n\n if (!EC_Fmt.isMobile && EWS.Dashboard && EWS.Dashboard.resize_widget) {\n EWS.Dashboard.resize_widget($(dashboardItem), dashboardItem.getAttribute(\"data-sizex\"), 1);\n } else {\n dashboardItem.style.minHeight = \"36px\";\n }\n\n trigger.classList.remove(\"ews-icon-minus-square-o\");\n trigger.classList.add(\"ews-icon-plus-square-o\");\n\n const ulArr = document.querySelectorAll(\"#Dashboard > ul\");\n\n for (let i = 0; i < ulArr.length; i++) {\n const ul = ulArr[i];\n ul.style.width = \"100%\";\n }\n\n dashboardItem.setAttribute(\"Collapsed\", \"True\");\n\n dashboardItem.isWaitRequest = false;\n });\n }\n } else if (!isWaitRequest) {\n dashboardItem.isWaitRequest = true;\n\n const mySetDashboardItemStatusRequest = new ECP.EC_Request(\"Dashboard_SetDashboardItemStatus\");\n\n mySetDashboardItemStatusRequest.SetReturnType(ECP.EC_ReturnType.Text);\n mySetDashboardItemStatusRequest.AddRequestVariable(\"DashboardID\", Settings.DashboardID);\n mySetDashboardItemStatusRequest.AddRequestVariable(\"DashboardItemID\", dashboardItem.getAttribute(\"id\"));\n mySetDashboardItemStatusRequest.AddRequestVariable(\"Collapsed\", \"False\");\n\n mySetDashboardItemStatusRequest.Submit().then(() => {\n const hideElementArr = dashboardItem.querySelectorAll(\".content, .ContentFooter\");\n\n for (let i = 0; i < hideElementArr.length; i++) {\n const hideElement = hideElementArr[i];\n hideElement.style.display = \"block\";\n }\n\n if (!EC_Fmt.isMobile && EWS.Dashboard && EWS.Dashboard.resize_widget) {\n EWS.Dashboard.resize_widget($(dashboardItem), dashboardItem.getAttribute(\"data-sizex\"), dashboardItem[\"data-sizey\"]);\n }\n\n trigger.classList.remove(\"ews-icon-plus-square-o\");\n trigger.classList.add(\"ews-icon-minus-square-o\");\n\n const ulArr = document.querySelectorAll(\"#Dashboard > ul\");\n\n for (let i = 0; i < ulArr.length; i++) {\n const ul = ulArr[i];\n ul.style.width = \"100%\";\n }\n\n dashboardItem.setAttribute(\"Collapsed\", \"False\");\n\n // Task 663122: Fusion Graph on iOS safari: If Graph widget starts collapsed when I click + to expand it formatting is messed up\n if (dashboardItem[\"item-loaded\"] !== \"True\" && (dashboardItem.getAttribute(\"item-type\") === \"ReportGraph\" || dashboardItem.querySelectorAll(\"iframe\").length > 0)) {\n // need to wait for expand animation\n setTimeout(() => {\n LoadDashboardItem(dashboardItem, dashboardItem.getAttribute(\"url\"));\n dashboardItem[\"item-loaded\"] = \"True\";\n }, 200);\n }\n\n dashboardItem.isWaitRequest = false;\n });\n }\n };\n\n for (let i = 0; i < plusArr.length; i++) {\n const plus = plusArr[i];\n\n plus.addEventListener(\"click\", plusFunction);\n }\n\n if (this.hasItemType(type)) {\n const viewButtons = dashboardItemTypes[type].createViewButtons(dashboardItem, itemFields);\n\n if (viewButtons) {\n const editControl = dashboardItem.querySelector(\".edit-control\");\n\n if (viewButtons.length >= 0) {\n for (let i = 0; i < viewButtons.length; i++) {\n const viewButton = viewButtons[i];\n\n editControl.appendChild(viewButton);\n }\n } else {\n editControl.appendChild(viewButtons);\n }\n }\n }\n };\n\n EWS.BC_DashboardItemTypesManager.prototype.createEditButtons = function (type, dashboardItem, itemFields) {\n let buttons = \"\";\n\n if (this.hasItemType(type)) {\n buttons = dashboardItemTypes[type].createEditButtons(dashboardItem, itemFields);\n }\n\n return buttons;\n };\n\n EWS.DashboardItemTypesManager = new EWS.BC_DashboardItemTypesManager();\n}());\n"]}