{"version":3,"file":"mayvio-ui-angular-accordion.mjs","sources":["../../src/accordion/accordion.component.ts","../../src/accordion/mayvio-ui-angular-accordion.ts"],"sourcesContent":["import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  signal,\n  ChangeDetectorRef,\n  inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface AccordionItem {\n  id: string;\n  title: string;\n  content: string;\n  disabled?: boolean;\n}\n\n@Component({\n  selector: 'mayvio-accordion',\n  standalone: true,\n  imports: [CommonModule],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div class=\"mv-accordion\" [ngClass]=\"className\">\n      <div *ngFor=\"let item of items; let i = index\" class=\"mv-accordion__item\">\n        <h3 class=\"mv-accordion__header\">\n          <button\n            type=\"button\"\n            [id]=\"'accordion-header-' + item.id\"\n            class=\"mv-accordion__trigger\"\n            [attr.aria-expanded]=\"isExpanded(item.id)\"\n            [attr.aria-controls]=\"'accordion-content-' + item.id\"\n            [disabled]=\"item.disabled\"\n            (click)=\"toggleItem(item.id)\"\n          >\n            {{ item.title }}\n            <svg\n              class=\"mv-accordion__icon\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n              viewBox=\"0 0 24 24\"\n              fill=\"none\"\n              stroke=\"currentColor\"\n              stroke-width=\"2\"\n              stroke-linecap=\"round\"\n              stroke-linejoin=\"round\"\n              aria-hidden=\"true\"\n            >\n              <polyline points=\"6 9 12 15 18 9\"></polyline>\n            </svg>\n          </button>\n        </h3>\n        <div\n          [id]=\"'accordion-content-' + item.id\"\n          role=\"region\"\n          [attr.aria-labelledby]=\"'accordion-header-' + item.id\"\n          class=\"mv-accordion__content\"\n          [hidden]=\"!isExpanded(item.id)\"\n        >\n          <div class=\"mv-accordion__content-inner\">\n            {{ item.content }}\n          </div>\n        </div>\n      </div>\n    </div>\n  `,\n})\nexport class AccordionComponent {\n  private cdr = inject(ChangeDetectorRef);\n\n  @Input() items: AccordionItem[] = [];\n  @Input() allowMultiple = false;\n  @Input() className = '';\n\n  private internalExpandedIds = signal<string[]>([]);\n  private _expandedIds?: string[];\n\n  @Input()\n  set expandedIds(val: string[] | undefined) {\n    this._expandedIds = val;\n    this.cdr.markForCheck();\n  }\n\n  get expandedIds(): string[] | undefined {\n    return this._expandedIds;\n  }\n\n  @Input()\n  set defaultExpandedIds(val: string[]) {\n    this.internalExpandedIds.set([...val]);\n  }\n\n  @Output() expandedChange = new EventEmitter<string[]>();\n\n  get currentExpandedIds(): string[] {\n    return this._expandedIds !== undefined ? this._expandedIds : this.internalExpandedIds();\n  }\n\n  isExpanded(id: string): boolean {\n    return this.currentExpandedIds.includes(id);\n  }\n\n  toggleItem(id: string): void {\n    const item = this.items.find((i) => i.id === id);\n    if (item?.disabled) return;\n\n    let nextExpandedIds: string[];\n    const isExpanded = this.isExpanded(id);\n\n    if (this.allowMultiple) {\n      if (isExpanded) {\n        nextExpandedIds = this.currentExpandedIds.filter((item) => item !== id);\n      } else {\n        nextExpandedIds = [...this.currentExpandedIds, id];\n      }\n    } else {\n      if (isExpanded) {\n        nextExpandedIds = [];\n      } else {\n        nextExpandedIds = [id];\n      }\n    }\n\n    if (this._expandedIds === undefined) {\n      this.internalExpandedIds.set(nextExpandedIds);\n    }\n\n    this.expandedChange.emit(nextExpandedIds);\n    this.cdr.markForCheck();\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}