{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname } from 'next/navigation';\nimport Script from 'next/script';\nimport { useReportWebVitals } from 'next/web-vitals';\nimport { useClickIdPersistence } from '../hooks/use-click-id-persistence';\nimport { useOutboundClickAnalytics } from '../hooks/use-outbound-click-analytics';\nimport { useWebAnalytics } from '../hooks/use-web-analytics';\nimport type { PixelId as MetaPixelId } from '../track/fbq';\nimport type { GaId, GtmId } from '../track/gtag';\nimport { track } from '../track/index';\nimport type { PixelId as RedditPixelId } from '../track/rdt';\n\ninterface Props {\n  gaId?: GaId;\n  gaSrc?: string;\n  gtmId?: GtmId;\n  hotjarId?: `${number}`;\n  metaPixelId?: MetaPixelId;\n  redditPixelId?: RedditPixelId;\n  linkedInPartnerId?: `${number}`;\n  facebookAppId?: string;\n  nonce?: string;\n  debugMode?: boolean;\n  reportWebVitals?: boolean;\n}\n\nexport function Analytics({\n  gaId,\n  gaSrc,\n  nonce,\n  debugMode,\n  metaPixelId,\n  hotjarId,\n  redditPixelId,\n  linkedInPartnerId,\n  facebookAppId,\n  reportWebVitals = true,\n}: Props) {\n  useClickIdPersistence();\n\n  const pathname = usePathname();\n  useWebAnalytics(pathname);\n  useOutboundClickAnalytics();\n\n  useReportWebVitals((metric) => {\n    if (!reportWebVitals) return;\n    const properties = {\n      value: metric.delta,\n      metric_id: metric.id,\n      metric_value: metric.value,\n      metric_delta: metric.delta,\n      metric_rating: metric.rating,\n      metric_navigation_type: metric.navigationType,\n      non_interaction: true, // avoids affecting bounce rate.\n    };\n    track(metric.name, properties);\n  });\n\n  return (\n    <>\n      {facebookAppId && <meta property=\"fb:app_id\" content={facebookAppId} />}\n      {gaId && (\n        <>\n          <Script\n            id=\"gtag\"\n            nonce={nonce}\n            src={gaSrc ?? `https://www.googletagmanager.com/gtag/js?id=${gaId}`}\n          />\n          <Script\n            nonce={nonce}\n            id=\"gtag-init\"\n            dangerouslySetInnerHTML={{\n              __html: `\n              window.dataLayer = window.dataLayer || [];\n              function gtag(){dataLayer.push(arguments);}\n              gtag('js', new Date());\n              gtag('config', '${gaId}'${debugMode ? \" ,{ 'debug_mode': true }\" : ''});\n            `,\n            }}\n          />\n        </>\n      )}\n      {metaPixelId && (\n        <Script\n          id=\"meta-pixel\"\n          strategy=\"afterInteractive\"\n          dangerouslySetInnerHTML={{\n            __html: `\n            !(function (f, b, e, v, n, t, s) {\n              if (f.fbq) return;\n              n = f.fbq = function () {\n                n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);\n              };\n              if (!f._fbq) f._fbq = n;\n              n.push = n;\n              n.loaded = !0;\n              n.version = '2.0';\n              n.queue = [];\n              t = b.createElement(e);\n              t.async = !0;\n              t.src = v;\n              s = b.getElementsByTagName(e)[0];\n              s.parentNode.insertBefore(t, s);\n            })(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');\n            fbq('init', '${metaPixelId}');\n            fbq('track', 'PageView');`,\n          }}\n        />\n      )}\n      {redditPixelId && (\n        <Script\n          id=\"reddit-pixel\"\n          strategy=\"afterInteractive\"\n          dangerouslySetInnerHTML={{\n            __html: `\n            !function(w,d) {\n              if(!w.rdt) {\n                var p = w.rdt = function() {\n                  p.sendEvent ? p.sendEvent.apply(p,arguments) : p.callQueue.push(arguments)\n                };\n                p.callQueue = [];\n                var t = d.createElement(\"script\");\n                t.src = \"https://www.redditstatic.com/ads/pixel.js\";\n                t.async = !0;\n                var s = d.getElementsByTagName(\"script\")[0];\n                s.parentNode.insertBefore(t,s)\n              }\n            }(window, document);\n            rdt('init', '${redditPixelId}');\n            rdt('track', 'PageVisit');`,\n          }}\n        />\n      )}\n      {linkedInPartnerId && (\n        <Script\n          id=\"linkedin-insight-tag\"\n          strategy=\"afterInteractive\"\n          dangerouslySetInnerHTML={{\n            __html: `\n              _linkedin_partner_id = \"${linkedInPartnerId}\";\n              window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];\n              window._linkedin_data_partner_ids.push(_linkedin_partner_id);\n\n              (function(l) {\n                if (!l){\n                  window.lintrk = function(a,b){ \n                    window.lintrk.q.push([a,b])\n                  };\n                  window.lintrk.q=[]\n                }\n                var s = document.getElementsByTagName(\"script\")[0];\n                var b = document.createElement(\"script\");\n                b.type = \"text/javascript\";b.async = true;\n                b.src = \"https://snap.licdn.com/li.lms-analytics/insight.min.js\";\n                s.parentNode.insertBefore(b, s);\n              })(window.lintrk);\n              `,\n          }}\n        />\n      )}\n      {hotjarId && (\n        <Script\n          id=\"hotjar\"\n          strategy=\"afterInteractive\"\n          dangerouslySetInnerHTML={{\n            __html: `\n            (function(h,o,t,j,a,r){\n              h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\n              h._hjSettings={hjid:${hotjarId},hjsv:6};\n              a=o.getElementsByTagName('head')[0];\n              r=o.createElement('script');r.async=1;\n              r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\n              a.appendChild(r);\n            })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');\n            `,\n          }}\n        />\n      )}\n    </>\n  );\n}\n"],"mappings":";;;AAEA,SAAS,mBAAmB;AAC5B,OAAO,YAAY;AACnB,SAAS,0BAA0B;AACnC,SAAS,6BAA6B;AACtC,SAAS,iCAAiC;AAC1C,SAAS,uBAAuB;AAGhC,SAAS,aAAa;AAmDE,SAEhB,UAFgB,KAEhB,YAFgB;AAlCjB,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB;AACpB,GAAU;AACR,wBAAsB;AAEtB,QAAM,WAAW,YAAY;AAC7B,kBAAgB,QAAQ;AACxB,4BAA0B;AAE1B,qBAAmB,CAAC,WAAW;AAC7B,QAAI,CAAC,gBAAiB;AACtB,UAAM,aAAa;AAAA,MACjB,OAAO,OAAO;AAAA,MACd,WAAW,OAAO;AAAA,MAClB,cAAc,OAAO;AAAA,MACrB,cAAc,OAAO;AAAA,MACrB,eAAe,OAAO;AAAA,MACtB,wBAAwB,OAAO;AAAA,MAC/B,iBAAiB;AAAA;AAAA,IACnB;AACA,UAAM,OAAO,MAAM,UAAU;AAAA,EAC/B,CAAC;AAED,SACE,iCACG;AAAA,qBAAiB,oBAAC,UAAK,UAAS,aAAY,SAAS,eAAe;AAAA,IACpE,QACC,iCACE;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAG;AAAA,UACH;AAAA,UACA,KAAK,SAAS,+CAA+C,IAAI;AAAA;AAAA,MACnE;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,IAAG;AAAA,UACH,yBAAyB;AAAA,YACvB,QAAQ;AAAA;AAAA;AAAA;AAAA,gCAIU,IAAI,IAAI,YAAY,6BAA6B,EAAE;AAAA;AAAA,UAEvE;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IAED,eACC;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,UAAS;AAAA,QACT,yBAAyB;AAAA,UACvB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAiBO,WAAW;AAAA;AAAA,QAE5B;AAAA;AAAA,IACF;AAAA,IAED,iBACC;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,UAAS;AAAA,QACT,yBAAyB;AAAA,UACvB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAcO,aAAa;AAAA;AAAA,QAE9B;AAAA;AAAA,IACF;AAAA,IAED,qBACC;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,UAAS;AAAA,QACT,yBAAyB;AAAA,UACvB,QAAQ;AAAA,wCACoB,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAkB/C;AAAA;AAAA,IACF;AAAA,IAED,YACC;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,UAAS;AAAA,QACT,yBAAyB;AAAA,UACvB,QAAQ;AAAA;AAAA;AAAA,oCAGgB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOlC;AAAA;AAAA,IACF;AAAA,KAEJ;AAEJ;","names":[]}