blob: e592744cdd6bb62d27a06d850075ddc00a41d0fd [file] [log] [blame]
{"version":3,"file":"expansion.es5.js","sources":["../../../src/material/expansion/expansion-module.ts","../../../src/material/expansion/accordion.ts","../../../src/material/expansion/expansion-panel-header.ts","../../../src/material/expansion/expansion-panel.ts","../../../src/material/expansion/expansion-panel-content.ts","../../../src/material/expansion/expansion-animations.ts","../../../src/material/expansion/accordion-base.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 {CdkAccordionModule} from '@angular/cdk/accordion';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/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, 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\nimport {Directive, Input, ContentChildren, QueryList, AfterContentInit} from '@angular/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {CdkAccordion} from '@angular/cdk/accordion';\nimport {FocusKeyManager} from '@angular/cdk/a11y';\nimport {HOME, END, hasModifierKey} from '@angular/cdk/keycodes';\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 }\n})\nexport class MatAccordion extends CdkAccordion implements MatAccordionBase, AfterContentInit {\n private _keyManager: FocusKeyManager<MatExpansionPanelHeader>;\n\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._keyManager = new FocusKeyManager(this._headers).withWrap();\n }\n\n /** Handles keyboard events coming in from the panel headers. */\n _handleHeaderKeydown(event: KeyboardEvent) {\n const {keyCode} = event;\n const manager = this._keyManager;\n\n if (keyCode === HOME) {\n if (!hasModifierKey(event)) {\n manager.setFirstItemActive();\n event.preventDefault();\n }\n } else if (keyCode === END) {\n if (!hasModifierKey(event)) {\n manager.setLastItemActive();\n event.preventDefault();\n }\n } else {\n this._keyManager.onKeydown(event);\n }\n }\n\n _handleHeaderFocus(header: MatExpansionPanelHeader) {\n this._keyManager.updateActiveItem(header);\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 {FocusMonitor, FocusableOption, FocusOrigin} from '@angular/cdk/a11y';\nimport {ENTER, SPACE, hasModifierKey} from '@angular/cdk/keycodes';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Host,\n Input,\n OnDestroy,\n ViewEncapsulation,\n Optional,\n Inject,\n} from '@angular/core';\nimport {merge, Subscription, EMPTY} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {matExpansionAnimations} from './expansion-animations';\nimport {\n MatExpansionPanel,\n MatExpansionPanelDefaultOptions,\n MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\n} from './expansion-panel';\nimport {MatAccordionTogglePosition} from './accordion-base';\n\n\n/**\n * `<mat-expansion-panel-header>`\n *\n * This component corresponds to the header element of an `<mat-expansion-panel>`.\n */\n@Component({\n moduleId: module.id,\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 animations: [\n matExpansionAnimations.indicatorRotate,\n matExpansionAnimations.expansionHeaderHeight\n ],\n host: {\n 'class': 'mat-expansion-panel-header',\n 'role': 'button',\n '[attr.id]': 'panel._headerId',\n '[attr.tabindex]': 'disabled ? -1 : 0',\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 '(click)': '_toggle()',\n '(keydown)': '_keydown($event)',\n '[@.disabled]': '_animationsDisabled',\n '(@expansionHeight.start)': '_animationStarted()',\n '[@expansionHeight]': `{\n value: _getExpandedState(),\n params: {\n collapsedHeight: collapsedHeight,\n expandedHeight: expandedHeight\n }\n }`,\n },\n})\nexport class MatExpansionPanelHeader implements OnDestroy, FocusableOption {\n private _parentChangeSubscription = Subscription.EMPTY;\n\n /** Whether Angular animations in the panel header should be disabled. */\n _animationsDisabled = true;\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 const accordionHideToggleChange = panel.accordion ?\n panel.accordion._stateChanges.pipe(\n filter(changes => !!(changes['hideToggle'] || changes['togglePosition']))) :\n EMPTY;\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 _focusMonitor.monitor(_element).subscribe(origin => {\n if (origin && panel.accordion) {\n panel.accordion._handleHeaderFocus(this);\n }\n });\n\n if (defaultOptions) {\n this.expandedHeight = defaultOptions.expandedHeight;\n this.collapsedHeight = defaultOptions.collapsedHeight;\n }\n }\n\n _animationStarted() {\n // Currently the `expansionHeight` animation has a `void => collapsed` transition which is\n // there to work around a bug in Angular (see #13088), however this introduces a different\n // issue. The new transition will cause the header to animate in on init (see #16067), if the\n // consumer has set a header height that is different from the default one. We work around it\n // by disabling animations on the header and re-enabling them after the first animation has run.\n // Note that Angular dispatches animation events even if animations are disabled. Ideally this\n // wouldn't be necessary if we remove the `void => collapsed` transition, but we have to wait\n // for https://github.com/angular/angular/issues/18847 to be resolved.\n this._animationsDisabled = false;\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() {\n return this.panel.disabled;\n }\n\n /** Toggles the expanded state of the panel. */\n _toggle(): void {\n this.panel.toggle();\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 /** 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 = 'program') {\n this._focusMonitor.focusVia(this._element, origin);\n }\n\n ngOnDestroy() {\n this._parentChangeSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._element);\n }\n}\n\n/**\n * `<mat-panel-description>`\n *\n * This directive is to be used inside of the MatExpansionPanelHeader component.\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 * `<mat-panel-title>`\n *\n * This directive is to be used inside of the MatExpansionPanelHeader component.\n */\n@Directive({\n selector: 'mat-panel-title',\n host: {\n class: 'mat-expansion-panel-header-title'\n }\n})\nexport class MatExpansionPanelTitle {}\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 {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {UniqueSelectionDispatcher} from '@angular/cdk/collections';\nimport {TemplatePortal} from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n EventEmitter,\n ElementRef,\n Input,\n Inject,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges,\n SkipSelf,\n ViewContainerRef,\n ViewEncapsulation,\n ViewChild,\n InjectionToken,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {Subject} from 'rxjs';\nimport {filter, startWith, take, distinctUntilChanged} from 'rxjs/operators';\nimport {matExpansionAnimations} from './expansion-animations';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\nimport {MAT_ACCORDION, MatAccordionBase, MatAccordionTogglePosition} from './accordion-base';\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 defalt\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 * `<mat-expansion-panel>`\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 moduleId: module.id,\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 /** Whether the toggle indicator should be hidden. */\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() afterExpand = new EventEmitter<void>();\n\n /** An event emitted after the body's collapse animation happens. */\n @Output() 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 accordion: MatAccordionBase;\n\n /** Content that will be rendered lazily. */\n @ContentChild(MatExpansionPanelContent, {static: false}) _lazyContent: MatExpansionPanelContent;\n\n /** Element containing the panel's user-provided content. */\n @ViewChild('body', {static: false}) _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 _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 // We don't need to subscribe to the `stateChanges` of the parent accordion because each time\n // the [displayMode] input changes, the change detection will also cover the host bindings\n // of this expansion panel.\n return (this.expanded ? this.accordion.displayMode : this._getExpandedState()) === '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 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 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@Directive({\n selector: 'mat-action-row',\n host: {\n class: 'mat-action-row'\n }\n})\nexport class MatExpansionPanelActionRow {}\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 */\nimport {\n animate,\n animateChild,\n group,\n state,\n style,\n transition,\n trigger,\n query,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\n/** Time and timing curve for expansion panel animations. */\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 expansionHeaderHeight: 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\n /** Animation that expands and collapses the panel header height. */\n expansionHeaderHeight: trigger('expansionHeight', [\n state('collapsed, void', style({\n height: '{{collapsedHeight}}',\n }), {\n params: {collapsedHeight: '48px'},\n }),\n state('expanded', style({\n height: '{{expandedHeight}}'\n }), {\n params: {expandedHeight: '64px'}\n }),\n transition('expanded <=> collapsed, void => collapsed', group([\n query('@indicatorRotate', animateChild(), {optional: true}),\n animate(EXPANSION_PANEL_ANIMATION_TIMING),\n ])),\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('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 {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"],"names":["tslib_1.__extends"],"mappings":"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"}