UNPKG

tolga-ng2

Version:

Angular 2/4 components and directives

52 lines 6.56 kB
import { Directive, Input } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/router"; export class HighlightTabDirective { constructor(el, router) { this.el = el; this.router = router; } applyClass() { try { this.el.nativeElement.className = this.defaultClassName || ""; if (this.tab && this.tab.routeGroupName) { let groupNameMatches = this.router.url.toLowerCase().indexOf(this.tab.routeGroupName.toLowerCase()) >= 0; var subTabMatches = false; if (this.tab.subTabs) subTabMatches = this.tab.subTabs.filter(p => this.router.url.toLowerCase().indexOf(p.routeGroupName.toLowerCase()) >= 0).length > 0; if (groupNameMatches || subTabMatches) { if (!this.el.nativeElement.className) this.el.nativeElement.className = "active"; else this.el.nativeElement.className += " active"; } } } catch (e) { } } ngOnInit() { this.router.events.subscribe(result => { this.applyClass(); }); } ngOnChanges() { if (this.tab) { this.applyClass(); } } } HighlightTabDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HighlightTabDirective, deps: [{ token: i0.ElementRef }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Directive }); HighlightTabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: HighlightTabDirective, selector: "[appHighlightTab]", inputs: { tab: ["appHighlightTab", "tab"], defaultClassName: "defaultClassName" }, usesOnChanges: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HighlightTabDirective, decorators: [{ type: Directive, args: [{ selector: '[appHighlightTab]' }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Router }]; }, propDecorators: { tab: [{ type: Input, args: ['appHighlightTab'] }], defaultClassName: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LXRhYi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL25nc20vZGlyZWN0aXZlcy9oaWdobGlnaHQtdGFiLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQzs7O0FBT3hFLE1BQU0sT0FBTyxxQkFBcUI7SUFLaEMsWUFBb0IsRUFBYyxFQUN4QixNQUFjO1FBREosT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUksQ0FBQztJQUU3QixVQUFVO1FBQ1IsSUFBSTtZQUNGLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1lBQzlELElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRTtnQkFDdkMsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pHLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFDMUIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU87b0JBQ2xCLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ3RJLElBQUksZ0JBQWdCLElBQUksYUFBYSxFQUFFO29CQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUzt3QkFDbEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQzs7d0JBRTNDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUM7aUJBQ2hEO2FBQ0Y7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1NBRVg7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtJQUVILENBQUM7O2tIQXZDVSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCO3NIQUcyQixHQUFHO3NCQUE1QixLQUFLO3VCQUFDLGlCQUFpQjtnQkFDZixnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmdzbU1lbnVUYWIgfSBmcm9tICcuLi9tb2RlbHMvbmdzbU1lbnVUYWInO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXBwSGlnaGxpZ2h0VGFiXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodFRhYkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgnYXBwSGlnaGxpZ2h0VGFiJykgdGFiOiBOZ3NtTWVudVRhYjtcclxuICBASW5wdXQoKSBkZWZhdWx0Q2xhc3NOYW1lOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgYXBwbHlDbGFzcygpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmRlZmF1bHRDbGFzc05hbWUgfHwgXCJcIjtcclxuICAgICAgaWYgKHRoaXMudGFiICYmIHRoaXMudGFiLnJvdXRlR3JvdXBOYW1lKSB7XHJcbiAgICAgICAgbGV0IGdyb3VwTmFtZU1hdGNoZXMgPSB0aGlzLnJvdXRlci51cmwudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMudGFiLnJvdXRlR3JvdXBOYW1lLnRvTG93ZXJDYXNlKCkpID49IDA7XHJcbiAgICAgICAgdmFyIHN1YlRhYk1hdGNoZXMgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy50YWIuc3ViVGFicylcclxuICAgICAgICAgIHN1YlRhYk1hdGNoZXMgPSB0aGlzLnRhYi5zdWJUYWJzLmZpbHRlcihwID0+IHRoaXMucm91dGVyLnVybC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocC5yb3V0ZUdyb3VwTmFtZS50b0xvd2VyQ2FzZSgpKSA+PSAwKS5sZW5ndGggPiAwO1xyXG4gICAgICAgIGlmIChncm91cE5hbWVNYXRjaGVzIHx8IHN1YlRhYk1hdGNoZXMpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZSlcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZSA9IFwiYWN0aXZlXCI7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc05hbWUgKz0gXCIgYWN0aXZlXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMuYXBwbHlDbGFzcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnRhYikge1xyXG4gICAgICB0aGlzLmFwcGx5Q2xhc3MoKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=