ngx-infinite-scroll
Version:
[](https://travis-ci.org/orizens/ngx-infinite-scroll) [](#backers) [![Sponso
25 lines • 4.09 kB
JavaScript
export function resolveContainerElement(selector, scrollWindow, defaultElement, fromRoot) {
const hasWindow = window && !!window.document && window.document.documentElement;
let container = hasWindow && scrollWindow ? window : defaultElement;
if (selector) {
const containerIsString = selector && hasWindow && typeof selector === 'string';
container = containerIsString
? findElement(selector, defaultElement.nativeElement, fromRoot)
: selector;
if (!container) {
throw new Error('ngx-infinite-scroll {resolveContainerElement()}: selector for');
}
}
return container;
}
export function findElement(selector, customRoot, fromRoot) {
const rootEl = fromRoot ? window.document : customRoot;
return rootEl.querySelector(selector);
}
export function inputPropChanged(prop) {
return prop && !prop.firstChange;
}
export function hasWindowDefined() {
return typeof window !== 'undefined';
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWlucy11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pbmZpbml0ZS1zY3JvbGwvc3JjL2xpYi9zZXJ2aWNlcy9uZ3gtaW5zLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsUUFBc0IsRUFDdEIsWUFBcUIsRUFDckIsY0FBK0IsRUFDL0IsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQ2pGLElBQUksU0FBUyxHQUFHLFNBQVMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQ3BFLElBQUksUUFBUSxFQUFFO1FBQ1osTUFBTSxpQkFBaUIsR0FDckIsUUFBUSxJQUFJLFNBQVMsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUM7UUFDeEQsU0FBUyxHQUFHLGlCQUFpQjtZQUMzQixDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztZQUMvRCxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQztTQUNsRjtLQUNGO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQ3pCLFFBQXNCLEVBQ3RCLFVBQTRCLEVBQzVCLFFBQWlCO0lBRWpCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ3ZELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQWtCO0lBQ2pELE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgU2ltcGxlQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29udGFpbmVyRWxlbWVudChcbiAgc2VsZWN0b3I6IHN0cmluZyB8IGFueSxcbiAgc2Nyb2xsV2luZG93OiBib29sZWFuLFxuICBkZWZhdWx0RWxlbWVudDogRWxlbWVudFJlZjxhbnk+LFxuICBmcm9tUm9vdDogYm9vbGVhblxuKTogYW55IHtcbiAgY29uc3QgaGFzV2luZG93ID0gd2luZG93ICYmICEhd2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gIGxldCBjb250YWluZXIgPSBoYXNXaW5kb3cgJiYgc2Nyb2xsV2luZG93ID8gd2luZG93IDogZGVmYXVsdEVsZW1lbnQ7XG4gIGlmIChzZWxlY3Rvcikge1xuICAgIGNvbnN0IGNvbnRhaW5lcklzU3RyaW5nID1cbiAgICAgIHNlbGVjdG9yICYmIGhhc1dpbmRvdyAmJiB0eXBlb2Ygc2VsZWN0b3IgPT09ICdzdHJpbmcnO1xuICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lcklzU3RyaW5nXG4gICAgICA/IGZpbmRFbGVtZW50KHNlbGVjdG9yLCBkZWZhdWx0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBmcm9tUm9vdClcbiAgICAgIDogc2VsZWN0b3I7XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbmd4LWluZmluaXRlLXNjcm9sbCB7cmVzb2x2ZUNvbnRhaW5lckVsZW1lbnQoKX06IHNlbGVjdG9yIGZvcicpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY29udGFpbmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEVsZW1lbnQoXG4gIHNlbGVjdG9yOiBzdHJpbmcgfCBhbnksXG4gIGN1c3RvbVJvb3Q6IEVsZW1lbnRSZWYgfCBhbnksXG4gIGZyb21Sb290OiBib29sZWFuXG4pIHtcbiAgY29uc3Qgcm9vdEVsID0gZnJvbVJvb3QgPyB3aW5kb3cuZG9jdW1lbnQgOiBjdXN0b21Sb290O1xuICByZXR1cm4gcm9vdEVsLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5wdXRQcm9wQ2hhbmdlZChwcm9wOiBTaW1wbGVDaGFuZ2UpOiBib29sZWFuIHtcbiAgcmV0dXJuIHByb3AgJiYgIXByb3AuZmlyc3RDaGFuZ2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNXaW5kb3dEZWZpbmVkKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG59XG4iXX0=