@coreui/angular
Version:
CoreUI Components Library for Angular
60 lines • 7.42 kB
JavaScript
import { booleanAttribute, Component, HostBinding, Input } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../tab.service";
export class TabPaneComponent {
constructor(changeDetectorRef, tabService) {
this.changeDetectorRef = changeDetectorRef;
this.tabService = tabService;
this._active = false;
this.role = 'tabpanel';
this.subscribeTabService();
}
set active(value) {
const newValue = booleanAttribute(value);
if (this._active !== newValue) {
this._active = newValue;
this.changeDetectorRef.markForCheck();
}
}
get active() {
return this._active;
}
get hostClasses() {
return {
'tab-pane': true,
fade: true,
show: this.active,
active: this.active
};
}
ngOnDestroy() {
this.subscribeTabService(false);
}
subscribeTabService(subscribe = true) {
if (subscribe) {
this.tabServiceSubscription = this.tabService.activeTabPaneIdx$.subscribe((tabContentState) => {
if (tabContentState.tabContent === this.tabContent) {
this.active = tabContentState.activeIdx === this.tabPaneIdx;
}
});
}
else {
this.tabServiceSubscription?.unsubscribe();
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TabPaneComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TabService }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: TabPaneComponent, isStandalone: true, selector: "c-tab-pane", inputs: { role: "role" }, host: { properties: { "class": "this.hostClasses", "attr.role": "this.role" }, classAttribute: "tab-pane" }, exportAs: ["cTabPane"], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block}\n"] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TabPaneComponent, decorators: [{
type: Component,
args: [{ selector: 'c-tab-pane', template: '<ng-content />', exportAs: 'cTabPane', standalone: true, host: { class: 'tab-pane' }, styles: [":host{display:block}\n"] }]
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TabService }], propDecorators: { hostClasses: [{
type: HostBinding,
args: ['class']
}], role: [{
type: Input
}, {
type: HostBinding,
args: ['attr.role']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXBhbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90YWJzL3RhYi1wYW5lL3RhYi1wYW5lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQXFCLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7QUFjOUcsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNVLGlCQUFvQyxFQUNwQyxVQUFzQjtRQUR0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFxQnhCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFjakMsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQWpDaEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQU1ELElBQUksTUFBTSxDQUFDLEtBQWM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBSUQsSUFDSSxXQUFXO1FBQ2IsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDO0lBQ0osQ0FBQztJQU1ELFdBQVc7UUFDVCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLFlBQXFCLElBQUk7UUFDM0MsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLGVBQWlDLEVBQUUsRUFBRTtnQkFDOUcsSUFBSSxlQUFlLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDbkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQzlELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDOytHQXREVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixxT0FOakIsZ0JBQWdCOzs0RkFNZixnQkFBZ0I7a0JBUjVCLFNBQVM7K0JBQ0UsWUFBWSxZQUNaLGdCQUFnQixZQUVoQixVQUFVLGNBQ1IsSUFBSSxRQUNWLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTsrR0E2QnZCLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVlwQixJQUFJO3NCQUZILEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVGFiQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3RhYi1jb250ZW50L3RhYi1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJVGFiQ29udGVudFN0YXRlLCBUYWJTZXJ2aWNlIH0gZnJvbSAnLi4vdGFiLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLXRhYi1wYW5lJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudCAvPicsXG4gIHN0eWxlVXJsczogWycuL3RhYi1wYW5lLmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnY1RhYlBhbmUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7IGNsYXNzOiAndGFiLXBhbmUnIH1cbn0pXG5leHBvcnQgY2xhc3MgVGFiUGFuZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdGFiU2VydmljZTogVGFiU2VydmljZVxuICApIHtcbiAgICB0aGlzLnN1YnNjcmliZVRhYlNlcnZpY2UoKTtcbiAgfVxuXG4gIHB1YmxpYyB0YWJQYW5lSWR4ITogbnVtYmVyO1xuICBwdWJsaWMgdGFiQ29udGVudCE6IFRhYkNvbnRlbnRDb21wb25lbnQ7XG4gIHByaXZhdGUgdGFiU2VydmljZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBzZXQgYWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBib29sZWFuQXR0cmlidXRlKHZhbHVlKTtcbiAgICBpZiAodGhpcy5fYWN0aXZlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgdGhpcy5fYWN0aXZlID0gbmV3VmFsdWU7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICd0YWItcGFuZSc6IHRydWUsXG4gICAgICBmYWRlOiB0cnVlLFxuICAgICAgc2hvdzogdGhpcy5hY3RpdmUsXG4gICAgICBhY3RpdmU6IHRoaXMuYWN0aXZlXG4gICAgfTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgcm9sZSA9ICd0YWJwYW5lbCc7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpYmVUYWJTZXJ2aWNlKGZhbHNlKTtcbiAgfVxuXG4gIHN1YnNjcmliZVRhYlNlcnZpY2Uoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGlmIChzdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMudGFiU2VydmljZVN1YnNjcmlwdGlvbiA9IHRoaXMudGFiU2VydmljZS5hY3RpdmVUYWJQYW5lSWR4JC5zdWJzY3JpYmUoKHRhYkNvbnRlbnRTdGF0ZTogSVRhYkNvbnRlbnRTdGF0ZSkgPT4ge1xuICAgICAgICBpZiAodGFiQ29udGVudFN0YXRlLnRhYkNvbnRlbnQgPT09IHRoaXMudGFiQ29udGVudCkge1xuICAgICAgICAgIHRoaXMuYWN0aXZlID0gdGFiQ29udGVudFN0YXRlLmFjdGl2ZUlkeCA9PT0gdGhpcy50YWJQYW5lSWR4O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50YWJTZXJ2aWNlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19