{"version":3,"file":"/js/search.js","mappings":"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","sources":["webpack://bitc/./src/js/search.js"],"sourcesContent":["/**\n * Search/archive filter control customisations.\n */\n\n{\n\tif ( document.readyState === 'loading' ) {\n\t\tdocument.addEventListener( 'DOMContentLoaded', initContentList );\n\t} else {\n\t\tinitContentList();\n\t}\n\n\t/**\n\t * Contains the configuration for the component\n\t */\n\tconst settings = {\n\t\tselectors: {\n\t\t\tsortBySelector: '.js-filter-sortby',\n\t\t\ttogglePanelSelector: '.js-toggle-filter-panel',\n\t\t\tshowMoreSelector: '.js-toggle-filter-more',\n\t\t\tmobileFilterSelector: '.js-open-content-filters',\n\t\t\tformSelector: '.js-filter-form',\n\t\t\tsortByParentMobileSelector: '.js-sortby-element-mobile',\n\t\t\tsortByParentDesktopSelector: '.js-sortby-element-desktop',\n\t\t},\n\t};\n\n\t/**\n\t * Submit form when \"sort by\" field changes.\n\t */\n\tfunction sortByHandler() {\n\t\tconst sortby = document.querySelectorAll( settings.selectors.sortBySelector );\n\n\t\tif ( sortby.length < 1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( let index = 0, length = sortby.length; index < length; index++ ) {\n\t\t\tsortby[ index ].addEventListener( 'change', () => {\n\t\t\t\tsettings.form.submit();\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Toggle sortBy select status depending on current device (desktop or mobile).\n\t */\n\tfunction disableSortByFilter() {\n\t\t// Bail early if the sortby filter is not present.\n\t\tif ( document.querySelectorAll( settings.selectors.sortBySelector ).length < 1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sortByMobile = document.querySelector( settings.selectors.sortByParentMobileSelector ).querySelector( settings.selectors.sortBySelector );\n\t\tconst sortByDesktop = document.querySelector( settings.selectors.sortByParentDesktopSelector ).querySelector( settings.selectors.sortBySelector );\n\n\t\tif ( window.innerWidth >= 992 ) {\n\t\t\tsortByMobile.setAttribute( 'disabled', true );\n\t\t\tsortByDesktop.removeAttribute( 'disabled' );\n\t\t} else {\n\t\t\tsortByDesktop.setAttribute( 'disabled', true );\n\t\t\tsortByMobile.removeAttribute( 'disabled' );\n\t\t}\n\t}\n\n\t/**\n\t * Toggle filter group item when clicking on the filter title.\n\t */\n\tfunction togglePanelHandler() {\n\t\tconst filters = document.querySelectorAll( settings.selectors.togglePanelSelector );\n\n\t\tif ( filters.length < 1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( let index = 0, length = filters.length; index < length; index++ ) {\n\t\t\tfilters[ index ].addEventListener( 'click', (event) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst thisEl = event.target;\n\t\t\t\tconst parentEl = thisEl.parentElement;\n\n\t\t\t\tparentEl.classList.toggle('is-closed');\n\n\t\t\t\tif ( parentEl.classList.contains('is-closed') ) {\n\t\t\t\t\tthisEl.setAttribute('aria-expanded', false);\n\t\t\t\t} else {\n\t\t\t\t\tthisEl.setAttribute('aria-expanded', true);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Expand filter group content when clicking on show more/show less.\n\t */\n\tfunction showMoreFiltersHandler() {\n\t\tconst showMore = document.querySelectorAll( settings.selectors.showMoreSelector );\n\n\t\tif ( showMore.length < 1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( let index = 0, length = showMore.length; index < length; index++ ) {\n\t\t\tshowMore[ index ].addEventListener( 'click', (event) => {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tconst thisEl = event.target;\n\t\t\t\tconst showText = thisEl.dataset['show_text'];\n\t\t\t\tconst hideText = thisEl.dataset['hide_text'];\n\n\t\t\t\tthisEl.parentElement.parentElement.classList.toggle('has-more');\n\t\t\t\tthisEl.innerText = thisEl.innerText === showText ? hideText : showText;\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Toggle filter container on mobile devices.\n\t */\n\tfunction mobileFilterHandler() {\n\t\tconst mobileFilter = document.querySelectorAll( settings.selectors.mobileFilterSelector );\n\n\t\tif ( mobileFilter.length < 1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( let index = 0, length = mobileFilter.length; index < length; index++ ) {\n\t\t\tmobileFilter[ index ].addEventListener( 'click', (event) => {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tdocument.body.classList.toggle('is-search-filter-open');\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Initialise filtering on content list/search pages.\n\t */\n\tfunction initContentList() {\n\t\tsettings.form = document.querySelector( settings.selectors.formSelector );\n\n\t\t// Bail early as we're not on a content list/search page.\n\t\tif ( ! settings.form ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsortByHandler();\n\t\ttogglePanelHandler();\n\t\tshowMoreFiltersHandler();\n\t\tmobileFilterHandler();\n\t\tdisableSortByFilter();\n\t\twindow.onresize = disableSortByFilter;\n\t}\n}\n"],"names":["sortByHandler","sortby","document","querySelectorAll","settings","selectors","sortBySelector","length","index","addEventListener","form","submit","disableSortByFilter","sortByMobile","querySelector","sortByParentMobileSelector","sortByDesktop","sortByParentDesktopSelector","window","innerWidth","setAttribute","removeAttribute","togglePanelHandler","filters","togglePanelSelector","event","preventDefault","thisEl","target","parentEl","parentElement","classList","toggle","contains","showMoreFiltersHandler","showMore","showMoreSelector","showText","dataset","hideText","innerText","mobileFilterHandler","mobileFilter","mobileFilterSelector","body","initContentList","formSelector","onresize","readyState"],"sourceRoot":""}