Skip to content

Commit

Permalink
fix(accordion): follow bootstrap 5 markup
Browse files Browse the repository at this point in the history
  • Loading branch information
fbasso committed May 12, 2021
1 parent d598cb4 commit 29f61d5
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 13 deletions.
17 changes: 9 additions & 8 deletions src/accordion/accordion.spec.ts
Expand Up @@ -12,15 +12,16 @@ const createTestComponent = (html: string) =>
createGenericTestComponent(html, TestComponent) as ComponentFixture<TestComponent>;

function getPanels(element: HTMLElement): HTMLDivElement[] {
return <HTMLDivElement[]>Array.from(element.querySelectorAll('.card > .accordion-header'));
return <HTMLDivElement[]>Array.from(element.querySelectorAll('.accordion-item > .accordion-header'));
}

function getPanelsContent(element: HTMLElement): HTMLDivElement[] {
return <HTMLDivElement[]>Array.from(element.querySelectorAll('.card > .collapse, .card > .collapsing'));
return <HTMLDivElement[]>Array.from(
element.querySelectorAll('.accordion-item > .collapse, .accordion-item > .collapsing'));
}

function getPanelsButton(element: HTMLElement): HTMLButtonElement[] {
return <HTMLButtonElement[]>Array.from(element.querySelectorAll('.card > .accordion-header button'));
return <HTMLButtonElement[]>Array.from(element.querySelectorAll('.accordion-item > .accordion-header button'));
}

function getPanelsTitle(element: HTMLElement): string[] {
Expand Down Expand Up @@ -505,23 +506,23 @@ describe('ngb-accordion', () => {
</ngb-accordion>
`;
const fixture = createTestComponent(testHtml);
const cards = <HTMLDivElement[]>Array.from(fixture.nativeElement.querySelectorAll('.card'));
const cards = <HTMLDivElement[]>Array.from(fixture.nativeElement.querySelectorAll('.accordion-item'));

fixture.detectChanges();
expect(cards[0].classList.length).toBe(1);
expect(cards[0]).toHaveCssClass('card');
expect(cards[0]).toHaveCssClass('accordion-item');

expect(cards[1].classList.length).toBe(2);
expect(cards[1]).toHaveCssClass('card');
expect(cards[1]).toHaveCssClass('accordion-item');
expect(cards[1]).toHaveCssClass('custom-class');

expect(cards[2].classList.length).toBe(3);
expect(cards[2]).toHaveCssClass('card');
expect(cards[2]).toHaveCssClass('accordion-item');
expect(cards[2]).toHaveCssClass('custom-class');
expect(cards[2]).toHaveCssClass('custom-class-2');

expect(cards[3].classList.length).toBe(1);
expect(cards[3]).toHaveCssClass('card');
expect(cards[3]).toHaveCssClass('accordion-item');
});

it('should remove collapsed panels content from DOM', () => {
Expand Down
8 changes: 3 additions & 5 deletions src/accordion/accordion.ts
Expand Up @@ -190,16 +190,14 @@ export interface NgbPanelChangeEvent {
</button>
</ng-template>
<ng-template ngFor let-panel [ngForOf]="panels">
<div [class]="'card ' + (panel.cardClass || '')">
<div [class]="'accordion-item ' + (panel.cardClass || '')">
<div role="tab" id="{{panel.id}}-header" [class]="'accordion-header ' + (panel.type ? 'bg-'+panel.type: type ? 'bg-'+type : '')">
<ng-template [ngTemplateOutlet]="panel.headerTpl?.templateRef || t"
[ngTemplateOutletContext]="{$implicit: panel, opened: panel.isOpen}"></ng-template>
</div>
<div id="{{panel.id}}" role="tabpanel" [attr.aria-labelledby]="panel.id + '-header'"
<div id="{{panel.id}}" class="accordion-body" role="tabpanel" [attr.aria-labelledby]="panel.id + '-header'"
*ngIf="!destroyOnHide || panel.isOpen || panel.transitionRunning">
<div class="card-body">
<ng-template [ngTemplateOutlet]="panel.contentTpl?.templateRef || null"></ng-template>
</div>
<ng-template [ngTemplateOutlet]="panel.contentTpl?.templateRef || null"></ng-template>
</div>
</div>
</ng-template>
Expand Down

0 comments on commit 29f61d5

Please sign in to comment.