{"version":3,"sources":["jsdelivr-header.js","/npm/joro-spider@1.1.1/index_cdn.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,SAAS,WAAW,GAClB,GAAsB,oBAAX,OAET,YADA,QAAQ,IAAI,mDAId,MAAM,EAAO,CAAC,EA8Ed,OA7EA,EAAK,WAAa,GAAQ,YAAc,GACxC,EAAK,eAAiB,GAAQ,gBAAkB,IAChD,EAAK,iBAAmB,GAAQ,kBAAoB,IACpD,EAAK,cAAgB,GAAQ,eAAiB,GAC9C,EAAK,YAAa,EAClB,EAAK,UAAW,EAChB,EAAK,WAAa,SAAS,GAAQ,EAEnC,EAAK,iBAAmB,SAAS,GAC/B,MAAM,EAAO,CAAC,EASd,OARA,EAAK,WAAa,EAAK,WACvB,EAAK,KAAO,EACZ,EAAK,UAAY,KAAK,MACtB,EAAK,IAAM,OAAO,SAAS,KAC3B,EAAK,YAAc,OAAO,WAC1B,EAAK,aAAe,OAAO,YAC3B,EAAK,OAAS,EAAK,OAEZ,CACT,EAEA,EAAK,mBAAqB,SAAe,GACvC,OAAO,IAAI,SAAQ,GAAW,WAAW,EAAS,IACpD,EAEA,EAAK,iBAAmB,SAAS,GAC/B,MAAM,EAAO,EAAK,iBAAiB,SACnC,EAAK,OAAS,EAAM,MACpB,EAAK,OAAS,EAAM,MACpB,EAAK,WAAW,EAClB,EAEA,EAAK,kBAAoB,SAAS,GAC3B,EAAK,aACR,EAAK,YAAa,EAClB,YAAW,WACP,EAAK,YAAa,EAClB,MAAM,EAAO,EAAK,iBAAiB,UACnC,EAAK,QAAU,OAAO,QACtB,EAAK,QAAU,OAAO,QACtB,EAAK,WAAW,EACpB,GAAG,EAAK,gBAEZ,EAEA,EAAK,MAAQ,iBACX,GAAI,EAAK,SACP,OAEA,EAAK,UAAW,EAGlB,IAAI,EAAa,aAAa,QAAQ,cACjC,IACH,EAAa,OAAO,aACpB,aAAa,QAAQ,aAAc,IAErC,EAAK,OAAS,EAEd,SAAS,iBAAiB,QAAS,EAAK,kBACxC,SAAS,iBAAiB,SAAU,EAAK,mBAEzC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,eAClB,EAAK,SAD4B,GAAK,EAAG,CAG9C,MAAM,EAAO,EAAK,iBAAiB,YACnC,EAAK,WAAW,SACV,EAAK,mBAAmB,EAAK,iBACrC,CACF,EAEA,EAAK,KAAO,WACV,EAAK,UAAW,EAChB,SAAS,oBAAoB,QAAS,EAAK,kBAC3C,SAAS,oBAAoB,SAAU,EAAK,kBAC9C,EAEO,CACT","file":"/npm/joro-spider@1.1.1/index_cdn.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/joro-spider@1.1.1/index_cdn.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","function createJoro(config) {\n  if (typeof window === 'undefined') {\n    console.log('Browser not detected - joro will not be created');\n    return;\n  }\n\n  const joro = {};\n  joro.spiderName = config?.spiderName || '';\n  joro.scrollThrottle = config?.scrollThrottle || 500;\n  joro.presenceThrottle = config?.presenceThrottle || 1000;\n  joro.presencePings = config?.presencePings || 60;\n  joro.scrollWait = false;\n  joro.isActive = false;\n  joro.streamData = function(data) { };\n\n  joro.createCommonData = function(type) {\n    const data = {};\n    data.spiderName = joro.spiderName;\n    data.type = type;\n    data.timestamp = Date.now();\n    data.url = window.location.href;\n    data.windowWidth = window.innerWidth;\n    data.windowHeight = window.innerHeight;\n    data.userId = joro.userId;\n\n    return data;\n  }\n\n  joro.delayPresencePings = function delay(time) {\n    return new Promise(resolve => setTimeout(resolve, time));\n  }\n\n  joro.handleClickEvent = function(event) {\n    const data = joro.createCommonData('click');\n    data.mouseX = event.pageX;\n    data.mouseY = event.pageY;\n    joro.streamData(data);\n  }\n\n  joro.handleScrollEvent = function(event) {\n    if (!joro.scrollWait) {\n      joro.scrollWait = true;\n      setTimeout(function () {\n          joro.scrollWait = false;\n          const data = joro.createCommonData('scroll');\n          data.scrollX = window.scrollX;\n          data.scrollY = window.scrollY;\n          joro.streamData(data);\n      }, joro.scrollThrottle);\n    }\n  }\n\n  joro.start = async function() {\n    if (joro.isActive) {\n      return;\n    } else {\n      joro.isActive = true;\n    }\n\n    let joroUserId = localStorage.getItem('joroUserId');\n    if (!joroUserId) {\n      joroUserId = crypto.randomUUID();\n      localStorage.setItem('joroUserId', joroUserId);\n    }\n    joro.userId = joroUserId;\n\n    document.addEventListener('click', joro.handleClickEvent);\n    document.addEventListener('scroll', joro.handleScrollEvent);\n\n    for (let i = 0; i < joro.presencePings; i += 1) {\n      if (!joro.isActive) break;\n\n      const data = joro.createCommonData('presence');\n      joro.streamData(data);\n      await joro.delayPresencePings(joro.presenceThrottle);\n    }\n  };\n\n  joro.stop = function() {\n    joro.isActive = false;\n    document.removeEventListener('click', joro.handleClickEvent);\n    document.removeEventListener('scroll', joro.handleScrollEvent);\n  }\n\n  return joro;\n}\n"]}