@thisissoon/angular-scrollspy
Version:
A simple lightweight library for Angular which automatically updates links to indicate the currently active section in the viewport
87 lines • 5.59 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input } from '@angular/core';
import { ScrollSpyService } from '../scroll-spy-service/scroll-spy.service';
/**
* A component to wrap section content within that will update the
* `ScrollSpyService` when it's in view
*
* \@example
* ```html
* <sn-scroll-spy-section id="section1" for="foo">
* ...
* </sn-scroll-spy-section>
* ```
*/
var ScrollSpySectionComponent = /** @class */ (function () {
/**
* Creates an instance of ScrollSpySectionComponent.
* @memberof ScrollSpySectionComponent
*/
function ScrollSpySectionComponent(scrollSpySvc) {
this.scrollSpySvc = scrollSpySvc;
}
/**
* Updates `ScrollSpy` section when element enters/leaves viewport
*
* @memberof ScrollSpySectionComponent
*/
/**
* Updates `ScrollSpy` section when element enters/leaves viewport
*
* \@memberof ScrollSpySectionComponent
* @param {?} inViewport
* @return {?}
*/
ScrollSpySectionComponent.prototype.onInViewportChange = /**
* Updates `ScrollSpy` section when element enters/leaves viewport
*
* \@memberof ScrollSpySectionComponent
* @param {?} inViewport
* @return {?}
*/
function (inViewport) {
this.scrollSpySvc.setSpySectionStatus(this.id, this.for, inViewport);
};
ScrollSpySectionComponent.decorators = [
{ type: Component, args: [{
selector: 'sn-scroll-spy-section',
template: "<div\n class=\"sn-hidden\"\n snInViewport\n (inViewportChange)=\"onInViewportChange($event)\">\n</div>\n<ng-content></ng-content>\n",
styles: [":host{display:block;position:relative}.sn-hidden{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0;z-index:-1}"]
}] }
];
/** @nocollapse */
ScrollSpySectionComponent.ctorParameters = function () { return [
{ type: ScrollSpyService }
]; };
ScrollSpySectionComponent.propDecorators = {
id: [{ type: Input }],
for: [{ type: Input }]
};
return ScrollSpySectionComponent;
}());
export { ScrollSpySectionComponent };
if (false) {
/**
* Identifies the section
*
* \@memberof ScrollSpySectionComponent
* @type {?}
*/
ScrollSpySectionComponent.prototype.id;
/**
* Specifies which `ScrollSpy` instance to update
*
* \@memberof ScrollSpySectionComponent
* @type {?}
*/
ScrollSpySectionComponent.prototype.for;
/**
* @type {?}
* @private
*/
ScrollSpySectionComponent.prototype.scrollSpySvc;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXNweS1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0aGlzaXNzb29uL2FuZ3VsYXItc2Nyb2xsc3B5LyIsInNvdXJjZXMiOlsiYXBwL3Njcm9sbC1zcHkvc2Nyb2xsLXNweS1zZWN0aW9uL3Njcm9sbC1zcHktc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFhNUU7SUFvQkU7OztPQUdHO0lBQ0gsbUNBQW9CLFlBQThCO1FBQTlCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtJQUFHLENBQUM7SUFDdEQ7Ozs7T0FJRzs7Ozs7Ozs7SUFDSSxzREFBa0I7Ozs7Ozs7SUFBekIsVUFBMEIsVUFBbUI7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkUsQ0FBQzs7Z0JBaENGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxrSkFBa0Q7O2lCQUVuRDs7OztnQkFqQlEsZ0JBQWdCOzs7cUJBd0J0QixLQUFLO3NCQU9MLEtBQUs7O0lBZVIsZ0NBQUM7Q0FBQSxBQWpDRCxJQWlDQztTQTVCWSx5QkFBeUI7Ozs7Ozs7O0lBTXBDLHVDQUNrQjs7Ozs7OztJQU1sQix3Q0FDbUI7Ozs7O0lBS1AsaURBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2Nyb2xsU3B5U2VydmljZSB9IGZyb20gJy4uL3Njcm9sbC1zcHktc2VydmljZS9zY3JvbGwtc3B5LnNlcnZpY2UnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRvIHdyYXAgc2VjdGlvbiBjb250ZW50IHdpdGhpbiB0aGF0IHdpbGwgdXBkYXRlIHRoZVxuICogYFNjcm9sbFNweVNlcnZpY2VgIHdoZW4gaXQncyBpbiB2aWV3XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqICA8c24tc2Nyb2xsLXNweS1zZWN0aW9uIGlkPVwic2VjdGlvbjFcIiBmb3I9XCJmb29cIj5cbiAqICAgIC4uLlxuICogIDwvc24tc2Nyb2xsLXNweS1zZWN0aW9uPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NuLXNjcm9sbC1zcHktc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGwtc3B5LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY3JvbGwtc3B5LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsU3B5U2VjdGlvbkNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBzZWN0aW9uXG4gICAqXG4gICAqIEBtZW1iZXJvZiBTY3JvbGxTcHlTZWN0aW9uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGljaCBgU2Nyb2xsU3B5YCBpbnN0YW5jZSB0byB1cGRhdGVcbiAgICpcbiAgICogQG1lbWJlcm9mIFNjcm9sbFNweVNlY3Rpb25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3I6IHN0cmluZztcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgU2Nyb2xsU3B5U2VjdGlvbkNvbXBvbmVudC5cbiAgICogQG1lbWJlcm9mIFNjcm9sbFNweVNlY3Rpb25Db21wb25lbnRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2Nyb2xsU3B5U3ZjOiBTY3JvbGxTcHlTZXJ2aWNlKSB7fVxuICAvKipcbiAgICogVXBkYXRlcyBgU2Nyb2xsU3B5YCBzZWN0aW9uIHdoZW4gZWxlbWVudCBlbnRlcnMvbGVhdmVzIHZpZXdwb3J0XG4gICAqXG4gICAqIEBtZW1iZXJvZiBTY3JvbGxTcHlTZWN0aW9uQ29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgb25JblZpZXdwb3J0Q2hhbmdlKGluVmlld3BvcnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbFNweVN2Yy5zZXRTcHlTZWN0aW9uU3RhdHVzKHRoaXMuaWQsIHRoaXMuZm9yLCBpblZpZXdwb3J0KTtcbiAgfVxufVxuIl19