{"version":3,"file":"guides-e3595dce.min.js","sources":["../scripts/modal.js","../../node_modules/smoothscroll-polyfill/dist/smoothscroll.js","../scripts/guides/guides-hub.js","../scripts/macy.js","../scripts/guides/step-by-step-guide.js","../scripts/basic-search.js","../scripts/dragscroll.js"],"sourcesContent":["const isTouchDevice = () =>\n \"ontouchstart\" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\n\nconst MyEvent = {\n HIDDEN: \"hidden.generic.modal\",\n SHOWN: \"shown.generic.modal\",\n SHOW: \"show.generic.modal\",\n HIDE: \"hide.generic.modal\",\n};\n\nconst MyModals = [];\n\nclass Modal {\n constructor(element) {\n this._element = element;\n this._dialog = element.querySelector(\".modal-dialog\");\n this._backdrop = null;\n this._isShown = false;\n this._dismissModalHandler = this._dismissModalHandler.bind(this);\n this._backdropDismissHandler = this._backdropDismissHandler.bind(this);\n this._closeOnEscHandler = this._closeOnEscHandler.bind(this);\n }\n\n _getScrollbarSize() {\n if (this.scrollbarSize === undefined) {\n const scrollDiv = document.createElement(\"div\");\n scrollDiv.style.cssText = `\n width: 99px;\n height: 99px;\n overflow: scroll;\n position: absolute;\n top: -9999px;\n `;\n document.body.appendChild(scrollDiv);\n this.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n return this.scrollbarSize;\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n\n this._element.dispatchEvent(new CustomEvent(MyEvent.SHOW, { detail: { relatedTarget: relatedTarget } }));\n\n this._isShown = true;\n document.documentElement.classList.add(\"modal-open\");\n\n if (!isTouchDevice()) {\n document.querySelector(\"html\").style.marginRight =\n this._getScrollbarSize() + \"px\";\n }\n\n this._bindHandlers();\n this._showBackdrop();\n this._showElement();\n\n this._element.dispatchEvent(new CustomEvent(MyEvent.SHOWN, { detail: { relatedTarget: relatedTarget } }));\n }\n\n hide(event) {\n if (event) {\n event.preventDefault();\n }\n\n if (!this._isShown) {\n return;\n }\n\n this._element.dispatchEvent(new CustomEvent(MyEvent.HIDE));\n\n this._isShown = false;\n\n this._unbindHandlers();\n\n this._element.classList.remove(\"show\");\n\n this._element.style.display = \"none\";\n this._element.setAttribute(\"aria-hidden\", true);\n this._element.removeAttribute(\"aria-modal\");\n\n if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(\"show\");\n this._removeBackdrop();\n document.documentElement.classList.remove(\"modal-open\");\n }\n\n this._element.dispatchEvent(new CustomEvent(MyEvent.HIDDEN));\n document.querySelector(\"html\").style.removeProperty(\"margin-right\");\n }\n\n _bindHandlers() {\n if (this._element.querySelector('[data-dismiss=\"modal\"]')) {\n this._element\n .querySelectorAll('[data-dismiss=\"modal\"]')\n .forEach((item) => {\n item.addEventListener(\"click\", this._dismissModalHandler);\n });\n }\n\n this._element.addEventListener(\"click\", this._backdropDismissHandler);\n this._element.addEventListener(\"keydown\", this._closeOnEscHandler);\n }\n\n _unbindHandlers() {\n if (this._element.querySelector('[data-dismiss=\"modal\"]')) {\n this._element\n .querySelectorAll('[data-dismiss=\"modal\"]')\n .forEach((item) => {\n item.removeEventListener(\"click\", this._dismissModalHandler);\n });\n }\n\n this._element.removeEventListener(\"click\", this._backdropDismissHandler);\n this._element.removeEventListener(\"keydown\", this._closeOnEscHandler);\n }\n\n _dismissModalHandler(e) {\n this.hide(e);\n }\n\n _backdropDismissHandler(e) {\n if (e.target !== e.currentTarget) {\n return;\n }\n this.hide(e);\n }\n\n _closeOnEscHandler(e) {\n if (e.code === \"Escape\") {\n this.hide(e);\n }\n }\n\n _showElement() {\n this._element.style.display = \"block\";\n this._element.removeAttribute(\"aria-hidden\");\n this._element.setAttribute(\"aria-modal\", true);\n this._element.scrollTop = 0;\n this._element.classList.add(\"show\");\n this._element.focus();\n }\n\n _removeBackdrop() {\n const existingBackdrops = document.querySelectorAll('.modal-backdrop');\n existingBackdrops.forEach(backdrop => {\n backdrop.parentNode.removeChild(backdrop);\n });\n this._backdrop = null;\n }\n\n _showBackdrop() {\n if (!document.querySelector(\".modal-backdrop\")) {\n this._backdrop = document.createElement(\"div\");\n this._backdrop.className = \"modal-backdrop show\";\n document.body.prepend(this._backdrop);\n this._element.addEventListener(\"click\", this._backdropDismissHandler);\n }\n }\n}\n\nModal.hide = (modalElement) => {\n const modalObject = MyModals.find((modal) => modal._element === modalElement);\n\n if (modalObject) {\n modalObject.hide();\n }\n};\n\nModal.show = (modalElement, relatedTarget) => {\n if (!modalElement) {\n return;\n }\n const modalObject = MyModals.find((modal) => modal._element === modalElement);\n if (!modalObject) {\n const modal = new Modal(modalElement);\n MyModals.push(modal);\n modal.show(relatedTarget);\n } else {\n modalObject.show(relatedTarget);\n }\n\n // Scroll share url input element to the left when the modal opens\n var inputElement = document.getElementById('urlInput');\n if (inputElement) {\n var dealUrl = window.location.href;\n var inputElement = document.getElementById('urlInput');\n inputElement.value = dealUrl;\n inputElement.scrollLeft = 0;\n }\n};\n\nModal.init = (modalElement) => {\n if (!modalElement) {\n return;\n }\n const modalObject = MyModals.find((modal) => modal._element === modalElement);\n if (!modalObject) {\n const modal = new Modal(modalElement);\n MyModals.push(modal);\n }\n};\n\ndocument.addEventListener(\"click\", (event) => {\n const target = event.target.closest('[data-toggle=\"modal\"]');\n if (target) {\n const modalSelector = target.getAttribute(\"data-target\");\n const modalElement = document.querySelector(modalSelector);\n\n const modalObject = MyModals.find((modal) => modal._element === modalElement);\n if (!modalObject) {\n Modal.init(modalElement);\n }\n\n if (!modalElement.classList.contains(\"show\")) {\n Modal.show(modalElement, target);\n }\n }\n});\n\nexport default Modal;\n","/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n","import smoothscroll from \"smoothscroll-polyfill\";\nimport Modal from '../modal.js';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n // activate the smoothscroll polyfill\n // override any existing behaviour as most browsers have smooth scrolling disabled\n window[\"__forceSmoothScrollPolyfill__\"] = true;\n smoothscroll.polyfill();\n\n initVideoModals();\n\n function initVideoModals() {\n\n const ModalEvent = {\n HIDDEN: 'hidden.generic.modal',\n SHOWN: 'shown.generic.modal'\n }\n\n document.querySelectorAll(\"[id*='modal-']\").forEach((modalElement) => {\n modalElement.addEventListener(ModalEvent.HIDDEN, (event) => {\n const videoElement = event.currentTarget.querySelector('video');\n stopVideo(videoElement)\n });\n modalElement.addEventListener(ModalEvent.SHOWN, (event) => {\n const currentModal = event.currentTarget;\n const videoElement = currentModal.querySelector('video');\n\n playVideo(videoElement)\n\n videoElement.addEventListener('ended', (event) => {\n const currentVideo = event.currentTarget;\n const currentModal = currentVideo.closest(\".modal\")\n Modal.hide(currentModal);\n });\n\n });\n })\n }\n\n function stopVideo(videoElement) {\n videoElement.pause();\n videoElement.currentTime = 0;\n }\n\n function playVideo(videoElement) {\n videoElement.play();\n }\n\n var topbutton = document.getElementById(\"BackToTop\");\n\n if (typeof (topbutton) != 'undefined' && topbutton != null) {\n window.addEventListener(\"scroll\", scrollFunction);\n\n topbutton.addEventListener('click', function (e) {\n e.preventDefault();\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n });\n\n function scrollFunction() {\n var midpoint = (document.body.scrollHeight / 2) - (document.body.clientHeight)\n var midpointwebkit = (document.documentElement.scrollHeight / 2) - (document.documentElement.clientHeight)\n\n if (document.body.scrollTop > midpoint || document.documentElement.scrollTop > midpointwebkit) {\n topbutton.style.display = \"block\";\n } else {\n topbutton.style.display = \"none\";\n }\n }\n }\n\n});\n","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):t.Macy=n()}(this,function(){\"use strict\";function t(t,n){var e=void 0;return function(){e&&clearTimeout(e),e=setTimeout(t,n)}}function n(t,n){for(var e=t.length,o=e,r=[];e--;)r.push(n(t[o-e-1]));return r}function e(t,n){A(t,n,arguments.length>2&&void 0!==arguments[2]&&arguments[2])}function o(t){for(var n=t.options,e=t.responsiveOptions,o=t.keys,r=t.docWidth,i=void 0,s=0;s=a&&(i=n.breakAt[a],O(i,e))}return e}function r(t){for(var n=t.options,e=t.responsiveOptions,o=t.keys,r=t.docWidth,i=void 0,s=o.length-1;s>=0;s--){var a=parseInt(o[s],10);r<=a&&(i=n.breakAt[a],O(i,e))}return e}function i(t){var n=window.innerWidth,e={columns:t.columns};L(t.margin)?e.margin={x:t.margin.x,y:t.margin.y}:e.margin={x:t.margin,y:t.margin};var i=Object.keys(t.breakAt);return t.mobileFirst?o({options:t,responsiveOptions:e,keys:i,docWidth:n}):r({options:t,responsiveOptions:e,keys:i,docWidth:n})}function s(t){return i(t).columns}function a(t){return i(t).margin}function c(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],e=s(t),o=a(t).x,r=100/e;return n?1===e?\"100%\":(o=(e-1)*o/e,\"calc(\"+r+\"% - \"+o+\"px)\"):r}function u(t,n){var e=s(t.options),o=0,r=void 0,i=void 0;return 1===++n?0:(i=a(t.options).x,r=(i-(e-1)*i/e)*(n-1),o+=c(t.options,!1)*(n-1),\"calc(\"+o+\"% + \"+r+\"px)\")}function l(t){var n=0,e=t.container;m(t.rows,function(t){n=t>n?t:n}),e.style.height=n+\"px\"}function p(t,n){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=s(t.options),i=a(t.options).y;C(t,r,e),m(n,function(n){var e=0,r=parseInt(n.offsetHeight,10);isNaN(r)||(t.rows.forEach(function(n,o){n2&&void 0!==arguments[2]&&arguments[2],o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=s(t.options),i=a(t.options).y;C(t,r,e),m(n,function(n){t.lastcol===r&&(t.lastcol=0);var e=M(n,\"height\");e=parseInt(n.offsetHeight,10),isNaN(e)||(n.style.position=\"absolute\",n.style.top=t.rows[t.lastcol]+\"px\",n.style.left=\"\"+t.cols[t.lastcol],t.rows[t.lastcol]+=isNaN(e)?0:e+i,t.lastcol+=1,o&&(n.dataset.macyComplete=1))}),o&&(t.tmpRows=null),l(t)}var f=function t(n,e){if(!(this instanceof t))return new t(n,e);if(n=n.replace(/^\\s*/,\"\").replace(/\\s*$/,\"\"),e)return this.byCss(n,e);for(var o in this.selectors)if(e=o.split(\"/\"),new RegExp(e[1],e[2]).test(n))return this.selectors[o](n);return this.byCss(n)};f.prototype.byCss=function(t,n){return(n||document).querySelectorAll(t)},f.prototype.selectors={},f.prototype.selectors[/^\\.[\\w\\-]+$/]=function(t){return document.getElementsByClassName(t.substring(1))},f.prototype.selectors[/^\\w+$/]=function(t){return document.getElementsByTagName(t)},f.prototype.selectors[/^\\#[\\w\\-]+$/]=function(t){return document.getElementById(t.substring(1))};var m=function(t,n){for(var e=t.length,o=e;e--;)n(t[o-e-1])},v=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.running=!1,this.events=[],this.add(t)};v.prototype.run=function(){if(!this.running&&this.events.length>0){var t=this.events.shift();this.running=!0,t(),this.running=!1,this.run()}},v.prototype.add=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return!!n&&(Array.isArray(n)?m(n,function(n){return t.add(n)}):(this.events.push(n),void this.run()))},v.prototype.clear=function(){this.events=[]};var d=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.instance=t,this.data=n,this},y=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.events={},this.instance=t};y.prototype.on=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!(!t||!n)&&(Array.isArray(this.events[t])||(this.events[t]=[]),this.events[t].push(n))},y.prototype.emit=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t||!Array.isArray(this.events[t]))return!1;var e=new d(this.instance,n);m(this.events[t],function(t){return t(e)})};var g=function(t){return!(\"naturalHeight\"in t&&t.naturalHeight+t.naturalWidth===0)||t.width+t.height!==0},E=function(t,n){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return new Promise(function(t,e){if(n.complete)return g(n)?t(n):e(n);n.addEventListener(\"load\",function(){return g(n)?t(n):e(n)}),n.addEventListener(\"error\",function(){return e(n)})}).then(function(n){e&&t.emit(t.constants.EVENT_IMAGE_LOAD,{img:n})}).catch(function(n){return t.emit(t.constants.EVENT_IMAGE_ERROR,{img:n})})},w=function(t,e){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return n(e,function(n){return E(t,n,o)})},A=function(t,n){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return Promise.all(w(t,n,e)).then(function(){t.emit(t.constants.EVENT_IMAGE_COMPLETE)})},I=function(n){return t(function(){n.emit(n.constants.EVENT_RESIZE),n.queue.add(function(){return n.recalculate(!0,!0)})},100)},N=function(t){if(t.container=f(t.options.container),t.container instanceof f||!t.container)return!!t.options.debug&&console.error(\"Error: Container not found\");delete t.options.container,t.container.length&&(t.container=t.container[0]),t.container.style.position=\"relative\"},T=function(t){t.queue=new v,t.events=new y(t),t.rows=[],t.resizer=I(t)},_=function(t){var n=f(\"img\",t.container);window.addEventListener(\"resize\",t.resizer),t.on(t.constants.EVENT_IMAGE_LOAD,function(){return t.recalculate(!1,!1)}),t.on(t.constants.EVENT_IMAGE_COMPLETE,function(){return t.recalculate(!0,!0)}),t.options.useOwnImageLoader||e(t,n,!t.options.waitForImages),t.emit(t.constants.EVENT_INITIALIZED)},b=function(t){N(t),T(t),_(t)},L=function(t){return t===Object(t)&&\"[object Array]\"!==Object.prototype.toString.call(t)},O=function(t,n){L(t)||(n.columns=t),L(t)&&t.columns&&(n.columns=t.columns),L(t)&&t.margin&&!L(t.margin)&&(n.margin={x:t.margin,y:t.margin}),L(t)&&t.margin&&L(t.margin)&&t.margin.x&&(n.margin.x=t.margin.x),L(t)&&t.margin&&L(t.margin)&&t.margin.y&&(n.margin.y=t.margin.y)},M=function(t,n){return window.getComputedStyle(t,null).getPropertyValue(n)},C=function(t,n){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(t.lastcol||(t.lastcol=0),t.rows.length<1&&(e=!0),e){t.rows=[],t.cols=[],t.lastcol=0;for(var o=n-1;o>=0;o--)t.rows[o]=0,t.cols[o]=u(t,o)}else if(t.tmpRows){t.rows=[];for(var o=n-1;o>=0;o--)t.rows[o]=t.tmpRows[o]}else{t.tmpRows=[];for(var o=n-1;o>=0;o--)t.tmpRows[o]=t.rows[o]}},V=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=n?t.container.children:f(':scope > *:not([data-macy-complete=\"1\"])',t.container);o=Array.from(o).filter(function(t){return null!==t.offsetParent});var r=c(t.options);return m(o,function(t){n&&(t.dataset.macyComplete=0),t.style.width=r}),t.options.trueOrder?(h(t,o,n,e),t.emit(t.constants.EVENT_RECALCULATED)):(p(t,o,n,e),t.emit(t.constants.EVENT_RECALCULATED))},R=Object.assign||function(t){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:x;if(!(this instanceof t))return new t(n);this.options={},R(this.options,x,n),b(this)};return q.init=function(t){return console.warn(\"Depreciated: Macy.init will be removed in v3.0.0 opt to use Macy directly like so Macy({ /*options here*/ }) \"),new q(t)},q.prototype.recalculateOnImageLoad=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e(this,f(\"img\",this.container),!t)},q.prototype.runOnImageLoad=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=f(\"img\",this.container);return this.on(this.constants.EVENT_IMAGE_COMPLETE,t),n&&this.on(this.constants.EVENT_IMAGE_LOAD,t),e(this,o,n)},q.prototype.recalculate=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e&&this.queue.clear(),this.queue.add(function(){return V(t,n,e)})},q.prototype.remove=function(){window.removeEventListener(\"resize\",this.resizer),m(this.container.children,function(t){t.removeAttribute(\"data-macy-complete\"),t.removeAttribute(\"style\")}),this.container.removeAttribute(\"style\")},q.prototype.reInit=function(){this.recalculate(!0,!0),this.emit(this.constants.EVENT_INITIALIZED),window.addEventListener(\"resize\",this.resizer),this.container.style.position=\"relative\"},q.prototype.on=function(t,n){this.events.on(t,n)},q.prototype.emit=function(t,n){this.events.emit(t,n)},q.constants={EVENT_INITIALIZED:\"macy.initialized\",EVENT_RECALCULATED:\"macy.recalculated\",EVENT_IMAGE_LOAD:\"macy.image.load\",EVENT_IMAGE_ERROR:\"macy.image.error\",EVENT_IMAGE_COMPLETE:\"macy.images.complete\",EVENT_RESIZE:\"macy.resize\"},q.prototype.constants=q.constants,q});\n","import Macy from \"../macy.js\";\n\ndocument.addEventListener('DOMContentLoaded', () => {\n // init Macy for the legacy Guides homepage\n if (document.getElementById(\"grid\")) {\n const articlegrid = new Macy({\n container: \"#grid\",\n trueOrder: false,\n waitForImages: false,\n useOwnImageLoader: false,\n mobileFirst: false,\n columns: 2,\n margin: 30,\n\n breakAt: {\n 960: {\n margin: 20\n },\n 600: {\n columns: 1\n }\n }\n });\n\n articlegrid.reInit();\n articlegrid.recalculate();\n }\n});","(function () {\n\n window.addEventListener(\"load\", function () {\n\n //Added to clear on browser back button\n let manList = document.getElementById(\"manList\");\n if (manList) {\n manList.selectedIndex = 0;\n }\n let ranList = document.getElementById(\"ranList\");\n if (ranList) {\n ranList.selectedIndex = 0;\n }\n let minPrice = document.getElementById(\"PriceRangesForMinBudgetDropdown\");\n if (minPrice) {\n minPrice.selectedIndex = 0;\n }\n\n let priceRangesForMaxBudgetDropdown = document.getElementById(\"PriceRangesForMaxBudgetDropdown\");\n if (priceRangesForMaxBudgetDropdown) {\n priceRangesForMaxBudgetDropdown.selectedIndex = 0;\n }\n\n });\n\n window.addEventListener(\"beforeunload\", function (e) {\n // reset the manufacturer and range dropdowns on unload\n // ensures the dropdowns are reset if the user uses the browser back button\n let manList = document.getElementById(\"manList\");\n if (manList) {\n manList.selectedIndex = 0;\n }\n let ranList = document.getElementById(\"ranList\");\n if (ranList) {\n ranList.selectedIndex = 0;\n }\n });\n\n if (document.getElementById(\"manList\")) {\n document.getElementById(\"manList\").addEventListener(\"change\", function () {\n refreshRanges();\n });\n }\n\n if (document.getElementById(\"ranList\")) {\n document.getElementById(\"ranList\").addEventListener(\"change\", function () {\n refreshPriceRanges();\n });\n }\n\n [document.getElementById(\"PriceRangesForMinBudgetDropdown\"), document.getElementById(\"PriceRangesForMaxBudgetDropdown\")].forEach(function (item) {\n if (item) {\n item.addEventListener('change', function (e) {\n var pricesJson = document.getElementById(\"PriceRangeDataJson\").value;\n var prices = JSON.parse(pricesJson);\n populatePriceRange(prices);\n })\n }\n })\n\n function getPriceRangesCallback(data) {\n document.getElementById(\"PriceRangeDataJson\").value = JSON.stringify(data);\n populatePriceRange(data);\n }\n\n function refreshRanges() {\n var man = document.getElementById(\"manList\");\n var selectedManufacturer = man.options[man.selectedIndex].text;\n\n var ran = document.getElementById(\"ranList\");\n var selectedRange = ran.options[ran.selectedIndex].text;\n\n var xmlhttp = new XMLHttpRequest();\n xmlhttp.onreadystatechange = function () {\n if (xmlhttp.readyState === XMLHttpRequest.DONE) {\n if (xmlhttp.status === 200) {\n var modelsHtml = JSON.parse(xmlhttp.responseText);\n populateRangeDropdown(modelsHtml);\n refreshPriceRanges();\n }\n }\n };\n xmlhttp.open(\"POST\", \"/Service/GetAvailableRangesHome\", true);\n xmlhttp.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n xmlhttp.setRequestHeader('x-csrf-token', document.querySelector(\"[name=__RequestVerificationToken]\").value);\n xmlhttp.send(\"manufacturer=\" + selectedManufacturer + \"&financeType=Personal&selectedRange=\" + selectedRange);\n }\n\n function refreshPriceRanges() {\n var man = document.getElementById(\"manList\");\n var selectedManufacturer = man.options[man.selectedIndex].text;\n\n var ran = document.getElementById(\"ranList\");\n var selectedRange = ran.options[ran.selectedIndex].text;\n\n var xmlhttp = new XMLHttpRequest();\n xmlhttp.onreadystatechange = function () {\n if (xmlhttp.readyState === XMLHttpRequest.DONE) {\n if (xmlhttp.status === 200) {\n var prices = JSON.parse(xmlhttp.responseText);\n getPriceRangesCallback(prices);\n }\n }\n };\n xmlhttp.open(\"POST\", \"/Service/GetPriceRanges\", true);\n xmlhttp.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n xmlhttp.setRequestHeader('x-csrf-token', document.querySelector(\"[name=__RequestVerificationToken]\").value);\n xmlhttp.send(\"vehicleType=Both&manufacturer=\" + selectedManufacturer + \"&financeType=Personal&range=\" + selectedRange);\n }\n\n function populateRangeDropdown(modelsHtml) {\n document.getElementById(\"ranList\").innerHTML = modelsHtml;\n }\n\n function populatePriceRange(prices) {\n var priceTo = document.getElementById(\"PriceRangesForMaxBudgetDropdown\"),\n priceFrom = document.getElementById(\"PriceRangesForMinBudgetDropdown\"),\n selectedMinPrice = priceFrom.options[priceFrom.selectedIndex].value,\n selectedMaxPrice = priceTo.options[priceTo.selectedIndex].value,\n htmlDropDownFrom = \"\",\n htmlDropDownTo = \"\",\n pricesCount = prices.length,\n minPrice = parseInt(selectedMinPrice, 10),\n maxPrice = parseInt(selectedMaxPrice, 10);\n\n var minPriceOption = option(0, minPrice, \"£ min\");\n var maxPriceOption = option(0, maxPrice, \"£ max\");\n\n htmlDropDownFrom += minPriceOption;\n htmlDropDownTo += maxPriceOption;\n\n for (var i = 0; i < pricesCount; i++) {\n var value = prices[i];\n var text = \"£\" + value.toLocaleString()\n\n if (minPrice === 0 || value > minPrice) {\n htmlDropDownTo += option(value, maxPrice, text);\n }\n if (maxPrice === 0 || value < maxPrice) {\n htmlDropDownFrom += option(value, minPrice, text);\n }\n }\n priceTo.innerHTML = htmlDropDownTo;\n priceFrom.innerHTML = htmlDropDownFrom;\n }\n\n function option(value, selectedValue, text) {\n return \"\";\n }\n\n window[\"SearchDeals\"] = function (gaEventCategory) {\n var man = document.getElementById(\"manList\"),\n ran = document.getElementById(\"ranList\"),\n priceTo = document.getElementById(\"PriceRangesForMaxBudgetDropdown\"),\n priceFrom = document.getElementById(\"PriceRangesForMinBudgetDropdown\"),\n financeType = \"Personal\",\n rangeValue = ran.value,\n manufacturerValue = man.value,\n rangeText = ran.options[ran.selectedIndex].text,\n manufacturerText = man.options[man.selectedIndex].text,\n manufacturerPath = manufacturerValue !== \"\" ? manufacturerValue + \"/\" : \"\",\n rangePath = rangeValue !== \"\" ? rangeValue + \"/\" : \"\",\n priceFromValue = priceFrom.options[priceFrom.selectedIndex].value,\n priceToValue = priceTo.options[priceTo.selectedIndex].value;\n\n var vehicleType;\n if (rangeValue !== \"\") {\n vehicleType = ran.options[ran.selectedIndex].getAttribute(\"data-type\").replace(\"both\", \"car\");\n } else {\n vehicleType = man.options[man.selectedIndex].getAttribute(\"data-type\").replace(\"both\", \"car\");\n }\n\n redirectToSearchPage(financeType, priceFromValue, priceToValue, vehicleType, manufacturerPath, rangePath, manufacturerValue, rangeValue, manufacturerText, rangeText);\n }\n\n function redirectToSearchPage(financeType, priceFrom, priceTo, vehicleType, manufacturerPath, rangePath, manufacturerValue, rangeValue, manufacturerText, rangeText) {\n var searchResultUrl = '/' + vehicleType + '-leasing/' + manufacturerPath + rangePath;\n\n var searchParams = new URLSearchParams();\n searchParams.append(\"finance\", financeType.toLowerCase());\n if (priceFrom && priceFrom != 0) {\n searchParams.append(\"price_from\", priceFrom);\n }\n if (priceTo && priceTo != 0) {\n searchParams.append(\"price_to\", priceTo);\n }\n var querystring = searchParams.toString();\n if (querystring) {\n searchResultUrl = searchResultUrl + \"?\" + querystring;\n }\n\n window.location.href = searchResultUrl;\n }\n\n})();","/**\n * @fileoverview dragscroll - scroll area by dragging\n * @version 0.0.8\n * \n * @license MIT, see http://github.com/asvd/dragscroll\n * @copyright 2015 asvd \n */\n\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define(['exports'], factory);\n } else if (typeof exports !== 'undefined') {\n factory(exports);\n } else {\n factory((root.dragscroll = {}));\n }\n}(this, function (exports) {\n var _window = window;\n var _document = document;\n var mousemove = 'mousemove';\n var mouseup = 'mouseup';\n var mousedown = 'mousedown';\n var EventListener = 'EventListener';\n var addEventListener = 'add'+EventListener;\n var removeEventListener = 'remove'+EventListener;\n var newScrollX, newScrollY;\n\n var dragged = [];\n var reset = function (i, el) {\n for (i = 0; i < dragged.length;) {\n el = dragged[i++];\n el = el.container || el;\n el[removeEventListener](mousedown, el.md, 0);\n _window[removeEventListener](mouseup, el.mu, 0);\n _window[removeEventListener](mousemove, el.mm, 0);\n }\n\n // cloning into array since HTMLCollection is updated dynamically\n dragged = [].slice.call(_document.getElementsByClassName('dragscroll'));\n for (i = 0; i < dragged.length;) {\n (function(el, lastClientX, lastClientY, pushed, scroller, cont){\n (cont = el.container || el)[addEventListener](\n mousedown,\n cont.md = function(e) {\n if (!el.hasAttribute('nochilddrag') ||\n _document.elementFromPoint(\n e.pageX, e.pageY\n ) == cont\n ) {\n \n pushed = 1;\n lastClientX = e.clientX;\n lastClientY = e.clientY;\n\n \n }\n }, 0\n );\n\n _window[addEventListener](\n mouseup, cont.mu = function() {pushed = 0;}, 0\n );\n\n _window[addEventListener](\n mousemove,\n cont.mm = function(e) {\n if (pushed) {\n (scroller = el.scroller||el).scrollLeft -=\n newScrollX = (- lastClientX + (lastClientX=e.clientX));\n scroller.scrollTop -=\n newScrollY = (- lastClientY + (lastClientY=e.clientY));\n if (el == _document.body) {\n (scroller = _document.documentElement).scrollLeft -= newScrollX;\n scroller.scrollTop -= newScrollY;\n }\n }\n }, 0\n );\n })(dragged[i++]);\n }\n }\n\n \n if (_document.readyState == 'complete') {\n reset();\n } else {\n _window[addEventListener]('load', reset, 0);\n }\n\n exports.reset = reset;\n}));\n\n"],"names":["MyEvent","MyModals","Modal","element","_classCallCheck","this","_element","_dialog","querySelector","_backdrop","_isShown","_dismissModalHandler","bind","_backdropDismissHandler","_closeOnEscHandler","key","value","undefined","scrollbarSize","scrollDiv","document","createElement","style","cssText","body","appendChild","offsetWidth","clientWidth","removeChild","relatedTarget","dispatchEvent","CustomEvent","detail","documentElement","classList","add","window","navigator","maxTouchPoints","msMaxTouchPoints","marginRight","_getScrollbarSize","_bindHandlers","_showBackdrop","_showElement","event","preventDefault","_unbindHandlers","remove","display","setAttribute","removeAttribute","_removeBackdrop","removeProperty","_this","querySelectorAll","forEach","item","addEventListener","_this2","removeEventListener","e","hide","target","currentTarget","code","scrollTop","focus","backdrop","parentNode","className","prepend","modalElement","modalObject","find","modal","show","push","inputElement","getElementById","dealUrl","location","href","scrollLeft","init","closest","modalSelector","getAttribute","contains","polyfill","w","d","__forceSmoothScrollPolyfill__","userAgent","Element","HTMLElement","original","scroll","scrollTo","scrollBy","elementScroll","prototype","scrollElement","scrollIntoView","now","performance","Date","ROUNDING_TOLERANCE","RegExp","join","test","arguments","shouldBailOut","smoothScroll","call","left","scrollX","pageXOffset","top","scrollY","pageYOffset","_typeof","SyntaxError","behavior","scrollableParent","findScrollableParent","parentRects","getBoundingClientRect","clientRects","getComputedStyle","position","x","y","firstArg","TypeError","hasScrollableSpace","el","axis","clientHeight","scrollHeight","scrollWidth","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","host","step","context","currentX","currentY","k","elapsed","startTime","Math","cos","PI","startX","startY","method","scrollable","requestAnimationFrame","module","ModalEvent","smoothscroll","HIDDEN","SHOWN","videoElement","pause","currentTime","stopVideo","play","playVideo","currentModal","topbutton","midpoint","midpointwebkit","t","n","exports","length","o","r","A","i","innerWidth","columns","L","margin","Object","keys","breakAt","mobileFirst","options","responsiveOptions","docWidth","s","a","parseInt","O","c","u","l","container","m","rows","height","p","C","offsetHeight","isNaN","cols","dataset","macyComplete","tmpRows","h","lastcol","M","f","replace","byCss","selectors","split","getElementsByClassName","substring","getElementsByTagName","v","running","events","run","shift","Array","isArray","clear","instance","data","on","emit","g","naturalHeight","naturalWidth","width","E","Promise","complete","then","constants","EVENT_IMAGE_LOAD","img","catch","EVENT_IMAGE_ERROR","all","EVENT_IMAGE_COMPLETE","I","clearTimeout","setTimeout","EVENT_RESIZE","queue","recalculate","b","debug","console","error","N","resizer","T","useOwnImageLoader","waitForImages","EVENT_INITIALIZED","_","toString","getPropertyValue","V","children","from","filter","offsetParent","trueOrder","EVENT_RECALCULATED","R","assign","hasOwnProperty","useImageLoader","onInit","id","floor","random","apply","q","warn","recalculateOnImageLoad","runOnImageLoad","reInit","articlegrid","Macy","960","600","refreshPriceRanges","man","selectedManufacturer","selectedIndex","text","ran","selectedRange","xmlhttp","XMLHttpRequest","onreadystatechange","readyState","DONE","status","prices","JSON","parse","responseText","stringify","populatePriceRange","open","setRequestHeader","send","priceTo","priceFrom","selectedMinPrice","selectedMaxPrice","htmlDropDownFrom","htmlDropDownTo","pricesCount","minPrice","maxPrice","option","toLocaleString","innerHTML","selectedValue","manList","ranList","priceRangesForMaxBudgetDropdown","modelsHtml","populateRangeDropdown","pricesJson","gaEventCategory","rangeValue","manufacturerValue","manufacturerPath","rangePath","financeType","vehicleType","manufacturerText","rangeText","searchResultUrl","searchParams","URLSearchParams","append","toLowerCase","querystring","redirectToSearchPage","newScrollX","newScrollY","_window","_document","dragged","reset","md","mu","mm","slice","lastClientX","lastClientY","pushed","scroller","cont","hasAttribute","elementFromPoint","pageX","pageY","clientX","clientY","factory"],"mappings":"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"}