* Subscribe to the menu trigger's open events in order to track the trigger which opened the menu * and stop tracking it when the menu is closed.
()
| 214 | * and stop tracking it when the menu is closed. |
| 215 | */ |
| 216 | private _subscribeToMenuOpen() { |
| 217 | const exitCondition = merge(this.items.changes, this.destroyed); |
| 218 | this.items.changes |
| 219 | .pipe( |
| 220 | startWith(this.items), |
| 221 | mergeMap((list: QueryList<CdkMenuItem>) => |
| 222 | list |
| 223 | .filter(item => item.hasMenu) |
| 224 | .map(item => item.getMenuTrigger()!.opened.pipe(mapTo(item), takeUntil(exitCondition))), |
| 225 | ), |
| 226 | mergeAll(), |
| 227 | switchMap((item: CdkMenuItem) => { |
| 228 | this.triggerItem = item; |
| 229 | return item.getMenuTrigger()!.closed; |
| 230 | }), |
| 231 | takeUntil(this.destroyed), |
| 232 | ) |
| 233 | .subscribe(() => (this.triggerItem = undefined)); |
| 234 | } |
| 235 | |
| 236 | /** Subscribe to the MenuStack close events. */ |
| 237 | private _subscribeToMenuStackClosed() { |
nothing calls this directly
no test coverage detected
searching dependent graphs…