UNPKG

xui

Version:

xUI Components for Angular

79 lines (77 loc) 6.85 kB
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, QueryList } from '@angular/core'; import { TabComponent } from './tab.component'; import { Subject } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "@ngx-translate/core"; export class TabGroupComponent { set tabRef(value) { this._tabs = value.toArray(); this.cdr.markForCheck(); } // Not used // @Input() canNavigate?: (tab: XuiTabComponent) => boolean; constructor(cdr) { this.cdr = cdr; this._tabs = []; this.onChange$ = new Subject(); } ngAfterContentInit() { for (const tab of this._tabs) { if (!tab.disabled) { this._active = tab; break; } } } selectTab(tab) { if (tab.disabled) { return; } // if (this.canNavigate && !this.canNavigate(tab)) { // return; // } this._active = tab; this.onChange$.next(null); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: TabGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.1", type: TabGroupComponent, selector: "xui-tab-group", queries: [{ propertyName: "tabRef", predicate: TabComponent }], ngImport: i0, template: ` <div class="x-tabs-list"> <div class="x-tabs-entry" *ngFor="let tab of _tabs" [class.x-tabs-active]="tab.isActive" [attr.disabled]="tab.disabled || null" (click)="selectTab(tab)" > {{ tab.title | translate }} </div> </div> <ng-content select="xui-tab"></ng-content> `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: TabGroupComponent, decorators: [{ type: Component, args: [{ selector: 'xui-tab-group', changeDetection: ChangeDetectionStrategy.OnPush, template: ` <div class="x-tabs-list"> <div class="x-tabs-entry" *ngFor="let tab of _tabs" [class.x-tabs-active]="tab.isActive" [attr.disabled]="tab.disabled || null" (click)="selectTab(tab)" > {{ tab.title | translate }} </div> </div> <ng-content select="xui-tab"></ng-content> ` }] }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tabRef: [{ type: ContentChildren, args: [TabComponent] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMveHVpL3NyYy90YWJzL3RhYi1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFxQi9CLE1BQU0sT0FBTyxpQkFBaUI7SUFLNUIsSUFBbUMsTUFBTSxDQUFDLEtBQThCO1FBQ3RFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7SUFDWCw0REFBNEQ7SUFFNUQsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFYMUMsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFDM0IsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFVbUIsQ0FBQztJQUU5QyxrQkFBa0I7UUFDaEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsTUFBTTthQUNQO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQWlCO1FBQ3pCLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFFRCxvREFBb0Q7UUFDcEQsWUFBWTtRQUNaLElBQUk7UUFFSixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQW5DVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiw0RUFLWCxZQUFZLDZCQXJCbkI7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7OzJGQUVVLGlCQUFpQjtrQkFuQjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7aUJBQ0Y7d0dBTW9DLE1BQU07c0JBQXhDLGVBQWU7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4vdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aS10YWItZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwieC10YWJzLWxpc3RcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ4LXRhYnMtZW50cnlcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIF90YWJzXCJcbiAgICAgICAgW2NsYXNzLngtdGFicy1hY3RpdmVdPVwidGFiLmlzQWN0aXZlXCJcbiAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwidGFiLmRpc2FibGVkIHx8IG51bGxcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0VGFiKHRhYilcIlxuICAgICAgPlxuICAgICAgICB7eyB0YWIudGl0bGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwieHVpLXRhYlwiPjwvbmctY29udGVudD5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBUYWJHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBfYWN0aXZlPzogVGFiQ29tcG9uZW50O1xuICBfdGFiczogVGFiQ29tcG9uZW50W10gPSBbXTtcbiAgb25DaGFuZ2UkID0gbmV3IFN1YmplY3QoKTtcblxuICBAQ29udGVudENoaWxkcmVuKFRhYkNvbXBvbmVudCkgc2V0IHRhYlJlZih2YWx1ZTogUXVlcnlMaXN0PFRhYkNvbXBvbmVudD4pIHtcbiAgICB0aGlzLl90YWJzID0gdmFsdWUudG9BcnJheSgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8gTm90IHVzZWRcbiAgLy8gQElucHV0KCkgY2FuTmF2aWdhdGU/OiAodGFiOiBYdWlUYWJDb21wb25lbnQpID0+IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBmb3IgKGNvbnN0IHRhYiBvZiB0aGlzLl90YWJzKSB7XG4gICAgICBpZiAoIXRhYi5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSB0YWI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFRhYih0YWI6IFRhYkNvbXBvbmVudCkge1xuICAgIGlmICh0YWIuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBpZiAodGhpcy5jYW5OYXZpZ2F0ZSAmJiAhdGhpcy5jYW5OYXZpZ2F0ZSh0YWIpKSB7XG4gICAgLy8gICByZXR1cm47XG4gICAgLy8gfVxuXG4gICAgdGhpcy5fYWN0aXZlID0gdGFiO1xuICAgIHRoaXMub25DaGFuZ2UkLm5leHQobnVsbCk7XG4gIH1cbn1cbiJdfQ==