{"version":3,"file":"shared/chunks/6279.28227598f270c3d964ae.js","mappings":"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","sources":["webpack://dsposal.web/./assets-es6/common/js/gdpr.js","webpack://dsposal.web/./assets-es6/common/js/navbar.js","webpack://dsposal.web/./assets-es6/common/js/utils/cookies/cookies.js","webpack://dsposal.web/./assets-es6/common/js/utils/lazy/youtube-embed.js","webpack://dsposal.web/./assets-es6/common/js/utils/util.js","webpack://dsposal.web/./assets-es6/dsposal/js/core.js","webpack://dsposal.web/./assets-es6/dsposal/js/subscribe.js","webpack://dsposal.web/./assets-es6/yourdsposal/js/core.js","webpack://dsposal.web/./assets-es6/yourdsposal/js/directory/form.js","webpack://dsposal.web/./assets-es6/yourdsposal/js/directory/handlebar.js"],"sourcesContent":["import CookieConsent from \"./utils/cookies/cookies.js\";\r\n\r\nconst cookieConsent = new CookieConsent({\r\n title: \"This website uses cookies\",\r\n message:\r\n \"We use essential cookies to ensure the basic functionality of our website and to monitor performance and errors. These cookies do not collect any personal information and are necessary for the website to work properly.\" +\r\n \"

\" +\r\n \"We also offer the option to use analytics cookies.
\",\r\n delay: 1000,\r\n expires: 90,\r\n onAccept: function () {\r\n cookieCheck();\r\n },\r\n uncheckBoxes: true,\r\n acceptBtnLabel: \"Accept\",\r\n moreInfoLabel: \"Learn more\",\r\n advancedBtnLabel: \"Customise\",\r\n cookieTypesTitle: \"Select which cookies you want to accept\",\r\n fixedCookieTypeLabel: \"Functional\",\r\n fixedCookieTypeDesc:\r\n \"These help us remember your preferences, keep you logged in, and maintain key features of the site. They also inform us about errors and performance issues.\",\r\n cookieTypes: [\r\n {\r\n type: \"Analytics\",\r\n value: \"analytics\",\r\n description: \"We use analytics cookies to understand how visitors interact with our website. This helps us improve our site's functionality, content, and overall user experience. We use two analytics tools:\\n\" +\r\n \"\\n\" +\r\n \"Google Analytics 4: This service helps us analyze website traffic patterns, understand which pages are most popular, and see how visitors navigate our site. It provides aggregate data about user behavior without identifying individual users.\\n\" +\r\n \"\\n\" +\r\n \"Microsoft Clarity: This tool helps us visualize how users interact with our pages through heatmaps and session recordings. It allows us to identify usability issues and optimize our website design. All personal information is automatically redacted from the recordings.\\n\" +\r\n \"\\n\" +\r\n \"These analytics cookies are completely optional. They do not contain or collect any personally identifiable information, and the data is processed in a way that does not identify individual users. However, we only activate these cookies with your explicit consent.\",\r\n },\r\n ],\r\n});\r\n\r\nexport function cookieCheck() {\r\n if (cookieConsent.preference(\"analytics\") === true) {\r\n try {\r\n gtag(\"consent\", \"update\", {\r\n \"analytics_storage\": \"granted\"\r\n });\r\n window.clarity(\"consent\");\r\n } catch (e) {\r\n // Have an ad blocker\r\n console.warn(e);\r\n }\r\n }\r\n}\r\n","import { Breakpoints } from \"./utils/util\";\r\n\r\n\r\nfunction navbarInit($nav, scrollPosition, addClass) {\r\n //Need to check for negative scrollPosition for Safari\r\n if (scrollPosition <= 0)\r\n $nav.removeClass(\"headroom--pinned headroom--not-top\").addClass(addClass && \"bg-soft\");\r\n else\r\n $nav.addClass(\"headroom--pinned headroom--not-top\").removeClass(addClass && \"bg-soft\");\r\n}\r\n\r\nfunction navBarCollapse($navbarCollapse) {\r\n // Collapse navigation\r\n $navbarCollapse.on(\"hide.bs.collapse\", function () {\r\n var $this = $(this);\r\n $this.addClass(\"collapsing-out\");\r\n $(\"html, body\").css(\"overflow\", \"initial\");\r\n });\r\n\r\n $navbarCollapse.on(\"hidden.bs.collapse\", function () {\r\n var $this = $(this);\r\n $this.removeClass(\"collapsing-out\");\r\n });\r\n\r\n $navbarCollapse.on(\"shown.bs.collapse\", function () {\r\n $(\"html, body\").css(\"overflow\", \"hidden\");\r\n });\r\n\r\n $(\".navbar-main .dropdown\").on(\"hide.bs.dropdown\", function () {\r\n var $this = $(this).find(\".dropdown-menu\");\r\n\r\n $this.addClass(\"close\");\r\n\r\n setTimeout(function () {\r\n $this.removeClass(\"close\");\r\n }, 200);\r\n\r\n });\r\n\r\n $(\".dropdown-menu a.dropdown-toggle\").on(\"click\", function (/*e*/) {\r\n if (!$(this).next().hasClass(\"show\")) {\r\n $(this).parents(\".dropdown-menu\").first().find(\".show\").removeClass(\"show\");\r\n }\r\n var $subMenu = $(this).next(\".dropdown-menu\");\r\n $subMenu.toggleClass(\"show\");\r\n\r\n $(this).parents(\"li.nav-item.dropdown.show\").on(\"hidden.bs.dropdown\", function (/*e*/) {\r\n $(\".dropdown-submenu .show\").removeClass(\"show\");\r\n });\r\n\r\n return false;\r\n });\r\n\r\n if (window.innerWidth >= Breakpoints.lg) {\r\n $(\".nav-item.dropdown\").hover(function () {\r\n $(this).find(\"> .dropdown-toggle\").dropdown(\"toggle\");\r\n },\r\n function () {\r\n $(this).removeClass(\"show\");\r\n $(this).find(\".dropdown-menu\").removeClass(\"show\");\r\n $(this).find(\"> .dropdown-toggle\").attr(\"aria-expanded\", \"false\");\r\n });\r\n\r\n $(\".dropdown-menu a.dropdown-toggle\").hover(function () {\r\n if (!$(this).next().hasClass(\"show\")) {\r\n $(this).parents(\".dropdown-menu\").first().find(\".show\").removeClass(\"show\");\r\n }\r\n var $subMenu = $(this).next(\".dropdown-menu\");\r\n $subMenu.toggleClass(\"show\");\r\n\r\n $(this).parents(\"li.nav-item.dropdown.show\").on(\"hidden.bs.dropdown\", function (/*e*/) {\r\n $(\".dropdown-submenu .show\").removeClass(\"show\");\r\n });\r\n\r\n return false;\r\n },\r\n function () {\r\n $(this).removeClass(\"show\");\r\n $(this).find(\".dropdown-menu\").removeClass(\"show\");\r\n $(this).attr(\"aria-expanded\", false);\r\n });\r\n }\r\n}\r\n\r\n\r\nexport function initNav(addClass = true){\r\n navBarCollapse($(\".navbar-main .collapse\"));\r\n\r\n if ($(\"#navbar-main\").length) {\r\n \r\n // Allow for the reload browser 'jump' to happen before evaluating the scroll position\r\n setTimeout(function () {\r\n navbarInit($(\"#navbar-main\"), window.pageYOffset || document.documentElement.scrollTop, addClass);\r\n }, 50);\r\n \r\n // Scroll event\r\n $(window).bind(\"scroll\", function (/*e*/) {\r\n navbarInit($(\"#navbar-main\"), window.pageYOffset || document.documentElement.scrollTop, addClass);\r\n });\r\n }\r\n}","\r\nexport const setCookie = function (name, value, expiry_days) {\r\n var d = new Date();\r\n d.setTime(d.getTime() + (expiry_days * 24 * 60 * 60 * 1000));\r\n var expires = \"expires=\" + d.toUTCString();\r\n document.cookie = name + \"=\" + value + \";\" + expires + \";path=/\";\r\n return getCookie(name);\r\n};\r\n\r\nexport const getCookie = function (name) {\r\n var cookie_name = name + \"=\";\r\n var decodedCookie = decodeURIComponent(document.cookie);\r\n var ca = decodedCookie.split(\";\");\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == \" \") {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(cookie_name) === 0) {\r\n return c.substring(cookie_name.length, c.length);\r\n }\r\n }\r\n return false;\r\n};\r\n\r\nexport const dropCookie = function (value, expiryDays) {\r\n setCookie(\"cookieControl\", value, expiryDays);\r\n};\r\n\r\n\r\nclass CookieConsent {\r\n constructor(options) {\r\n this.options = Object.assign({\r\n element: \"body\",\r\n cookieTypes: [\r\n {\r\n type: \"Site Preferences\",\r\n value: \"preferences\",\r\n description: \"These are cookies that are related to your site preferences, e.g. remembering your username, site colours, etc.\"\r\n },\r\n {\r\n type: \"Analytics\",\r\n value: \"analytics\",\r\n description: \"Cookies related to site visits, browser types, etc.\"\r\n },\r\n {\r\n type: \"Marketing\",\r\n value: \"marketing\",\r\n description: \"Cookies related to marketing, e.g. newsletters, social media, etc\"\r\n }\r\n ],\r\n title: \"Cookies & Privacy\",\r\n message: \"Cookies enable you to use shopping carts and to personalize your experience on our sites, tell us which parts of our websites people have visited, help us measure the effectiveness of ads and web searches, and give us insights into user behavior so we can improve our communications and products.\",\r\n link: \"/privacy-policy\",\r\n delay: 2000,\r\n expires: 30,\r\n moreInfoLabel: \"More information\",\r\n acceptBtnLabel: \"Accept Cookies\",\r\n advancedBtnLabel: \"Customise Cookies\",\r\n cookieTypesTitle: \"Select cookies to accept\",\r\n fixedCookieTypeLabel: \"Necessary\",\r\n fixedCookieTypeDesc: \"These are cookies that are essential for the website to work correctly.\",\r\n onAccept: function () { },\r\n uncheckBoxes: false\r\n }, options);\r\n\r\n this.$element = document.querySelector(this.options.element);\r\n\r\n var myCookie = getCookie(\"cookieControl\");\r\n var myCookiePrefs = getCookie(\"cookieControlPrefs\");\r\n\r\n if (!myCookie || !myCookiePrefs) {\r\n // Remove all instances of the cookie message so it's not duplicated\r\n if (document.querySelector(\"#gdpr-cookie-message\")) {\r\n document.querySelector(\"#gdpr-cookie-message\").remove();\r\n }\r\n\r\n // Set the 'necessary' cookie type checkbox which can not be unchecked\r\n var cookieTypes = \"
  • \";\r\n\r\n // Generate list of cookie type checkboxes\r\n //let preferences = JSON.parse(myCookiePrefs);\r\n\r\n this.options.cookieTypes.forEach((field) => {\r\n if (field.type !== \"\" && field.value !== \"\") {\r\n var cookieTypeDescription = \"\";\r\n if (field.description !== false) {\r\n cookieTypeDescription = \" title=\\\"\" + field.description + \"\\\"\";\r\n }\r\n cookieTypes += \"
  • \";\r\n }\r\n });\r\n\r\n // Display cookie message on page\r\n var cookieMessage = \"\";\r\n setTimeout(function () {\r\n const container = document.createElement(\"div\");\r\n container.innerHTML = cookieMessage;\r\n this.$element.append(container);\r\n \r\n this.addEventListeners();\r\n\r\n // Think this might be a jquery specific \"event\"?\r\n // $(\"#gdpr-cookie-message\").hide().fadeIn(\"slow\", function () {\r\n // // If reinit'ing, open the advanced section of message\r\n // // and re-check all previously selected options.\r\n // if (event == \"reinit\") {\r\n // $(\"#gdpr-cookie-advanced\").trigger(\"click\");\r\n // $.each(preferences, function (index, field) {\r\n // $(\"input#gdpr-cookietype-\" + field).prop(\"checked\", true);\r\n // });\r\n // }\r\n // });\r\n\r\n }.bind(this), this.options.delay);\r\n\r\n } else {\r\n let cookieVal = true;\r\n if (myCookie == \"false\") {\r\n cookieVal = false;\r\n }\r\n dropCookie(cookieVal, this.options.expires);\r\n\r\n if(document.getElementById(\"gdpr-cookie-message\")){\r\n document.getElementById(\"gdpr-cookie-message\").remove();\r\n }\r\n }\r\n\r\n // Uncheck any checkboxes on page load\r\n if (this.options.uncheckBoxes === true) {\r\n this.$element.querySelectorAll(\"#gdpr-cookie-message input[type='checkbox']\").forEach(ele => {\r\n ele.removeAttribute(\"checked\");\r\n ele.checked = false;\r\n });\r\n }\r\n }\r\n\r\n cookie() {\r\n var preferences = getCookie(\"cookieControlPrefs\");\r\n return JSON.parse(preferences);\r\n }\r\n\r\n preference(cookieTypeValue) {\r\n var control = getCookie(\"cookieControl\");\r\n var preferences = getCookie(\"cookieControlPrefs\");\r\n preferences = JSON.parse(preferences);\r\n if (control === false) {\r\n return false;\r\n }\r\n if (preferences === false || preferences.indexOf(cookieTypeValue) === -1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n addEventListeners() {\r\n // When accept button is clicked drop cookie\r\n this.$element\r\n .querySelector(\"#gdpr-cookie-accept\")\r\n .addEventListener(\"click\", function () {\r\n // Set cookie\r\n dropCookie(true, this.options.expires);\r\n\r\n // If 'data-auto' is set to ON, tick all checkboxes because\r\n // the user hasn't clicked the customise cookies button\r\n this.$element.querySelectorAll(\"#gdpr-cookie-message input[name=\\\"gdpr[]\\\"][data-auto=\\\"on\\\"]\").forEach(ele => {\r\n ele.setAttribute(\"checked\", true);\r\n ele.checked = true;\r\n });\r\n\r\n // Save users cookie preferences (in a cookie!)\r\n var prefs = [];\r\n this.$element.querySelectorAll(\"#gdpr-cookie-message input[name='gdpr[]']\").forEach(ele => {\r\n // console.log(ele, ele.checked);\r\n if(ele.checked){\r\n prefs.push(ele.value);\r\n }\r\n });\r\n\r\n // console.log(prefs, JSON.stringify(prefs), encodeURIComponent(JSON.stringify(prefs)));\r\n setCookie(\"cookieControlPrefs\", encodeURIComponent(JSON.stringify(prefs)), 365);\r\n\r\n if(document.getElementById(\"gdpr-cookie-message\")){\r\n document.getElementById(\"gdpr-cookie-message\").remove();\r\n }\r\n\r\n // Run callback function\r\n this.options.onAccept.call(this);\r\n }.bind(this));\r\n\r\n // Toggle advanced cookie options\r\n this.$element\r\n .querySelector(\"#gdpr-cookie-advanced\")\r\n .addEventListener(\"click\", function () {\r\n this.$element.querySelectorAll(\"#gdpr-cookie-message input[name='gdpr[]']:not(:disabled)\").forEach(ele => {\r\n ele.setAttribute(\"data-auto\", \"off\");\r\n ele.removeAttribute(\"checked\");\r\n ele.checked = false;\r\n });\r\n\r\n const types = this.$element.querySelector(\"#gdpr-cookie-types\");\r\n this.$element.querySelector(\"#gdpr-cookie-advanced\").setAttribute(\"disabled\", true);\r\n\r\n types.style.maxHeight = \"300px\";\r\n }.bind(this));\r\n }\r\n\r\n}\r\n\r\nexport default CookieConsent;\r\n","/**\r\n * \r\n * @param {HTMLElement} element \r\n */\r\nexport function initYoutubeEmbed(element) {\r\n element.addEventListener(\"click\", function (e) {\r\n e.preventDefault();\r\n\r\n // Switch out the image with the iframe!\r\n const videoId = element.dataset.id;\r\n\r\n const embed = `https://www.youtube.com/embed/${videoId}?&autoplay=1`;\r\n\r\n const iframe = document.createElement(\"iframe\");\r\n iframe.src = embed;\r\n\r\n if (element.dataset.title) iframe.title = element.dataset.title;\r\n if (element.dataset.frameborder) iframe.setAttribute(\"frameborder\", element.dataset.title);\r\n if (element.dataset.allow) iframe.setAttribute(\"allow\", element.dataset.allow);\r\n if (element.dataset.allowfullscreen) iframe.setAttribute(\"allowfullscreen\", \"\");\r\n\r\n element.innerHTML = \"\"; // Remove the image and span!\r\n\r\n element.append(iframe);\r\n });\r\n}","\r\nexport const onLoad = (callback) => {\r\n document.addEventListener(\"DOMContentLoaded\", callback);\r\n};\r\n\r\nexport const Breakpoints = {\r\n sm: 540,\r\n md: 720,\r\n lg: 960,\r\n xl: 1140\r\n};\r\n\r\n\r\nexport const DateFormatsForDateFns = {\r\n ddmmyyyy: \"dd/MM/yyyy\",\r\n dateWithHourMins: \"dd/MM/yyyy HH:mm\"\r\n};\r\n\r\n/*\r\n * \r\n * @param {Element} btn \r\n * @param {string} state \r\n */\r\nexport function toggleSubmitButtonState(btn, state) {\r\n if (state === \"running\") {\r\n btn.classList.add(\"running\");\r\n btn.setAttribute(\"disabled\", true);\r\n } else {\r\n btn.classList.remove(\"running\");\r\n btn.removeAttribute(\"disabled\");\r\n }\r\n}","import { subscribeFormValidation } from \"./subscribe\";\r\nimport { initNav } from \"../../common/js/navbar\";\r\nimport { gdpr, cookieCheck } from \"../../common/js/gdpr\";\r\nimport 'lazysizes';\r\nimport \"../../common/js/pollyfill\";\r\nimport \"bootstrap\";\r\nimport { initYoutubeEmbed } from \"../../common/js/utils/lazy/youtube-embed\";\r\n\r\n$.fn.dropdown.Constructor.Default.popperConfig = {positionFixed: true};\r\n\r\nexport const initCore = (addClass = true, subForm = true) => {\r\n initNav(addClass);\r\n\r\n if (subForm) {\r\n subscribeFormValidation();\r\n }\r\n\r\n if (document.querySelectorAll(\".video-container .image-container[data-id]\").length > 0) {\r\n document.querySelectorAll(\".video-container .image-container[data-id]\").forEach(e => initYoutubeEmbed(e));\r\n }\r\n\r\n cookieCheck();\r\n};","import Swal from \"sweetalert2\";\r\nimport \"jquery-validation\";\r\n\r\nconst subscribeSubmission = (form, handler, validator) => {\r\n\r\n var $btn = $(handler.submitButton);\r\n $btn.addClass(\"running\").attr(\"disabled\", true);\r\n var url = $(form).attr(\"data-action\");\r\n\r\n $.ajax({\r\n url: url,\r\n method: \"GET\",\r\n data: { email: $(form).find('input[name=\"email\"]').val() },\r\n success: function (response) {\r\n if (response) {\r\n Swal.fire({\r\n title: \"Success!\",\r\n text: \"Thank you for subscribing to Dsposal news and articles\",\r\n icon: \"success\",\r\n confirmButtonText: \"Close\"\r\n });\r\n $btn.removeClass(\"running\").attr(\"disabled\", false);\r\n $(form).find('input[name=\"email\"]').val(null).trigger(\"change\");\r\n validator.resetForm();\r\n }\r\n else {\r\n Swal.fire({\r\n title: \"Ooops!\",\r\n text: \"Something went wrong\",\r\n icon: \"error\",\r\n confirmButtonText: \"Close\"\r\n });\r\n $btn.removeClass(\"running\").attr(\"disabled\", false);\r\n\r\n }\r\n },\r\n error: function (/*error*/) {\r\n Swal.fire({\r\n title: \"Ooops!\",\r\n text: \"Something went wrong\",\r\n icon: \"error\",\r\n confirmButtonText: \"Close\"\r\n });\r\n $btn.removeClass(\"running\").attr(\"disabled\", false);\r\n }\r\n });\r\n};\r\n\r\nexport const subscribeFormValidation = () => {\r\n\r\n $('[data-subscribe-form=\"mailchimp\"]').each(function(index, form) {\r\n const validator = $(form).validate({\r\n messages: {\r\n Email: {\r\n required: \"Please enter your email, you knob\"\r\n }\r\n },\r\n errorClass: \"is-invalid\",\r\n validClass: \"is-valid\",\r\n errorPlacement: function (error, element) {\r\n $(error).addClass(\"invalid-feedback text-white border-light rounded bg-danger p-1\");\r\n error.insertAfter(element);\r\n },\r\n submitHandler: function (form, e) {\r\n e.preventDefault();\r\n\r\n subscribeSubmission(form, this, validator);\r\n return false;\r\n }\r\n });\r\n });\r\n};\r\n","// Since YourDsposal uses bootstrap and the same \"core\" scripts as dsposal, we can just re-use their core script here.\r\nimport { onLoad } from \"../../common/js/utils/util\";\r\nimport {initCore as origInitCore } from \"../../dsposal/js/core\";\r\n\r\nonLoad(() => origInitCore(false, false));\r\n\r\n","import {addFiltersToUrl, execRequest} from \"./directory.utils\";\r\nimport \"jquery-validation\";\r\n\r\nconst $form = $(\"#directory-form\");\r\nvar geocoder;\r\n\r\nexport function initFormEvents() {\r\n $(\"#location\").on(\"input\", function (e) {\r\n $(\"#lat\").val(null);\r\n $(\"#lng\").val(null);\r\n });\r\n\r\n $(\"#location\").on(\"keydown\", function (e) {\r\n if (e.keyCode == 13) {\r\n if ($(\".pac-container:visible\").length) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction addFormValsToUrl(url) {\r\n url.searchParams.set(\"lat\", $(\"#lat\").val());\r\n url.searchParams.set(\"lng\", $(\"#lng\").val());\r\n url.searchParams.set(\"location\", $(\"#location\").val());\r\n\r\n if ($(\"#keyword\").val())\r\n url.searchParams.set(\"keyword\", $(\"#keyword\").val());\r\n else\r\n url.searchParams.delete(\"keyword\");\r\n\r\n if (document.getElementById(\"sTypes\")) {\r\n url.searchParams.set(\"sTypes\", document.getElementById(\"sTypes\").value);\r\n }\r\n\r\n if (document.getElementById(\"lTypes\")) {\r\n url.searchParams.set(\"lTypes\", document.getElementById(\"lTypes\").value);\r\n }\r\n\r\n return url;\r\n}\r\n\r\nfunction directorySearch(isLanding, form, handler) {\r\n var $btn = $(handler.submitButton);\r\n $btn.addClass(\"running\").attr(\"disabled\", true);\r\n var url = new URL(window.location.href);\r\n url = addFormValsToUrl(url);\r\n if (isLanding) {\r\n $btn.removeClass(\"running\").attr(\"disabled\", false);\r\n window.location.href = $(form).attr(\"action\") + url.search;\r\n } else {\r\n url = addFiltersToUrl(url);\r\n execRequest(url, \"newSearch\", true);\r\n $btn.removeClass(\"running\").attr(\"disabled\", false);\r\n }\r\n}\r\n\r\nexport function formValidation(isLanding = false) {\r\n var validator = $form.validate({\r\n rules: {\r\n location: {\r\n required: true\r\n }\r\n },\r\n messages: {\r\n location: {\r\n required: \"Please enter a location\",\r\n remote: \"Please enter a valid UK location\"\r\n }\r\n },\r\n errorClass: \"is-invalid\",\r\n validClass: \"is-valid\",\r\n errorPlacement: function (error, element) {\r\n $(error).addClass(\"invalid-feedback\");\r\n error.insertAfter($(element).parent(\".input-group\"));\r\n },\r\n submitHandler: function (form, e) {\r\n e.preventDefault();\r\n var handler = this;\r\n if (!$(\"#lat\").val() || !$(\"#lng\").val()) {\r\n try {\r\n geocoder.geocode({\"address\": $(\"#location\").val()}, function (results, status) {\r\n if (status == \"OK\" && results.length > 0 && results[0].geometry && results[0].geometry.location) {\r\n document.getElementById(\"lat\").value = results[0].geometry.location.lat();\r\n document.getElementById(\"lng\").value = results[0].geometry.location.lng();\r\n\r\n directorySearch(isLanding, form, handler);\r\n } else {\r\n validator.showErrors({\r\n \"location\": \"Please enter a valid UK location\"\r\n });\r\n }\r\n });\r\n } catch (e) {\r\n console.error(\"Geocoder failed, using England as default\", e);\r\n //Geocoder failed use England as default\r\n document.getElementById(\"lat\").value = 52.3555177;\r\n document.getElementById(\"lng\").value = -1.1743197;\r\n directorySearch(isLanding, form, handler);\r\n }\r\n } else\r\n directorySearch(isLanding, form, handler);\r\n\r\n return false;\r\n }\r\n });\r\n}\r\n\r\nexport function initPlacesAutocomplete() {\r\n var input = document.getElementById(\"location\");\r\n try {\r\n geocoder = new google.maps.Geocoder();\r\n var autoComplete = new google.maps.places.Autocomplete(input,\r\n {\r\n types: [\"geocode\"],\r\n componentRestrictions:\r\n {\r\n country: \"gb\"\r\n },\r\n fields: [\r\n \"address_components\",\r\n \"geometry\"\r\n ]\r\n });\r\n\r\n autoComplete.addListener(\"place_changed\",\r\n function () {\r\n var place = this.getPlace();\r\n if (place && place.geometry) {\r\n document.getElementById(\"lat\").value = place.geometry.location.lat();\r\n document.getElementById(\"lng\").value = place.geometry.location.lng();\r\n }\r\n\r\n });\r\n } catch (e) {\r\n console.error(\"Failed to load google maps\", e);\r\n }\r\n}\r\n\r\nexport {execRequest};\r\n","import Handlebars from \"handlebars/dist/handlebars.min.js\";\r\n\r\n// https://gist.github.com/tshi0912/31c5402b356d726a4694\r\n\r\n/* a helper to execute an IF statement with any expression\r\n USAGE:\r\n -- Yes you NEED to properly escape the string literals, or just alternate single and double quotes \r\n -- to access any global function or property you should use window.functionName() instead of just functionName()\r\n -- this example assumes you passed this context to your handlebars template( {name: 'Sam', age: '20' } ), notice age is a string, just for so I can demo parseInt later\r\n

    \r\n {{#xif \" this.name == 'Sam' && this.age === '12' \" }}\r\n BOOM\r\n {{else}}\r\n BAMM\r\n {{/xif}}\r\n

    \r\n*/\r\nHandlebars.registerHelper(\"xif\", function (expression, options) {\r\n return Handlebars.helpers[\"x\"].apply(this, [expression, options]) ? options.fn(this) : options.inverse(this);\r\n});\r\n\r\n/* a helper to execute javascript expressions\r\n USAGE:\r\n -- Yes you NEED to properly escape the string literals or just alternate single and double quotes \r\n -- to access any global function or property you should use window.functionName() instead of just functionName(), notice how I had to use window.parseInt() instead of parseInt()\r\n -- this example assumes you passed this context to your handlebars template( {name: 'Sam', age: '20' } )\r\n

    Url: {{x \" \\\"hi\\\" + this.name + \\\", \\\" + window.location.href + \\\" <---- this is your href,\\\" + \" your Age is:\" + window.parseInt(this.age, 10) \"}}

    \r\n OUTPUT:\r\n

    Url: hi Sam, http://example.com <---- this is your href, your Age is: 20

    \r\n*/\r\n\r\nHandlebars.registerHelper(\"x\", function (expression/*, options*/) {\r\n var fn = function () { }, result;\r\n try {\r\n fn = Function.apply(this, [\"window\", \"return \" + expression + \" ;\"]);\r\n } catch (e) {\r\n console.warn(\"{{x \" + expression + \"}} has invalid javascript\", e);\r\n }\r\n\r\n try {\r\n result = fn.bind(this)(window);\r\n } catch (e) {\r\n console.warn(\"{{x \" + expression + \"}} hit a runtime error\", e);\r\n }\r\n return result;\r\n});\r\n\r\nexport function renderTemplate(templateId, outputId, data) {\r\n //Grab the inline template\r\n var template = document.getElementById(templateId).innerHTML;\r\n\r\n //Compile the template\r\n var compiled_template = Handlebars.compile(template);\r\n\r\n //Render the data into the template\r\n var rendered = compiled_template(data);\r\n\r\n //Overwrite the contents of #target with the renderer HTML\r\n document.getElementById(outputId).innerHTML = rendered;\r\n}"],"names":["cookieConsent","CookieConsent","title","message","delay","expires","onAccept","cookieCheck","uncheckBoxes","acceptBtnLabel","moreInfoLabel","advancedBtnLabel","cookieTypesTitle","fixedCookieTypeLabel","fixedCookieTypeDesc","cookieTypes","type","value","description","preference","gtag","window","clarity","e","console","warn","navbarInit","$nav","scrollPosition","addClass","removeClass","navBarCollapse","$navbarCollapse","on","$","this","css","$this","find","setTimeout","next","hasClass","parents","first","toggleClass","innerWidth","Breakpoints","hover","dropdown","attr","initNav","length","pageYOffset","document","documentElement","scrollTop","bind","setCookie","name","expiry_days","d","Date","setTime","getTime","toUTCString","cookie","getCookie","cookie_name","ca","decodeURIComponent","split","i","c","charAt","substring","indexOf","dropCookie","expiryDays","options","Object","assign","element","link","$element","querySelector","myCookie","myCookiePrefs","cookieVal","getElementById","remove","forEach","field","cookieTypeDescription","cookieMessage","container","createElement","innerHTML","append","addEventListeners","querySelectorAll","ele","removeAttribute","checked","preferences","JSON","parse","cookieTypeValue","control","addEventListener","setAttribute","prefs","push","encodeURIComponent","stringify","call","types","style","maxHeight","initYoutubeEmbed","preventDefault","videoId","dataset","id","embed","iframe","src","frameborder","allow","allowfullscreen","onLoad","callback","sm","md","lg","xl","fn","Constructor","Default","popperConfig","positionFixed","initCore","subForm","subscribeFormValidation","each","index","form","validator","validate","messages","Email","required","errorClass","validClass","errorPlacement","error","insertAfter","submitHandler","handler","$btn","submitButton","url","ajax","method","data","email","val","success","response","Swal","text","icon","confirmButtonText","trigger","resetForm","subscribeSubmission","origInitCore","geocoder","$form","initFormEvents","keyCode","directorySearch","isLanding","URL","location","href","searchParams","set","delete","addFormValsToUrl","search","addFiltersToUrl","execRequest","formValidation","rules","remote","parent","geocode","results","status","geometry","lat","lng","showErrors","initPlacesAutocomplete","input","google","maps","Geocoder","places","Autocomplete","componentRestrictions","country","fields","addListener","place","getPlace","renderTemplate","templateId","outputId","template","rendered","Handlebars","compiled_template","expression","inverse","result","Function","apply"],"sourceRoot":""}