UNPKG

@neocomplexx/ngx-neo-directives-mat

Version:
71 lines (70 loc) 7.57 kB
import { __decorate, __metadata } from "tslib"; import { Directive, Input } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { MatTabGroup } from '@angular/material/tabs'; /** * @author slarrieu */ let NgbTabSetDirective = class NgbTabSetDirective { constructor(_el) { this._el = _el; this.el = this._el; this.onTabChanging = false; } ngOnInit() { // this.el._handleClick = this.interceptTabChange.bind(this); if (this.tabSelectedId) { this.tabSelectedIdSubscribe = this.tabSelectedId.subscribe((tabSelectedId) => { if (tabSelectedId > -1) { // const previousValue = this.tabSelectedId.value; if (this.el.selectedIndex !== tabSelectedId) { this.el.selectedIndex = tabSelectedId; } } }); } } /* interceptTabChange(tab: MatTab, tabHeader: MatTabHeader, idx: number) { if (this.onTabChanging) { return true; } this.onTabChanging = true; let canChange = true; if (this.tabChangeController) { canChange = await this.tabChangeController.canChangeTab(); } this.onTabChanging = false; return canChange && MatTabGroup.prototype._handleClick.apply(this.el, arguments); } */ ngOnDestroy() { if (this.tabSelectedIdSubscribe) { this.tabSelectedIdSubscribe.unsubscribe(); } } cambiarTab($event, force = false) { const tabSelecting = $event.nextId; if (force || this.tabSelectedId.value !== tabSelecting) { this.tabSelectedId.next(tabSelecting); } } }; NgbTabSetDirective.ctorParameters = () => [ { type: MatTabGroup } ]; __decorate([ Input(), __metadata("design:type", BehaviorSubject) ], NgbTabSetDirective.prototype, "tabSelectedId", void 0); __decorate([ Input(), __metadata("design:type", Object) ], NgbTabSetDirective.prototype, "tabChangeController", void 0); NgbTabSetDirective = __decorate([ Directive({ // tslint:disable-next-line:directive-selector selector: '[tabSelectedId], [tabChangeController]', }), __metadata("design:paramtypes", [MatTabGroup]) ], NgbTabSetDirective); export { NgbTabSetDirective }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdiLXRhYnNldC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmVvY29tcGxleHgvbmd4LW5lby1kaXJlY3RpdmVzLW1hdC8iLCJzb3VyY2VzIjpbImxpYi9uZ2ItdGFic2V0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9ELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRDs7R0FFRztBQUtILElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQWtCO0lBVTNCLFlBQXNCLEdBQWdCO1FBQWhCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDbEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRO1FBRUwsNkRBQTZEO1FBRTVELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNwQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDekUsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ3BCLGtEQUFrRDtvQkFDbEQsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsS0FBSyxhQUFhLEVBQUU7d0JBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztxQkFDekM7aUJBQ0o7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVMOzs7Ozs7Ozs7Ozs7WUFZUTtJQUVKLFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUFFO0lBQ25GLENBQUM7SUFHTyxVQUFVLENBQUMsTUFBVyxFQUFFLFFBQWlCLEtBQUs7UUFDbEQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNuQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxZQUFZLEVBQUU7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekM7SUFDTCxDQUFDO0NBRUosQ0FBQTs7WUEvQzhCLFdBQVc7O0FBTjdCO0lBQVIsS0FBSyxFQUFFOzhCQUFnQixlQUFlO3lEQUFTO0FBRXZDO0lBQVIsS0FBSyxFQUFFOzsrREFBMkM7QUFOMUMsa0JBQWtCO0lBSjlCLFNBQVMsQ0FBQztRQUNQLDhDQUE4QztRQUM5QyxRQUFRLEVBQUUsd0NBQXdDO0tBQ3JELENBQUM7cUNBVzZCLFdBQVc7R0FWN0Isa0JBQWtCLENBeUQ5QjtTQXpEWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSVRhYkNoYW5nZUNvbnRyb2xsZXIgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IE1hdFRhYkdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcbi8qKlxyXG4gKiBAYXV0aG9yIHNsYXJyaWV1XHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcclxuICAgIHNlbGVjdG9yOiAnW3RhYlNlbGVjdGVkSWRdLCBbdGFiQ2hhbmdlQ29udHJvbGxlcl0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdiVGFiU2V0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgcHJvdGVjdGVkIGVsOiBNYXRUYWJHcm91cDtcclxuICAgIHByb3RlY3RlZCB0YWJTZWxlY3RlZElkU3Vic2NyaWJlOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgQElucHV0KCkgdGFiU2VsZWN0ZWRJZDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XHJcblxyXG4gICAgQElucHV0KCkgdGFiQ2hhbmdlQ29udHJvbGxlcjogSVRhYkNoYW5nZUNvbnRyb2xsZXI7XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uVGFiQ2hhbmdpbmc6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9lbDogTWF0VGFiR3JvdXApIHtcclxuICAgICAgICB0aGlzLmVsID0gdGhpcy5fZWw7XHJcbiAgICAgICAgdGhpcy5vblRhYkNoYW5naW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgICAgLy8gdGhpcy5lbC5faGFuZGxlQ2xpY2sgPSB0aGlzLmludGVyY2VwdFRhYkNoYW5nZS5iaW5kKHRoaXMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy50YWJTZWxlY3RlZElkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0ZWRJZFN1YnNjcmliZSA9IHRoaXMudGFiU2VsZWN0ZWRJZC5zdWJzY3JpYmUoKHRhYlNlbGVjdGVkSWQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0YWJTZWxlY3RlZElkID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBwcmV2aW91c1ZhbHVlID0gdGhpcy50YWJTZWxlY3RlZElkLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmVsLnNlbGVjdGVkSW5kZXggIT09IHRhYlNlbGVjdGVkSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5zZWxlY3RlZEluZGV4ID0gdGFiU2VsZWN0ZWRJZDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbi8qICAgICBpbnRlcmNlcHRUYWJDaGFuZ2UodGFiOiBNYXRUYWIsIHRhYkhlYWRlcjogTWF0VGFiSGVhZGVyLCBpZHg6IG51bWJlcikge1xyXG4gICAgICAgIGlmICh0aGlzLm9uVGFiQ2hhbmdpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25UYWJDaGFuZ2luZyA9IHRydWU7XHJcbiAgICAgICAgbGV0IGNhbkNoYW5nZSA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMudGFiQ2hhbmdlQ29udHJvbGxlcikge1xyXG4gICAgICAgICAgICBjYW5DaGFuZ2UgPSBhd2FpdCB0aGlzLnRhYkNoYW5nZUNvbnRyb2xsZXIuY2FuQ2hhbmdlVGFiKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25UYWJDaGFuZ2luZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICByZXR1cm4gY2FuQ2hhbmdlICYmIE1hdFRhYkdyb3VwLnByb3RvdHlwZS5faGFuZGxlQ2xpY2suYXBwbHkodGhpcy5lbCwgYXJndW1lbnRzKTtcclxuICAgIH0gKi9cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy50YWJTZWxlY3RlZElkU3Vic2NyaWJlKSB7IHRoaXMudGFiU2VsZWN0ZWRJZFN1YnNjcmliZS51bnN1YnNjcmliZSgpOyB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgY2FtYmlhclRhYigkZXZlbnQ6IGFueSwgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IHRhYlNlbGVjdGluZyA9ICRldmVudC5uZXh0SWQ7XHJcbiAgICAgICAgaWYgKGZvcmNlIHx8IHRoaXMudGFiU2VsZWN0ZWRJZC52YWx1ZSAhPT0gdGFiU2VsZWN0aW5nKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0ZWRJZC5uZXh0KHRhYlNlbGVjdGluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=