{"version":3,"file":"expansion.mjs","sources":["../../../../../../src/material/expansion/accordion-base.ts","../../../../../../src/material/expansion/expansion-animations.ts","../../../../../../src/material/expansion/expansion-panel-content.ts","../../../../../../src/material/expansion/expansion-panel.ts","../../../../../../src/material/expansion/expansion-panel.html","../../../../../../src/material/expansion/expansion-panel-header.ts","../../../../../../src/material/expansion/expansion-panel-header.html","../../../../../../src/material/expansion/accordion.ts","../../../../../../src/material/expansion/expansion-module.ts","../../../../../../src/material/expansion/public-api.ts","../../../../../../src/material/expansion/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CdkAccordion} from '@angular/cdk/accordion';\n\n/** MatAccordion's display modes. */\nexport type MatAccordionDisplayMode = 'default' | 'flat';\n\n/** MatAccordion's toggle positions. */\nexport type MatAccordionTogglePosition = 'before' | 'after';\n\n/**\n * Base interface for a `MatAccordion`.\n * @docs-private\n */\nexport interface MatAccordionBase extends CdkAccordion {\n  /** Whether the expansion indicator should be hidden. */\n  hideToggle: boolean;\n\n  /** Display mode used for all expansion panels in the accordion. */\n  displayMode: MatAccordionDisplayMode;\n\n  /** The position of the expansion indicator. */\n  togglePosition: MatAccordionTogglePosition;\n\n  /** Handles keyboard events coming in from the panel headers. */\n  _handleHeaderKeydown: (event: KeyboardEvent) => void;\n\n  /** Handles focus events on the panel headers. */\n  _handleHeaderFocus: (header: any) => void;\n}\n\n\n/**\n * Token used to provide a `MatAccordion` to `MatExpansionPanel`.\n * Used primarily to avoid circular imports between `MatAccordion` and `MatExpansionPanel`.\n */\nexport const MAT_ACCORDION = new InjectionToken<MatAccordionBase>('MAT_ACCORDION');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n  animate,\n  AnimationTriggerMetadata,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\n/** Time and timing curve for expansion panel animations. */\n// Note: Keep this in sync with the Sass variable for the panel header animation.\nexport const EXPANSION_PANEL_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\n\n/**\n * Animations used by the Material expansion panel.\n *\n * A bug in angular animation's `state` when ViewContainers are moved using ViewContainerRef.move()\n * causes the animation state of moved components to become `void` upon exit, and not update again\n * upon reentry into the DOM.  This can lead a to situation for the expansion panel where the state\n * of the panel is `expanded` or `collapsed` but the animation state is `void`.\n *\n * To correctly handle animating to the next state, we animate between `void` and `collapsed` which\n * are defined to have the same styles. Since angular animates from the current styles to the\n * destination state's style definition, in situations where we are moving from `void`'s styles to\n * `collapsed` this acts a noop since no style values change.\n *\n * In the case where angular's animation state is out of sync with the expansion panel's state, the\n * expansion panel being `expanded` and angular animations being `void`, the animation from the\n * `expanded`'s effective styles (though in a `void` animation state) to the collapsed state will\n * occur as expected.\n *\n * Angular Bug: https://github.com/angular/angular/issues/18847\n *\n * @docs-private\n */\nexport const matExpansionAnimations: {\n  readonly indicatorRotate: AnimationTriggerMetadata;\n  readonly bodyExpansion: AnimationTriggerMetadata;\n} = {\n  /** Animation that rotates the indicator arrow. */\n  indicatorRotate: trigger('indicatorRotate', [\n    state('collapsed, void', style({transform: 'rotate(0deg)'})),\n    state('expanded', style({transform: 'rotate(180deg)'})),\n    transition('expanded <=> collapsed, void => collapsed',\n      animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n  ]),\n  /** Animation that expands and collapses the panel content. */\n  bodyExpansion: trigger('bodyExpansion', [\n    state('collapsed, void', style({height: '0px', visibility: 'hidden'})),\n    state('expanded', style({height: '*', visibility: 'visible'})),\n    transition('expanded <=> collapsed, void => collapsed',\n      animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n  ])\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n/**\n * Expansion panel content that will be rendered lazily\n * after the panel is opened for the first time.\n */\n@Directive({\n  selector: 'ng-template[matExpansionPanelContent]'\n})\nexport class MatExpansionPanelContent {\n  constructor(public _template: TemplateRef<any>) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {AnimationEvent} from '@angular/animations';\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {UniqueSelectionDispatcher} from '@angular/cdk/collections';\nimport {TemplatePortal} from '@angular/cdk/portal';\nimport {DOCUMENT} from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  InjectionToken,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Optional,\n  Output,\n  SimpleChanges,\n  SkipSelf,\n  ViewChild,\n  ViewContainerRef,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {Subject} from 'rxjs';\nimport {distinctUntilChanged, filter, startWith, take} from 'rxjs/operators';\nimport {MatAccordionBase, MatAccordionTogglePosition, MAT_ACCORDION} from './accordion-base';\nimport {matExpansionAnimations} from './expansion-animations';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\n\n/** MatExpansionPanel's states. */\nexport type MatExpansionPanelState = 'expanded' | 'collapsed';\n\n/** Counter for generating unique element ids. */\nlet uniqueId = 0;\n\n/**\n * Object that can be used to override the default options\n * for all of the expansion panels in a module.\n */\nexport interface MatExpansionPanelDefaultOptions {\n  /** Height of the header while the panel is expanded. */\n  expandedHeight: string;\n\n  /** Height of the header while the panel is collapsed. */\n  collapsedHeight: string;\n\n  /** Whether the toggle indicator should be hidden. */\n  hideToggle: boolean;\n}\n\n/**\n * Injection token that can be used to configure the default\n * options for the expansion panel component.\n */\nexport const MAT_EXPANSION_PANEL_DEFAULT_OPTIONS =\n    new InjectionToken<MatExpansionPanelDefaultOptions>('MAT_EXPANSION_PANEL_DEFAULT_OPTIONS');\n\n/**\n * This component can be used as a single element to show expandable content, or as one of\n * multiple children of an element with the MatAccordion directive attached.\n */\n@Component({\n  styleUrls: ['expansion-panel.css'],\n  selector: 'mat-expansion-panel',\n  exportAs: 'matExpansionPanel',\n  templateUrl: 'expansion-panel.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  inputs: ['disabled', 'expanded'],\n  outputs: ['opened', 'closed', 'expandedChange'],\n  animations: [matExpansionAnimations.bodyExpansion],\n  providers: [\n    // Provide MatAccordion as undefined to prevent nested expansion panels from registering\n    // to the same accordion.\n    {provide: MAT_ACCORDION, useValue: undefined},\n  ],\n  host: {\n    'class': 'mat-expansion-panel',\n    '[class.mat-expanded]': 'expanded',\n    '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n    '[class.mat-expansion-panel-spacing]': '_hasSpacing()',\n  }\n})\nexport class MatExpansionPanel extends CdkAccordionItem implements AfterContentInit, OnChanges,\n  OnDestroy {\n  private _document: Document;\n  private _hideToggle = false;\n  private _togglePosition: MatAccordionTogglePosition;\n\n  /** Whether the toggle indicator should be hidden. */\n  @Input()\n  get hideToggle(): boolean {\n    return this._hideToggle || (this.accordion && this.accordion.hideToggle);\n  }\n  set hideToggle(value: boolean) {\n    this._hideToggle = coerceBooleanProperty(value);\n  }\n\n  /** The position of the expansion indicator. */\n  @Input()\n  get togglePosition(): MatAccordionTogglePosition {\n    return this._togglePosition || (this.accordion && this.accordion.togglePosition);\n  }\n  set togglePosition(value: MatAccordionTogglePosition) {\n    this._togglePosition = value;\n  }\n\n  /** An event emitted after the body's expansion animation happens. */\n  @Output() readonly afterExpand = new EventEmitter<void>();\n\n  /** An event emitted after the body's collapse animation happens. */\n  @Output() readonly afterCollapse = new EventEmitter<void>();\n\n  /** Stream that emits for changes in `@Input` properties. */\n  readonly _inputChanges = new Subject<SimpleChanges>();\n\n  /** Optionally defined accordion the expansion panel belongs to. */\n  override accordion: MatAccordionBase;\n\n  /** Content that will be rendered lazily. */\n  @ContentChild(MatExpansionPanelContent) _lazyContent: MatExpansionPanelContent;\n\n  /** Element containing the panel's user-provided content. */\n  @ViewChild('body') _body: ElementRef<HTMLElement>;\n\n  /** Portal holding the user's content. */\n  _portal: TemplatePortal;\n\n  /** ID for the associated header element. Used for a11y labelling. */\n  _headerId = `mat-expansion-panel-header-${uniqueId++}`;\n\n  /** Stream of body animation done events. */\n  readonly _bodyAnimationDone = new Subject<AnimationEvent>();\n\n  constructor(@Optional() @SkipSelf() @Inject(MAT_ACCORDION) accordion: MatAccordionBase,\n              _changeDetectorRef: ChangeDetectorRef,\n              _uniqueSelectionDispatcher: UniqueSelectionDispatcher,\n              private _viewContainerRef: ViewContainerRef,\n              @Inject(DOCUMENT) _document: any,\n              @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode: string,\n              @Inject(MAT_EXPANSION_PANEL_DEFAULT_OPTIONS) @Optional()\n                  defaultOptions?: MatExpansionPanelDefaultOptions) {\n    super(accordion, _changeDetectorRef, _uniqueSelectionDispatcher);\n    this.accordion = accordion;\n    this._document = _document;\n\n    // We need a Subject with distinctUntilChanged, because the `done` event\n    // fires twice on some browsers. See https://github.com/angular/angular/issues/24084\n    this._bodyAnimationDone.pipe(distinctUntilChanged((x, y) => {\n      return x.fromState === y.fromState && x.toState === y.toState;\n    })).subscribe(event => {\n      if (event.fromState !== 'void') {\n        if (event.toState === 'expanded') {\n          this.afterExpand.emit();\n        } else if (event.toState === 'collapsed') {\n          this.afterCollapse.emit();\n        }\n      }\n    });\n\n    if (defaultOptions) {\n      this.hideToggle = defaultOptions.hideToggle;\n    }\n  }\n\n  /** Determines whether the expansion panel should have spacing between it and its siblings. */\n  _hasSpacing(): boolean {\n    if (this.accordion) {\n      return this.expanded && this.accordion.displayMode === 'default';\n    }\n    return false;\n  }\n\n  /** Gets the expanded state string. */\n  _getExpandedState(): MatExpansionPanelState {\n    return this.expanded ? 'expanded' : 'collapsed';\n  }\n\n  /** Toggles the expanded state of the expansion panel. */\n  override toggle(): void {\n    this.expanded = !this.expanded;\n  }\n\n  /** Sets the expanded state of the expansion panel to false. */\n  override close(): void {\n    this.expanded = false;\n  }\n\n  /** Sets the expanded state of the expansion panel to true. */\n  override open(): void {\n    this.expanded = true;\n  }\n\n  ngAfterContentInit() {\n    if (this._lazyContent) {\n      // Render the content as soon as the panel becomes open.\n      this.opened.pipe(\n        startWith(null),\n        filter(() => this.expanded && !this._portal),\n        take(1)\n      ).subscribe(() => {\n        this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);\n      });\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    this._inputChanges.next(changes);\n  }\n\n  override ngOnDestroy() {\n    super.ngOnDestroy();\n    this._bodyAnimationDone.complete();\n    this._inputChanges.complete();\n  }\n\n  /** Checks whether the expansion panel's content contains the currently-focused element. */\n  _containsFocus(): boolean {\n    if (this._body) {\n      const focusedElement = this._document.activeElement;\n      const bodyElement = this._body.nativeElement;\n      return focusedElement === bodyElement || bodyElement.contains(focusedElement);\n    }\n\n    return false;\n  }\n\n  static ngAcceptInputType_hideToggle: BooleanInput;\n}\n\n/**\n * Actions of a `<mat-expansion-panel>`.\n */\n@Directive({\n  selector: 'mat-action-row',\n  host: {\n    class: 'mat-action-row'\n  }\n})\nexport class MatExpansionPanelActionRow {}\n","<ng-content select=\"mat-expansion-panel-header\"></ng-content>\n<div class=\"mat-expansion-panel-content\"\n     role=\"region\"\n     [@bodyExpansion]=\"_getExpandedState()\"\n     (@bodyExpansion.done)=\"_bodyAnimationDone.next($event)\"\n     [attr.aria-labelledby]=\"_headerId\"\n     [id]=\"id\"\n     #body>\n  <div class=\"mat-expansion-panel-body\">\n    <ng-content></ng-content>\n    <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n  </div>\n  <ng-content select=\"mat-action-row\"></ng-content>\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusableOption, FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {ENTER, hasModifierKey, SPACE} from '@angular/cdk/keycodes';\nimport {\n  AfterViewInit,\n  Attribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Directive,\n  ElementRef,\n  Host,\n  Inject,\n  Input,\n  OnDestroy,\n  Optional,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {HasTabIndex, mixinTabIndex} from '@angular/material/core';\nimport {NumberInput} from '@angular/cdk/coercion';\nimport {EMPTY, merge, Subscription} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {MatAccordionTogglePosition} from './accordion-base';\nimport {matExpansionAnimations} from './expansion-animations';\nimport {\n  MatExpansionPanel,\n  MatExpansionPanelDefaultOptions,\n  MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\n} from './expansion-panel';\n\n\n// Boilerplate for applying mixins to MatExpansionPanelHeader.\n/** @docs-private */\nabstract class MatExpansionPanelHeaderBase {\n  abstract readonly disabled: boolean;\n}\nconst _MatExpansionPanelHeaderMixinBase = mixinTabIndex(MatExpansionPanelHeaderBase);\n\n/**\n * Header element of a `<mat-expansion-panel>`.\n */\n@Component({\n  selector: 'mat-expansion-panel-header',\n  styleUrls: ['expansion-panel-header.css'],\n  templateUrl: 'expansion-panel-header.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  inputs: ['tabIndex'],\n  animations: [\n    matExpansionAnimations.indicatorRotate,\n  ],\n  host: {\n    'class': 'mat-expansion-panel-header mat-focus-indicator',\n    'role': 'button',\n    '[attr.id]': 'panel._headerId',\n    '[attr.tabindex]': 'tabIndex',\n    '[attr.aria-controls]': '_getPanelId()',\n    '[attr.aria-expanded]': '_isExpanded()',\n    '[attr.aria-disabled]': 'panel.disabled',\n    '[class.mat-expanded]': '_isExpanded()',\n    '[class.mat-expansion-toggle-indicator-after]': `_getTogglePosition() === 'after'`,\n    '[class.mat-expansion-toggle-indicator-before]': `_getTogglePosition() === 'before'`,\n    '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n    '[style.height]': '_getHeaderHeight()',\n    '(click)': '_toggle()',\n    '(keydown)': '_keydown($event)',\n  },\n})\nexport class MatExpansionPanelHeader extends _MatExpansionPanelHeaderMixinBase implements\n  AfterViewInit, OnDestroy, FocusableOption, HasTabIndex {\n  private _parentChangeSubscription = Subscription.EMPTY;\n\n  constructor(\n      @Host() public panel: MatExpansionPanel,\n      private _element: ElementRef,\n      private _focusMonitor: FocusMonitor,\n      private _changeDetectorRef: ChangeDetectorRef,\n      @Inject(MAT_EXPANSION_PANEL_DEFAULT_OPTIONS) @Optional()\n          defaultOptions?: MatExpansionPanelDefaultOptions,\n      @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode?: string,\n      @Attribute('tabindex') tabIndex?: string) {\n    super();\n    const accordionHideToggleChange = panel.accordion ?\n        panel.accordion._stateChanges.pipe(\n            filter(changes => !!(changes['hideToggle'] || changes['togglePosition']))) :\n        EMPTY;\n    this.tabIndex = parseInt(tabIndex || '') || 0;\n\n    // Since the toggle state depends on an @Input on the panel, we\n    // need to subscribe and trigger change detection manually.\n    this._parentChangeSubscription =\n        merge(\n            panel.opened, panel.closed, accordionHideToggleChange,\n            panel._inputChanges.pipe(filter(\n                changes => {\n                  return !!(\n                    changes['hideToggle'] ||\n                    changes['disabled'] ||\n                    changes['togglePosition']);\n                  })))\n    .subscribe(() => this._changeDetectorRef.markForCheck());\n\n    // Avoids focus being lost if the panel contained the focused element and was closed.\n    panel.closed\n      .pipe(filter(() => panel._containsFocus()))\n      .subscribe(() => _focusMonitor.focusVia(_element, 'program'));\n\n    if (defaultOptions) {\n      this.expandedHeight = defaultOptions.expandedHeight;\n      this.collapsedHeight = defaultOptions.collapsedHeight;\n    }\n  }\n\n  /** Height of the header while the panel is expanded. */\n  @Input() expandedHeight: string;\n\n  /** Height of the header while the panel is collapsed. */\n  @Input() collapsedHeight: string;\n\n  /**\n   * Whether the associated panel is disabled. Implemented as a part of `FocusableOption`.\n   * @docs-private\n   */\n  get disabled(): boolean {\n    return this.panel.disabled;\n  }\n\n  /** Toggles the expanded state of the panel. */\n  _toggle(): void {\n    if (!this.disabled) {\n      this.panel.toggle();\n    }\n  }\n\n  /** Gets whether the panel is expanded. */\n  _isExpanded(): boolean {\n    return this.panel.expanded;\n  }\n\n  /** Gets the expanded state string of the panel. */\n  _getExpandedState(): string {\n    return this.panel._getExpandedState();\n  }\n\n  /** Gets the panel id. */\n  _getPanelId(): string {\n    return this.panel.id;\n  }\n\n  /** Gets the toggle position for the header. */\n  _getTogglePosition(): MatAccordionTogglePosition {\n    return this.panel.togglePosition;\n  }\n\n  /** Gets whether the expand indicator should be shown. */\n  _showToggle(): boolean {\n    return !this.panel.hideToggle && !this.panel.disabled;\n  }\n\n  /**\n   * Gets the current height of the header. Null if no custom height has been\n   * specified, and if the default height from the stylesheet should be used.\n   */\n  _getHeaderHeight(): string|null {\n    const isExpanded = this._isExpanded();\n    if (isExpanded && this.expandedHeight) {\n      return this.expandedHeight;\n    } else if (!isExpanded && this.collapsedHeight) {\n      return this.collapsedHeight;\n    }\n    return null;\n  }\n\n  /** Handle keydown event calling to toggle() if appropriate. */\n  _keydown(event: KeyboardEvent) {\n    switch (event.keyCode) {\n      // Toggle for space and enter keys.\n      case SPACE:\n      case ENTER:\n        if (!hasModifierKey(event)) {\n          event.preventDefault();\n          this._toggle();\n        }\n\n        break;\n      default:\n        if (this.panel.accordion) {\n          this.panel.accordion._handleHeaderKeydown(event);\n        }\n\n        return;\n    }\n  }\n\n  /**\n   * Focuses the panel header. Implemented as a part of `FocusableOption`.\n   * @param origin Origin of the action that triggered the focus.\n   * @docs-private\n   */\n  focus(origin?: FocusOrigin, options?: FocusOptions) {\n    if (origin) {\n      this._focusMonitor.focusVia(this._element, origin, options);\n    } else {\n      this._element.nativeElement.focus(options);\n    }\n  }\n\n  ngAfterViewInit() {\n    this._focusMonitor.monitor(this._element).subscribe(origin => {\n      if (origin && this.panel.accordion) {\n        this.panel.accordion._handleHeaderFocus(this);\n      }\n    });\n  }\n\n  ngOnDestroy() {\n    this._parentChangeSubscription.unsubscribe();\n    this._focusMonitor.stopMonitoring(this._element);\n  }\n\n  static ngAcceptInputType_tabIndex: NumberInput;\n}\n\n/**\n * Description element of a `<mat-expansion-panel-header>`.\n */\n@Directive({\n  selector: 'mat-panel-description',\n  host: {\n    class: 'mat-expansion-panel-header-description'\n  }\n})\nexport class MatExpansionPanelDescription {}\n\n/**\n * Title element of a `<mat-expansion-panel-header>`.\n */\n@Directive({\n  selector: 'mat-panel-title',\n  host: {\n    class: 'mat-expansion-panel-header-title'\n  }\n})\nexport class MatExpansionPanelTitle {}\n","<span class=\"mat-content\">\n  <ng-content select=\"mat-panel-title\"></ng-content>\n  <ng-content select=\"mat-panel-description\"></ng-content>\n  <ng-content></ng-content>\n</span>\n<span [@indicatorRotate]=\"_getExpandedState()\" *ngIf=\"_showToggle()\"\n      class=\"mat-expansion-indicator\"></span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n  Directive,\n  Input,\n  ContentChildren,\n  QueryList,\n  AfterContentInit,\n  OnDestroy,\n} from '@angular/core';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {CdkAccordion} from '@angular/cdk/accordion';\nimport {FocusKeyManager} from '@angular/cdk/a11y';\nimport {startWith} from 'rxjs/operators';\nimport {\n  MAT_ACCORDION,\n  MatAccordionBase,\n  MatAccordionDisplayMode,\n  MatAccordionTogglePosition\n} from './accordion-base';\nimport {MatExpansionPanelHeader} from './expansion-panel-header';\n\n/**\n * Directive for a Material Design Accordion.\n */\n@Directive({\n  selector: 'mat-accordion',\n  exportAs: 'matAccordion',\n  inputs: ['multi'],\n  providers: [{\n    provide: MAT_ACCORDION,\n    useExisting: MatAccordion\n  }],\n  host: {\n    class: 'mat-accordion',\n    // Class binding which is only used by the test harness as there is no other\n    // way for the harness to detect if multiple panel support is enabled.\n    '[class.mat-accordion-multi]': 'this.multi',\n  }\n})\nexport class MatAccordion extends CdkAccordion implements MatAccordionBase,\n  AfterContentInit, OnDestroy {\n  private _keyManager: FocusKeyManager<MatExpansionPanelHeader>;\n\n  /** Headers belonging to this accordion. */\n  private _ownHeaders = new QueryList<MatExpansionPanelHeader>();\n\n  /** All headers inside the accordion. Includes headers inside nested accordions. */\n  @ContentChildren(MatExpansionPanelHeader, {descendants: true})\n  _headers: QueryList<MatExpansionPanelHeader>;\n\n  /** Whether the expansion indicator should be hidden. */\n  @Input()\n  get hideToggle(): boolean { return this._hideToggle; }\n  set hideToggle(show: boolean) { this._hideToggle = coerceBooleanProperty(show); }\n  private _hideToggle: boolean = false;\n\n  /**\n   * Display mode used for all expansion panels in the accordion. Currently two display\n   * modes exist:\n   *  default - a gutter-like spacing is placed around any expanded panel, placing the expanded\n   *     panel at a different elevation from the rest of the accordion.\n   *  flat - no spacing is placed around expanded panels, showing all panels at the same\n   *     elevation.\n   */\n  @Input() displayMode: MatAccordionDisplayMode = 'default';\n\n  /** The position of the expansion indicator. */\n  @Input() togglePosition: MatAccordionTogglePosition = 'after';\n\n  ngAfterContentInit() {\n    this._headers.changes\n      .pipe(startWith(this._headers))\n      .subscribe((headers: QueryList<MatExpansionPanelHeader>) => {\n        this._ownHeaders.reset(headers.filter(header => header.panel.accordion === this));\n        this._ownHeaders.notifyOnChanges();\n      });\n\n    this._keyManager = new FocusKeyManager(this._ownHeaders).withWrap().withHomeAndEnd();\n  }\n\n  /** Handles keyboard events coming in from the panel headers. */\n  _handleHeaderKeydown(event: KeyboardEvent) {\n    this._keyManager.onKeydown(event);\n  }\n\n  _handleHeaderFocus(header: MatExpansionPanelHeader) {\n    this._keyManager.updateActiveItem(header);\n  }\n\n  override ngOnDestroy() {\n    super.ngOnDestroy();\n    this._ownHeaders.destroy();\n  }\n\n  static ngAcceptInputType_hideToggle: BooleanInput;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CdkAccordionModule} from '@angular/cdk/accordion';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule} from '@angular/material/core';\nimport {MatAccordion} from './accordion';\nimport {MatExpansionPanel, MatExpansionPanelActionRow} from './expansion-panel';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\nimport {\n  MatExpansionPanelDescription,\n  MatExpansionPanelHeader,\n  MatExpansionPanelTitle,\n} from './expansion-panel-header';\n\n\n@NgModule({\n  imports: [CommonModule, MatCommonModule, CdkAccordionModule, PortalModule],\n  exports: [\n    MatAccordion,\n    MatExpansionPanel,\n    MatExpansionPanelActionRow,\n    MatExpansionPanelHeader,\n    MatExpansionPanelTitle,\n    MatExpansionPanelDescription,\n    MatExpansionPanelContent,\n  ],\n  declarations: [\n    MatAccordion,\n    MatExpansionPanel,\n    MatExpansionPanelActionRow,\n    MatExpansionPanelHeader,\n    MatExpansionPanelTitle,\n    MatExpansionPanelDescription,\n    MatExpansionPanelContent,\n  ],\n})\nexport class MatExpansionModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './expansion-module';\nexport * from './accordion';\nexport * from './accordion-base';\nexport * from './expansion-panel';\nexport * from './expansion-panel-header';\nexport * from './expansion-panel-content';\nexport * from './expansion-animations';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}