{"version":3,"sources":["all.js"],"names":["console","log","document","querySelector","ham","navBar","addEventListener","classList","toggle","setAttribute","contains","querySelectorAll","forEach","dd","ddToggle","e","preventDefault","getElementById","txtArea","txtCounter","target","maxLength","getAttribute","currentLength","value","length","innerHTML","window","outerWidth","tip","toolTipText","parentElement","firstElementChild","style","visibility","allOtherFields","hasOtherFields","specifyOtherField","nextElementSibling","theSelect","checkOtherInput","toLowerCase","indexOf","remove","add","glowCookies","start","policyLink","hideAfterClick","border","position","bannerDescription","bannerLinkText","bannerBackground","acceptBtnText","acceptBtnColor","acceptBtnBackground","rejectBtnBackground","rejectBtnColor","rejectBtnText","el","links","footer","date","Date","getUTCFullYear","MAX_PDFS","showMoreBtn","ev","hiddenPDFs","closest","counter","pdf","display"],"mappings":"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","file":"all.js","sourcesContent":["console.log('Website design and developed by Pretty Pragmatic.');\n\n/**\n * ------------------------\n * CONTENTS\n * ------------------------\n * 1. Mobile Navigation\n * 2. Contact Form Textarea Count\n * 3. Contact Form Tooltip\n * 4. Cookies Banner\n * 5. Footer Accordian\n */\n\n\n\n\n// 1. Mobile Nav Button\n//--------------------------\n\nif (document.querySelector('.lvp-hamburger')) {\n // If hamburger menu icon exists on page.\n\n \n\n // button element\n const ham = document.querySelector('.lvp-hamburger');\n const navBar = document.querySelector('#primary-navigation');\n\n ham.addEventListener(\"click\", function(){\n\n // Toggle class on and off to trigger CSS SVG animation.\n ham.classList.toggle('is-active');\n\n // Set aria aria-pressed = true\n ham.setAttribute(\"aria-pressed\", ham.classList.contains('opened'));\n\n // Toggle active class to show/hide nav links.\n navBar.classList.toggle('active');\n\n document.querySelector('html').classList.toggle('noscroll-mobile');\n })\n\n\n //ch-nav-dropdown\n //are there any child links?\n if (document.querySelector('.ch-nav-dropdown')) {\n\n\n const haveDropdowns = document.querySelectorAll('.ch-nav-dropdown');\n haveDropdowns.forEach(dd => {\n\n const ddToggle = dd.querySelector('.js-toggleDropdown');\n const ddLink = dd.querySelector('a');\n const dropdown = dd.querySelector('.ch-nav-dropdown-ul');\n\n //console.log(ddLink);\n\n /* ddLink.addEventListener(\"focus\", function(e){ \n console.log(ddLink);\n dropdown.classList.add('active');\n });*/\n\n\n\n ddToggle.addEventListener(\"click\", function(e){ \n ddToggle.classList.toggle('active');\n e.preventDefault();\n });\n });\n\n\n\n\n\n }\n\n\n //js-toggleDropdown\n\n}\n\n\n\n\n\n// 2. Contact Form - Textarea Count\n// --------------------------------------\n\nif (document.getElementById('Message')) {\n const txtArea = document.getElementById('Message'); // teaxtarea\n\n const txtCounter = document.getElementById('counter'); //counter output

\n\n txtArea.addEventListener('input', function(e) {\n const target = e.target;\n \n // Get the `maxlength` attribute\n const maxLength = target.getAttribute('maxlength');\n\n // Count the current number of characters\n const currentLength = target.value.length;\n\n if (currentLength < 1) {\n // If nothing is typed.\n txtCounter.innerHTML = '';\n\n // Set aria-hidden.\n txtCounter.setAttribute('aria-hidden', 'true');\n }\n else {\n // Output values if charecters typed.\n txtCounter.innerHTML = `${currentLength}/${maxLength}`;\n\n // Set aria-hidden.\n txtCounter.setAttribute('aria-hidden', 'false');\n \n }\n \n });\n\n}\n\n;\n\n\n// 3. Form ToolTip\n// ---------------------------\n\n// If the tooltip exists and if the screen size is tablet or less\n// we make the tooltip clickable as ;hover will not be available.\n\nif (document.querySelector(\"[role=tooltip]\") \n && document.querySelector(\".ch-required-asterisk\") \n && document.querySelector(\".ch-required-tooltip\") \n && window.outerWidth < 1144) {\n \n // Astyrisk element array.\n const tooltip = document.querySelectorAll(\".ch-required-asterisk\");\n\n tooltip.forEach(tip => {\n\n // The tooltip content.\n\n const parent = tip.parentElement;\n const child = parent.firstElementChild;\n const toolTipText = child.firstElementChild;\n\n // Add event listner to each asterisk.\n\n // When clicked show/hide the tooltip.\n\n // This is for mobile devices as hover doesn't work there.\n\n tip.addEventListener(\"click\", function(){\n\n // toolTipText.classList.toggle(\".ch-js-tooltip\");\n toolTipText.style.visibility = toolTipText.style.visibility === 'hidden' ? 'visible' : 'hidden';\n \n ///TO DO: Aria-Hidden.\n \n });\n \n });\n\n}\n\n\n\n// 3b. Form OtherField\n// ---------------------------\nif (document.querySelector(\".js-gatedHasOtherField\")) {\n \n\n var allOtherFields = document.querySelectorAll(\".js-gatedHasOtherField\").forEach(hasOtherFields => {\n var specifyOtherField = hasOtherFields.nextElementSibling;\n var theSelect = hasOtherFields.querySelector('select');\n checkOtherInput(theSelect, specifyOtherField);\n\n theSelect.addEventListener('change', () =>{\n\n checkOtherInput(theSelect, specifyOtherField);\n });\n });\n\n function checkOtherInput(theSelect, specifyOtherField){\n if(theSelect.value.toLowerCase().indexOf(\"other\") > -1){\n specifyOtherField.classList.remove('ch-visibility-hidden');\n } else {\n specifyOtherField.classList.add('ch-visibility-hidden');\n }\n }\n\n}\n\n\n\n\n// 4. Cookies Popup\n//--------------------------------------------\n\nglowCookies.start('en', { \n //analytics: 'G-XXX', \n //facebookPixel: 'XXX',\n //HotjarTrackingCode: 'xxx',\n policyLink: 'https://www.compass-group.co.uk/about/cookie-policy/',\n //customScript: [{ type: 'src', position: 'head', content: 'https://www.googletagmanager.com/gtag/js?id=GTM-PQ2WDC4' }],\n style: 3, // 1, 2, 3\n hideAfterClick: true,\n border: 'none', // or 'border'\n position: 'right', // or 'left'\n bannerDescription: 'We use cookies to improve content and to analyse web traffic. ',\n bannerLinkText: 'Read our cookies policy',\n bannerBackground: '#fff',\n // bannerColor: '#fff',\n // bannerHeading: '

Cookies

',\n acceptBtnText: 'Accept cookies',\n acceptBtnColor: '#fff',\n acceptBtnBackground: '#363541',\n // rejectBtnText: 'reject btn text',\n rejectBtnBackground: '#cbcbcb',\n rejectBtnColor: '#5d5d5d',\n rejectBtnText: 'Dismiss'\n // manageColor: 'white',\n // manageBackground: 'blue',\n // manageText: 'cookies text'\n});\n\n\n\n\n// 5. Footer Accordian on Mobile\n//--------------------------------------------\n\nif (document.querySelector('#footer-navigation')) {\n // If Footer menu is on the page.\n\n // button element\n const h = document.querySelectorAll('.ch-footer-title');\n\n h.forEach(el => {\n\n el.addEventListener(\"click\", function(){\n\n // UL list of links.\n const links = el.nextElementSibling;\n\n // Toggle class on and off to trigger SVG rotate.\n el.classList.toggle('active');\n \n // Toggle active class to show/hide nav links.\n links.classList.toggle('active');\n \n })\n\n \n });\n\n\n}\n\n\n\n\n// 6. Footer - Date\n//--------------------------------------------\n\nif (document.querySelector('#footer')) {\n\n // Lower Footer\n const footer = document.querySelector('.footer__lower');\n\n // Date\n const date = new Date().getUTCFullYear();\n\n footer.firstElementChild.innerHTML = \"© Chartwells \" + date;\n}\n\n// 7. PDF Block Show More\n//--------------------------------------------\n\nif (document.querySelector('.ch-pdf-cards') && document.querySelector('.ch-pdf-hidden')) {\n const MAX_PDFS = 3;\n const showMoreBtns = document.querySelectorAll('.ch-pdf-showmore');\n showMoreBtns.forEach(showMoreBtn => {\n showMoreBtn.addEventListener('click', function(ev) {\n ev.preventDefault();\n \n // select parent container and all child elements with hidden class\n const parent = showMoreBtn.closest('.ch-callout-cardslist');\n const hiddenPDFs = parent.querySelectorAll('.ch-pdf-hidden');\n\n // show the first 3 hidden PDFs\n let counter = 1;\n hiddenPDFs.forEach(pdf => {\n if (counter > MAX_PDFS) { return; }\n pdf.classList.remove('ch-pdf-hidden');\n counter++;\n });\n\n // if all PDFs are shown, hide the show more button\n if (hiddenPDFs.length <= MAX_PDFS) {\n showMoreBtn.style.display = 'none';\n }\n\n });\n });\n}"]}