{"version":3,"file":"scroll-into-view.mjs","sources":["../../../../packages/utils/scroll-into-view.ts"],"sourcesContent":["import { isClient } from '@vueuse/core'\r\n\r\nexport default function scrollIntoView(\r\n  container: HTMLElement,\r\n  selected: HTMLElement\r\n): void {\r\n  if (!isClient) return\r\n\r\n  if (!selected) {\r\n    container.scrollTop = 0\r\n    return\r\n  }\r\n\r\n  const offsetParents = []\r\n  let pointer = selected.offsetParent\r\n  while (\r\n    pointer !== null &&\r\n    container !== pointer &&\r\n    container.contains(pointer)\r\n  ) {\r\n    offsetParents.push(pointer as never)\r\n    pointer = (pointer as HTMLElement).offsetParent\r\n  }\r\n  const top =\r\n    selected.offsetTop +\r\n    offsetParents.reduce((prev, curr) => prev + curr['offsetTop'], 0)\r\n  const bottom = top + selected.offsetHeight\r\n  const viewRectTop = container.scrollTop\r\n  const viewRectBottom = viewRectTop + container.clientHeight\r\n\r\n  if (top < viewRectTop) {\r\n    container.scrollTop = top\r\n  } else if (bottom > viewRectBottom) {\r\n    container.scrollTop = bottom - container.clientHeight\r\n  }\r\n}\r\n"],"names":[],"mappings":";;AACe,SAAS,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE;AAC5D,EAAE,IAAI,CAAC,QAAQ;AACf,IAAI,OAAO;AACX,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;AAC5B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,MAAM,aAAa,GAAG,EAAE,CAAC;AAC3B,EAAE,IAAI,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;AACtC,EAAE,OAAO,OAAO,KAAK,IAAI,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACnF,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;AACnC,GAAG;AACH,EAAE,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;AACrG,EAAE,MAAM,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC;AAC7C,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC;AAC1C,EAAE,MAAM,cAAc,GAAG,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC;AAC9D,EAAE,IAAI,GAAG,GAAG,WAAW,EAAE;AACzB,IAAI,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC;AAC9B,GAAG,MAAM,IAAI,MAAM,GAAG,cAAc,EAAE;AACtC,IAAI,SAAS,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC;AAC1D,GAAG;AACH;;;;"}