{"version":3,"file":"observe.mjs","sources":["../../../../src/_common/js/utils/observe.ts"],"sourcesContent":["export default function observe(\n  element: HTMLElement,\n  root: HTMLElement,\n  callback: Function,\n  marginBottom: number,\n): IntersectionObserver {\n  if (typeof window === 'undefined') return null;\n  if (!window || !window.IntersectionObserver) {\n    callback();\n    return null;\n  }\n  let io: IntersectionObserver = null;\n  try {\n    io = new window.IntersectionObserver(\n      (entries) => {\n        const entry = entries[0];\n        if (entry.isIntersecting) {\n          callback();\n          io.unobserve(element);\n        }\n      },\n      {\n        rootMargin: `0px 0px ${marginBottom}px 0px`,\n        root,\n      },\n    );\n    io.observe(element);\n  } catch (e) {\n    // eslint-disable-next-line no-console\n    console.error(e);\n    callback();\n  }\n  return io;\n}\n"],"names":["callback","io","rootMargin","root","console"],"mappings":";;;;;;AAAA,sCAAA,SAAA,OAAA,CAAA,OAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA;AAME,EAAA,IAAA,OAAA,MAAA,KAAA,WAAA,EAAA,OAAA,IAAA,CAAA;AACA,EAAA,IAAA,CAAA,MAAA,IAAA,CAAA,MAAA,CAAA,oBAAA,EAAA;AACWA,IAAAA,QAAAA,EAAAA,CAAAA;AACF,IAAA,OAAA,IAAA,CAAA;AACT,GAAA;;;;AAKM,MAAA,IAAA,KAAA,GAAA,OAAA,CAAA,CAAA,CAAA,CAAA;;AAEWA,QAAAA,QAAAA,EAAAA,CAAAA;AACTC,QAAAA,EAAAA,CAAAA,SAAAA,CAAAA,OAAAA,CAAAA,CAAAA;AACF,OAAA;AACF,KAAA,EAAA;AAEEC,MAAAA,UAAAA,EAAAA,UAAAA,CAAAA,MAAAA,CAAAA,YAAAA,EAAAA,QAAAA,CAAAA;AACAC,MAAAA,IAAAA,EAAAA,IAAAA;AACF,KAAA,CAAA,CAAA;AAEFF,IAAAA,EAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,CAAAA;;AAGAG,IAAAA,OAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACSJ,IAAAA,QAAAA,EAAAA,CAAAA;AACX,GAAA;AACO,EAAA,OAAA,EAAA,CAAA;AACT;;;;"}