@dbg-riskit/angular-testing
Version:
46 lines • 5.44 kB
JavaScript
import { Directive, Input } from '@angular/core';
import { Router } from '@angular/router';
import * as i0 from "@angular/core";
export class RouterLinkStubDirective {
constructor(injector) {
this.navigatedTo = null;
this._urlTree = null;
this.routerStub = injector.get(Router, null);
}
ngOnChanges() {
if (this.linkParams && this.routerStub) {
this._urlTree = this.routerStub.getURLTree(this.linkParams);
}
}
onClick() {
this.navigatedTo = this.linkParams;
if (this.routerStub) {
if (Array.isArray(this.navigatedTo)) {
this.routerStub.navigate(this.navigatedTo);
}
else {
this.routerStub.navigateByUrl(this.navigatedTo);
}
}
}
get urlTree() {
return this._urlTree;
}
}
RouterLinkStubDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: RouterLinkStubDirective, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
RouterLinkStubDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: RouterLinkStubDirective, selector: "[routerLink]", inputs: { linkParams: ["routerLink", "linkParams"] }, host: { listeners: { "click": "onClick()" } }, usesOnChanges: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: RouterLinkStubDirective, decorators: [{
type: Directive,
args: [{
/* eslint-disable @angular-eslint/directive-selector */
selector: '[routerLink]',
/* eslint-enable */
host: {
'(click)': 'onClick()'
}
}]
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { linkParams: [{
type: Input,
args: ['routerLink']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmxpbmsuc3R1Yi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItdGVzdGluZy9zcmMvbGliL3N0dWJzL3JvdXRlci9yb3V0ZXIubGluay5zdHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVksS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxNQUFNLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFZaEQsTUFBTSxPQUFPLHVCQUF1QjtJQVVoQyxZQUFtQixRQUFrQjtRQUw5QixnQkFBVyxHQUFRLElBQUksQ0FBQztRQUN2QixhQUFRLEdBQW1CLElBQUksQ0FBQztRQUtwQyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBUSxDQUFDO0lBQ3hELENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDL0Q7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzlDO2lCQUFNO2dCQUNILElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNuRDtTQUNKO0lBQ0wsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDOztvSEFqQ1EsdUJBQXVCO3dHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFSbkMsU0FBUzttQkFBQztvQkFDUCx1REFBdUQ7b0JBQ3ZELFFBQVEsRUFBRSxjQUFjO29CQUN4QixtQkFBbUI7b0JBQ25CLElBQUksRUFBTTt3QkFDTixTQUFTLEVBQUUsV0FBVztxQkFDekI7aUJBQ0o7K0ZBSVUsVUFBVTtzQkFEaEIsS0FBSzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyLCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1JvdXRlclN0dWJ9IGZyb20gJy4vcm91dGVyLnN0dWInO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yICovXG4gICAgc2VsZWN0b3I6ICdbcm91dGVyTGlua10nLFxuICAgIC8qIGVzbGludC1lbmFibGUgKi9cbiAgICBob3N0ICAgIDoge1xuICAgICAgICAnKGNsaWNrKSc6ICdvbkNsaWNrKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSb3V0ZXJMaW5rU3R1YkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgICBASW5wdXQoJ3JvdXRlckxpbmsnKVxuICAgIHB1YmxpYyBsaW5rUGFyYW1zOiBhbnk7XG5cbiAgICBwdWJsaWMgbmF2aWdhdGVkVG86IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBfdXJsVHJlZTogVXJsVHJlZSB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSByb3V0ZXJTdHViOiBSb3V0ZXJTdHViO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICB0aGlzLnJvdXRlclN0dWIgPSBpbmplY3Rvci5nZXQoUm91dGVyLCBudWxsKSBhcyBhbnk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5saW5rUGFyYW1zICYmIHRoaXMucm91dGVyU3R1Yikge1xuICAgICAgICAgICAgdGhpcy5fdXJsVHJlZSA9IHRoaXMucm91dGVyU3R1Yi5nZXRVUkxUcmVlKHRoaXMubGlua1BhcmFtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZWRUbyA9IHRoaXMubGlua1BhcmFtcztcbiAgICAgICAgaWYgKHRoaXMucm91dGVyU3R1Yikge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5uYXZpZ2F0ZWRUbykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlclN0dWIubmF2aWdhdGUodGhpcy5uYXZpZ2F0ZWRUbyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyU3R1Yi5uYXZpZ2F0ZUJ5VXJsKHRoaXMubmF2aWdhdGVkVG8pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB1cmxUcmVlKCk6IFVybFRyZWUgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VybFRyZWU7XG4gICAgfVxufVxuIl19