UNPKG

@taiga-ui/kit

Version:
18 lines 2.89 kB
export function scrollToElement(element, container) { const scrolledWidth = container.offsetWidth + container.scrollLeft; const elementWidth = element.offsetWidth; const elementX = container.scrollLeft + element.getBoundingClientRect().left - container.getBoundingClientRect().left; const elementDidNotFitRight = elementX + elementWidth > scrolledWidth; const elementDidNotFitLeft = container.scrollLeft > elementX; const deltaXRight = elementX + elementWidth - scrolledWidth; const deltaXLeft = elementX - container.scrollLeft; if (elementDidNotFitRight) { container.scrollLeft += deltaXRight; } if (elementDidNotFitLeft) { container.scrollLeft += deltaXLeft; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXRvLWVsZW1lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L3V0aWxzL2RvbS8iLCJzb3VyY2VzIjpbInNjcm9sbC10by1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBb0IsRUFBRSxTQUFzQjtJQUN4RSxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUM7SUFDbkUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUN6QyxNQUFNLFFBQVEsR0FDVixTQUFTLENBQUMsVUFBVTtRQUNwQixPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxJQUFJO1FBQ3BDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLElBQUksQ0FBQztJQUMzQyxNQUFNLHFCQUFxQixHQUFHLFFBQVEsR0FBRyxZQUFZLEdBQUcsYUFBYSxDQUFDO0lBQ3RFLE1BQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDN0QsTUFBTSxXQUFXLEdBQUcsUUFBUSxHQUFHLFlBQVksR0FBRyxhQUFhLENBQUM7SUFDNUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUM7SUFFbkQsSUFBSSxxQkFBcUIsRUFBRTtRQUN2QixTQUFTLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQztLQUN2QztJQUVELElBQUksb0JBQW9CLEVBQUU7UUFDdEIsU0FBUyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUM7S0FDdEM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHNjcm9sbFRvRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGFpbmVyOiBIVE1MRWxlbWVudCkge1xuICAgIGNvbnN0IHNjcm9sbGVkV2lkdGggPSBjb250YWluZXIub2Zmc2V0V2lkdGggKyBjb250YWluZXIuc2Nyb2xsTGVmdDtcbiAgICBjb25zdCBlbGVtZW50V2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IGVsZW1lbnRYID1cbiAgICAgICAgY29udGFpbmVyLnNjcm9sbExlZnQgK1xuICAgICAgICBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuICAgICAgICBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDtcbiAgICBjb25zdCBlbGVtZW50RGlkTm90Rml0UmlnaHQgPSBlbGVtZW50WCArIGVsZW1lbnRXaWR0aCA+IHNjcm9sbGVkV2lkdGg7XG4gICAgY29uc3QgZWxlbWVudERpZE5vdEZpdExlZnQgPSBjb250YWluZXIuc2Nyb2xsTGVmdCA+IGVsZW1lbnRYO1xuICAgIGNvbnN0IGRlbHRhWFJpZ2h0ID0gZWxlbWVudFggKyBlbGVtZW50V2lkdGggLSBzY3JvbGxlZFdpZHRoO1xuICAgIGNvbnN0IGRlbHRhWExlZnQgPSBlbGVtZW50WCAtIGNvbnRhaW5lci5zY3JvbGxMZWZ0O1xuXG4gICAgaWYgKGVsZW1lbnREaWROb3RGaXRSaWdodCkge1xuICAgICAgICBjb250YWluZXIuc2Nyb2xsTGVmdCArPSBkZWx0YVhSaWdodDtcbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudERpZE5vdEZpdExlZnQpIHtcbiAgICAgICAgY29udGFpbmVyLnNjcm9sbExlZnQgKz0gZGVsdGFYTGVmdDtcbiAgICB9XG59XG4iXX0=