@angular/material
Version:
Angular Material
1 lines • 46 kB
Source Map (JSON)
{"version":3,"file":"expansion.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/expansion/accordion-base.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/expansion/expansion-panel-base.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/expansion/expansion-panel-content.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/expansion/expansion-panel.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/expansion/expansion-panel.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/expansion/expansion-panel-header.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/expansion/expansion-panel-header.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/expansion/accordion.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/expansion/expansion-module.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.dev/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.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\n\n/**\n * Base interface for a `MatExpansionPanel`.\n * @docs-private\n */\nexport interface MatExpansionPanelBase extends CdkAccordionItem {\n /** Whether the toggle indicator should be hidden. */\n hideToggle: boolean;\n}\n\n/**\n * Token used to provide a `MatExpansionPanel` to `MatExpansionPanelContent`.\n * Used to avoid circular imports between `MatExpansionPanel` and `MatExpansionPanelContent`.\n */\nexport const MAT_EXPANSION_PANEL = new InjectionToken<MatExpansionPanelBase>('MAT_EXPANSION_PANEL');\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.dev/license\n */\n\nimport {Directive, TemplateRef, inject} from '@angular/core';\nimport {MAT_EXPANSION_PANEL, MatExpansionPanelBase} from './expansion-panel-base';\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 _template = inject<TemplateRef<any>>(TemplateRef);\n _expansionPanel = inject<MatExpansionPanelBase>(MAT_EXPANSION_PANEL, {optional: true});\n\n constructor(...args: unknown[]);\n constructor() {}\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.dev/license\n */\n\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\nimport {UniqueSelectionDispatcher} from '@angular/cdk/collections';\nimport {CdkPortalOutlet, TemplatePortal} from '@angular/cdk/portal';\n\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n NgZone,\n Renderer2,\n DOCUMENT,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Subject} from 'rxjs';\nimport {filter, startWith, take} from 'rxjs/operators';\nimport {MatAccordionBase, MatAccordionTogglePosition, MAT_ACCORDION} from './accordion-base';\nimport {MAT_EXPANSION_PANEL} from './expansion-panel-base';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\nimport {_animationsDisabled} from '../core';\n\n/** MatExpansionPanel's states. */\nexport type MatExpansionPanelState = 'expanded' | 'collapsed';\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 styleUrl: '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 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 {provide: MAT_EXPANSION_PANEL, useExisting: MatExpansionPanel},\n ],\n host: {\n 'class': 'mat-expansion-panel',\n '[class.mat-expanded]': 'expanded',\n '[class.mat-expansion-panel-spacing]': '_hasSpacing()',\n },\n imports: [CdkPortalOutlet],\n})\nexport class MatExpansionPanel\n extends CdkAccordionItem\n implements AfterContentInit, OnChanges, OnDestroy\n{\n private _viewContainerRef = inject(ViewContainerRef);\n private readonly _animationsDisabled = _animationsDisabled();\n private _document = inject(DOCUMENT);\n private _ngZone = inject(NgZone);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _renderer = inject(Renderer2);\n private _cleanupTransitionEnd: (() => void) | undefined;\n\n /** Whether the toggle indicator should be hidden. */\n @Input({transform: booleanAttribute})\n get hideToggle(): boolean {\n return this._hideToggle || (this.accordion && this.accordion.hideToggle);\n }\n set hideToggle(value: boolean) {\n this._hideToggle = value;\n }\n private _hideToggle = false;\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 private _togglePosition: MatAccordionTogglePosition;\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 = inject<MatAccordionBase>(MAT_ACCORDION, {optional: true, skipSelf: true})!;\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 /** Element wrapping the panel body. */\n @ViewChild('bodyWrapper')\n protected _bodyWrapper: ElementRef<HTMLElement> | undefined;\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: string = inject(_IdGenerator).getId('mat-expansion-panel-header-');\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const defaultOptions = inject<MatExpansionPanelDefaultOptions>(\n MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\n {optional: true},\n );\n\n this._expansionDispatcher = inject(UniqueSelectionDispatcher);\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 && this._lazyContent._expansionPanel === this) {\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 this._setupAnimationEvents();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this._inputChanges.next(changes);\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this._cleanupTransitionEnd?.();\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 private _transitionEndListener = ({target, propertyName}: TransitionEvent) => {\n if (target === this._bodyWrapper?.nativeElement && propertyName === 'grid-template-rows') {\n this._ngZone.run(() => {\n if (this.expanded) {\n this.afterExpand.emit();\n } else {\n this.afterCollapse.emit();\n }\n });\n }\n };\n\n protected _setupAnimationEvents() {\n // This method is defined separately, because we need to\n // disable this logic in some internal components.\n this._ngZone.runOutsideAngular(() => {\n if (this._animationsDisabled) {\n this.opened.subscribe(() => this._ngZone.run(() => this.afterExpand.emit()));\n this.closed.subscribe(() => this._ngZone.run(() => this.afterCollapse.emit()));\n } else {\n setTimeout(() => {\n const element = this._elementRef.nativeElement;\n this._cleanupTransitionEnd = this._renderer.listen(\n element,\n 'transitionend',\n this._transitionEndListener,\n );\n element.classList.add('mat-expansion-panel-animations-enabled');\n }, 200);\n }\n });\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-wrapper\" [attr.inert]=\"expanded ? null : ''\" #bodyWrapper>\n <div class=\"mat-expansion-panel-content\"\n role=\"region\"\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</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.dev/license\n */\n\nimport {FocusableOption, FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {ENTER, hasModifierKey, SPACE} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n numberAttribute,\n OnDestroy,\n ViewEncapsulation,\n inject,\n HostAttributeToken,\n} from '@angular/core';\nimport {EMPTY, merge, Subscription} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {MatAccordionTogglePosition} from './accordion-base';\nimport {\n MatExpansionPanel,\n MatExpansionPanelDefaultOptions,\n MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\n} from './expansion-panel';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\nimport {_StructuralStylesLoader} from '../core';\n\n/**\n * Header element of a `<mat-expansion-panel>`.\n */\n@Component({\n selector: 'mat-expansion-panel-header',\n styleUrl: 'expansion-panel-header.css',\n templateUrl: 'expansion-panel-header.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-expansion-panel-header mat-focus-indicator',\n 'role': 'button',\n '[attr.id]': 'panel._headerId',\n '[attr.tabindex]': 'disabled ? -1 : 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 '[style.height]': '_getHeaderHeight()',\n '(click)': '_toggle()',\n '(keydown)': '_keydown($event)',\n },\n})\nexport class MatExpansionPanelHeader implements AfterViewInit, OnDestroy, FocusableOption {\n panel = inject(MatExpansionPanel, {host: true});\n private _element = inject(ElementRef);\n private _focusMonitor = inject(FocusMonitor);\n private _changeDetectorRef = inject(ChangeDetectorRef);\n\n private _parentChangeSubscription = Subscription.EMPTY;\n\n constructor(...args: unknown[]);\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const panel = this.panel;\n const defaultOptions = inject<MatExpansionPanelDefaultOptions>(\n MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\n {optional: true},\n );\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\n\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(() => this._focusMonitor.focusVia(this._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 /** Tab index of the header. */\n @Input({\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n })\n tabIndex: number = 0;\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\" [class.mat-content-hide-toggle]=\"!_showToggle()\">\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\n@if (_showToggle()) {\n <span class=\"mat-expansion-indicator\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n aria-hidden=\"true\"\n focusable=\"false\">\n <path d=\"M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z\"/>\n </svg>\n </span>\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.dev/license\n */\n\nimport {\n Directive,\n Input,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnDestroy,\n booleanAttribute,\n} from '@angular/core';\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 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({transform: booleanAttribute})\n 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._keyManager?.destroy();\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.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {CdkAccordionModule} from '@angular/cdk/accordion';\nimport {PortalModule} from '@angular/cdk/portal';\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@NgModule({\n imports: [\n CdkAccordionModule,\n PortalModule,\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n exports: [\n BidiModule,\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n})\nexport class MatExpansionModule {}\n"],"names":["MAT_ACCORDION","InjectionToken","MAT_EXPANSION_PANEL","MatExpansionPanelContent","_template","inject","TemplateRef","_expansionPanel","optional","constructor","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","ngImport","decorators","args","MAT_EXPANSION_PANEL_DEFAULT_OPTIONS","MatExpansionPanel","CdkAccordionItem","_viewContainerRef","ViewContainerRef","_animationsDisabled","_document","DOCUMENT","_ngZone","NgZone","_elementRef","ElementRef","_renderer","Renderer2","_cleanupTransitionEnd","hideToggle","_hideToggle","accordion","value","togglePosition","_togglePosition","afterExpand","EventEmitter","afterCollapse","_inputChanges","Subject","skipSelf","_lazyContent","_body","_bodyWrapper","_portal","_headerId","_IdGenerator","getId","defaultOptions","_expansionDispatcher","UniqueSelectionDispatcher","_hasSpacing","expanded","displayMode","_getExpandedState","toggle","close","open","ngAfterContentInit","opened","pipe","startWith","filter","take","subscribe","TemplatePortal","_setupAnimationEvents","ngOnChanges","changes","next","ngOnDestroy","complete","_containsFocus","focusedElement","activeElement","bodyElement","nativeElement","contains","_transitionEndListener","propertyName","run","emit","runOutsideAngular","closed","setTimeout","element","listen","classList","add","Component","inputs","booleanAttribute","outputs","host","properties","classAttribute","providers","provide","useValue","undefined","useExisting","queries","first","predicate","descendants","viewQueries","exportAs","usesInheritance","usesOnChanges","template","styles","dependencies","kind","type","CdkPortalOutlet","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","imports","Input","transform","Output","ContentChild","ViewChild","MatExpansionPanelActionRow","class","MatExpansionPanelHeader","panel","_element","_focusMonitor","FocusMonitor","_changeDetectorRef","ChangeDetectorRef","_parentChangeSubscription","Subscription","EMPTY","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","tabIndex","HostAttributeToken","accordionHideToggleChange","_stateChanges","parseInt","merge","markForCheck","focusVia","expandedHeight","collapsedHeight","disabled","_toggle","_isExpanded","_getPanelId","id","_getTogglePosition","_showToggle","_getHeaderHeight","isExpanded","_keydown","event","keyCode","SPACE","ENTER","hasModifierKey","preventDefault","_handleHeaderKeydown","focus","origin","options","ngAfterViewInit","monitor","_handleHeaderFocus","unsubscribe","stopMonitoring","numberAttribute","attributes","listeners","MatExpansionPanelDescription","MatExpansionPanelTitle","MatAccordion","CdkAccordion","_keyManager","_ownHeaders","QueryList","_headers","headers","reset","header","notifyOnChanges","FocusKeyManager","withWrap","withHomeAndEnd","onKeydown","updateActiveItem","destroy","ContentChildren","MatExpansionModule","NgModule","ɵmod","ɵɵngDeclareNgModule","minVersion","version","CdkAccordionModule","PortalModule","BidiModule","ɵinj","ɵɵngDeclareInjector","exports"],"mappings":"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"}