|
8 | 8 | import {ElementRef, NgZone} from '@angular/core';
|
9 | 9 | import {Platform, normalizePassiveListenerOptions} from '@angular/cdk/platform';
|
10 | 10 | import {isFakeMousedownFromScreenReader} from '@angular/cdk/a11y';
|
| 11 | +import {coerceElement} from '@angular/cdk/coercion'; |
11 | 12 | import {RippleRef, RippleState} from './ripple-ref';
|
12 | 13 |
|
13 | 14 | export type RippleConfig = {
|
@@ -97,12 +98,12 @@ export class RippleRenderer {
|
97 | 98 |
|
98 | 99 | constructor(private _target: RippleTarget,
|
99 | 100 | private _ngZone: NgZone,
|
100 |
| - elementRef: ElementRef<HTMLElement>, |
| 101 | + elementOrElementRef: HTMLElement | ElementRef<HTMLElement>, |
101 | 102 | platform: Platform) {
|
102 | 103 |
|
103 | 104 | // Only do anything if we're on the browser.
|
104 | 105 | if (platform.isBrowser) {
|
105 |
| - this._containerElement = elementRef.nativeElement; |
| 106 | + this._containerElement = coerceElement(elementOrElementRef); |
106 | 107 |
|
107 | 108 | // Specify events which need to be registered on the trigger.
|
108 | 109 | this._triggerEvents
|
@@ -226,7 +227,9 @@ export class RippleRenderer {
|
226 | 227 | }
|
227 | 228 |
|
228 | 229 | /** Sets up the trigger event listeners */
|
229 |
| - setupTriggerEvents(element: HTMLElement) { |
| 230 | + setupTriggerEvents(elementOrElementRef: HTMLElement | ElementRef<HTMLElement>) { |
| 231 | + const element = coerceElement(elementOrElementRef); |
| 232 | + |
230 | 233 | if (!element || element === this._triggerElement) {
|
231 | 234 | return;
|
232 | 235 | }
|
|
0 commit comments