- itsm/ -> workspace/guardia-itsm/ - manager/ -> workspace/guardia-manager/ - app/ -> workspace/guardia-messenger/ - manual/ -> workspace/guardia-docs/ workspace/zioinfo-web/ unchanged. git mv preserves full commit history. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
/* eslint-disable no-nested-ternary */
|
|
import { cancel, request } from './animationFrame';
|
|
import height from './height';
|
|
import getWindow from './isWindow';
|
|
import getOffset from './offset';
|
|
import getScrollParent from './scrollParent';
|
|
import scrollTop from './scrollTop';
|
|
export default function scrollTo(selected, scrollParent) {
|
|
var offset = getOffset(selected);
|
|
var poff = {
|
|
top: 0,
|
|
left: 0
|
|
};
|
|
if (!selected) return undefined;
|
|
var list = scrollParent || getScrollParent(selected);
|
|
var isWin = getWindow(list);
|
|
var listScrollTop = scrollTop(list);
|
|
var listHeight = height(list, true);
|
|
if (!isWin) poff = getOffset(list);
|
|
offset = {
|
|
top: offset.top - poff.top,
|
|
left: offset.left - poff.left,
|
|
height: offset.height,
|
|
width: offset.width
|
|
};
|
|
var selectedHeight = offset.height;
|
|
var selectedTop = offset.top + (isWin ? 0 : listScrollTop);
|
|
var bottom = selectedTop + selectedHeight;
|
|
listScrollTop = listScrollTop > selectedTop ? selectedTop : bottom > listScrollTop + listHeight ? bottom - listHeight : listScrollTop;
|
|
var id = request(function () {
|
|
return scrollTop(list, listScrollTop);
|
|
});
|
|
return function () {
|
|
return cancel(id);
|
|
};
|
|
} |