@salesforce/design-system-react
Version:
Salesforce Lightning Design System for React
26 lines (23 loc) • 1.29 kB
JavaScript
/* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved */
/* Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
// Scrolls a menu container to the appropriate focused item. Assumes container is positioned (absolute, relative, etc)
var menuItemSelectScroll = function menuItemSelectScroll(_ref) {
var container = _ref.container,
focusedIndex = _ref.focusedIndex,
_ref$itemTag = _ref.itemTag,
itemTag = _ref$itemTag === void 0 ? 'li' : _ref$itemTag,
_ref$scrollPadding = _ref.scrollPadding,
scrollPadding = _ref$scrollPadding === void 0 ? 4 : _ref$scrollPadding;
var domItem = container.querySelector("".concat(itemTag, ":nth-child(").concat(focusedIndex + 1, ")"));
if (domItem) {
if (domItem.offsetHeight - container.scrollTop + domItem.offsetTop >= container.offsetHeight) {
// eslint-disable-next-line no-param-reassign
container.scrollTop = domItem.offsetHeight + domItem.offsetTop - container.offsetHeight + scrollPadding;
} else if (domItem.offsetTop <= container.scrollTop) {
// eslint-disable-next-line no-param-reassign
container.scrollTop = domItem.offsetTop - scrollPadding;
}
}
};
export default menuItemSelectScroll;
//# sourceMappingURL=menu-item-select-scroll.js.map