@coreui/angular
Version:
CoreUI Components Library for Angular
113 lines • 14.8 kB
JavaScript
import { animate, animateChild, query, state, style, transition, trigger } from '@angular/animations';
import { Component, computed, HostBinding, HostListener, inject, input, numberAttribute, output, signal } from '@angular/core';
import { TabsService } from '../tabs.service';
import * as i0 from "@angular/core";
export class TabPanelComponent {
constructor() {
this.tabsService = inject(TabsService);
/**
* aria-labelledby attribute
* @type string
* @default undefined
*/
this.ariaLabelledBy = input(undefined, {
alias: 'aria-labelledby'
});
/**
* Element id attribute
* @type string
* @default undefined
*/
this.id = input();
/**
* Item key.
* @type string | number
* @required
*/
this.itemKey = input.required();
/**
* tabindex attribute.
* @type number
* @default 0
*/
this.tabindex = input(0, { transform: numberAttribute });
/**
* Enable fade in transition.
* @type boolean
* @default true
*/
this.transition = input(true);
/**
* visible change output
* @type OutputEmitterRef<VisibleChangeEvent>
*/
this.visibleChange = output();
this.show = signal(false);
this.visible = computed(() => {
const visible = this.tabsService.activeItemKey() === this.itemKey() && !this.tabsService.activeItem()?.disabled;
this.visibleChange.emit({ itemKey: this.itemKey(), visible });
return visible;
});
this.propId = computed(() => this.id() ?? `${this.tabsService.id()}-panel-${this.itemKey()}`);
this.attrAriaLabelledBy = computed(() => this.ariaLabelledBy() ?? `${this.tabsService.id()}-tab-${this.itemKey()}`);
this.hostClasses = computed(() => ({
'tab-pane': true,
active: this.show(),
fade: this.transition(),
show: this.show(),
invisible: this.tabsService.activeItem()?.disabled
}));
}
get animationDisabled() {
return !this.transition();
}
get animateType() {
return this.visible() ? 'show' : 'hide';
}
onAnimationDone($event) {
this.show.set(this.visible());
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TabPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.12", type: TabPanelComponent, isStandalone: true, selector: "c-tab-panel", inputs: { ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: true, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, transition: { classPropertyName: "transition", publicName: "transition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { attributes: { "role": "tabpanel" }, listeners: { "@fadeInOut.done": "onAnimationDone($event)" }, properties: { "class": "hostClasses()", "tabindex": "visible() ? tabindex(): -1", "attr.aria-labelledby": "attrAriaLabelledBy()", "id": "propId()", "@.disabled": "this.animationDisabled", "@fadeInOut": "this.animateType" } }, exportAs: ["cTabPanel"], ngImport: i0, template: '<ng-content />', isInline: true, animations: [
trigger('fadeInOut', [
state('show', style({ opacity: 1 })),
state('hide', style({ opacity: 0 })),
state('void', style({ opacity: 0 })),
transition('* => *', [query('@*', [animateChild()], { optional: true }), animate('150ms linear')])
])
] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TabPanelComponent, decorators: [{
type: Component,
args: [{
exportAs: 'cTabPanel',
selector: 'c-tab-panel',
standalone: true,
template: '<ng-content />',
host: {
'[class]': 'hostClasses()',
'[tabindex]': 'visible() ? tabindex(): -1',
'[attr.aria-labelledby]': 'attrAriaLabelledBy()',
'[id]': 'propId()',
role: 'tabpanel'
},
animations: [
trigger('fadeInOut', [
state('show', style({ opacity: 1 })),
state('hide', style({ opacity: 0 })),
state('void', style({ opacity: 0 })),
transition('* => *', [query('@*', [animateChild()], { optional: true }), animate('150ms linear')])
])
]
}]
}], propDecorators: { animationDisabled: [{
type: HostBinding,
args: ['@.disabled']
}], animateType: [{
type: HostBinding,
args: ['@fadeInOut']
}], onAnimationDone: [{
type: HostListener,
args: ['@fadeInOut.done', ['$event']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy0yL3RhYi1wYW5lbC90YWItcGFuZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFrQixLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEgsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLGVBQWUsRUFDZixNQUFNLEVBRU4sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUEwQjlDLE1BQU0sT0FBTyxpQkFBaUI7SUFyQjlCO1FBc0JXLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTNDOzs7O1dBSUc7UUFDTSxtQkFBYyxHQUFvQyxLQUFLLENBQXFCLFNBQVMsRUFBRTtZQUM5RixLQUFLLEVBQUUsaUJBQWlCO1NBQ3pCLENBQUMsQ0FBQztRQUVIOzs7O1dBSUc7UUFDTSxPQUFFLEdBQW9DLEtBQUssRUFBVSxDQUFDO1FBRS9EOzs7O1dBSUc7UUFDTSxZQUFPLEdBQWlDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVsRTs7OztXQUlHO1FBQ00sYUFBUSxHQUE4QyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFFeEc7Ozs7V0FJRztRQUNNLGVBQVUsR0FBeUIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhEOzs7V0FHRztRQUNNLGtCQUFhLEdBQXlDLE1BQU0sRUFBc0Is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Qyx3QkFBd0IsRUFBRSxzQkFBc0I7d0JBQ2hELE1BQU0sRUFBRSxVQUFVO3dCQUNsQixJQUFJLEVBQUUsVUFBVTtxQkFDakI7b0JBQ0QsVUFBVSxFQUFFO3dCQUNWLE9BQU8sQ0FBQyxXQUFXLEVBQUU7NEJBQ25CLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3BDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3BDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3BDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO3lCQUNuRyxDQUFDO3FCQUNIO2lCQUNGOzhCQXNFSyxpQkFBaUI7c0JBRHBCLFdBQVc7dUJBQUMsWUFBWTtnQkFNckIsV0FBVztzQkFEZCxXQUFXO3VCQUFDLFlBQVk7Z0JBTXpCLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIGFuaW1hdGVDaGlsZCwgQW5pbWF0aW9uRXZlbnQsIHF1ZXJ5LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIElucHV0U2lnbmFsLFxuICBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm0sXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgb3V0cHV0LFxuICBPdXRwdXRFbWl0dGVyUmVmLFxuICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJzU2VydmljZSB9IGZyb20gJy4uL3RhYnMuc2VydmljZSc7XG5cbnR5cGUgQW5pbWF0ZVR5cGUgPSAnaGlkZScgfCAnc2hvdyc7XG50eXBlIFZpc2libGVDaGFuZ2VFdmVudCA9IHsgaXRlbUtleTogc3RyaW5nIHwgbnVtYmVyOyB2aXNpYmxlOiBib29sZWFuIH07XG5cbkBDb21wb25lbnQoe1xuICBleHBvcnRBczogJ2NUYWJQYW5lbCcsXG4gIHNlbGVjdG9yOiAnYy10YWItcGFuZWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50IC8+JyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3NdJzogJ2hvc3RDbGFzc2VzKCknLFxuICAgICdbdGFiaW5kZXhdJzogJ3Zpc2libGUoKSA/IHRhYmluZGV4KCk6IC0xJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdhdHRyQXJpYUxhYmVsbGVkQnkoKScsXG4gICAgJ1tpZF0nOiAncHJvcElkKCknLFxuICAgIHJvbGU6ICd0YWJwYW5lbCdcbiAgfSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2ZhZGVJbk91dCcsIFtcbiAgICAgIHN0YXRlKCdzaG93Jywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICAgIHN0YXRlKCdoaWRlJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJyogPT4gKicsIFtxdWVyeSgnQConLCBbYW5pbWF0ZUNoaWxkKCldLCB7IG9wdGlvbmFsOiB0cnVlIH0pLCBhbmltYXRlKCcxNTBtcyBsaW5lYXInKV0pXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJQYW5lbENvbXBvbmVudCB7XG4gIHJlYWRvbmx5IHRhYnNTZXJ2aWNlID0gaW5qZWN0KFRhYnNTZXJ2aWNlKTtcblxuICAvKipcbiAgICogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBhcmlhTGFiZWxsZWRCeTogSW5wdXRTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XG4gICAgYWxpYXM6ICdhcmlhLWxhYmVsbGVkYnknXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbGVtZW50IGlkIGF0dHJpYnV0ZVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBpZDogSW5wdXRTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiA9IGlucHV0PHN0cmluZz4oKTtcblxuICAvKipcbiAgICogSXRlbSBrZXkuXG4gICAqIEB0eXBlIHN0cmluZyB8IG51bWJlclxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1LZXk6IElucHV0U2lnbmFsPHN0cmluZyB8IG51bWJlcj4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuXG4gIC8qKlxuICAgKiB0YWJpbmRleCBhdHRyaWJ1dGUuXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSB0YWJpbmRleDogSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtPG51bWJlciwgdW5rbm93bj4gPSBpbnB1dCgwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZmFkZSBpbiB0cmFuc2l0aW9uLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zaXRpb246IElucHV0U2lnbmFsPGJvb2xlYW4+ID0gaW5wdXQodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIHZpc2libGUgY2hhbmdlIG91dHB1dFxuICAgKiBAdHlwZSBPdXRwdXRFbWl0dGVyUmVmPFZpc2libGVDaGFuZ2VFdmVudD5cbiAgICovXG4gIHJlYWRvbmx5IHZpc2libGVDaGFuZ2U6IE91dHB1dEVtaXR0ZXJSZWY8VmlzaWJsZUNoYW5nZUV2ZW50PiA9IG91dHB1dDxWaXNpYmxlQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgcmVhZG9ubHkgc2hvdyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgdmlzaWJsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB2aXNpYmxlID0gdGhpcy50YWJzU2VydmljZS5hY3RpdmVJdGVtS2V5KCkgPT09IHRoaXMuaXRlbUtleSgpICYmICF0aGlzLnRhYnNTZXJ2aWNlLmFjdGl2ZUl0ZW0oKT8uZGlzYWJsZWQ7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoeyBpdGVtS2V5OiB0aGlzLml0ZW1LZXkoKSwgdmlzaWJsZSB9KTtcbiAgICByZXR1cm4gdmlzaWJsZTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcHJvcElkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pZCgpID8/IGAke3RoaXMudGFic1NlcnZpY2UuaWQoKX0tcGFuZWwtJHt0aGlzLml0ZW1LZXkoKX1gKTtcblxuICByZWFkb25seSBhdHRyQXJpYUxhYmVsbGVkQnkgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLmFyaWFMYWJlbGxlZEJ5KCkgPz8gYCR7dGhpcy50YWJzU2VydmljZS5pZCgpfS10YWItJHt0aGlzLml0ZW1LZXkoKX1gXG4gICk7XG5cbiAgcmVhZG9ubHkgaG9zdENsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgICd0YWItcGFuZSc6IHRydWUsXG4gICAgYWN0aXZlOiB0aGlzLnNob3coKSxcbiAgICBmYWRlOiB0aGlzLnRyYW5zaXRpb24oKSxcbiAgICBzaG93OiB0aGlzLnNob3coKSxcbiAgICBpbnZpc2libGU6IHRoaXMudGFic1NlcnZpY2UuYWN0aXZlSXRlbSgpPy5kaXNhYmxlZFxuICB9KSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdALmRpc2FibGVkJylcbiAgZ2V0IGFuaW1hdGlvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy50cmFuc2l0aW9uKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ0BmYWRlSW5PdXQnKVxuICBnZXQgYW5pbWF0ZVR5cGUoKTogQW5pbWF0ZVR5cGUge1xuICAgIHJldHVybiB0aGlzLnZpc2libGUoKSA/ICdzaG93JyA6ICdoaWRlJztcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ0BmYWRlSW5PdXQuZG9uZScsIFsnJGV2ZW50J10pXG4gIG9uQW5pbWF0aW9uRG9uZSgkZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zaG93LnNldCh0aGlzLnZpc2libGUoKSk7XG4gIH1cbn1cbiJdfQ==