<html><head></head><body>{"version":3,"file":"index-DA3OpK7r.js","sources":["../../src/scripts/helpers/index.ts"],"sourcesContent":["import modules from '../modules';\r\nimport { breakpoints } from './variables';\r\n\r\nconst debounce = (callback: (args: unknown) =&gt; void, wait: number) =&gt; {\r\n  let timerId: ReturnType<typeof settimeout="">;\r\n  return (...args: [unknown]) =&gt; {\r\n    clearTimeout(timerId);\r\n    timerId = setTimeout(() =&gt; {\r\n      callback(...args);\r\n    }, wait);\r\n  };\r\n};\r\n\r\nconst throttle = (callback: (args: unknown) =&gt; void, wait: number) =&gt; {\r\n  let inThrottle: boolean;\r\n  return (...args: [unknown]) =&gt; {\r\n    if (!inThrottle) {\r\n      callback(...args);\r\n      inThrottle = true;\r\n      setTimeout(() =&gt; {\r\n        inThrottle = false;\r\n      }, wait);\r\n    }\r\n  };\r\n};\r\n// Map number x from range [a, b] to [c, d]\r\nconst map = (x: number, a: number, b: number, c: number, d: number) =&gt;\r\n  ((x - a) * (d - c)) / (b - a) + c;\r\n// Linear interpolation\r\nconst lerp = (a: number, b: number, n: number) =&gt; (1 - n) * a + n * b;\r\nconst calcWinsize = () =&gt; {\r\n  return { width: window.innerWidth, height: window.innerHeight };\r\n};\r\n\r\n// Gets the mouse position\r\nconst getMousePos = (e: { clientX: number; clientY: number }) =&gt; {\r\n  return {\r\n    x: e.clientX,\r\n    y: e.clientY\r\n  };\r\n};\r\n\r\nconst distance = (x1: number, y1: number, x2: number, y2: number) =&gt; {\r\n  const a = x1 - x2;\r\n  const b = y1 - y2;\r\n  return Math.hypot(a, b);\r\n};\r\n\r\nconst isDesktop = () =&gt; {\r\n  return window.matchMedia(`(min-width: ${breakpoints.desktop}px)`).matches;\r\n};\r\n\r\nconst isSmallDesktop = () =&gt; {\r\n  return window.matchMedia(`(min-width: ${breakpoints.smallDesktop}px)`).matches;\r\n};\r\n\r\nconst isTabletLandscape = () =&gt; {\r\n  return window.matchMedia(`(min-width: ${breakpoints.tabletLandscape}px)`).matches;\r\n};\r\n\r\nconst isTablet = () =&gt; {\r\n  return window.matchMedia(\r\n    `(min-width: ${breakpoints.tablet}px) and (max-width: ${breakpoints.desktop - 1}px)`\r\n  ).matches;\r\n};\r\n\r\nconst isMobile = () =&gt; {\r\n  return window.matchMedia(`(max-width: ${breakpoints.desktop - 1}px)`).matches;\r\n};\r\n\r\nconst prefersReducedMotion = () =&gt; {\r\n  return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n};\r\n\r\nconst getBrowserName = () =&gt; {\r\n  const userAgent = navigator.userAgent;\r\n  let browserName;\r\n  if (userAgent.match(/chrome|chromium|crios/i)) {\r\n    browserName = 'chrome';\r\n  } else if (userAgent.match(/firefox|fxios/i)) {\r\n    browserName = 'firefox';\r\n  } else if (userAgent.match(/safari/i)) {\r\n    browserName = 'safari';\r\n  } else if (userAgent.match(/opr\\//i)) {\r\n    browserName = 'opera';\r\n  } else if (userAgent.match(/edg/i)) {\r\n    browserName = 'edge';\r\n  } else {\r\n    browserName = 'No browser detection';\r\n  }\r\n  return browserName;\r\n};\r\n\r\nconst iOS = () =&gt; {\r\n  return (\r\n    ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(\r\n      navigator.platform\r\n    ) ||\r\n    // iPad on iOS 13 detection\r\n    (navigator.userAgent.includes('Mac') &amp;&amp; 'ontouchend' in document)\r\n  );\r\n};\r\nexport {\r\n  iOS,\r\n  debounce,\r\n  throttle,\r\n  map,\r\n  lerp,\r\n  calcWinsize,\r\n  getMousePos,\r\n  distance,\r\n  isDesktop,\r\n  isSmallDesktop,\r\n  isTablet,\r\n  isMobile,\r\n  isTabletLandscape,\r\n  prefersReducedMotion,\r\n  getBrowserName\r\n};\r\n\r\nexport const loadDeferredModules = async (el: Element) =&gt; {\r\n  const deferredModules = el.querySelectorAll<htmlelement>(\r\n    '[data-module]:not([data-loaded=\"true\"])'\r\n  );\r\n  deferredModules.forEach(node =&gt; {\r\n    const mappedModule = modules.find(m =&gt; m.name === node.dataset.module);\r\n    if (mappedModule) {\r\n      mappedModule\r\n        .loader?.()\r\n        .then(module =&gt; {\r\n          mappedModule.render?.(module.default, [node] as unknown as NodeListOf<htmlelement>);\r\n          node.dataset.loaded = 'true';\r\n        })\r\n        .catch(err =&gt; {\r\n          console.log(`There was an error loading your module's javascript file - ${err}`);\r\n        });\r\n    }\r\n  });\r\n};\r\n\r\nexport const getEnvGQLUrl = () =&gt; {\r\n  const baseUrl = import.meta.env.VITE_OPTIGRAPHQL_BASE_URL as string;\r\n\r\n  if (document.querySelector('body')?.getAttribute('graph-env') === 'prd') {\r\n    return `${baseUrl}${import.meta.env.VITE_OPTIGRAPHQL_PROD_KEY}`;\r\n  } else if (document.querySelector('body')?.getAttribute('graph-env') === 'stg') {\r\n    return `${baseUrl}${import.meta.env.VITE_OPTIGRAPHQL_STG_KEY}`;\r\n  } else {\r\n    return `${baseUrl}${import.meta.env.VITE_OPTIGRAPHQL_INTE_KEY}`;\r\n  }\r\n};\r\n"],"names":["debounce","callback","wait","timerId","args","isDesktop","breakpoints","isSmallDesktop","isTabletLandscape","isTablet","isMobile","prefersReducedMotion","iOS","getEnvGQLUrl","baseUrl","_a","_b"],"mappings":"qCAGM,MAAAA,EAAW,CAACC,EAAmCC,IAAiB,CAChE,IAAAC,EACJ,MAAO,IAAIC,IAAoB,CAC7B,aAAaD,CAAO,EACpBA,EAAU,WAAW,IAAM,CACzBF,EAAS,GAAGG,CAAI,GACfF,CAAI,CACT,CACF,EAqCMG,EAAY,IACT,OAAO,WAAW,eAAeC,EAAY,OAAO,KAAK,EAAE,QAG9DC,EAAiB,IACd,OAAO,WAAW,eAAeD,EAAY,YAAY,KAAK,EAAE,QAGnEE,EAAoB,IACjB,OAAO,WAAW,eAAeF,EAAY,eAAe,KAAK,EAAE,QAGtEG,EAAW,IACR,OAAO,WACZ,eAAeH,EAAY,MAAM,uBAAuBA,EAAY,QAAU,CAAC,KAAA,EAC/E,QAGEI,EAAW,IACR,OAAO,WAAW,eAAeJ,EAAY,QAAU,CAAC,KAAK,EAAE,QAGlEK,EAAuB,IACpB,OAAO,WAAW,kCAAkC,EAAE,QAsBzDC,EAAM,IAER,CAAC,iBAAkB,mBAAoB,iBAAkB,OAAQ,SAAU,MAAM,EAAE,SACjF,UAAU,QACZ,GAEC,UAAU,UAAU,SAAS,KAAK,GAAK,eAAgB,SAyC/CC,EAAe,IAAM,SAC1B,MAAAC,EAAU,6CAEhB,QAAIC,EAAA,SAAS,cAAc,MAAM,IAA7B,YAAAA,EAAgC,aAAa,gBAAiB,MACzD,GAAGD,CAAO,qDACRE,EAAA,SAAS,cAAc,MAAM,IAA7B,YAAAA,EAAgC,aAAa,gBAAiB,MAChE,GAAGF,CAAO,mDAEV,GAAGA,CAAO,kDAErB"}</htmlelement></htmlelement></typeof><style>
.hidden {
display: none;
}
</style>

