{"version":3,"sources":["webpack:///./scripts/components/toolbox/convertSavedToolbox.js","webpack:///./scripts/components/toolbox/sidebarToolbox.js"],"names":["convertSavedToolbox","savedItems","allItems","returnObj","items","remainingItems","someToolboxValid","some","savedItem","r","forEach","allItem","Id","length","filter","currentAllItem","i","SortOrder","push","sort","sortOrder","remaining","a","b","orderA","orderB","comparison","SidebarToolbox","toolboxUserState","strToolboxKey","$el","ev","$","hasClass","$modal","modal","$btnMore","addClass","pos","offset","top","window","innerHeight","animate","scrollTop","find","width","setTimeout","savedUserState","JSON","parse","sessionStorage","getItem","ToolboxItems","render","err","html","this","$loader","data","init","setupModalEvents","addEventListener","onUserStateUpdate","on","handleModal","removeClass","self","onResize","debounce","debouncedResize","item","target","PageUrl","indexOf","IconClass","Name","itemMarkup","slice","remove","map","getSidebarItemMarkup","$list","fadeOut","promise","done","before","css","fadeSmoother","fadeIn"],"mappings":"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","file":"10.e0c749b57ea97d4b6ff9.js","sourcesContent":["// Helper to convert saved list of just toolbox ids to a full toolbox object ready to render\n\nexport function convertSavedToolbox(savedItems, allItems) {\n var returnObj = {};\n var items = [];\n var remainingItems = [];\n\n // First check at least one iD is valid to avoid returning an empty set if savesaved iDs somehow no longer match any items\n var someToolboxValid = savedItems.some((savedItem) => {\n let r = false;\n allItems.forEach((allItem) => {\n if (allItem.Id === savedItem.Id) {\n r = true;\n }\n });\n return r;\n });\n\n // console.log('Some valid:');\n // console.log(someToolboxValid);\n\n // Filter all items based on the saved list. This ensures content is updated and invalid ids from saved items are skipped\n if (savedItems.length > 0 && someToolboxValid) {\n items = allItems.filter((currentAllItem) => {\n let r = false;\n for (var i = 0; i < savedItems.length; i++) {\n if (savedItems[i].Id === currentAllItem.Id) {\n currentAllItem.SortOrder = savedItems[i].SortOrder; //Transfer the sort order across\n r = true;\n }\n }\n\n //Loop complete and it wasn't found, must go to remaining list\n if (!r) {\n remainingItems.push(currentAllItem);\n }\n return r;\n });\n\n items.sort(sortOrder); //Sort based on SortOrder prop\n } else {\n items = allItems;\n }\n\n returnObj.items = items;\n returnObj.remaining = remainingItems;\n // console.log('Items to push to return obj:');\n // console.log(items);\n // console.log('Saved list:');\n // console.log(savedItems);\n // console.log('Converted toolbox list:');\n // console.log(returnObj)\n\n return returnObj;\n}\n\nfunction sortOrder(a, b) {\n const orderA = a.SortOrder;\n const orderB = b.SortOrder;\n let comparison = 0;\n if (orderA > orderB) {\n comparison = 1;\n } else if (orderA < orderB) {\n comparison = -1;\n }\n return comparison;\n}\n","// Sidebar toolbox\n// No modal logic as it's driven by Bootstrap\n\nimport { debounce, fadeSmoother } from \"../../helpers/helpers\";\n\nimport { convertSavedToolbox } from \"./convertSavedToolbox\";\n\nexport class SidebarToolbox {\n constructor(toolboxUserState, allItems, strToolboxKey, $el) {\n //Data\n this.savedItems = toolboxUserState.ToolboxItems;\n this.allItems = allItems;\n this.strToolboxKey = strToolboxKey;\n\n //Element references\n this.$el = $el;\n this.$loader = this.$el.find(\".loader-2\");\n this.$btnMore = this.$el.find(\".mp-menu_link--more\");\n this.$modal = $(this.$btnMore.data(\"target\"));\n\n this.init();\n }\n\n init() {\n try {\n this.render();\n this.setupModalEvents();\n window.addEventListener(\"userStateUpdated\", this.onUserStateUpdate);\n } catch (err) {\n console.warn(\n \"A sidebar toolbox list setup was called but there was a problem: \" +\n err\n );\n console.log(err);\n if (this.$el.length > 0) {\n this.$el.html(\n '

Oops, there was a problem setting up your toolbox. Please try again later.

'\n );\n }\n }\n }\n\n setupModalEvents() {\n this.$btnMore.on(\"click\", this.handleModal);\n\n //Multiple ways to close modal so remove class on event\n $(\".modal\").on(\"hide.bs.modal\", (ev) => {\n this.$btnMore.removeClass(\"-active\");\n });\n\n //Debounce resize listener\n var self = this;\n var onResize = debounce(function () {\n self.debouncedResize();\n }, 30);\n window.addEventListener(\"resize\", onResize);\n }\n\n handleModal = (ev) => {\n if ($(\"body\").hasClass(\"modal-open\")) {\n this.$modal.modal(\"hide\");\n } else {\n this.$btnMore.addClass(\"-active\");\n\n //Scroll to put the 'more' button centered on the page\n const pos = this.$btnMore.offset().top - window.innerHeight / 2;\n $(\"html, body\").animate(\n {\n scrollTop: pos,\n },\n 600,\n () => {\n this.$modal\n .find(\".modal-dialog\")\n .width($(\".content-inner-main\").width());\n this.$modal.modal(\"show\");\n }\n );\n }\n };\n\n debouncedResize = (ev) => {\n this.$modal.find(\".modal-dialog\").width($(\".content-inner-main\").width());\n };\n\n onUserStateUpdate = (ev) => {\n // Called via event listener, updates content, re-renders\n\n setTimeout(() => {\n var savedUserState = JSON.parse(sessionStorage.getItem(\"userState\"));\n try {\n this.savedItems = savedUserState[this.strToolboxKey].ToolboxItems;\n this.render();\n } catch (err) {\n console.warn(\"A toolbox update error occured: \" + err);\n console.log(err);\n if (this.$el.length > 0) {\n this.$el.html(\n '

Oops, there was a problem setting up your toolbox. Please try again later.

'\n );\n }\n }\n }, 800);\n };\n\n getSidebarItemMarkup(item) {\n const target =\n item.PageUrl.indexOf(\"/systems/\") > 0 ? 'target=\"_blank\"' : \"\";\n\n return `\n
  • \n \n \n \n \n
  • \n `;\n }\n\n render() {\n const itemsSeparated = convertSavedToolbox(this.savedItems, this.allItems);\n const items = itemsSeparated.items.slice(0, 3);\n var itemMarkup = \"\";\n\n this.$el.find(\"ul\").remove();\n\n //Main list\n itemMarkup = items.map((item) => this.getSidebarItemMarkup(item));\n var $list = $(\"