@angular/material
Version:
Angular Material
1 lines • 39.1 kB
Source Map (JSON)
{"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","../../../../../../src/material/expansion/expansion_public_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 * 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(\n 'expanded <=> collapsed, void => collapsed',\n animate(EXPANSION_PANEL_ANIMATION_TIMING),\n ),\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(\n 'expanded <=> collapsed, void => collapsed',\n animate(EXPANSION_PANEL_ANIMATION_TIMING),\n ),\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\n extends CdkAccordionItem\n implements AfterContentInit, OnChanges, OnDestroy\n{\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: BooleanInput) {\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(\n @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)\n @Optional()\n defaultOptions?: MatExpansionPanelDefaultOptions,\n ) {\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\n .pipe(\n distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState;\n }),\n )\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\n .pipe(\n startWith(null),\n filter(() => this.expanded && !this._portal),\n take(1),\n )\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\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 {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// 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: [matExpansionAnimations.indicatorRotate],\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\n extends _MatExpansionPanelHeaderMixinBase\n implements AfterViewInit, OnDestroy, FocusableOption, HasTabIndex\n{\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)\n @Optional()\n defaultOptions?: MatExpansionPanelDefaultOptions,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode?: string,\n @Attribute('tabindex') tabIndex?: string,\n ) {\n super();\n const accordionHideToggleChange = panel.accordion\n ? panel.accordion._stateChanges.pipe(\n filter(changes => !!(changes['hideToggle'] || changes['togglePosition'])),\n )\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 = merge(\n panel.opened,\n panel.closed,\n accordionHideToggleChange,\n panel._inputChanges.pipe(\n filter(changes => {\n return !!(changes['hideToggle'] || changes['disabled'] || changes['togglePosition']);\n }),\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\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 {\n provide: MAT_ACCORDION,\n useExisting: MatAccordion,\n },\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\n extends CdkAccordion\n implements MatAccordionBase, AfterContentInit, OnDestroy\n{\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 {\n return this._hideToggle;\n }\n set hideToggle(show: BooleanInput) {\n this._hideToggle = coerceBooleanProperty(show);\n }\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","/**\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@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 * @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 './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}