{"version":3,"sources":["webpack:///./javascript/_shared/components/paypalModal/index.js","webpack:///./javascript/_shared/ui-helpers/index.js","webpack:///./javascript/_shared/ui-helpers/schema.js"],"names":["params","URLSearchParams","window","location","search","paypalClientId","pageContextJavascript","get","getScript","then","modal","paypal","MessagesModal","updateProps","amount","offer","show","animateScrollLeft","pElement","finalLeft","element","id","left","scrollLeft","direction","setInterval","clearInterval","baseURL","protocol","host","breakpoint","getComputedStyle","document","querySelector","getPropertyValue","replace","camelCaseToDash","str","toLowerCase","capitalize","String","x","toUpperCase","debounce","callback","wait","immediate","timeout","callNow","next","apply","clearTimeout","setTimeout","getDevice","ua","navigator","userAgent","test","getDistanceFromTop","e","getBoundingClientRect","t","top","innerHeight","getQueryParams","stringToParse","lastIndexOf","substring","JSON","parse","key","value","decodeURIComponent","dollars","price","undefined","Intl","NumberFormat","style","currency","minimumFractionDigits","maximumFractionDigits","format","round","decimals","Number","Math","getOrientation","matchMedia","matches","getParents","el","parentParam","parentSelector","parents","p","parentNode","o","push","source","container","getElementsByTagName","resolve","scripts","querySelectorAll","length","script","createElement","async","onload","onreadystatechange","_","isAbort","readyState","setAttribute","src","appendChild","node","isLoaded","getAttribute","oldOnLoad","isIE11","MSInputMethodContext","documentMode","isInViewport","h","height","selector","matchesSelector","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","oMatchesSelector","call","smoothScroll","topOrLeft","horizontal","testSupportsSmoothScroll","supports","scrollTo","err","easingOutQuint","b","c","d","$t","hasNativeSmoothScroll","smoothScrollPolyfill","nodeParam","target","$node","startTime","Date","now","offset","gap","interrupt","cancel","cleanup","removeEventListener","addEventListener","passive","step","elapsed","requestAnimationFrame","scrollToSection","hash","yOffset","to","yCoordinate","pageYOffset","behavior","scrollTillYouReachElement","elmnt","timeToCheck","numberOfTries","bounding","numTries","scrollIntoView","time","numberTries","throttle","func","delay","args","schemaBreadcrumbLDJSON","schemaBreadcrumbLDJSONScript","breadcrumbs","breadcrumbArray","map","i","text","url","crumb","position","name","item","itemListElement","schema","type","innerHTML"],"mappings":"6IAAA,a,UAE6B,WAC3B,IAAMA,EAAS,IAAIC,gBAAgBC,OAAOC,SAASC,QAC7CC,EAAiBH,OAAOI,sBAAsBD,gBAAkB,GACzC,WAAzBL,EAAOO,IAAI,WAA6C,KAAnBF,IACvC,IAAAG,WAAA,2CAAqDH,EAArD,wBAA2FI,MAAK,WAAM,IAE9FC,EADaR,OAAXS,OACaC,cAAc,IACnCF,EAAMG,YAAY,CAChBC,OAAQ,IACRC,MAAO,wBAGTL,EAAMM,Y,4eCbZ,S,OACA,OACA,a,mDAGA,IAAMC,EAAoB,SAACC,EAAUC,GACnC,IAAMC,EAAUF,EACZG,SACAC,EAAOF,EAAQG,WACbC,EAAYL,EAAYG,EAAO,QAAU,OAgB/CD,EAAKI,aAfc,WACC,SAAdD,EACFF,GAAQ,GAERA,GAAQ,GAEVF,EAAQG,WAAaD,EACH,SAAdE,EACEF,GAAQH,GACVO,cAAcL,GAEPC,GAAQH,GACjBO,cAAcL,KAGW,KAGzBM,EAA4B,oBAAXzB,OAA4BA,OAAOC,SAASyB,SAAnD,KAAgE1B,OAAOC,SAAS0B,KAAS,GAEnGC,EAAa,iBACC,oBAAX5B,OACH,QACAA,OAAO6B,iBAAiBC,SAASC,cAAc,QAAS,WAAWC,iBAAiB,WAAWC,QAAQ,KAAM,KAE7GC,EAAkB,SAACC,GAAD,OAASA,EAAIF,QAAQ,uBAAwB,OAAOG,eAEtEC,EAAa,SAACF,GAAD,OACjBG,OAAOH,GACJC,cACAH,QAAQ,cAAc,SAACM,GAAD,OAAOA,EAAEC,kBAE9BC,EAAW,SAACC,EAAUC,GAA4B,IAAtBC,EAAsB,wDAClDC,EAAU,KACd,OAAO,WACL,IAAMC,EAAUF,IAAcC,EAExBE,EAAO,kBAAML,EAASM,WAAT,MACnBC,aAAaJ,GACbA,EAAUK,WAAWH,EAAMJ,GACvBG,GACFC,MAKAI,EAAY,WAChB,IAAMC,EAA0B,oBAAdC,UAA4B,GAAKA,UAAUC,UAAUlB,cACvE,MACE,kHAAkHmB,KAChHH,GAGK,SAEP,2JAA2JG,KACzJH,GAGK,QAEF,WAGHI,EAAqB,SAACC,GAAD,6DAAiBA,EAAEC,wBAARC,EAAX,EAAMC,IAAN,OAA+CD,EAAIE,aAExEC,EAAiB,WAAiE,IAAhEC,EAAgE,uDAAhD/D,OAAOC,SAASC,OAAO8D,YAAY,KAAO,EAC1E9D,EAAS6D,EAAcE,UAAUF,EAAcC,YAAY,KAAO,GACxE,OAAOE,KAAKC,MAAL,KAAgBjE,EAAO+B,QAAQ,KAAM,OAAOA,QAAQ,KAAM,OAA1D,MAAsE,SAACmC,EAAKC,GAAN,MACnE,KAARD,EAAaC,EAAQC,mBAAmBD,OAItCE,EAAU,SAACC,GACf,YAAcC,IAAVD,EAA4B,GACzB,IAAIE,UAAKC,aAAa,KAAM,CACjCC,MAAO,WACPC,SAAU,MACVC,sBAAuB,EACvBC,sBAAuB,IACtBC,OAAOR,IAGNS,EAAQ,SAACZ,EAAOa,GAAR,OAAqBC,OAAUC,KAAKH,MAASZ,EAAd,IAAuBa,GAAjC,KAAiDA,IAE9EG,EAAiB,WACrB,MAAsB,oBAAXrF,OACF,GACEA,OAAOsF,WAAW,4BAA4BC,QAChD,YAEF,YAGHC,EAAa,SAACC,EAAIC,GACtB,IAAIC,EAAiBD,OACEjB,IAAnBkB,IACFA,EAAiB7D,UAInB,IAFA,IAAM8D,EAAU,GACZC,EAAIJ,EAAGK,WACJD,IAAMF,GAAgB,CAC3B,IAAMI,EAAIF,EACVD,EAAQI,KAAKD,GACbF,EAAIE,EAAED,WAGR,OADAF,EAAQI,KAAKL,GACNC,GAGHtF,EAAY,SAAC2F,EAAQvD,GAAT,IAAmBwD,EAAnB,uDAA+BpE,SAASqE,qBAAqB,QAAQ,GAArE,OAChB,IAAI,EAAJ,SAAY,SAACC,GACX,IAAMC,EAAUvE,SAASwE,iBAAT,eAAyCL,EAAzC,MAChB,GAAII,EAAQE,OAAS,EAAG,CACtB,IAAIC,EAAS1E,SAAS2E,cAAc,UACpCD,EAAOE,MAAQ,EACfF,EAAOG,OAASH,EAAOI,mBAAqB,SAACC,EAAGC,IAC1CA,IAAYN,EAAOO,YAAc,kBAAkBxD,KAAKiD,EAAOO,eACjEP,EAAOG,OAASH,EAAOI,mBAAqB,KAC5CJ,EAAOQ,aAAa,iBAAkB,UACtCR,OAAS/B,EACJqC,IACCpE,GACFA,IAEF0D,OAINI,EAAOS,IAAMhB,EACbC,EAAUgB,YAAYV,OACjB,CACL,IAAMW,EAAOd,EAAQ,GACfe,EAAWD,EAAKE,aAAa,kBACnC,GAAID,GAAyB,WAAbA,EACV1E,GACFA,IAEF0D,QACK,CACL,IAAMkB,EAAYH,EAAKR,OACvBQ,EAAKR,OAAS,SAACE,EAAGC,GAChBQ,EAAUT,EAAGC,GACRA,IACCpE,GACFA,IAEF0D,YAONmB,EAA2B,oBAAXvH,WAAmCA,OAAOwH,wBAA0B1F,SAAS2F,cAE7FC,EAAe,SAACjE,GAAD,6DAA4BA,EAAEC,wBAAnBC,EAAX,EAAMC,IAAgB+D,EAAtB,EAAcC,OAAd,OAA0DjE,GAAKE,aAAeF,EAAIgE,GAAK,GAEtGpC,EAAU,SAACE,EAAIoC,GAAL,OAEZpC,EAAGF,SACHE,EAAGqC,iBACHrC,EAAGsC,mBACHtC,EAAGuC,oBACHvC,EAAGwC,uBACHxC,EAAGyC,kBACHC,KAAK1C,EAAIoC,IAEPO,EAAe,SAACjB,GAAgD,IA2DzC,EA3DDkB,EAA0C,uDAA9B,MAAOC,EAAuB,wDAC9DC,EAA2B,WAC/B,IAAIC,GAAW,EACf,IACc1G,SAAS2E,cAAc,OAC/BgC,SAAS,CACX7E,IAAK,EACL,eAEE,OADA4E,GAAW,EACJ,YAIX,MAAOE,IACT,OAAOF,GAEHG,EAAiB,SAACpG,EAAGoB,EAAGiF,EAAGC,EAAGC,GAElC,IAAIC,EAAKpF,EACT,OAAOkF,IAAME,EAAKA,EAAKD,EAAI,GAAKC,EAAKA,EAAKA,EAAKA,EAAK,GAAKH,GAErDI,EAAwBT,IACxBU,EAAuB,SAACC,EAAW9E,EAAK+E,GAC5C,IAAMC,EAAQF,EACRG,EAAYC,KAAKC,MACjBC,EAASrC,EAAK/C,GACdqF,EAAMN,EAASK,EAEjBE,GAAY,EAEVC,EAAS,WACbD,GAAY,EAEZE,KAGIA,EAAU,WACdR,EAAMS,oBAAoB,QAASF,GACnCP,EAAMS,oBAAoB,aAAcF,IAmB1C,OAHAP,EAAMU,iBAAiB,QAASH,EAAQ,CAAEI,SAAS,IACnDX,EAAMU,iBAAiB,aAAcH,EAAQ,CAAEI,SAAS,IAd3C,SAAPC,IACJ,IAAMC,EAAUX,KAAKC,MAAQF,EAEzBK,IADeO,EAhBJ,IAoBE,EACfL,KAGFR,EAAMhF,GAAOuE,EAAe,EAAGsB,EAAST,EAAQC,EAxBjC,KAyBfS,sBAAsBF,KAIxBA,GACOL,GAET,OAAIX,EACK7B,EAAKsB,UAAL,qBACJH,EAAa,OAAS,MAAQD,IAD1B,0BAEK,UAFL,IAKFY,EAAqB9B,EAAMmB,EAAa,aAAe,YAAaD,IAGvE8B,EAAkB,SAACC,GAAsB,IAAhBC,EAAgB,uDAAN,EACjCC,EAAKxI,SAASC,cAAcqI,GAClC,GAAIE,EAAI,CAEN,IAAMC,EAAcD,EAAG5G,wBAAwBE,IAAM5D,OAAOwK,YAC5DxK,OAAOyI,SAAS,CACd7E,IAAK2G,EAAcF,EACnBI,SAAU,aAKVC,EAA4B,SAA5BA,EAA6BC,EAAOC,EAAaC,GACrD,IAAMC,EAAWH,EAAMjH,wBACnBqH,EAAWF,GAAiB,EAC1BC,EAASlH,KAAO,GAAKkH,EAASlH,KAAO,IACzC+G,EAAMK,kBACND,GAAY,IAEI,GACd7H,YACE,SAAChC,EAAS+J,EAAMC,GACdR,EAA0BxJ,EAAS+J,EAAMC,KAE3CN,GAAe,IACfD,EACAC,EACAG,KAMFI,EAAW,SAACC,GAAsB,IAAhBC,EAAgB,uDAAR,IAC1BxI,EAAU,KACd,OAAO,WAAmB,kCAANyI,EAAM,qBAANA,EAAM,gBACnBzI,IACHA,EAAUK,YAAW,WACnBkI,EAAKjD,KAAL,MAAAiD,EAAA,WAAmBE,IACnBzI,EAAU,OACTwI,M,EAMPtK,oB,EACAU,U,EACAG,a,EACAM,kB,EACAG,a,EACAI,W,EACA8B,U,EACApB,Y,EACAK,qB,EACA6B,iB,EACAvB,iB,EACA0B,a,EACAlF,Y,EACAiH,S,EACAG,e,EACAnC,U,EACAN,Q,EACAsG,gD,EACAC,4D,EACArB,kB,EACA/B,e,EACAsC,4B,EACAS,Y,mMC3TK,IAAMI,EAAyBA,EAAzBA,uBAAyB,SAACE,GACrC,IAAMC,EAAkBD,EAAYE,KAAI,WAAgBC,GAAM,IAAnBC,EAAmB,EAAnBA,KAAMC,EAAa,EAAbA,IACzCC,EAAQ,CACZ,QAAS,WACTC,SAAUJ,EAAI,EACdK,KAAMJ,GAIR,OAFIC,IAAKC,EAAMG,KAAN,GAAgBJ,GAElBC,KAQT,OANe,aAAe,CAC5B,WAAY,qBACZ,QAAS,iBACTI,gBAAiBT,KAMuBF,EAA/BA,6BAA+B,SAACC,GAC3C,IAAMW,EAASb,EAAuBE,GAChCjF,EAAS1E,SAAS2E,cAAc,UAItC,OAHAD,EAAO6F,KAAO,sBACd7F,EAAO8F,UAAYF,EAEZ5F,I","file":"paypal-15fc7f1afadcf010054b.js","sourcesContent":["import { getScript } from 'ui-helpers';\r\n\r\nconst showPayPalCalculator = () => {\r\n const params = new URLSearchParams(window.location.search);\r\n const paypalClientId = window.pageContextJavascript.paypalClientId || '';\r\n if (params.get('source') === 'paypal' && paypalClientId !== '') {\r\n getScript(`https://www.paypal.com/sdk/js?client-id=${paypalClientId}&components=messages`).then(() => {\r\n const { paypal } = window;\r\n const modal = paypal.MessagesModal({});\r\n modal.updateProps({\r\n amount: 100,\r\n offer: 'PAY_LATER_LONG_TERM',\r\n });\r\n\r\n modal.show();\r\n });\r\n }\r\n};\r\nexport default showPayPalCalculator;\r\n","/* eslint-disable func-names */\r\nimport Intl from 'intl';\r\nimport 'intl/locale-data/jsonp/en-US';\r\nimport { schemaBreadcrumbLDJSON, schemaBreadcrumbLDJSONScript } from './schema';\r\n\r\n/* eslint-disable no-multi-assign */\r\nconst animateScrollLeft = (pElement, finalLeft) => {\r\n const element = pElement;\r\n let id;\r\n let left = element.scrollLeft;\r\n const direction = finalLeft > left ? 'right' : 'left';\r\n const scrollLeft = () => {\r\n if (direction === 'left') {\r\n left -= 15;\r\n } else {\r\n left += 15;\r\n }\r\n element.scrollLeft = left;\r\n if (direction === 'left') {\r\n if (left <= finalLeft) {\r\n clearInterval(id);\r\n }\r\n } else if (left >= finalLeft) {\r\n clearInterval(id);\r\n }\r\n };\r\n id = setInterval(scrollLeft, 10);\r\n};\r\n\r\nconst baseURL = typeof window !== 'undefined' ? `${window.location.protocol}//${window.location.host}` : '';\r\n\r\nconst breakpoint = () =>\r\n typeof window === 'undefined'\r\n ? 'small'\r\n : window.getComputedStyle(document.querySelector('body'), ':before').getPropertyValue('content').replace(/\"/g, '');\r\n\r\nconst camelCaseToDash = (str) => str.replace(/([a-zA-Z])(?=[A-Z])/g, '$1-').toLowerCase();\r\n\r\nconst capitalize = (str) =>\r\n String(str)\r\n .toLowerCase()\r\n .replace(/(^| )(\\w)/g, (x) => x.toUpperCase());\r\n\r\nconst debounce = (callback, wait, immediate = false) => {\r\n let timeout = null;\r\n return () => {\r\n const callNow = immediate && !timeout;\r\n // eslint-disable-next-line no-undef\r\n const next = () => callback.apply(this, arguments);\r\n clearTimeout(timeout);\r\n timeout = setTimeout(next, wait);\r\n if (callNow) {\r\n next();\r\n }\r\n };\r\n};\r\n\r\nconst getDevice = () => {\r\n const ua = typeof navigator === 'undefined' ? '' : navigator.userAgent.toLowerCase();\r\n if (\r\n /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(\r\n ua\r\n )\r\n ) {\r\n return 'tablet';\r\n } else if (\r\n /(mobi|ipod|phone|blackberry|opera mini|fennec|minimo|symbian|psp|nintendo ds|archos|skyfire|puffin|blazer|bolt|gobrowser|iris|maemo|semc|teashark|uzard)/.test(\r\n ua\r\n )\r\n ) {\r\n return 'phone';\r\n }\r\n return 'desktop';\r\n};\r\n\r\nconst getDistanceFromTop = (e, { top: t } = e.getBoundingClientRect()) => t - innerHeight;\r\n\r\nconst getQueryParams = (stringToParse = window.location.search.lastIndexOf('?') + 1) => {\r\n const search = stringToParse.substring(stringToParse.lastIndexOf('?') + 1);\r\n return JSON.parse(`{\"${search.replace(/&/g, '\",\"').replace(/=/g, '\":\"')}\"}`, (key, value) =>\r\n key === '' ? value : decodeURIComponent(value)\r\n );\r\n};\r\n\r\nconst dollars = (price) => {\r\n if (price === undefined) return '';\r\n return new Intl.NumberFormat('en', {\r\n style: 'currency',\r\n currency: 'USD',\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2,\r\n }).format(price);\r\n};\r\n\r\nconst round = (value, decimals) => Number(`${Math.round(`${value}e${decimals}`)}e-${decimals}`);\r\n\r\nconst getOrientation = () => {\r\n if (typeof window === 'undefined') {\r\n return '';\r\n } else if (window.matchMedia('(orientation: landscape)').matches) {\r\n return 'landscape';\r\n }\r\n return 'portrait';\r\n};\r\n\r\nconst getParents = (el, parentParam) => {\r\n let parentSelector = parentParam;\r\n if (parentSelector === undefined) {\r\n parentSelector = document;\r\n }\r\n const parents = [];\r\n let p = el.parentNode;\r\n while (p !== parentSelector) {\r\n const o = p;\r\n parents.push(o);\r\n p = o.parentNode;\r\n }\r\n parents.push(parentSelector);\r\n return parents;\r\n};\r\n\r\nconst getScript = (source, callback, container = document.getElementsByTagName('head')[0]) =>\r\n new Promise((resolve) => {\r\n const scripts = document.querySelectorAll(`script[src=\"${source}\"]`);\r\n if (scripts.length < 1) {\r\n let script = document.createElement('script');\r\n script.async = 1;\r\n script.onload = script.onreadystatechange = (_, isAbort) => {\r\n if (isAbort || !script.readyState || /loaded|complete/.test(script.readyState)) {\r\n script.onload = script.onreadystatechange = null;\r\n script.setAttribute('data-loadstate', 'loaded');\r\n script = undefined;\r\n if (!isAbort) {\r\n if (callback) {\r\n callback();\r\n }\r\n resolve();\r\n }\r\n }\r\n };\r\n script.src = source;\r\n container.appendChild(script);\r\n } else {\r\n const node = scripts[0];\r\n const isLoaded = node.getAttribute('data-loadstate');\r\n if (isLoaded && isLoaded === 'loaded') {\r\n if (callback) {\r\n callback();\r\n }\r\n resolve();\r\n } else {\r\n const oldOnLoad = node.onload;\r\n node.onload = (_, isAbort) => {\r\n oldOnLoad(_, isAbort);\r\n if (!isAbort) {\r\n if (callback) {\r\n callback();\r\n }\r\n resolve();\r\n }\r\n };\r\n }\r\n }\r\n });\r\n\r\nconst isIE11 = typeof window === 'undefined' ? false : !!window.MSInputMethodContext && !!document.documentMode;\r\n\r\nconst isInViewport = (e, { top: t, height: h } = e.getBoundingClientRect()) => t <= innerHeight && t + h >= 0;\r\n\r\nconst matches = (el, selector) =>\r\n (\r\n el.matches ||\r\n el.matchesSelector ||\r\n el.msMatchesSelector ||\r\n el.mozMatchesSelector ||\r\n el.webkitMatchesSelector ||\r\n el.oMatchesSelector\r\n ).call(el, selector);\r\n\r\nconst smoothScroll = (node, topOrLeft = 'top', horizontal = false) => {\r\n const testSupportsSmoothScroll = () => {\r\n let supports = false;\r\n try {\r\n const div = document.createElement('div');\r\n div.scrollTo({\r\n top: 0,\r\n get behavior() {\r\n supports = true;\r\n return 'smooth';\r\n },\r\n });\r\n // eslint-disable-next-line no-empty\r\n } catch (err) {}\r\n return supports;\r\n };\r\n const easingOutQuint = (x, t, b, c, d) => {\r\n // via https://github.com/tootsuite/mastodon/blob/f59ed3a4fafab776b4eeb92f805dfe1fecc17ee3/app/javascript/mastodon/scroll.js\r\n let $t = t;\r\n return c * (($t = $t / d - 1) * $t * $t * $t * $t + 1) + b;\r\n };\r\n const hasNativeSmoothScroll = testSupportsSmoothScroll();\r\n const smoothScrollPolyfill = (nodeParam, key, target) => {\r\n const $node = nodeParam;\r\n const startTime = Date.now();\r\n const offset = node[key];\r\n const gap = target - offset;\r\n const duration = 1000;\r\n let interrupt = false;\r\n\r\n const cancel = () => {\r\n interrupt = true;\r\n // eslint-disable-next-line no-use-before-define\r\n cleanup();\r\n };\r\n\r\n const cleanup = () => {\r\n $node.removeEventListener('wheel', cancel);\r\n $node.removeEventListener('touchstart', cancel);\r\n };\r\n\r\n const step = () => {\r\n const elapsed = Date.now() - startTime;\r\n const percentage = elapsed / duration;\r\n if (interrupt) {\r\n return;\r\n }\r\n if (percentage > 1) {\r\n cleanup();\r\n return;\r\n }\r\n $node[key] = easingOutQuint(0, elapsed, offset, gap, duration);\r\n requestAnimationFrame(step);\r\n };\r\n $node.addEventListener('wheel', cancel, { passive: true });\r\n $node.addEventListener('touchstart', cancel, { passive: true });\r\n step();\r\n return cancel;\r\n };\r\n if (hasNativeSmoothScroll) {\r\n return node.scrollTo({\r\n [horizontal ? 'left' : 'top']: topOrLeft,\r\n behavior: 'smooth',\r\n });\r\n }\r\n return smoothScrollPolyfill(node, horizontal ? 'scrollLeft' : 'scrollTop', topOrLeft);\r\n};\r\n\r\nconst scrollToSection = (hash, yOffset = 0) => {\r\n const to = document.querySelector(hash);\r\n if (to) {\r\n // to.scrollIntoView({ behavior: 'smooth' });\r\n const yCoordinate = to.getBoundingClientRect().top + window.pageYOffset;\r\n window.scrollTo({\r\n top: yCoordinate + yOffset,\r\n behavior: 'smooth',\r\n });\r\n }\r\n};\r\n\r\nconst scrollTillYouReachElement = (elmnt, timeToCheck, numberOfTries) => {\r\n const bounding = elmnt.getBoundingClientRect();\r\n let numTries = numberOfTries || 0;\r\n if (!(bounding.top >= 0 && bounding.top <= 1)) {\r\n elmnt.scrollIntoView();\r\n numTries += 1;\r\n // Check recursively and scroll till the element appears in the view port. Check three times and quit.\r\n if (numTries <= 3) {\r\n setTimeout(\r\n (element, time, numberTries) => {\r\n scrollTillYouReachElement(element, time, numberTries);\r\n },\r\n timeToCheck || 800,\r\n elmnt,\r\n timeToCheck,\r\n numTries\r\n );\r\n }\r\n }\r\n};\r\n\r\nconst throttle = (func, delay = 500) => {\r\n let timeout = null;\r\n return function (...args) {\r\n if (!timeout) {\r\n timeout = setTimeout(() => {\r\n func.call(this, ...args);\r\n timeout = null;\r\n }, delay);\r\n }\r\n };\r\n};\r\n\r\nexport {\r\n animateScrollLeft,\r\n baseURL,\r\n breakpoint,\r\n camelCaseToDash,\r\n capitalize,\r\n debounce,\r\n dollars,\r\n getDevice,\r\n getDistanceFromTop,\r\n getOrientation,\r\n getQueryParams,\r\n getParents,\r\n getScript,\r\n isIE11,\r\n isInViewport,\r\n matches,\r\n round,\r\n schemaBreadcrumbLDJSON,\r\n schemaBreadcrumbLDJSONScript,\r\n scrollToSection,\r\n smoothScroll,\r\n scrollTillYouReachElement,\r\n throttle,\r\n};\r\n","export const schemaBreadcrumbLDJSON = (breadcrumbs) => {\r\n const breadcrumbArray = breadcrumbs.map(({ text, url }, i) => {\r\n const crumb = {\r\n '@type': 'ListItem',\r\n position: i + 1,\r\n name: text,\r\n };\r\n if (url) crumb.item = `${url}`;\r\n\r\n return crumb;\r\n });\r\n const schema = JSON.stringify({\r\n '@context': 'https://schema.org',\r\n '@type': 'BreadcrumbList',\r\n itemListElement: breadcrumbArray,\r\n });\r\n\r\n return schema;\r\n};\r\n\r\nexport const schemaBreadcrumbLDJSONScript = (breadcrumbs) => {\r\n const schema = schemaBreadcrumbLDJSON(breadcrumbs);\r\n const script = document.createElement('script');\r\n script.type = 'application/ld+json';\r\n script.innerHTML = schema;\r\n\r\n return script;\r\n};\r\n"],"sourceRoot":""}