<a href="http://www.cceweb.net"  class="hidden">赌博网站推荐</a>
<a href="http://web-sitemap.musicadobem.com" class="hidden">灵思云途</a>
<a href="http://www.w-catering.com"  class="hidden">Euro-2024-info@w-catering.com</a>
<a href="http://web-sitemap.alanbinks.net" class="hidden">微饭</a>
<a href="http://www.ehulk.net"  class="hidden">足球博彩平台</a>
<a href="http://www.najwc.com"  class="hidden">Venetian-gambling-sales@najwc.com</a>
<a href="http://www.castingmoldingmachine.com"  class="hidden">New-Portuguese-gambling-customerservice@castingmoldingmachine.com</a>
<a href="http://www.pronewport.com"  class="hidden">太阳城娱乐城</a>
<a href="http://www.cesametal.net"  class="hidden">体育博彩</a>
<a href="<a href="http://www.cesametal.net"  class="hidden">体育博彩</a>" class="hidden">小猪罐子</a>
<a href="http://www.hairstylescn.com"  class="hidden">bbin-help@hairstylescn.com</a>
<a href="http://www.c178.net"  class="hidden">在线博彩平台</a>
<a href="http://www.muurausahvenlampi.com"  class="hidden">皇冠体育网址</a>
<a href="http://www.cceweb.net"  class="hidden">Gaming-platform-website-media@cceweb.net</a>
<a href="http://www.noujcf.com"  class="hidden">博彩app</a>
<a href="http://www.ruansaen.com"  class="hidden">Sun-City-info@ruansaen.com</a>
<a href="http://www.silvamkt.com"  class="hidden">Crown-Sports-official-website-customerservice@silvamkt.com</a>
<a href="http://www.nbzhiai.com"  class="hidden">皇冠体育投注</a>
<a href="http://www.symmjg.com"  class="hidden">皇冠体育</a>
<a href="http://www.xqykl.net"  class="hidden">体育平台</a>

