@neocomplexx/ngx-neo-directives-mat
Version:
71 lines (70 loc) • 7.57 kB
JavaScript
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=