UNPKG

govuk-angular

Version:

Angular components port of govuk-frontend nunjucks macros.

77 lines (61 loc) 5.9 kB
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