Skip to content

Commit c9e85f6

Browse files
committed
fix(accordion-item): visible prop issue
1 parent 018b6eb commit c9e85f6

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

projects/coreui-angular/src/lib/accordion/accordion-item/accordion-item.component.html

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
<ng-container>
22
<div class="accordion-header">
3-
<ng-container *ngTemplateOutlet="templates?.accordionHeaderTemplate || defaultAccordionHeaderTemplate; context: itemContext"></ng-container>
3+
<ng-container *ngTemplateOutlet="templates['accordionHeaderTemplate'] || defaultAccordionHeaderTemplate; context: itemContext"></ng-container>
44
</div>
5-
<div class="accordion-collapse" cCollapse [visible]="visible" [attr.aria-expanded]="open" [id]="contentId">
6-
<ng-container *ngTemplateOutlet="templates?.accordionBodyTemplate || defaultAccordionBodyTemplate; context: itemContext"></ng-container>
5+
<div class="accordion-collapse" cCollapse [visible]="visible" [attr.aria-expanded]="visible" [id]="contentId">
6+
<ng-container *ngTemplateOutlet="templates['accordionBodyTemplate'] || defaultAccordionBodyTemplate; context: itemContext"></ng-container>
77
</div>
88
</ng-container>
99

1010
<ng-template #defaultAccordionHeaderTemplate>
11-
<button cAccordionButton [collapsed]="!open" [attr.aria-controls]="contentId" (click)="toggleItem()">
11+
<button cAccordionButton [collapsed]="!visible" [attr.aria-controls]="contentId" (click)="toggleItem()">
1212
<ng-container
13-
*ngTemplateOutlet="templates?.accordionHeader || defaultAccordionHeaderContentTemplate; context: itemContext">
13+
*ngTemplateOutlet="templates['accordionHeader'] || defaultAccordionHeaderContentTemplate; context: itemContext">
1414
</ng-container>
1515
</button>
1616
</ng-template>
@@ -22,7 +22,7 @@
2222
<ng-template #defaultAccordionBodyTemplate>
2323
<div class="accordion-body">
2424
<ng-container
25-
*ngTemplateOutlet="templates?.accordionBody || defaultAccordionBodyContentTemplate; context: itemContext">
25+
*ngTemplateOutlet="templates['accordionBody'] || defaultAccordionBodyContentTemplate; context: itemContext">
2626
</ng-container>
2727
</div>
2828
</ng-template>

projects/coreui-angular/src/lib/accordion/accordion-item/accordion-item.component.ts

+19-3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010

1111
import { AccordionService } from '../accordion.service';
1212
import { TemplateIdDirective } from '../../shared';
13+
import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';
1314

1415
let nextId = 0;
1516

@@ -20,15 +21,30 @@ let nextId = 0;
2021
exportAs: 'cAccordionItem',
2122
})
2223
export class AccordionItemComponent implements OnInit, OnDestroy, AfterContentInit {
24+
25+
static ngAcceptInputType_visible: BooleanInput;
26+
2327
/**
2428
* Toggle an accordion item programmatically
2529
* @type boolean
2630
* @default false
2731
*/
28-
@Input() visible: boolean = false;
29-
@Input() set open(value: boolean) {
32+
@Input()
33+
set visible(value: boolean){
34+
this._visible = coerceBooleanProperty(value);
35+
}
36+
get visible() {
37+
return this._visible;
38+
}
39+
private _visible: boolean = false;
40+
41+
@Input()
42+
set open(value: boolean) {
3043
console.warn('c-accordion-item "open" prop is deprecated, use "visible" prop instead.')
31-
this.visible = value ?? false;
44+
this.visible = value || this.visible;
45+
}
46+
get open() {
47+
return this.visible;
3248
}
3349

3450
@HostBinding('class')

0 commit comments

Comments
 (0)