{"version":3,"file":"getScrollBarSize.mjs","sources":["../../../../../packages/utils/scroll/getScrollBarSize.ts"],"sourcesContent":["let cached: number;\n\nexport function getScrollBarSize(fresh?: boolean) {\n  if (typeof document === 'undefined')\n    return 0;\n\n  if (fresh || cached === undefined) {\n    const inner = document.createElement('div');\n    inner.style.width = '100%';\n    inner.style.height = '200px';\n\n    const outer = document.createElement('div');\n    const outerStyle = outer.style;\n\n    outerStyle.position = 'absolute';\n    outerStyle.top = '0';\n    outerStyle.left = '0';\n    outerStyle.pointerEvents = 'none';\n    outerStyle.visibility = 'hidden';\n    outerStyle.width = '200px';\n    outerStyle.height = '150px';\n    outerStyle.overflow = 'hidden';\n\n    outer.appendChild(inner);\n\n    document.body.appendChild(outer);\n\n    const widthContained = inner.offsetWidth;\n    outer.style.overflow = 'scroll';\n    let widthScroll = inner.offsetWidth;\n\n    if (widthContained === widthScroll)\n      widthScroll = outer.clientWidth;\n\n    document.body.removeChild(outer);\n\n    cached = widthContained - widthScroll;\n  }\n  return cached;\n}\n\nfunction ensureSize(str: string) {\n  const match = str.match(/^(.*)px$/);\n  const value = Number(match?.[1]);\n  return Number.isNaN(value) ? getScrollBarSize() : value;\n}\n\nexport function getTargetScrollBarSize(target: HTMLElement) {\n  if (typeof document === 'undefined' || !target || !(target instanceof Element))\n    return { width: 0, height: 0 };\n\n  const { width, height } = getComputedStyle(target, '::-webkit-scrollbar');\n  return {\n    width: ensureSize(width),\n    height: ensureSize(height),\n  };\n}\n"],"names":[],"mappings":"AAAA,IAAI,MAAA,CAAA;AAEG,SAAS,iBAAiB,KAAiB,EAAA;AAChD,EAAA,IAAI,OAAO,QAAa,KAAA,WAAA;AACtB,IAAO,OAAA,CAAA,CAAA;AAET,EAAI,IAAA,KAAA,IAAS,WAAW,KAAW,CAAA,EAAA;AACjC,IAAM,MAAA,KAAA,GAAQ,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC1C,IAAA,KAAA,CAAM,MAAM,KAAQ,GAAA,MAAA,CAAA;AACpB,IAAA,KAAA,CAAM,MAAM,MAAS,GAAA,OAAA,CAAA;AAErB,IAAM,MAAA,KAAA,GAAQ,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC1C,IAAA,MAAM,aAAa,KAAM,CAAA,KAAA,CAAA;AAEzB,IAAA,UAAA,CAAW,QAAW,GAAA,UAAA,CAAA;AACtB,IAAA,UAAA,CAAW,GAAM,GAAA,GAAA,CAAA;AACjB,IAAA,UAAA,CAAW,IAAO,GAAA,GAAA,CAAA;AAClB,IAAA,UAAA,CAAW,aAAgB,GAAA,MAAA,CAAA;AAC3B,IAAA,UAAA,CAAW,UAAa,GAAA,QAAA,CAAA;AACxB,IAAA,UAAA,CAAW,KAAQ,GAAA,OAAA,CAAA;AACnB,IAAA,UAAA,CAAW,MAAS,GAAA,OAAA,CAAA;AACpB,IAAA,UAAA,CAAW,QAAW,GAAA,QAAA,CAAA;AAEtB,IAAA,KAAA,CAAM,YAAY,KAAK,CAAA,CAAA;AAEvB,IAAS,QAAA,CAAA,IAAA,CAAK,YAAY,KAAK,CAAA,CAAA;AAE/B,IAAA,MAAM,iBAAiB,KAAM,CAAA,WAAA,CAAA;AAC7B,IAAA,KAAA,CAAM,MAAM,QAAW,GAAA,QAAA,CAAA;AACvB,IAAA,IAAI,cAAc,KAAM,CAAA,WAAA,CAAA;AAExB,IAAA,IAAI,cAAmB,KAAA,WAAA;AACrB,MAAA,WAAA,GAAc,KAAM,CAAA,WAAA,CAAA;AAEtB,IAAS,QAAA,CAAA,IAAA,CAAK,YAAY,KAAK,CAAA,CAAA;AAE/B,IAAA,MAAA,GAAS,cAAiB,GAAA,WAAA,CAAA;AAAA,GAC5B;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAEA,SAAS,WAAW,GAAa,EAAA;AAC/B,EAAM,MAAA,KAAA,GAAQ,GAAI,CAAA,KAAA,CAAM,UAAU,CAAA,CAAA;AAClC,EAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAQ,CAAE,CAAA,CAAA,CAAA;AAC/B,EAAA,OAAO,MAAO,CAAA,KAAA,CAAM,KAAK,CAAA,GAAI,kBAAqB,GAAA,KAAA,CAAA;AACpD,CAAA;AAEO,SAAS,uBAAuB,MAAqB,EAAA;AAC1D,EAAA,IAAI,OAAO,QAAa,KAAA,WAAA,IAAe,CAAC,MAAA,IAAU,EAAE,MAAkB,YAAA,OAAA,CAAA;AACpE,IAAA,OAAO,EAAE,KAAA,EAAO,CAAG,EAAA,MAAA,EAAQ,CAAE,EAAA,CAAA;AAE/B,EAAA,MAAM,EAAE,KAAO,EAAA,MAAA,EAAW,GAAA,gBAAA,CAAiB,QAAQ,qBAAqB,CAAA,CAAA;AACxE,EAAO,OAAA;AAAA,IACL,KAAA,EAAO,WAAW,KAAK,CAAA;AAAA,IACvB,MAAA,EAAQ,WAAW,MAAM,CAAA;AAAA,GAC3B,CAAA;AACF;;;;"}