UNPKG

@q149/angular-scrollspy

Version:

A simple lightweight library for Angular which automatically updates links to indicate the currently active section in the viewport

126 lines (125 loc) 7.03 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Directive, Input, HostBinding, ChangeDetectorRef } from '@angular/core'; /** * A directive used to add an `active` class to a nav item * when the section is in the viewport * * \@example * ```html * <a snScrollSpyItem for="foo" href="#section1">Section 1</a> * ``` * */ var ScrollSpyItemDirective = /** @class */ (function () { /** * Creates an instance of ScrollSpyItemDirective. * @memberof ScrollSpyItemDirective */ function ScrollSpyItemDirective(cdRef) { this.cdRef = cdRef; /** * True if the nav item is the active item in the `items` list * for `ScrollSpyDirective` instance * * \@memberof ScrollSpyItemDirective */ this.active = false; /** * If true means the section is in the viewport * * \@memberof ScrollSpyItemDirective */ this.inViewport = false; } Object.defineProperty(ScrollSpyItemDirective.prototype, "section", { get: /** * Id of section that links navigates to * * \@readonly * \@memberof ScrollSpyItemDirective * @return {?} */ function () { return this.href.replace('#', ''); }, enumerable: true, configurable: true }); /** * Manually trigger change detection * * \@memberof ScrollSpyItemDirective * @return {?} */ ScrollSpyItemDirective.prototype.detectChanges = /** * Manually trigger change detection * * \@memberof ScrollSpyItemDirective * @return {?} */ function () { this.cdRef.detectChanges(); }; ScrollSpyItemDirective.decorators = [ { type: Directive, args: [{ selector: '[snScrollSpyItem]' },] }, ]; /** @nocollapse */ ScrollSpyItemDirective.ctorParameters = function () { return [ { type: ChangeDetectorRef, }, ]; }; ScrollSpyItemDirective.propDecorators = { "active": [{ type: HostBinding, args: ['class.active',] },], "for": [{ type: Input },], "href": [{ type: Input },], }; return ScrollSpyItemDirective; }()); export { ScrollSpyItemDirective }; function ScrollSpyItemDirective_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ ScrollSpyItemDirective.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ ScrollSpyItemDirective.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ ScrollSpyItemDirective.propDecorators; /** * True if the nav item is the active item in the `items` list * for `ScrollSpyDirective` instance * * \@memberof ScrollSpyItemDirective * @type {?} */ ScrollSpyItemDirective.prototype.active; /** * ID of `ScrollSpyDirective` instance * * \@memberof ScrollSpyItemDirective * @type {?} */ ScrollSpyItemDirective.prototype.for; /** * Hash for section to link to * * \@memberof ScrollSpyItemDirective * @type {?} */ ScrollSpyItemDirective.prototype.href; /** * If true means the section is in the viewport * * \@memberof ScrollSpyItemDirective * @type {?} */ ScrollSpyItemDirective.prototype.inViewport; /** @type {?} */ ScrollSpyItemDirective.prototype.cdRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXNweS1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BxMTQ5L2FuZ3VsYXItc2Nyb2xsc3B5LyIsInNvdXJjZXMiOlsiYXBwL3Njcm9sbC1zcHkvc2Nyb2xsLXNweS1pdGVtL3Njcm9sbC1zcHktaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7OztJQWtEckI7OztPQUdHO0lBQ0gsZ0NBQW9CLEtBQXdCO1FBQXhCLFVBQUssR0FBTCxLQUFLLENBQW1COzs7Ozs7O3NCQWhDQyxLQUFLOzs7Ozs7MEJBa0I5QixLQUFLO0tBY3VCOzBCQVByQywyQ0FBTzs7Ozs7Ozs7O1lBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7Ozs7Ozs7O0lBWTdCLDhDQUFhOzs7Ozs7O1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7OztnQkFqRDlCLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2lCQUM5Qjs7OztnQkFmQyxpQkFBaUI7OzsyQkF1QmhCLFdBQVcsU0FBQyxjQUFjO3dCQU0xQixLQUFLO3lCQU1MLEtBQUs7O2lDQXZDUjs7U0FvQmEsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgSW5wdXQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBBIGRpcmVjdGl2ZSB1c2VkIHRvIGFkZCBhbiBgYWN0aXZlYCBjbGFzcyB0byBhIG5hdiBpdGVtXHJcbiAqIHdoZW4gdGhlIHNlY3Rpb24gaXMgaW4gdGhlIHZpZXdwb3J0XHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPGEgc25TY3JvbGxTcHlJdGVtIGZvcj1cImZvb1wiIGhyZWY9XCIjc2VjdGlvbjFcIj5TZWN0aW9uIDE8L2E+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc25TY3JvbGxTcHlJdGVtXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjcm9sbFNweUl0ZW1EaXJlY3RpdmUge1xyXG4gIC8qKlxyXG4gICAqIFRydWUgaWYgdGhlIG5hdiBpdGVtIGlzIHRoZSBhY3RpdmUgaXRlbSBpbiB0aGUgYGl0ZW1zYCBsaXN0XHJcbiAgICogZm9yIGBTY3JvbGxTcHlEaXJlY3RpdmVgIGluc3RhbmNlXHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgU2Nyb2xsU3B5SXRlbURpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJykgcHVibGljIGFjdGl2ZSA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIElEIG9mIGBTY3JvbGxTcHlEaXJlY3RpdmVgIGluc3RhbmNlXHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgU2Nyb2xsU3B5SXRlbURpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3I6IHN0cmluZztcclxuICAvKipcclxuICAgKiBIYXNoIGZvciBzZWN0aW9uIHRvIGxpbmsgdG9cclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBTY3JvbGxTcHlJdGVtRGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGhyZWY6IHN0cmluZztcclxuICAvKipcclxuICAgKiBJZiB0cnVlIG1lYW5zIHRoZSBzZWN0aW9uIGlzIGluIHRoZSB2aWV3cG9ydFxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIFNjcm9sbFNweUl0ZW1EaXJlY3RpdmVcclxuICAgKi9cclxuICBwdWJsaWMgaW5WaWV3cG9ydCA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIElkIG9mIHNlY3Rpb24gdGhhdCBsaW5rcyBuYXZpZ2F0ZXMgdG9cclxuICAgKlxyXG4gICAqIEByZWFkb25seVxyXG4gICAqIEBtZW1iZXJvZiBTY3JvbGxTcHlJdGVtRGlyZWN0aXZlXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBzZWN0aW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5ocmVmLnJlcGxhY2UoJyMnLCAnJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgU2Nyb2xsU3B5SXRlbURpcmVjdGl2ZS5cclxuICAgKiBAbWVtYmVyb2YgU2Nyb2xsU3B5SXRlbURpcmVjdGl2ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG4gIC8qKlxyXG4gICAqIE1hbnVhbGx5IHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxyXG4gICAqXHJcbiAgICogQG1lbWJlcm9mIFNjcm9sbFNweUl0ZW1EaXJlY3RpdmVcclxuICAgKi9cclxuICBwdWJsaWMgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iXX0=