UNPKG

ng-spy

Version:

A lightweight, dependecy-free scrollspy for angular. Use this library to spy on HTML elements on your page when the window is scrolled or resized.

31 lines 3.75 kB
import { Directive, Input } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "./scroll-spy.service"; export class SpyTargetDirective { constructor(el, spyService, renderer) { this.el = el; this.spyService = spyService; this.renderer = renderer; } ngOnInit() { this.renderer.setAttribute(this.htmlElement, 'id', this.spyTarget); this.spyService.addTarget({ name: this.spyTarget, element: this.el }); } get htmlElement() { return this.el.nativeElement; } ngOnDestroy() { this.spyService.removeTarget(this.spyTarget); } } SpyTargetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: SpyTargetDirective, deps: [{ token: i0.ElementRef }, { token: i1.ScrollSpyService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); SpyTargetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: SpyTargetDirective, selector: "[spyTarget]", inputs: { spyTarget: "spyTarget" }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: SpyTargetDirective, decorators: [{ type: Directive, args: [{ selector: '[spyTarget]' }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ScrollSpyService }, { type: i0.Renderer2 }]; }, propDecorators: { spyTarget: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B5LXRhcmdldC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1zcHkvc3JjL2xpYi9zcHktdGFyZ2V0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBZ0MsTUFBTSxlQUFlLENBQUM7OztBQU8zRixNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQW9CLEVBQWMsRUFBVSxVQUE0QixFQUFVLFFBQW1CO1FBQWpGLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7SUFBSSxDQUFDO0lBRTFHLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQVksV0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OytHQWpCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjt3SkFHVSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTY3JvbGxTcHlTZXJ2aWNlIH0gZnJvbSAnLi9zY3JvbGwtc3B5LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc3B5VGFyZ2V0XSdcbn0pXG5leHBvcnQgY2xhc3MgU3B5VGFyZ2V0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHNweVRhcmdldDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgc3B5U2VydmljZTogU2Nyb2xsU3B5U2VydmljZSwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmh0bWxFbGVtZW50LCAnaWQnLCB0aGlzLnNweVRhcmdldCk7XG4gICAgdGhpcy5zcHlTZXJ2aWNlLmFkZFRhcmdldCh7IG5hbWU6IHRoaXMuc3B5VGFyZ2V0LCBlbGVtZW50OiB0aGlzLmVsIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaHRtbEVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3B5U2VydmljZS5yZW1vdmVUYXJnZXQodGhpcy5zcHlUYXJnZXQpO1xuICB9XG59XG4iXX0=