{"version":3,"file":"zoomv.9510.min.js?t=9d0216cec5d57539970f","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/pages/Hardware/Hardware.js","webpack://@hero-digital/zoom/./src/js/utilities/accordion.js"],"sourcesContent":["import { AccordionWidget } from '../../../js/utilities/accordion'\r\n\r\n// Grid landing page Component\r\nclass Hardware {\r\n constructor(el) {\r\n this.el = el\r\n this.apiEndpoint = this.el.dataset.apiEndpoint\r\n this.filters = this.el.querySelectorAll(\r\n '.hardware-landing-page__filter:not(.grid-landing-page__sort-mobile)'\r\n )\r\n this.checkboxes = this.el.querySelectorAll(\r\n 'input[type=\"checkbox\"]:not(.checkbox-sort)'\r\n )\r\n this.collaborationTools = this.el.querySelectorAll('.collaboration-tool--tools button')\r\n \r\n this.deviceType = this.el.querySelector('.collaboration-tool select')\r\n this.mainSection = this.el.querySelector('.hardware-interface--main-section')\r\n this.mainContainer = document.querySelector('#hardware')\r\n //this.sortCheckboxes = this.el.querySelectorAll('.checkbox-sort')\r\n this.resultsDiv = this.el.querySelector('#hardware-landing-page__results')\r\n this.loadMoreBtn = this.el.querySelector('.btn-load-more')\r\n this.form = this.el.querySelector('form')\r\n ;(this.choicesMenus = {}),\r\n (this.query = {}),\r\n (this.searchBox = this.el.querySelector('#q')),\r\n (this.newSearch = false)\r\n this.clearSearch = this.el.querySelector(\r\n '.grid-landing-page__text-input__search-icon--close'\r\n )\r\n\r\n this.collaborationTools.forEach((item, index) => {\r\n item.addEventListener(\r\n 'click',\r\n (e) => {\r\n this.collaborationTools.forEach(function (element) {\r\n element.classList.remove('selected')\r\n })\r\n\r\n item.className += ' selected';\r\n this.newSearch = true\r\n this.currentfilterLevel=1;\r\n this.buildQuery()\r\n }, false\r\n )\r\n });\r\n this.libraryPageId = this.el.querySelector('#library-page-id')\r\n this.pageSize = this.el.querySelector('#page-size')\r\n this.leftFilter = this.el.querySelector('.hardware-landing-page__filter-wrap')\r\n\r\n //mobile collapse expand holder\r\n const filterLists = document.querySelectorAll('.hardware-landing-page__wrapper')\r\n const mobileButton = document.querySelector(\r\n '.hardware-landing-page__mobile-filters'\r\n )\r\n const listHeightControl = document.querySelector(\r\n '.hardware-landing-page__filter-wrap'\r\n )\r\n\r\n const heightArray = new Array()\r\n filterLists.forEach((list) => {\r\n var height = list.offsetHeight\r\n heightArray.push(height)\r\n })\r\n\r\n const sumOfHeights = heightArray.reduce(\r\n (partialSum, a) => partialSum + a,\r\n 0\r\n )\r\n const maxHeight = sumOfHeights + 'px'\r\n this.el.parentNode.style.setProperty('--max-height', maxHeight)\r\n\r\n // mobile expand collapse\r\n mobileButton?.addEventListener('click', collapseExpand)\r\n function collapseExpand() {\r\n if (mobileButton.getAttribute('aria-expanded') === 'false') {\r\n mobileButton.setAttribute('aria-expanded', 'true')\r\n mobileButton.classList.add('isOpen')\r\n listHeightControl.classList.add('isOpen')\r\n } else {\r\n mobileButton.setAttribute('aria-expanded', 'false')\r\n mobileButton.classList.remove('isOpen')\r\n listHeightControl.classList.remove('isOpen')\r\n }\r\n }\r\n\r\n //Media query vars\r\n const mobileQuery = window?.matchMedia('(max-width: 1025px)')\r\n const isMobile = mobileQuery?.matches\r\n\r\n this.bindInitialLoad()\r\n this.pageOnLoad()\r\n this.initAccordion()\r\n this.modifyDropdowns()\r\n this.bindEventListeners()\r\n }\r\n\r\n bindInitialLoad() {\r\n this.checkboxes.forEach((el) => {\r\n el.addEventListener(\r\n 'change',\r\n (e) => {\r\n this.newSearch = true\r\n this.currentfilterLevel=3\r\n this.buildQuery()\r\n this.updatePills(el)\r\n },\r\n false\r\n )\r\n })\r\n\r\n this.deviceType.addEventListener(\r\n 'change',\r\n (e) => {\r\n this.newSearch = true\r\n this.currentfilterLevel=2\r\n this.buildQuery()\r\n },\r\n false\r\n )\r\n }\r\n\r\n bindDeviceType(result, hardwareDeviceTypeDefault) {\r\n this.deviceType.options.length = 0;\r\n result?.forEach((item) => {\r\n const option = document.createElement('option')\r\n option.textContent = item.displayName\r\n option.value = item.value\r\n if(hardwareDeviceTypeDefault && hardwareDeviceTypeDefault.value==item.value){\r\n option.selected = true\r\n }\r\n this.deviceType.appendChild(option)\r\n });\r\n\r\n this.modifyDropdowns()\r\n }\r\n\r\n bindResourceType(result) {\r\n const divModuleColumns = document.createElement('div');\r\n divModuleColumns.classList.add('module-columns', 'theme-light-gray', 'layout-2-columns', 'module-padding-top-default');\r\n divModuleColumns.id = 'hardware-resources';\r\n\r\n const divWrapper = document.createElement('div');\r\n divWrapper.classList.add('wrapper');\r\n \r\n const divColumn = document.createElement('div');\r\n divColumn.classList.add('column', 'column-1');\r\n \r\n const h2Title = document.createElement('h2');\r\n h2Title.classList.add('module-columns-title');\r\n h2Title.textContent = 'Resources';\r\n divColumn.appendChild(h2Title);\r\n let isDisplay=false\r\n result?.forEach((item) => {\r\n isDisplay=true\r\n // Create a div element for the resource link\r\n const resourceLinkDiv = document.createElement('div');\r\n resourceLinkDiv.classList.add('fdn-resource-link', 'top-none', 'bottom-none');\r\n\r\n // Create a ul element\r\n const ulElement = document.createElement('ul');\r\n\r\n // Create li element\r\n const liElement = document.createElement('li');\r\n\r\n // Create a link (a) element\r\n const linkElement = document.createElement('a');\r\n let target = '_self'\r\n \r\n if(item.target!==undefined){\r\n target=item.target\r\n }\r\n linkElement.setAttribute('target', target)\r\n linkElement.setAttribute('href', item.href);\r\n\r\n // Create div elements for the body container and title\r\n const bodyContainerDiv = document.createElement('div');\r\n bodyContainerDiv.classList.add('fdn-resource-link__body-container');\r\n\r\n const titleDiv = document.createElement('div');\r\n titleDiv.classList.add('fdn-resource-link__title');\r\n titleDiv.textContent = item.text;\r\n\r\n // Append title to body container, link to li, li to ul, and ul to the resource link div\r\n bodyContainerDiv.appendChild(titleDiv);\r\n linkElement.appendChild(bodyContainerDiv);\r\n liElement.appendChild(linkElement);\r\n ulElement.appendChild(liElement);\r\n resourceLinkDiv.appendChild(ulElement);\r\n divColumn.appendChild(resourceLinkDiv);\r\n divWrapper.appendChild(divColumn);\r\n \r\n });\r\n if(isDisplay)\r\n {\r\n divModuleColumns.appendChild(divWrapper);\r\n this.mainContainer.appendChild(divModuleColumns);\r\n }\r\n }\r\n\r\n bindLeftSideFilter(result) {\r\n result?.forEach((item) => {\r\n\r\n const wrapperDiv = document.createElement('div');\r\n wrapperDiv.classList.add('hardware-landing-page__wrapper', 'hardware-landing-page__filter');\r\n \r\n // Create button element\r\n const button = document.createElement('button');\r\n button.setAttribute('type', 'button');\r\n button.classList.add('hardware-landing-page__popup-button', 'js-accordion-trigger');\r\n button.setAttribute('name', item.filterTitle);\r\n button.setAttribute('aria-expanded','false')\r\n button.textContent = item.displayName;\r\n \r\n // Create popup container div\r\n const popupContainerDiv = document.createElement('div');\r\n popupContainerDiv.classList.add('hardware-landing-page__popup-container', 'js-accordion-panel','is-accordion-panel');\r\n \r\n popupContainerDiv.setAttribute('style','height:0px')\r\n\r\n //aria-hidden=\"true\" hidden=\"true\"\r\n\r\n // Create fieldset\r\n const fieldset = document.createElement('fieldset');\r\n \r\n // Create legend\r\n const legend = document.createElement('legend');\r\n const legendSpan = document.createElement('span');\r\n legendSpan.classList.add('visually-hidden');\r\n legendSpan.textContent = item.displayName;\r\n legend.appendChild(legendSpan);\r\n \r\n // Append legend to fieldset\r\n fieldset.appendChild(legend);\r\n \r\n // Iterate through selectItems and create divs with input and label\r\n item.selectItems.forEach((selectItem) => {\r\n const checkboxDiv = document.createElement('div');\r\n checkboxDiv.classList.add('grid-landing-page__checkbox');\r\n \r\n const input = document.createElement('input');\r\n input.setAttribute('type', 'checkbox');\r\n input.setAttribute('id', selectItem.value);\r\n input.setAttribute('value', selectItem.value);\r\n input.setAttribute('name', item.filterTitle);\r\n input.setAttribute('data-text', selectItem.text)\r\n \r\n const label = document.createElement('label');\r\n label.setAttribute('for', selectItem.value);\r\n label.textContent = selectItem.text;\r\n \r\n checkboxDiv.appendChild(input);\r\n checkboxDiv.appendChild(label);\r\n \r\n fieldset.appendChild(checkboxDiv);\r\n });\r\n \r\n // Append button and fieldset to popup container\r\n popupContainerDiv.appendChild(fieldset);\r\n \r\n // Append button and popup container to the main wrapper div\r\n wrapperDiv.appendChild(button);\r\n wrapperDiv.appendChild(popupContainerDiv);\r\n \r\n this.leftFilter.appendChild(wrapperDiv);\r\n });\r\n }\r\n\r\n initAccordion() {\r\n new AccordionWidget(this.el)\r\n window.addEventListener('click', this.detectOutsideClick.bind(this))\r\n }\r\n\r\n detectOutsideClick(e) {\r\n if (this.el.classList.contains('has-expanded-el')) {\r\n if (\r\n !e.target.closest('.hardware-landing-page__popup-button') &&\r\n !e.target.closest('.hardware-landing-page__popup-container')\r\n ) {\r\n const expandedButton = this.el.querySelector(\r\n '.hardware-landing-page__popup-button[aria-expanded=\"true\"]'\r\n )\r\n if (expandedButton) expandedButton.click()\r\n }\r\n }\r\n }\r\n\r\n pageOnLoad() {\r\n if (!this.loadMoreBtn) {\r\n this.loadMoreBtn = document.querySelector('.hardware-loadmore-wrapper button')\r\n }\r\n this.loadMoreBtn?.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n const prevPage = this.loadMoreBtn?.getAttribute('data-page') * 1\r\n this.loadMoreBtn?.setAttribute('data-page', prevPage + 1)\r\n this.newSearch = false\r\n this.currentfilterLevel=3\r\n this.buildQuery()\r\n })\r\n if (window.location.search) {\r\n this.updateFormFromParameters()\r\n } else {\r\n this.loadMoreBtn?.classList.remove('disabled')\r\n }\r\n }\r\n\r\n updatePills(el) {\r\n let pills = document.querySelectorAll('.hardware-landing-page__pill')\r\n let pillFound = false\r\n pills.forEach((pill) => {\r\n const tempElement = document.createElement('div');\r\n tempElement.innerHTML = pill.innerHTML;\r\n const textContent = tempElement.textContent;\r\n\r\n let decodedString=textContent \r\n if (decodedString === el.getAttribute('data-text')) {\r\n this.removePill(pill)\r\n pillFound = true\r\n }\r\n })\r\n if (!pillFound) {\r\n this.addPill(el.getAttribute('data-text'),el.getAttribute('value'))\r\n }\r\n }\r\n\r\n addPill(name,value) {\r\n const pillContainer = document.querySelector('.hardware-landing-page__pills')\r\n let pill = document.createElement('button')\r\n pill.setAttribute('type', 'button')\r\n pill.classList.add('hardware-landing-page__pill')\r\n pill.innerHTML = name\r\n pillContainer.appendChild(pill)\r\n pill.addEventListener(\r\n 'click',\r\n (e) => {\r\n this.removePill(pill)\r\n document.querySelector(\r\n \"input[type='checkbox'][value='\" + value + \"']\"\r\n ).checked = false\r\n this.newSearch = true\r\n this.currentfilterLevel=3\r\n this.buildQuery()\r\n },\r\n false\r\n )\r\n }\r\n\r\n removePill(name) {\r\n name.remove()\r\n }\r\n\r\n updateFormFromParameters() {\r\n //checkbox\r\n this.filters.forEach((filter) => {\r\n const id = filter.querySelector('button').getAttribute('name')\r\n const activeFilters = this.getUrlParameter(id)\r\n activeFilters?.forEach((item) => {\r\n let el= filter.querySelector(\r\n \"input[type='checkbox'][value='\" + item + \"']\"\r\n )\r\n if (el) {\r\n el.checked = true\r\n let displayName = el.getAttribute('data-text')\r\n this.addPill(displayName, item)\r\n }\r\n })\r\n })\r\n\r\n //buttons\r\n this.collaborationTools.forEach((tool) => {\r\n const id = tool?.getAttribute('name')\r\n const queryStringValue = this.getUrlParameter(id)\r\n if(queryStringValue!==undefined && queryStringValue[0]!=''){\r\n const selectedCollaborationTool = tool?.getAttribute('data-value')\r\n tool.classList.remove('selected')\r\n if(queryStringValue[0]==selectedCollaborationTool){\r\n tool.className += ' selected';\r\n }\r\n }\r\n })\r\n\r\n //dropdown\r\n const dropdown = this.deviceType\r\n if(dropdown.selectedIndex!=-1){\r\n const id = dropdown?.getAttribute('name')\r\n const queryStringValue = this.getUrlParameter(id)\r\n if(queryStringValue!==undefined && queryStringValue!=''){\r\n for (var i = 0; i < dropdown.options.length; i++) {\r\n if (dropdown.options[i].value == queryStringValue[0]) {\r\n dropdown.selectedIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n getUrlParameter(sParam) {\r\n var sPageURL = decodeURIComponent(window.location.search.substring(1))\r\n var array = []\r\n var sURLVariables = sPageURL.split('&')\r\n for (var i = 0; i < sURLVariables.length; i++) {\r\n var sParameterName = sURLVariables[i].split('=')\r\n if (sParameterName[0] == sParam) {\r\n array.push(sParameterName[1].split(','))\r\n }\r\n }\r\n return array[0]\r\n }\r\n\r\n buildQuery() {\r\n let queryString\r\n this.query = {}\r\n\r\n let pageSize = this.pageSize.value\r\n if (pageSize != '12')\r\n {\r\n pageSize = '12'\r\n }\r\n this.query.pageSize = pageSize \r\n\r\n if (this.newSearch) {\r\n if (this.loadMoreBtn != null) {\r\n this.loadMoreBtn?.setAttribute('data-page', 1)\r\n }\r\n this.query.page = 1\r\n if (this.loadMoreBtn != null) {\r\n this.loadMoreBtn.disabled = false\r\n }\r\n } else {\r\n const page = this.loadMoreBtn?.getAttribute('data-page')\r\n this.query.page = parseInt(page)\r\n }\r\n\r\n this.collaborationTools.forEach((el) => {\r\n const id = el.getAttribute('name')\r\n let isSelected= el.classList.contains('selected')\r\n if(isSelected){\r\n let queryValue = ''\r\n if (queryValue.length > 0) {\r\n queryValue += ','\r\n }\r\n queryValue += el.getAttribute('data-value')\r\n if (queryValue.length > 0) {\r\n this.query[id] = queryValue\r\n }\r\n }\r\n })\r\n\r\n if(this.currentfilterLevel>1 && this.currentfilterLevel<=3){\r\n const dropdown = this.deviceType\r\n const id = dropdown?.getAttribute('name')\r\n var selectedIndex = dropdown.selectedIndex;\r\n if(selectedIndex!=-1){\r\n var selectedOption = dropdown.options[selectedIndex].value;\r\n let queryValue = ''\r\n if (queryValue.length > 0) {\r\n queryValue += ','\r\n }\r\n queryValue += dropdown?.getAttribute('data-value')\r\n if (queryValue.length > 0) {\r\n this.query[id] = selectedOption\r\n }\r\n }\r\n }\r\n if(this.currentfilterLevel==3){\r\n this.filters.forEach((el) => {\r\n const id = el.querySelector('button').getAttribute('name')\r\n\r\n let selected = el.querySelectorAll('input[type=\"checkbox\"]:checked')\r\n var values = Array.from(selected).map(({ value }) => value)\r\n let queryValue = ''\r\n values.forEach((value) => {\r\n if (queryValue.length > 0) {\r\n queryValue += ','\r\n }\r\n queryValue += value\r\n })\r\n if (queryValue.length > 0) {\r\n this.query[id] = queryValue\r\n }\r\n })\r\n }\r\n // convert to string for AJAX call\r\n queryString = Object.keys(this.query)\r\n .map((key) => {\r\n return key + '=' + encodeURIComponent(this.query[key])\r\n })\r\n .join('&')\r\n\r\n this.updateURL(queryString)\r\n this.fetchResults(queryString)\r\n }\r\n\r\n resetResults() {\r\n let results = this.resultsDiv\r\n while (results?.firstChild) {\r\n results.removeChild(results.firstChild)\r\n }\r\n }\r\n resetDeviceType(){\r\n let spanEle= document.querySelector('.device-type-dropdown span')\r\n if(!spanEle) spanEle.remove()\r\n let ulEle= document.querySelector('.device-type-dropdown ul')\r\n if(!ulEle) ulEle.remove()\r\n this.deviceType.options.length = 0\r\n }\r\n resetLeftFilter(){\r\n this.leftFilter.innerHTML = \"\"\r\n }\r\n resetResources(){\r\n const hardwareResources = document.getElementById('hardware-resources');\r\n if (hardwareResources) {\r\n hardwareResources.remove()\r\n } \r\n }\r\n resetPills() {\r\n const pillContainer = document.querySelector('.hardware-landing-page__pills')\r\n if (pillContainer) {\r\n pillContainer.innerHTML = \"\"\r\n }\r\n }\r\n\r\n findIndexfromOptionName(select, optionName) {\r\n let options = Array.from(select.options)\r\n return options.findIndex((opt) => opt.label == optionName)\r\n }\r\n\r\n fetchResults(queryString) {\r\n const fetchOpts = {\r\n method: 'GET',\r\n headers: {}\r\n }\r\n\r\n let url = ''\r\n if (queryString.length > 0) {\r\n if (!queryString.includes('lang=')) {\r\n queryString =\r\n 'lang=' + document.documentElement.lang + '&' + queryString\r\n }\r\n url = this.apiEndpoint + '?' + queryString\r\n } else {\r\n url = this.apiEndpoint\r\n }\r\n\r\n window\r\n .fetch(url, fetchOpts)\r\n .then((response) => {\r\n if (this.newSearch) {\r\n this.resetResults()\r\n if(this.currentfilterLevel==1){\r\n this.resetDeviceType()\r\n this.resetPills()\r\n }\r\n if(this.currentfilterLevel==1 ||this.currentfilterLevel==2){\r\n this.resetLeftFilter()\r\n this.resetResources()\r\n this.resetPills()\r\n this.closeMobileFilter()\r\n }\r\n }\r\n\r\n if (!response.ok) {\r\n throw new Error('Network response was not ok')\r\n }\r\n return response.json()\r\n })\r\n .then((body) => {\r\n this.processResponse(body.result)\r\n })\r\n .catch((err) => {\r\n this.closeMobileFilter()\r\n console.log('Request Failed', err)\r\n })\r\n }\r\n\r\n closeMobileFilter() {\r\n try {\r\n let mobileButtonLocal = document.querySelector(\r\n '.hardware-landing-page__mobile-filters'\r\n )\r\n let listHeightControlLocal = document.querySelector(\r\n '.hardware-landing-page__filter-wrap'\r\n )\r\n if (mobileButtonLocal) {\r\n mobileButtonLocal.setAttribute('aria-expanded', 'false')\r\n mobileButtonLocal.classList.remove('isOpen')\r\n }\r\n if (listHeightControlLocal) {\r\n listHeightControlLocal.classList.remove('isOpen')\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n }\r\n processResponse(body) { \r\n if (body.hasMoreItems == false) {\r\n this.hideLoadMoreBtn()\r\n } else{\r\n this.showLoadMoreBtn()\r\n }\r\n\r\n if (body.items.length == 0) {\r\n this.showNoResults()\r\n } else {\r\n this.showResults()\r\n }\r\n\r\n body.items.forEach((result) => {\r\n this.addCard(result)\r\n })\r\n\r\n if(this.currentfilterLevel==1){\r\n this.bindDeviceType(body?.hardwareDeviceTypeFilter, body?.hardwareDeviceType)\r\n }\r\n if(this.currentfilterLevel==1 ||this.currentfilterLevel==2){\r\n\r\n this.bindLeftSideFilter(body?.hardwareDeviceType?.leftSideFilters)\r\n this.bindResourceType(body?.hardwareDeviceType?.resourceLinks)\r\n\r\n this.filters = this.el.querySelectorAll(\r\n '.hardware-landing-page__filter:not(.grid-landing-page__sort-mobile)'\r\n )\r\n this.checkboxes = this.el.querySelectorAll(\r\n 'input[type=\"checkbox\"]:not(.checkbox-sort)'\r\n )\r\n this.checkboxes.forEach((el) => {\r\n el.addEventListener(\r\n 'change',\r\n (e) => {\r\n this.newSearch = true\r\n this.currentfilterLevel=3\r\n this.buildQuery()\r\n this.updatePills(el)\r\n },\r\n false\r\n )\r\n })\r\n if(this.deviceType.options.length > 0) {\r\n let pageTitle=document.querySelectorAll('.results-column--title')\r\n pageTitle.forEach((title) => {\r\n title.innerHTML = body?.hardwareDeviceType?.displayName\r\n })\r\n }\r\n\r\n this.initAccordion()\r\n }\r\n if (!body.hasMoreItems) {\r\n this.hideLoadMoreBtn()\r\n }\r\n }\r\n\r\n showResults() {\r\n let results = document.querySelector('.grid-landing-page__has-results')\r\n let noResults = document.querySelector('.grid-landing-page__has-no-results')\r\n\r\n this.show(results)\r\n this.hide(noResults)\r\n }\r\n\r\n showNoResults() {\r\n let results = document.querySelector('.grid-landing-page__has-results')\r\n let noResults = document.querySelector('.grid-landing-page__has-no-results')\r\n\r\n this.hide(results)\r\n this.show(noResults)\r\n }\r\n\r\n show(element) {\r\n if (element) {\r\n element.style.display = 'block'\r\n }\r\n }\r\n\r\n hide(element) {\r\n if (element) {\r\n element.style.display = 'none'\r\n }\r\n }\r\n\r\n addCard(data) {\r\n let results = this.resultsDiv\r\n\r\n // Create the column\r\n let column = document.createElement('div')\r\n column.classList.add('column')\r\n column.classList.add('column-1') \r\n\r\n // Create the anchor - the whole card is a link\r\n let anchor = document.createElement('a')\r\n\r\n let target = '_self'\r\n \r\n anchor.setAttribute('target', target)\r\n anchor.setAttribute('href', data.url) \r\n anchor.classList.add('fdn-image-card') \r\n anchor.classList.add('medium-radius')\r\n anchor.classList.add('fdn-image-card--hide-tags') \r\n anchor.setAttribute('id', data.id)\r\n if (data.image.url) {\r\n anchor.setAttribute('data-img', 'true')\r\n }\r\n \r\n // Add the card accessibility text\r\n let accessibilitySpan = document.createElement('span')\r\n accessibilitySpan.classList.add('hide-animation')\r\n // accessibilitySpan.textContent = ' view: ' + data.title\r\n\r\n anchor.appendChild(accessibilitySpan)\r\n\r\n // If it has an image, make it\r\n if (data.image && data.image.url) {\r\n let image = document.createElement('img')\r\n if (data.image.altText) {\r\n image.setAttribute('alt', data.image.altText)\r\n }\r\n if (data.image.title) {\r\n image.setAttribute('title', data.image.title)\r\n }\r\n image.setAttribute('src', data.image.url)\r\n if(data.image.lowResUrl){\r\n image.setAttribute('srcset', data.image.lowResUrl + ' 2x')\r\n }\r\n anchor.appendChild(image)\r\n }\r\n // Create the main container for either type of card\r\n let mainContainer = document.createElement('div')\r\n mainContainer.classList.add('fdn-image-card__main-container')\r\n // Add the title\r\n if (data.title) {\r\n let heading = document.createElement('h4')\r\n heading.classList.add('fdn-image-card__header')\r\n heading.textContent = data.title\r\n mainContainer.appendChild(heading)\r\n }\r\n\r\n // Add the description\r\n if (data.shortDescription) {\r\n let body = document.createElement('div')\r\n body.classList.add('fdn-image-card__body')\r\n body.innerHTML = data.shortDescription\r\n mainContainer.appendChild(body)\r\n }\r\n\r\n // Add the link text\r\n if (data.url && data.linkText) {\r\n let linkSpan = document.createElement('span')\r\n linkSpan.classList.add('fdn-button--button-style-textLink')\r\n let linkContent = document.createTextNode(data.linkText)\r\n linkSpan.appendChild(linkContent)\r\n mainContainer.appendChild(linkSpan)\r\n }\r\n\r\n anchor.appendChild(mainContainer) \r\n column.appendChild(anchor)\r\n results.appendChild(column)\r\n }\r\n\r\n showLoadMoreBtn() {\r\n this.show(this.loadMoreBtn)\r\n }\r\n\r\n hideLoadMoreBtn() {\r\n this.hide(this.loadMoreBtn)\r\n }\r\n\r\n updateURL(queryString) { \r\n const url =\r\n window.location.origin + window.location.pathname + '?' + queryString\r\n window.history.replaceState({}, document.title, url)\r\n }\r\n\r\n\r\n // Styling dropdown \r\n\r\n modifyDropdowns() {\r\n document.querySelectorAll('select.device-type-dropdown').forEach((dropdown) => {\r\n let elementExist= document.querySelector('.selectDropdown');\r\n let selectDropdown=elementExist;\r\n \r\n if(!selectDropdown){\r\n selectDropdown = document.createElement('div');\r\n selectDropdown.classList.add('device-type-dropdown', 'selectDropdown');\r\n selectDropdown.setAttribute(\"tabindex\", \"0\");\r\n dropdown.parentNode.insertBefore(selectDropdown, dropdown);\r\n }\r\n else if(selectDropdown){\r\n selectDropdown.innerHTML=\"\"\r\n }\r\n\r\n selectDropdown.appendChild(dropdown)\r\n\r\n const label = document.createElement('span')\r\n label.textContent = dropdown.getAttribute('placeholder')\r\n selectDropdown.appendChild(label);\r\n\r\n const list = document.createElement('ul');\r\n Array.from(dropdown.querySelectorAll('option')).forEach((option) => {\r\n const listItem = document.createElement('li')\r\n const anchor = document.createElement('a')\r\n anchor.textContent = option.textContent;\r\n listItem.setAttribute(\"tabindex\", \"0\");\r\n listItem.setAttribute(\"data-value\", option.value);\r\n listItem.appendChild(anchor);\r\n list.appendChild(listItem);\r\n });\r\n selectDropdown.appendChild(list);\r\n\r\n const selectedOption = dropdown.querySelector('option:checked');\r\n if (selectedOption) {\r\n label.textContent = selectedOption.textContent;\r\n const matchingListItem = Array.from(list.children).find((item) => item.textContent === selectedOption.textContent);\r\n if (matchingListItem) {\r\n matchingListItem.classList.add('checked-type');\r\n }\r\n selectDropdown.classList.add('filled');\r\n }\r\n });\r\n }\r\n\r\n bindEventListeners() {\r\n const selectDropdowns = document.querySelectorAll('.selectDropdown');\r\n\r\n selectDropdowns.forEach((dropdown) => {\r\n dropdown.addEventListener('click', (event) => {\r\n const target = event.target;\r\n if (target.tagName.toLowerCase() === 'a') {\r\n this.handleDropdownClick(dropdown, target.textContent);\r\n } else if (target.tagName.toLowerCase() === 'span') {\r\n dropdown.classList.toggle('expanded');\r\n }\r\n this.closeMobileFilter()\r\n });\r\n });\r\n\r\n document.addEventListener('click', (event) => {\r\n const dropdowns = document.querySelectorAll('.selectDropdown');\r\n dropdowns.forEach((dropdown) => {\r\n if (!dropdown.contains(event.target)) {\r\n dropdown.classList.remove('expanded');\r\n }\r\n });\r\n });\r\n\r\n const deviceTypeDropdown = document.querySelectorAll('.device-type-dropdown');\r\n deviceTypeDropdown.forEach((dropdown) => {\r\n dropdown.addEventListener('keydown', (event)=>this.handleDeviceTypebyKeyboard(dropdown, event));\r\n });\r\n }\r\n\r\n handleDeviceTypebyKeyboard(dropdown, event) {\r\n if (event.key === \"Enter\" && event.target.nodeName != 'LI') {\r\n dropdown.classList.add('expanded')\r\n }\r\n if (event.key === \"Enter\" && event.target.nodeName == 'LI') { \r\n const deviceTypeDropdownUL = document.querySelectorAll('.device-type-dropdown ul li')\r\n deviceTypeDropdownUL.forEach((dropdownul) => {\r\n dropdownul.classList.remove('checked-type')\r\n })\r\n dropdown.classList.remove('expanded')\r\n event.target.classList.add('checked-type')\r\n dropdown.querySelector('span').innerHTML = event.target.outerText\r\n this.deviceType.value = event.target.getAttribute(\"data-value\")\r\n this.newSearch = true\r\n this.currentfilterLevel=2\r\n this.buildQuery()\r\n }\r\n }\r\n\r\n handleDropdownClick(dropdown, textContent) {\r\n const select = dropdown.querySelector('select');\r\n const options = Array.from(select.options);\r\n const selectedOption = options.find((option) => option.textContent === textContent);\r\n\r\n if (selectedOption) {\r\n const label = selectedOption.textContent;\r\n const selectedIndex = options.indexOf(selectedOption);\r\n\r\n options.forEach((option, index) => {\r\n option.selected = index === selectedIndex;\r\n });\r\n\r\n dropdown.querySelectorAll('ul li').forEach((item) => {\r\n item.classList.remove('checked-type');\r\n });\r\n\r\n dropdown.querySelector('span').textContent = label;\r\n dropdown.classList.toggle('filled', label !== select.getAttribute('placeholder'));\r\n\r\n const listItem = dropdown.querySelector(`ul li:nth-child(${selectedIndex + 1})`);\r\n if (listItem) {\r\n listItem.classList.add('checked-type');\r\n this.newSearch = true\r\n this.currentfilterLevel=2\r\n this.buildQuery()\r\n }\r\n }\r\n dropdown.classList.remove('expanded');\r\n }\r\n\r\n\r\n}\r\n\r\n\r\nexport default Hardware\r\n","/* ACCESSIBLE ACCORDION COMPONENT\r\n Code modified taken from here: https://codepen.io/stowball/pen/eZKwRv\r\n Options (add to parent element that has class \"accordion-interface\"):\r\n Multiselect: aria-multiselectable=\"true\"\r\n Always expand first item: data-firstexpanded=\"true\"\r\n To have selected panel(s) expanded at start use data-open-panels attribute with panel numbers separated by commas.\r\n Example: data-open-panels=\"1,2\"\r\n To keep panels always open at tablet breakpoints and above add to class list: accordion-interface__open-panels__md\r\n and for desktop only: accordion-interface__open-panels__lg\r\n*/\r\nimport gsap from 'gsap'\r\n\r\nfunction AccordionWidget(el, props = {}) {\r\n if (!el) return\r\n this.el = el\r\n\r\n let triggerClass = 'js-accordion-trigger'\r\n let panelClass = 'js-accordion-panel'\r\n if (props.id) {\r\n triggerClass += props.id\r\n panelClass += props.id\r\n }\r\n const expandFirst = el.dataset.firstexpanded === 'true'\r\n this.multiSelectable = this.el.hasAttribute('aria-multiselectable')\r\n\r\n let selectedIndex\r\n if (Number.isInteger(props.selectedIndex)) selectedIndex = props.selectedIndex\r\n else if (expandFirst) selectedIndex = 0\r\n\r\n this.accordionTriggers = this.el.getElementsByClassName(triggerClass)\r\n this.accordionPanels = this.el.getElementsByClassName(panelClass)\r\n\r\n if (\r\n this.accordionTriggers.length === 0 ||\r\n this.accordionTriggers.length !== this.accordionPanels.length\r\n ) {\r\n return\r\n }\r\n\r\n // if we do not already have a selected index see if we have the open panels attribute\r\n if (selectedIndex === undefined && el.dataset.openPanels) {\r\n let openPanels = el.dataset.openPanels\r\n openPanels = openPanels.split(',')\r\n const panelArr = []\r\n for (const panel of openPanels) {\r\n const n = parseInt(panel)\r\n // quick test to make sure we have a positive value\r\n if ((n | 0) > 0 && n % 1 === 0 && n <= this.accordionTriggers.length) {\r\n panelArr.push(n - 1)\r\n // if this is not multiselectable then stop after first validated value\r\n if (!this.multiSelectable) break\r\n }\r\n }\r\n if (panelArr.length) selectedIndex = panelArr\r\n }\r\n\r\n this._init(selectedIndex)\r\n}\r\n\r\nAccordionWidget.prototype._init = function (selectedIndex) {\r\n this.accordionTriggersLength = this.accordionTriggers.length\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n this.clickListener = this._clickEvent.bind(this)\r\n this.keydownListener = this._keydownEvent.bind(this)\r\n this.focusListener = this._focusEvent.bind(this)\r\n this.keys = {\r\n prev: 38,\r\n next: 40,\r\n space: 32\r\n }\r\n\r\n let initialSelectedIndex\r\n\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n this.accordionTriggers[i].index = i\r\n this.accordionTriggers[i].addEventListener(\r\n 'click',\r\n this.clickListener,\r\n false\r\n )\r\n this.accordionTriggers[i].addEventListener(\r\n 'keydown',\r\n this.keydownListener,\r\n false\r\n )\r\n this.accordionTriggers[i].addEventListener(\r\n 'focus',\r\n this.focusListener,\r\n false\r\n )\r\n this.accordionTriggers[i].classList.add('is-accordion-trigger')\r\n\r\n if (this.accordionTriggers[i].classList.contains('is-selected')) {\r\n this.expandedAccordions[i] = true\r\n }\r\n }\r\n\r\n for (let i = 0; i < this.accordionPanels.length; i++) {\r\n this.accordionPanels[i].classList.add('is-accordion-panel')\r\n }\r\n\r\n // determine which panels need to be open\r\n if (!isNaN(selectedIndex)) {\r\n initialSelectedIndex = selectedIndex\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n this.expandedAccordions[initialSelectedIndex] = true\r\n } else if (Array.isArray(selectedIndex)) {\r\n initialSelectedIndex = selectedIndex\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n if (selectedIndex.includes(i)) this.expandedAccordions[i] = true\r\n }\r\n } else {\r\n initialSelectedIndex = this.expandedAccordions.lastIndexOf(true)\r\n\r\n if (!this.multiSelectable) {\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n this.expandedAccordions[initialSelectedIndex] = true\r\n }\r\n }\r\n\r\n this.initialSetIndex = selectedIndex\r\n this.setSelected(initialSelectedIndex)\r\n this.setExpanded()\r\n this.setAPI()\r\n this.el.classList.add('is-accordion')\r\n this.el.classList.add('is-initialized')\r\n}\r\n\r\nAccordionWidget.prototype._clickEvent = function (e) {\r\n e.preventDefault()\r\n this.setSelected(e.target.index, true)\r\n this.setExpanded(e.target.index, true)\r\n}\r\n\r\nAccordionWidget.prototype._keydownEvent = function (e) {\r\n let targetIndex\r\n\r\n switch (e.keyCode) {\r\n case this.keys.space:\r\n case this.keys.prev:\r\n case this.keys.next:\r\n e.preventDefault()\r\n break\r\n default:\r\n return\r\n }\r\n\r\n if (e.keyCode === this.keys.space) {\r\n // this.setExpanded(e.target.index, true);\r\n e.target.click()\r\n\r\n return\r\n } else if (e.keyCode === this.keys.prev && e.target.index > 0) {\r\n targetIndex = e.target.index - 1\r\n } else if (\r\n e.keyCode === this.keys.next &&\r\n e.target.index < this.accordionTriggersLength - 1\r\n ) {\r\n targetIndex = e.target.index + 1\r\n } else {\r\n return\r\n }\r\n\r\n this.setSelected(targetIndex, true)\r\n}\r\n\r\nAccordionWidget.prototype._focusEvent = function () {\r\n if (this.accordionTriggersLength === 1) {\r\n this.setSelected(0)\r\n }\r\n}\r\n\r\nAccordionWidget.prototype.setSelected = function (index, userInvoked) {\r\n if (index === -1) {\r\n this.accordionTriggers[0].setAttribute('tabindex', 0)\r\n\r\n return\r\n }\r\n\r\n if (Array.isArray(index)) index = index[0]\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n if (i === index) {\r\n this.accordionTriggers[i].classList.add('is-selected')\r\n // this.accordionTriggers[i].setAttribute('tabindex', 0);\r\n\r\n if (userInvoked) {\r\n this.accordionTriggers[i].focus()\r\n }\r\n } else {\r\n this.accordionTriggers[i].classList.remove('is-selected')\r\n\r\n // this.accordionTriggers[i].setAttribute('tabindex', -1);\r\n }\r\n }\r\n}\r\n\r\nAccordionWidget.prototype.setExpanded = function (index, userInvoked) {\r\n let i\r\n\r\n // special case to close all\r\n if (index === -1) this.expandedAccordions = []\r\n\r\n if (userInvoked) {\r\n if (this.multiSelectable) {\r\n this.expandedAccordions[index] = !this.expandedAccordions[index]\r\n } else {\r\n for (i = 0; i < this.accordionTriggersLength; i++) {\r\n if (i === index) {\r\n this.expandedAccordions[i] = !this.expandedAccordions[i]\r\n } else {\r\n this.expandedAccordions[i] = false\r\n }\r\n }\r\n }\r\n }\r\n\r\n AccordionWidget.prototype.hidePanelContent = function (item) {\r\n //allows animation to finish before hiding inner content from assistive technology\r\n setTimeout(() => {\r\n item.setAttribute('aria-hidden', true)\r\n item.setAttribute('hidden', true)\r\n }, 325)\r\n }\r\n\r\n let hasExpanded = false\r\n for (i = 0; i < this.accordionTriggersLength; i++) {\r\n if (this.expandedAccordions[i]) {\r\n this.accordionPanels[i].setAttribute('aria-hidden', false)\r\n this.accordionPanels[i].removeAttribute('hidden')\r\n\r\n this.accordionTriggers[i].setAttribute('aria-expanded', true)\r\n this.accordionTriggers[i].classList.add('is-expanded')\r\n\r\n this.accordionPanels[i].classList.add('is-open')\r\n gsap.to(this.accordionPanels[i], { height: 'auto', duration: 0.3 })\r\n\r\n this.accordionTriggers[i].parentElement.classList.add('is-active')\r\n\r\n hasExpanded = true\r\n } else {\r\n this.accordionTriggers[i].setAttribute('aria-expanded', false)\r\n this.accordionTriggers[i].classList.remove('is-expanded')\r\n\r\n this.accordionPanels[i].classList.remove('is-open')\r\n gsap.to(this.accordionPanels[i], { height: 0, duration: 0.3 })\r\n\r\n this.accordionTriggers[i].parentElement.classList.remove('is-active')\r\n this.hidePanelContent(this.accordionPanels[i])\r\n }\r\n }\r\n\r\n // add close to parent to indicate there is an open element\r\n if (hasExpanded) this.el.classList.add('has-expanded-el')\r\n else this.el.classList.remove('has-expanded-el')\r\n this.hasExpanded = hasExpanded\r\n}\r\n\r\nAccordionWidget.prototype.setAPI = function () {\r\n // add API functionality here\r\n this.close = function () {\r\n this.setSelected(-1)\r\n this.setExpanded(-1)\r\n }\r\n // open initial index\r\n this.openInit = function () {\r\n const index = this.initialSetIndex\r\n if (Number.isInteger(index)) {\r\n this.setSelected(index, true)\r\n this.setExpanded(index, true)\r\n }\r\n }\r\n}\r\n\r\nAccordionWidget.prototype.destroy = function () {\r\n this.el.classList.remove('is-initialized')\r\n\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n this.accordionTriggers[i].removeAttribute('aria-expanded')\r\n this.accordionTriggers[i].classList.remove('is-expanded')\r\n\r\n this.accordionPanels[i].removeAttribute('aria-hidden')\r\n this.accordionPanels[i].classList.remove('is-open')\r\n this.accordionPanels[i].removeAttribute('tabindex')\r\n\r\n this.accordionTriggers[i].removeEventListener(\r\n 'click',\r\n this.clickListener,\r\n false\r\n )\r\n this.accordionTriggers[i].removeEventListener(\r\n 'keydown',\r\n this.keydownListener,\r\n false\r\n )\r\n this.accordionTriggers[i].removeEventListener(\r\n 'focus',\r\n this.focusListener,\r\n false\r\n )\r\n\r\n delete this.accordionTriggers[i].index\r\n }\r\n}\r\n\r\nexport { AccordionWidget }\r\n"],"names":["Hardware","el","_window","_this","_classCallCheck","this","apiEndpoint","dataset","filters","querySelectorAll","checkboxes","collaborationTools","deviceType","querySelector","mainSection","mainContainer","document","resultsDiv","loadMoreBtn","form","choicesMenus","query","searchBox","newSearch","clearSearch","forEach","item","index","addEventListener","e","element","classList","remove","className","currentfilterLevel","buildQuery","libraryPageId","pageSize","leftFilter","filterLists","mobileButton","listHeightControl","heightArray","Array","list","height","offsetHeight","push","maxHeight","reduce","partialSum","a","parentNode","style","setProperty","getAttribute","setAttribute","add","mobileQuery","window","matchMedia","matches","bindInitialLoad","pageOnLoad","initAccordion","modifyDropdowns","bindEventListeners","key","value","_this2","updatePills","result","hardwareDeviceTypeDefault","_this3","options","length","option","createElement","textContent","displayName","selected","appendChild","divModuleColumns","id","divWrapper","divColumn","h2Title","isDisplay","resourceLinkDiv","ulElement","liElement","linkElement","target","undefined","href","bodyContainerDiv","titleDiv","text","_this4","wrapperDiv","button","filterTitle","popupContainerDiv","fieldset","legend","legendSpan","selectItems","selectItem","checkboxDiv","input","label","AccordionWidget","detectOutsideClick","bind","contains","closest","expandedButton","click","_this$loadMoreBtn","_this$loadMoreBtn2","_this5","_this5$loadMoreBtn","_this5$loadMoreBtn2","preventDefault","prevPage","location","search","updateFormFromParameters","_this6","pills","pillFound","pill","tempElement","innerHTML","removePill","addPill","name","_this7","pillContainer","checked","_this8","filter","activeFilters","getUrlParameter","tool","queryStringValue","selectedCollaborationTool","dropdown","selectedIndex","i","sParam","array","sURLVariables","decodeURIComponent","substring","split","sParameterName","queryString","_this9","_this$loadMoreBtn3","page","disabled","_this$loadMoreBtn4","parseInt","queryValue","selectedOption","values","from","map","_ref","Object","keys","encodeURIComponent","join","updateURL","fetchResults","results","firstChild","removeChild","spanEle","ulEle","hardwareResources","getElementById","select","optionName","findIndex","opt","_this10","url","includes","documentElement","lang","fetch","method","headers","then","response","resetResults","resetDeviceType","resetPills","resetLeftFilter","resetResources","closeMobileFilter","ok","Error","json","body","processResponse","err","console","log","mobileButtonLocal","listHeightControlLocal","_body$hardwareDeviceT","_body$hardwareDeviceT2","_this11","hasMoreItems","hideLoadMoreBtn","showLoadMoreBtn","items","showNoResults","showResults","addCard","bindDeviceType","hardwareDeviceTypeFilter","hardwareDeviceType","bindLeftSideFilter","leftSideFilters","bindResourceType","resourceLinks","title","_body$hardwareDeviceT3","noResults","show","hide","display","data","column","anchor","image","accessibilitySpan","altText","lowResUrl","heading","shortDescription","linkText","linkSpan","linkContent","createTextNode","origin","pathname","history","replaceState","selectDropdown","insertBefore","listItem","matchingListItem","children","find","_this12","event","tagName","toLowerCase","handleDropdownClick","toggle","handleDeviceTypebyKeyboard","nodeName","dropdownul","outerText","indexOf","concat","props","arguments","triggerClass","panelClass","expandFirst","firstexpanded","multiSelectable","hasAttribute","Number","isInteger","accordionTriggers","getElementsByClassName","accordionPanels","openPanels","_step","panelArr","_iterator","_createForOfIteratorHelper","s","n","done","panel","f","_init","prototype","initialSelectedIndex","accordionTriggersLength","expandedAccordions","clickListener","_clickEvent","keydownListener","_keydownEvent","focusListener","_focusEvent","prev","next","space","isNaN","isArray","lastIndexOf","initialSetIndex","setSelected","setExpanded","setAPI","targetIndex","keyCode","userInvoked","focus","hidePanelContent","setTimeout","hasExpanded","removeAttribute","gsap","to","duration","parentElement","close","openInit","destroy","removeEventListener"],"sourceRoot":""}