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
JavaScript
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