<a href="https://es-la.facebook.com/public/✔️网址:la666.net✔️科普一下sb沙巴体育投注的百科✔️网址:la666.net✔️科普一下sb沙巴体育投注的百科" class="hidden">大眼仔旭</a>
<a href="https://acrmc.com/search/✔️最新网址:ad22.net✔️科普一下365体育娱乐平台网址的百科✔️最新网址:ad22.net✔️科普一下365体育娱乐平台网址的百科" class="hidden">第七在线游戏网</a>
<a href="https://stock.adobe.com/search?k=✔️网址:ad11.net✔️十大网投平台排名-维基百科.blk" class="hidden">川味坊四川美食网</a>
<a href="https://m.facebook.com/public/✔️网址:la666.net✔️科普一下新皇冠现金官方的百科✔️网址:la666.net✔️科普一下新皇冠现金官方的百科.yju" class="hidden">广西师范大学附属中学</a>
<a href="https://tw.dictionary.yahoo.com/dictionary?p=✔️网址:la666.net✔️乐投体育letou-乐投体育letou官方网站.fga" class="hidden">软件盒子</a>
<a href="https://www.deep6gear.com/catalogsearch/result/?q=极速赛车彩票平台(中国)有限公司✔️网址:la666.net✔️极速赛车彩票平台(中国)有限公司✔️网址:la666.net✔️.prp" class="hidden">东方视频</a>
<a href="https://www.deep6gear.com/catalogsearch/result/?q=✔️官方网址:la777.net✔️贝博体彩app" class="hidden">58同城鄂尔多斯分类信息网</a>
<a href="https://stock.adobe.com/search/images?k=推荐在线赌博全球最大网赌网站>>✔️最新网址:ad22.net✔️手输<<" class="hidden">武术百分</a>
<a href="https://tw.dictionary.yahoo.com/dictionary?p=菲律宾网赌合法平台(中国)有限公司✔️最新网址:la55.net✔️.wae" class="hidden">去哪儿团购</a>
<a href="https://stock.adobe.com/search?k=✔️最新网址:ad22.net✔️最大的菠菜的平台平台介绍✔️最新网址:ad22.net✔️最大的菠菜的平台平台介绍.tqb" class="hidden">山西医科大学第二医院</a>

<a href="/CN/oprbdt-223010" class="hidden">3D试衣科技</a>
<a href="/CN/dzygvl-866516.html" class="hidden">搜狐买车宝</a>
<a href="/sitemap.xml" class="hidden">站点地图</a>
<a href="/sttcs/hot-news/Bhutanese.html" class="hidden">咸阳职业技术学院</a>
<a href="/news/pmflwj-354275.html" class="hidden">JUKSY </a>


</body></html>