tolga-ng2
Version:
Angular 2/4 components and directives
52 lines • 6.56 kB
JavaScript
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=