{
  "version": 3,
  "sources": ["../../src/tabs/use-track-overflow.ts"],
  "sourcesContent": ["/* eslint-disable jsdoc/require-param */\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { useEvent } from '@wordpress/compose';\n\n/**\n * Tracks if an element contains overflow and on which end by tracking the\n * first and last child elements with an `IntersectionObserver` in relation\n * to the parent element.\n *\n * Note that the returned value will only indicate whether the first or last\n * element is currently \"going out of bounds\" but not whether it happens on\n * the X or Y axis.\n */\nexport function useTrackOverflow(parent, children) {\n  const [first, setFirst] = useState(false);\n  const [last, setLast] = useState(false);\n  const [observer, setObserver] = useState();\n  const callback = useEvent(entries => {\n    for (const entry of entries) {\n      if (entry.target === children.first) {\n        setFirst(!entry.isIntersecting);\n      }\n      if (entry.target === children.last) {\n        setLast(!entry.isIntersecting);\n      }\n    }\n  });\n  useEffect(() => {\n    if (!parent || !window.IntersectionObserver) {\n      return;\n    }\n    const newObserver = new IntersectionObserver(callback, {\n      root: parent,\n      threshold: 0.9\n    });\n    setObserver(newObserver);\n    return () => newObserver.disconnect();\n  }, [callback, parent]);\n  useEffect(() => {\n    if (!observer) {\n      return;\n    }\n    if (children.first) {\n      observer.observe(children.first);\n    }\n    if (children.last) {\n      observer.observe(children.last);\n    }\n    return () => {\n      if (children.first) {\n        observer.unobserve(children.first);\n      }\n      if (children.last) {\n        observer.unobserve(children.last);\n      }\n    };\n  }, [children.first, children.last, observer]);\n  return {\n    first,\n    last\n  };\n}\n/* eslint-enable jsdoc/require-param */"],
  "mappings": ";AAIA,SAAS,UAAU,iBAAiB;AACpC,SAAS,gBAAgB;AAWlB,SAAS,iBAAiB,QAAQ,UAAU;AACjD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,KAAK;AACxC,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AACtC,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS;AACzC,QAAM,WAAW,SAAS,aAAW;AACnC,eAAW,SAAS,SAAS;AAC3B,UAAI,MAAM,WAAW,SAAS,OAAO;AACnC,iBAAS,CAAC,MAAM,cAAc;AAAA,MAChC;AACA,UAAI,MAAM,WAAW,SAAS,MAAM;AAClC,gBAAQ,CAAC,MAAM,cAAc;AAAA,MAC/B;AAAA,IACF;AAAA,EACF,CAAC;AACD,YAAU,MAAM;AACd,QAAI,CAAC,UAAU,CAAC,OAAO,sBAAsB;AAC3C;AAAA,IACF;AACA,UAAM,cAAc,IAAI,qBAAqB,UAAU;AAAA,MACrD,MAAM;AAAA,MACN,WAAW;AAAA,IACb,CAAC;AACD,gBAAY,WAAW;AACvB,WAAO,MAAM,YAAY,WAAW;AAAA,EACtC,GAAG,CAAC,UAAU,MAAM,CAAC;AACrB,YAAU,MAAM;AACd,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AACA,QAAI,SAAS,OAAO;AAClB,eAAS,QAAQ,SAAS,KAAK;AAAA,IACjC;AACA,QAAI,SAAS,MAAM;AACjB,eAAS,QAAQ,SAAS,IAAI;AAAA,IAChC;AACA,WAAO,MAAM;AACX,UAAI,SAAS,OAAO;AAClB,iBAAS,UAAU,SAAS,KAAK;AAAA,MACnC;AACA,UAAI,SAAS,MAAM;AACjB,iBAAS,UAAU,SAAS,IAAI;AAAA,MAClC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,OAAO,SAAS,MAAM,QAAQ,CAAC;AAC5C,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
  "names": []
}
