src/popover/popover-content.component.ts
AfterViewInit
selector | cds-popover-content, ibm-popover-content |
template |
|
Properties |
Methods |
HostBindings |
constructor(changeDetectorRef: ChangeDetectorRef)
|
||||||
Defined in src/popover/popover-content.component.ts:28
|
||||||
Parameters :
|
class.cds--popover |
Type : boolean
|
Default value : true
|
Defined in src/popover/popover-content.component.ts:26
|
ngAfterViewInit |
ngAfterViewInit()
|
Defined in src/popover/popover-content.component.ts:32
|
Returns :
void
|
autoAlign |
Default value : false
|
Defined in src/popover/popover-content.component.ts:28
|
popoverClass |
Default value : true
|
Decorators :
@HostBinding('class.cds--popover')
|
Defined in src/popover/popover-content.component.ts:26
|
popoverContent |
Type : ElementRef
|
Decorators :
@ViewChild('content')
|
Defined in src/popover/popover-content.component.ts:27
|
import {
Component,
HostBinding,
ViewChild,
ElementRef,
AfterViewInit,
ChangeDetectorRef
} from "@angular/core";
/**
* [See demo](../../?path=/story/components-popover--basic)
*/
@Component({
selector: "cds-popover-content, ibm-popover-content",
template: `
<span class="cds--popover-content" #content>
<div>
<ng-content></ng-content>
</div>
<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>
</span>
<span *ngIf="!autoAlign" class="cds--popover-caret"></span>
`
})
export class PopoverContent implements AfterViewInit {
@HostBinding("class.cds--popover") popoverClass = true;
@ViewChild("content") popoverContent: ElementRef;
autoAlign = false;
constructor(private changeDetectorRef: ChangeDetectorRef) {}
ngAfterViewInit(): void {
if (this.popoverContent) {
// Check we are in a popover with autoAlign enabled
this.autoAlign = !!this.popoverContent.nativeElement.closest(".cds--popover--auto-align");
// Run change detection manually to resolve ExpressionHasChanged
this.changeDetectorRef.detectChanges();
}
}
}