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