UNPKG

ngx-foresight

Version:

<p align="center"> <img src="https://akshykhade.github.io/ngx-foresight/logo.svg" width="305px"> </p> <br/> <p align="center"> <a href="https://www.npmjs.com/package/ngx-foresight"> <img src="https://img.shields.io/npm/v/ngx-foresight.svg?style=fo

43 lines 5 kB
import { Directive, inject, Input } from '@angular/core'; import { Router, RouterPreloader } from '@angular/router'; import { ForesightManager } from 'js.foresight'; import { PrefetchRegistry } from './prefetch-registry.service'; import * as i0 from "@angular/core"; export class ForesightjsDirective { elementRef; router = inject(Router); registry = inject(PrefetchRegistry); preloader = inject(RouterPreloader); routerLink = ''; href = ''; constructor(elementRef) { this.elementRef = elementRef; } ngOnInit() { ForesightManager.instance.register({ element: this.elementRef.nativeElement, callback: () => { if (!this.routerLink && !this.href) { return; } const tree = this.router.parseUrl(this.routerLink || this.href); this.registry.add(tree); this.preloader.preload().subscribe(() => void 0); }, }); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForesightjsDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ForesightjsDirective, isStandalone: true, selector: "[foresightjs]", inputs: { routerLink: "routerLink", href: "href" }, ngImport: i0 }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForesightjsDirective, decorators: [{ type: Directive, args: [{ selector: '[foresightjs]', standalone: true, }] }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { routerLink: [{ type: Input }], href: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXNpZ2h0anMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcmVzaWdodC9zcmMvbGliL2ZvcmVzaWdodGpzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBTS9ELE1BQU0sT0FBTyxvQkFBb0I7SUFPWDtJQU5wQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwQyxTQUFTLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUUzQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztJQUU5QyxRQUFRO1FBQ04sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNqQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhO1lBQ3RDLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ25DLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbkQsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBckJVLG9CQUFvQjs0RkFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0VBS1UsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyUHJlbG9hZGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZvcmVzaWdodE1hbmFnZXIgfSBmcm9tICdqcy5mb3Jlc2lnaHQnO1xuaW1wb3J0IHsgUHJlZmV0Y2hSZWdpc3RyeSB9IGZyb20gJy4vcHJlZmV0Y2gtcmVnaXN0cnkuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmb3Jlc2lnaHRqc10nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBGb3Jlc2lnaHRqc0RpcmVjdGl2ZSB7XG4gIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICByZWdpc3RyeSA9IGluamVjdChQcmVmZXRjaFJlZ2lzdHJ5KTtcbiAgcHJlbG9hZGVyID0gaW5qZWN0KFJvdXRlclByZWxvYWRlcik7XG4gIEBJbnB1dCgpIHJvdXRlckxpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBocmVmOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgRm9yZXNpZ2h0TWFuYWdlci5pbnN0YW5jZS5yZWdpc3Rlcih7XG4gICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5yb3V0ZXJMaW5rICYmICF0aGlzLmhyZWYpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdHJlZSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHRoaXMucm91dGVyTGluayB8fCB0aGlzLmhyZWYpO1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LmFkZCh0cmVlKTtcbiAgICAgICAgdGhpcy5wcmVsb2FkZXIucHJlbG9hZCgpLnN1YnNjcmliZSgoKSA9PiB2b2lkIDApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19