{"version":3,"file":"sebgroup-green-angular-src-lib-accordion.mjs","sources":["../../../../libs/angular/src/lib/accordion/accordion-list-item.component.ts","../../../../libs/angular/src/lib/accordion/accordion-list-item.component.html","../../../../libs/angular/src/lib/accordion/accordion.component.ts","../../../../libs/angular/src/lib/accordion/accordion.component.html","../../../../libs/angular/src/lib/accordion/accordion.module.ts","../../../../libs/angular/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core'\n\nimport { randomId } from '@sebgroup/green-angular/src/lib/shared'\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'div[ngg-accordion-list-item]',\n  templateUrl: './accordion-list-item.component.html',\n  standalone: false,\n})\nexport class NggAccordionListItemComponent {\n  @Input() public id: string = randomId()\n  @Input() public labelElementLevel = 2\n  @Input() public listItemHeader = ''\n  @Input() public listItemSubHeader = ''\n  @Output() public expandedChange: EventEmitter<NggAccordionListItemComponent> =\n    new EventEmitter<NggAccordionListItemComponent>()\n\n  public contentHeight = '0px'\n  public isExpanded = false\n\n  public shrink(): void {\n    this.isExpanded = false\n    this.contentHeight = '0px'\n  }\n\n  public expand(): void {\n    this.isExpanded = true\n    this.contentHeight = 'auto'\n  }\n\n  public toggleExpanded(): void {\n    this.isExpanded = !this.isExpanded\n    if (this.isExpanded) {\n      this.contentHeight = 'auto'\n    } else {\n      this.contentHeight = '0px'\n    }\n\n    this.expandedChange.emit(this)\n  }\n}\n","<ng-container data-testid=\"accordion-list-item-root\">\n  <div role=\"heading\" [attr.aria-level]=\"labelElementLevel\" [attr.id]=\"id\">\n    <button\n      data-testid=\"accordion-list-item-expander-button\"\n      [attr.id]=\"id + '_header'\"\n      (click)=\"toggleExpanded()\"\n      tabindex=\"0\"\n      [attr.aria-expanded]=\"this.isExpanded\"\n      [attr.aria-controls]=\"id + '_section'\"\n    >\n      <span data-testid=\"accordion-list-item-header\">{{ listItemHeader }}</span>\n      <span data-testid=\"accordion-list-item-subheader\">{{\n        listItemSubHeader\n      }}</span>\n      <svg\n        width=\"1em\"\n        height=\"1em\"\n        viewBox=\"0 0 24 24\"\n        fill=\"none\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n      >\n        <path\n          d=\"M18.8095 9.22817L18.1907 8.60942C18.0438 8.46255 17.8063 8.46255 17.6595 8.60942L12.0001 14.2563L6.34072 8.60942C6.19385 8.46255 5.95635 8.46255 5.80947 8.60942L5.19072 9.22817C5.04385 9.37505 5.04385 9.61255 5.19072 9.75942L11.7345 16.3032C11.8813 16.45 12.1188 16.45 12.2657 16.3032L18.8095 9.75942C18.9563 9.61255 18.9563 9.37505 18.8095 9.22817Z\"\n          fill=\"#333333\"\n        />\n      </svg>\n    </button>\n  </div>\n  <div\n    role=\"region\"\n    [hidden]=\"!this.isExpanded\"\n    [ngStyle]=\"{ height: this.contentHeight }\"\n    [id]=\"id + '_section'\"\n    [attr.aria-labelledby]=\"id + '_header'\"\n    data-testid=\"accordion-list-item-content\"\n  >\n    <div>\n      <ng-content></ng-content>\n    </div>\n  </div>\n</ng-container>\n","import {\n  AfterContentChecked,\n  Component,\n  ContentChildren,\n  Input,\n  OnDestroy,\n  QueryList,\n} from '@angular/core'\nimport { Observable, Subscription } from 'rxjs'\n\nimport { NggAccordionListItemComponent } from './accordion-list-item.component'\n\n/**\n * @deprecated\n * NggAccordion is deprecated in favor of GdsDetails found in the Core package\n * https://storybook.seb.io/latest/core/?path=/docs/components-details--docs\n */\n@Component({\n    selector: 'ngg-accordion',\n    templateUrl: './accordion.component.html',\n    standalone: false\n})\nexport class NggAccordionComponent implements AfterContentChecked, OnDestroy {\n  @ContentChildren(NggAccordionListItemComponent) private items:\n    | QueryList<NggAccordionListItemComponent>\n    | undefined\n  private _expandAll: Observable<void> | undefined\n  private expandAllSubscription: Subscription | undefined\n  @Input() public closeOthers = false\n  @Input()\n  public get expandAll(): Observable<void> | undefined {\n    return this._expandAll\n  }\n  public set expandAll(value: Observable<void> | undefined) {\n    if (value === this._expandAll) return\n    if (this._expandAll) {\n      this.expandAllSubscription?.unsubscribe()\n    }\n\n    this._expandAll = value\n    this.expandAllSubscription = this._expandAll?.subscribe(() => {\n      if (this.closeOthers === false) {\n        const itemArray = this.items ? Array.from(this.items) : undefined\n        if (itemArray) {\n          for (const i of itemArray) {\n            i.expand()\n          }\n        }\n      }\n    })\n  }\n\n  public ngAfterContentChecked(): void {\n    if (this.closeOthers) {\n      const itemArray = this.items ? Array.from(this.items) : undefined\n      if (itemArray) {\n        for (const i of itemArray) {\n          i.expandedChange.subscribe((child) => this.onChildExpanded(child))\n        }\n      }\n    }\n  }\n\n  public ngOnDestroy(): void {\n    if (this.closeOthers) {\n      const itemArray = this.items ? Array.from(this.items) : undefined\n      if (itemArray) {\n        for (const i of itemArray) {\n          i.expandedChange.unsubscribe()\n        }\n      }\n    }\n\n    this.expandAllSubscription?.unsubscribe()\n  }\n\n  private onChildExpanded(childIdentity: NggAccordionListItemComponent) {\n    if (this.closeOthers && childIdentity.isExpanded && this.items) {\n      this.items.forEach((item) => {\n        if (item !== childIdentity) item.shrink()\n      })\n    }\n  }\n}\n","<div class=\"gds-accordion\" data-testid=\"accordion-root\">\n  <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { NggAccordionListItemComponent } from './accordion-list-item.component'\nimport { NggAccordionComponent } from './accordion.component'\n\n/**\n * @deprecated\n * NggAccordion is deprecated in favor of GdsDetails found in the Core package\n * https://storybook.seb.io/latest/core/?path=/docs/components-details--docs\n */\n@NgModule({\n  imports: [CommonModule],\n  exports: [NggAccordionListItemComponent, NggAccordionComponent],\n  declarations: [NggAccordionListItemComponent, NggAccordionComponent],\n})\nexport class NggAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}