govuk-angular
Version:
Angular components port of govuk-frontend nunjucks macros.
77 lines (61 loc) • 5.9 kB
JavaScript
import { Component, ContentChildren, Input } from '@angular/core';
import { GovUKAccordionSectionComponent } from './accordion-section.component';
import * as i0 from "@angular/core";
export class GovUKAccordionComponent {
constructor() {
this.sectionButtonText = 'Open All';
this.allOpen = false;
}
toggleAll() {
if (this.allOpen) {
this.tabs.toArray().forEach(tab => tab.close());
this.allOpen = false;
this.sectionButtonText = 'Open All';
}
else {
this.tabs.toArray().forEach(tab => tab.open());
this.allOpen = true;
this.sectionButtonText = 'Close All';
}
}
}
GovUKAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: GovUKAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
GovUKAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: GovUKAccordionComponent, selector: "govuk-accordion", inputs: { id: "id" }, queries: [{ propertyName: "tabs", predicate: GovUKAccordionSectionComponent }], ngImport: i0, template: `
<div class="govuk-accordion" data-module="govuk-accordion" [id]="id">
<div class="govuk-accordion__controls">
<button type="button" (click)="toggleAll()" id="toggle-all-btn-{{id}}"
class="govuk-accordion__open-all"
aria-expanded="false">
{{sectionButtonText}}
<span class="govuk-visually-hidden">sections</span>
</button>
</div>
<ng-content></ng-content>
</div>
`, isInline: true });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: GovUKAccordionComponent, decorators: [{
type: Component,
args: [{
// eslint-disable-next-line @angular-eslint/component-selector
selector: 'govuk-accordion',
template: `
<div class="govuk-accordion" data-module="govuk-accordion" [id]="id">
<div class="govuk-accordion__controls">
<button type="button" (click)="toggleAll()" id="toggle-all-btn-{{id}}"
class="govuk-accordion__open-all"
aria-expanded="false">
{{sectionButtonText}}
<span class="govuk-visually-hidden">sections</span>
</button>
</div>
<ng-content></ng-content>
</div>
`
}]
}], propDecorators: { id: [{
type: Input
}], tabs: [{
type: ContentChildren,
args: [GovUKAccordionSectionComponent]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dvdnVrLWFuZ3VsYXIvc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0UsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBMkIvRSxNQUFNLE9BQU8sdUJBQXVCO0lBekJwQztRQTRCSSxzQkFBaUIsR0FBRyxVQUFVLENBQUM7UUFDL0IsWUFBTyxHQUFJLEtBQUssQ0FBQztLQWdCcEI7SUFkRyxTQUFTO1FBRVQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDO1NBQ3RDO0lBRUQsQ0FBQzs7b0hBbEJRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGtHQUVmLDhCQUE4Qiw2QkF4QnZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9CWDsyRkFFWSx1QkFBdUI7a0JBekJuQyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9CWDtpQkFDQTs4QkFFWSxFQUFFO3NCQUFWLEtBQUs7Z0JBQzJDLElBQUk7c0JBQXBELGVBQWU7dUJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBHb3ZVS0FjY29yZGlvblNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1zZWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2dvdnVrLWFjY29yZGlvbicsXG4gIHRlbXBsYXRlOiBgXG5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWFjY29yZGlvblwiIGRhdGEtbW9kdWxlPVwiZ292dWstYWNjb3JkaW9uXCIgW2lkXT1cImlkXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstYWNjb3JkaW9uX19jb250cm9sc1wiPlxuXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidG9nZ2xlQWxsKClcIiBpZD1cInRvZ2dsZS1hbGwtYnRuLXt7aWR9fVwiXG4gICAgICAgICBjbGFzcz1cImdvdnVrLWFjY29yZGlvbl9fb3Blbi1hbGxcIlxuICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XG4gICAgICAgICB7e3NlY3Rpb25CdXR0b25UZXh0fX1cbiAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+c2VjdGlvbnM8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cblxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG5cbjwvZGl2PlxuXG5gXG59KVxuZXhwb3J0IGNsYXNzIEdvdlVLQWNjb3JkaW9uQ29tcG9uZW50ICB7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBAQ29udGVudENoaWxkcmVuKEdvdlVLQWNjb3JkaW9uU2VjdGlvbkNvbXBvbmVudCkgdGFiczogUXVlcnlMaXN0PEdvdlVLQWNjb3JkaW9uU2VjdGlvbkNvbXBvbmVudD47XG4gICAgc2VjdGlvbkJ1dHRvblRleHQgPSAnT3BlbiBBbGwnO1xuICAgIGFsbE9wZW4gPSAgZmFsc2U7XG5cbiAgICB0b2dnbGVBbGwoKSB7XG5cbiAgICBpZiAodGhpcy5hbGxPcGVuKSB7XG4gICAgICB0aGlzLnRhYnMudG9BcnJheSgpLmZvckVhY2godGFiID0+IHRhYi5jbG9zZSgpKTtcbiAgICAgIHRoaXMuYWxsT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWN0aW9uQnV0dG9uVGV4dCA9ICdPcGVuIEFsbCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFicy50b0FycmF5KCkuZm9yRWFjaCh0YWIgPT4gdGFiLm9wZW4oKSk7XG4gICAgICB0aGlzLmFsbE9wZW4gPSB0cnVlO1xuICAgICAgdGhpcy5zZWN0aW9uQnV0dG9uVGV4dCA9ICdDbG9zZSBBbGwnO1xuICAgIH1cblxuICAgIH1cblxufVxuIl19