Skip to content
This repository was archived by the owner on Jun 16, 2019. It is now read-only.

Commit a3732be

Browse files
committed
Emit 'expandedIndex' on changing expansion panel
1 parent 9b22d33 commit a3732be

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/components/expansion-panel/expansion-panel.component.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ export class MdlExpansionPanelComponent implements AfterContentInit {
140140
this._toggle(true);
141141
}
142142

143-
collapse() {
144-
this._toggle(false);
143+
collapse(emitOnChange?: boolean) {
144+
this._toggle(false, emitOnChange);
145145
}
146146

147147
disableToggle() {
@@ -152,11 +152,11 @@ export class MdlExpansionPanelComponent implements AfterContentInit {
152152
this.disabled = false;
153153
}
154154

155-
private _toggle(isExpanded: boolean) {
155+
private _toggle(isExpanded: boolean, emitOnChange: boolean = true) {
156156
this.isExpanded = isExpanded;
157157
this.content.isExpanded = `${isExpanded}`;
158158
this.header.isExpanded = isExpanded;
159-
this.onChange.emit(isExpanded);
159+
if (emitOnChange) this.onChange.emit(isExpanded);
160160
}
161161
}
162162

@@ -169,6 +169,7 @@ export class MdlExpansionPanelComponent implements AfterContentInit {
169169
})
170170
export class MdlExpansionPanelGroupComponent implements AfterContentInit {
171171
@ContentChildren(MdlExpansionPanelComponent) panels: QueryList<MdlExpansionPanelComponent>;
172+
@Output('mdl-panel-active-changed') selectedPanelEmitter = new EventEmitter();
172173
expandedIndex: number = -1;
173174

174175
ngAfterContentInit() {
@@ -199,13 +200,14 @@ export class MdlExpansionPanelGroupComponent implements AfterContentInit {
199200
panel.onChange.subscribe((isExpanded: boolean) => {
200201
if (isExpanded) {
201202
if (i !== this.expandedIndex && this.expandedIndex >= 0) {
202-
this.panels.toArray()[this.expandedIndex].collapse();
203+
this.panels.toArray()[this.expandedIndex].collapse(false);
203204
}
204205
this.expandedIndex = i;
205206
}
206207
if (!isExpanded && i === this.expandedIndex) {
207208
this.expandedIndex = -1;
208209
}
210+
this.selectedPanelEmitter.emit({ index: this.expandedIndex});
209211
});
210212
});
211213
}

0 commit comments

Comments
 (0)