@taiga-ui/kit
Version:
Taiga UI Angular main components kit
18 lines • 2.89 kB
JavaScript
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=