diff --git a/src/demo-app/expansion/expansion-demo.html b/src/demo-app/expansion/expansion-demo.html index 3b5976712c58..e22b96339de9 100644 --- a/src/demo-app/expansion/expansion-demo.html +++ b/src/demo-app/expansion/expansion-demo.html @@ -1,6 +1,7 @@
Accordion Options
diff --git a/src/demo-app/expansion/expansion-demo.ts b/src/demo-app/expansion/expansion-demo.ts index ac1076b020c0..868c04e564b5 100644 --- a/src/demo-app/expansion/expansion-demo.ts +++ b/src/demo-app/expansion/expansion-demo.ts @@ -13,4 +13,6 @@ export class ExpansionDemo { hideToggle = false; disabled = false; showPanel3 = true; + expandedHeight: string; + collapsedHeight: string; } diff --git a/src/lib/expansion/expansion-panel-header.ts b/src/lib/expansion/expansion-panel-header.ts index 56c4b4626156..818c30a45f8b 100644 --- a/src/lib/expansion/expansion-panel-header.ts +++ b/src/lib/expansion/expansion-panel-header.ts @@ -16,6 +16,7 @@ import { OnDestroy, Renderer2, ElementRef, + Input, } from '@angular/core'; import { trigger, @@ -56,7 +57,13 @@ import {Subscription} from 'rxjs/Subscription'; '[class.mat-expanded]': '_isExpanded()', '(click)': '_toggle()', '(keyup)': '_keyup($event)', - '[@expansionHeight]': '_getExpandedState()', + '[@expansionHeight]': `{ + value: _getExpandedState(), + params: { + collapsedHeight: collapsedHeight, + expandedHeight: expandedHeight + } + }`, }, animations: [ trigger('indicatorRotate', [ @@ -65,8 +72,16 @@ import {Subscription} from 'rxjs/Subscription'; transition('expanded <=> collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)), ]), trigger('expansionHeight', [ - state('collapsed', style({height: '48px'})), - state('expanded', style({height: '64px'})), + state('collapsed', style({ + height: '{{collapsedHeight}}', + }), { + params: {collapsedHeight: '48px'}, + }), + state('expanded', style({ + height: '{{expandedHeight}}' + }), { + params: {expandedHeight: '64px'} + }), transition('expanded <=> collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)), ]), ], @@ -93,6 +108,12 @@ export class MdExpansionPanelHeader implements OnDestroy { _focusOriginMonitor.monitor(_element.nativeElement, _renderer, false); } + /** Height of the header while the panel is expanded. */ + @Input() expandedHeight: string; + + /** Height of the header while the panel is collapsed. */ + @Input() collapsedHeight: string; + /** Toggles the expanded state of the panel. */ _toggle(): void { if (!this.panel.disabled) {