Skip to content

Commit cb8a3df

Browse files
committed
fix(expansion): disable all animations when using NoopAnimationsModule
Disables all of the expansion panel animations if it's inside a module with the `NoopAnimationsModule`. Also removes the `mat-elevation-transition` from the expansion panel, because it hasn't been doing anything for a while since it gets overwritten by the `margin` transition below. Relates to #10590.
1 parent 89d16b2 commit cb8a3df

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/lib/expansion/expansion-panel.scss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
@import '../core/style/variables';
22
@import '../core/style/elevation';
3+
@import '../core/style/noop-animation';
34
@import '../../cdk/a11y/a11y';
45

56
.mat-expansion-panel {
67
$border-radius: 4px;
78

8-
@include mat-elevation-transition;
9-
@include mat-overridable-elevation(2);
9+
@include _noop-animation();
1010
box-sizing: content-box;
1111
display: block;
1212
margin: 0;

src/lib/expansion/expansion-panel.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import {filter, startWith, take} from 'rxjs/operators';
3838
import {MatAccordion} from './accordion';
3939
import {matExpansionAnimations} from './expansion-animations';
4040
import {MatExpansionPanelContent} from './expansion-panel-content';
41+
import {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';
4142

4243
// TODO(devversion): workaround for https://github.com/angular/material2/issues/12760
4344
export const _CdkAccordionItem = CdkAccordionItem;
@@ -74,6 +75,7 @@ let uniqueId = 0;
7475
'class': 'mat-expansion-panel',
7576
'[class.mat-expanded]': 'expanded',
7677
'[class.mat-expansion-panel-spacing]': '_hasSpacing()',
78+
'[class._mat-animation-noopable]': `_animationMode === 'NoopAnimations'`,
7779
}
7880
})
7981
export class MatExpansionPanel extends CdkAccordionItem implements AfterContentInit, OnChanges,
@@ -121,7 +123,8 @@ export class MatExpansionPanel extends CdkAccordionItem implements AfterContentI
121123
_changeDetectorRef: ChangeDetectorRef,
122124
_uniqueSelectionDispatcher: UniqueSelectionDispatcher,
123125
private _viewContainerRef: ViewContainerRef,
124-
@Inject(DOCUMENT) _document?: any) {
126+
@Inject(DOCUMENT) _document?: any,
127+
@Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode?: string) {
125128
super(accordion, _changeDetectorRef, _uniqueSelectionDispatcher);
126129
this.accordion = accordion;
127130
this._document = _document;

0 commit comments

Comments
 (0)