@greg-md/ng-facebook
Version:
Using Facebook SDK with Angular.
132 lines (131 loc) • 11.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* @param {?} element
* @return {?}
*/
export function offset(element) {
// Support: IE <=11 only
// Running getBoundingClientRect on a
// disconnected node in IE throws an error
if (!element || !element.getClientRects().length) {
return { top: 0, left: 0 };
}
let /** @type {?} */ docElem, /** @type {?} */ rect, /** @type {?} */ doc;
rect = element.getBoundingClientRect();
// Make sure element is not hidden (display: none)
if (rect.width || rect.height) {
doc = element.ownerDocument;
docElem = doc.documentElement;
return {
top: rect.top + window.pageYOffset - docElem.clientTop,
left: rect.left + window.pageXOffset - docElem.clientLeft
};
}
// Return zeros for disconnected and hidden elements (gh-2310)
return rect;
}
/**
* @record
*/
export function ViewportSettings() { }
function ViewportSettings_tsickle_Closure_declarations() {
/** @type {?|undefined} */
ViewportSettings.prototype.container;
/** @type {?|undefined} */
ViewportSettings.prototype.threshold;
}
/**
* @param {?} element
* @param {?=} settings
* @return {?}
*/
export function aboveTheTop(element, settings = {}) {
if (!element) {
return false;
}
let /** @type {?} */ fold;
const /** @type {?} */ container = settings.container || window, /** @type {?} */
threshold = settings.threshold || 0;
if (container instanceof HTMLElement) {
fold = offset(container).top;
}
else {
fold = window.scrollY;
}
return fold >= (offset(element).top + threshold + element.offsetHeight);
}
/**
* @param {?} element
* @param {?=} settings
* @return {?}
*/
export function rightOfFold(element, settings = {}) {
if (!element) {
return false;
}
let /** @type {?} */ fold;
const /** @type {?} */ container = settings.container || window, /** @type {?} */
threshold = settings.threshold || 0;
if (container instanceof HTMLElement) {
fold = offset(container).left + container.offsetWidth;
}
else {
fold = window.innerWidth + window.scrollX;
}
return fold <= offset(element).left - threshold;
}
/**
* @param {?} element
* @param {?=} settings
* @return {?}
*/
export function belowTheFold(element, settings = {}) {
if (!element) {
return false;
}
let /** @type {?} */ fold;
const /** @type {?} */ container = settings.container || window, /** @type {?} */
threshold = settings.threshold || 0;
if (container instanceof HTMLElement) {
fold = offset(container).top + container.offsetHeight;
}
else {
fold = window.innerHeight + window.scrollY;
}
return fold <= offset(element).top - threshold;
}
/**
* @param {?} element
* @param {?=} settings
* @return {?}
*/
export function leftOfBegin(element, settings = {}) {
if (!element) {
return false;
}
let /** @type {?} */ fold;
const /** @type {?} */ container = settings.container || window, /** @type {?} */
threshold = settings.threshold || 0;
if (container instanceof HTMLElement) {
fold = offset(container).left;
}
else {
fold = window.scrollX;
}
return fold >= offset(element).left + threshold + element.offsetWidth;
}
/**
* @param {?} element
* @param {?=} settings
* @return {?}
*/
export function inViewport(element, settings = {}) {
return !belowTheFold(element, settings)
&& !aboveTheTop(element, settings)
&& !leftOfBegin(element, settings)
&& !rightOfFold(element, settings);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyZWctbWQvbmctZmFjZWJvb2svIiwic291cmNlcyI6WyJsaWIvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsTUFBTSxpQkFBaUIsT0FBb0I7Ozs7SUFJekMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNqRCxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUMsQ0FBQztLQUMxQjtJQUVELHFCQUFJLE9BQW9CLG1CQUFFLElBQWdCLG1CQUFFLEdBQWEsQ0FBQztJQUUxRCxJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0lBR3ZDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUIsR0FBRyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDNUIsT0FBTyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFFOUIsTUFBTSxDQUFDO1lBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsU0FBUztZQUN0RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxVQUFVO1NBQzFELENBQUM7S0FDSDs7SUFHRCxNQUFNLENBQUMsSUFBSSxDQUFDO0NBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPRCxNQUFNLHNCQUFzQixPQUFvQixFQUFFLFdBQTZCLEVBQUU7SUFDL0UsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUNkO0lBRUQscUJBQUksSUFBWSxDQUFDO0lB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O0tBQ3ZCO0lBRUQsTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFHLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO0NBQ3ZFOzs7Ozs7QUFFRCxNQUFNLHFCQUFxQixPQUFvQixFQUFFLFdBQTZCLEVBQUU7SUFDOUUsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUM7V0FDbEMsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztXQUMvQixDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO1dBQy9CLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztDQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBvZmZzZXQoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgLy8gU3VwcG9ydDogSUUgPD0xMSBvbmx5XG4gIC8vIFJ1bm5pbmcgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG9uIGFcbiAgLy8gZGlzY29ubmVjdGVkIG5vZGUgaW4gSUUgdGhyb3dzIGFuIGVycm9yXG4gIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCkge1xuICAgIHJldHVybiB7dG9wOiAwLCBsZWZ0OiAwfTtcbiAgfVxuXG4gIGxldCBkb2NFbGVtOiBIVE1MRWxlbWVudCwgcmVjdDogQ2xpZW50UmVjdCwgZG9jOiBEb2N1bWVudDtcblxuICByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAvLyBNYWtlIHN1cmUgZWxlbWVudCBpcyBub3QgaGlkZGVuIChkaXNwbGF5OiBub25lKVxuICBpZiAocmVjdC53aWR0aCB8fCByZWN0LmhlaWdodCkge1xuICAgIGRvYyA9IGVsZW1lbnQub3duZXJEb2N1bWVudDtcbiAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDtcblxuICAgIHJldHVybiB7XG4gICAgICB0b3A6IHJlY3QudG9wICsgd2luZG93LnBhZ2VZT2Zmc2V0IC0gZG9jRWxlbS5jbGllbnRUb3AsXG4gICAgICBsZWZ0OiByZWN0LmxlZnQgKyB3aW5kb3cucGFnZVhPZmZzZXQgLSBkb2NFbGVtLmNsaWVudExlZnRcbiAgICB9O1xuICB9XG5cbiAgLy8gUmV0dXJuIHplcm9zIGZvciBkaXNjb25uZWN0ZWQgYW5kIGhpZGRlbiBlbGVtZW50cyAoZ2gtMjMxMClcbiAgcmV0dXJuIHJlY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld3BvcnRTZXR0aW5ncyB7XG4gIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IHwgV2luZG93O1xuICB0aHJlc2hvbGQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhYm92ZVRoZVRvcChlbGVtZW50OiBIVE1MRWxlbWVudCwgc2V0dGluZ3M6IFZpZXdwb3J0U2V0dGluZ3MgPSB7fSkge1xuICBpZiAoIWVsZW1lbnQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBsZXQgZm9sZDogbnVtYmVyO1xuXG4gIGNvbnN0IGNvbnRhaW5lciA9IHNldHRpbmdzLmNvbnRhaW5lciB8fCB3aW5kb3csXG4gICAgdGhyZXNob2xkID0gc2V0dGluZ3MudGhyZXNob2xkIHx8IDA7XG5cbiAgaWYgKGNvbnRhaW5lciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgZm9sZCA9IG9mZnNldChjb250YWluZXIpLnRvcDtcbiAgfSBlbHNlIHtcbiAgICBmb2xkID0gd2luZG93LnNjcm9sbFk7XG4gIH1cblxuICByZXR1cm4gZm9sZCA+PSAob2Zmc2V0KGVsZW1lbnQpLnRvcCArIHRocmVzaG9sZCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJpZ2h0T2ZGb2xkKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzZXR0aW5nczogVmlld3BvcnRTZXR0aW5ncyA9IHt9KSB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGxldCBmb2xkOiBudW1iZXI7XG5cbiAgY29uc3QgY29udGFpbmVyID0gc2V0dGluZ3MuY29udGFpbmVyIHx8IHdpbmRvdyxcbiAgICB0aHJlc2hvbGQgPSBzZXR0aW5ncy50aHJlc2hvbGQgfHwgMDtcblxuICBpZiAoY29udGFpbmVyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICBmb2xkID0gb2Zmc2V0KGNvbnRhaW5lcikubGVmdCArIGNvbnRhaW5lci5vZmZzZXRXaWR0aDtcbiAgfSBlbHNlIHtcbiAgICBmb2xkID0gd2luZG93LmlubmVyV2lkdGggKyB3aW5kb3cuc2Nyb2xsWDtcbiAgfVxuXG4gIHJldHVybiBmb2xkIDw9IG9mZnNldChlbGVtZW50KS5sZWZ0IC0gdGhyZXNob2xkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmVsb3dUaGVGb2xkKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzZXR0aW5nczogVmlld3BvcnRTZXR0aW5ncyA9IHt9KSB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGxldCBmb2xkOiBudW1iZXI7XG5cbiAgY29uc3QgY29udGFpbmVyID0gc2V0dGluZ3MuY29udGFpbmVyIHx8IHdpbmRvdyxcbiAgICB0aHJlc2hvbGQgPSBzZXR0aW5ncy50aHJlc2hvbGQgfHwgMDtcblxuICBpZiAoY29udGFpbmVyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICBmb2xkID0gb2Zmc2V0KGNvbnRhaW5lcikudG9wICsgY29udGFpbmVyLm9mZnNldEhlaWdodDtcbiAgfSBlbHNlIHtcbiAgICBmb2xkID0gd2luZG93LmlubmVySGVpZ2h0ICsgd2luZG93LnNjcm9sbFk7XG4gIH1cblxuICByZXR1cm4gZm9sZCA8PSBvZmZzZXQoZWxlbWVudCkudG9wIC0gdGhyZXNob2xkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGVmdE9mQmVnaW4oZWxlbWVudDogSFRNTEVsZW1lbnQsIHNldHRpbmdzOiBWaWV3cG9ydFNldHRpbmdzID0ge30pIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbGV0IGZvbGQ6IG51bWJlcjtcblxuICBjb25zdCBjb250YWluZXIgPSBzZXR0aW5ncy5jb250YWluZXIgfHwgd2luZG93LFxuICAgIHRocmVzaG9sZCA9IHNldHRpbmdzLnRocmVzaG9sZCB8fCAwO1xuXG4gIGlmIChjb250YWluZXIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgIGZvbGQgPSBvZmZzZXQoY29udGFpbmVyKS5sZWZ0O1xuICB9IGVsc2Uge1xuICAgIGZvbGQgPSB3aW5kb3cuc2Nyb2xsWDtcbiAgfVxuXG4gIHJldHVybiBmb2xkID49IG9mZnNldChlbGVtZW50KS5sZWZ0ICsgdGhyZXNob2xkICsgZWxlbWVudC5vZmZzZXRXaWR0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluVmlld3BvcnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIHNldHRpbmdzOiBWaWV3cG9ydFNldHRpbmdzID0ge30pIHtcbiAgcmV0dXJuICFiZWxvd1RoZUZvbGQoZWxlbWVudCwgc2V0dGluZ3MpXG4gICAgJiYgIWFib3ZlVGhlVG9wKGVsZW1lbnQsIHNldHRpbmdzKVxuICAgICYmICFsZWZ0T2ZCZWdpbihlbGVtZW50LCBzZXR0aW5ncylcbiAgICAmJiAhcmlnaHRPZkZvbGQoZWxlbWVudCwgc2V0dGluZ3MpO1xufVxuIl19