in src/scroll/native-smooth-scrolling.ts [13:39]
public scrollTo(
parent: Readonly<IScrollableContainer>,
targetElement: HTMLElement,
rect: ClientRect,
): void {
const reference = parent.element.getBoundingClientRect();
const horizontal = horizontalDelta(rect, reference);
const vertical = verticalDelta(rect, reference);
try {
if (parent.vertical && vertical) {
parent.element.scrollTo({ top: parent.element.scrollTop + vertical, behavior: 'smooth' });
}
if (parent.horizontal && horizontal) {
parent.element.scrollTo({
behavior: 'smooth',
left: parent.element.scrollLeft + horizontal,
});
}
} catch (e) {
if (!this.fallback) {
throw e;
}
this.fallback.scrollTo(parent, targetElement, rect);
}
}