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

53 lines 6.08 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 = ''; name = undefined; unregisterRef = () => { }; constructor(elementRef) { this.elementRef = elementRef; } ngOnInit() { const { unregister } = ForesightManager.instance.register({ element: this.elementRef.nativeElement, name: this.name, 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); }, }); this.unregisterRef = unregister; } ngOnDestroy() { this.unregisterRef(); } 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],[registerForesight]", inputs: { routerLink: "routerLink", href: "href", name: ["registerForesight", "name"] }, ngImport: i0 }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForesightjsDirective, decorators: [{ type: Directive, args: [{ selector: '[foresightjs],[registerForesight]', standalone: true, }] }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { routerLink: [{ type: Input }], href: [{ type: Input }], name: [{ type: Input, args: ['registerForesight'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXNpZ2h0anMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcmVzaWdodC9zcmMvbGliL2ZvcmVzaWdodGpzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBTS9ELE1BQU0sT0FBTyxvQkFBb0I7SUFVWDtJQVRwQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwQyxTQUFTLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNDLElBQUksR0FBdUIsU0FBUyxDQUFDO0lBRXpELGFBQWEsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFN0MsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFHLENBQUM7SUFFOUMsUUFBUTtRQUNOLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3hELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWE7WUFDdEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDbkMsT0FBTztnQkFDVCxDQUFDO2dCQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuRCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUM7SUFDbEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzt3R0E5QlUsb0JBQW9COzRGQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQUtVLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNzQixJQUFJO3NCQUEvQixLQUFLO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXJQcmVsb2FkZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9yZXNpZ2h0TWFuYWdlciB9IGZyb20gJ2pzLmZvcmVzaWdodCc7XG5pbXBvcnQgeyBQcmVmZXRjaFJlZ2lzdHJ5IH0gZnJvbSAnLi9wcmVmZXRjaC1yZWdpc3RyeS5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZvcmVzaWdodGpzXSxbcmVnaXN0ZXJGb3Jlc2lnaHRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRm9yZXNpZ2h0anNEaXJlY3RpdmUge1xuICByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcmVnaXN0cnkgPSBpbmplY3QoUHJlZmV0Y2hSZWdpc3RyeSk7XG4gIHByZWxvYWRlciA9IGluamVjdChSb3V0ZXJQcmVsb2FkZXIpO1xuICBASW5wdXQoKSByb3V0ZXJMaW5rOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaHJlZjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgncmVnaXN0ZXJGb3Jlc2lnaHQnKSBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSB1bnJlZ2lzdGVyUmVmOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHsgdW5yZWdpc3RlciB9ID0gRm9yZXNpZ2h0TWFuYWdlci5pbnN0YW5jZS5yZWdpc3Rlcih7XG4gICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5yb3V0ZXJMaW5rICYmICF0aGlzLmhyZWYpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdHJlZSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHRoaXMucm91dGVyTGluayB8fCB0aGlzLmhyZWYpO1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5LmFkZCh0cmVlKTtcbiAgICAgICAgdGhpcy5wcmVsb2FkZXIucHJlbG9hZCgpLnN1YnNjcmliZSgoKSA9PiB2b2lkIDApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnVucmVnaXN0ZXJSZWYgPSB1bnJlZ2lzdGVyO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnJlZ2lzdGVyUmVmKCk7XG4gIH1cbn1cbiJdfQ==