@doku-dev/doku-fragment
Version:
A new Angular UI library that moving away from Bootstrap and built from scratch.
81 lines (80 loc) • 2.63 kB
TypeScript
import { ApplicationRef, ElementRef, NgZone, OnDestroy, OnInit, Renderer2, TemplateRef } from '@angular/core';
import { DokuPopoverCloseByKey, DokuPopoverPlacement } from './popover.interface';
import * as i0 from "@angular/core";
export declare class DokuPopover implements OnInit, OnDestroy {
private document;
private renderer;
private ngZone;
private elementRef;
private appRef;
readonly id: string;
/**
* Content of the popover.
* It can be a string or a template for more customization.
*
* @default ''
*/
content: string | TemplateRef<unknown>;
/**
* The color of the popover.
* Either `dark` or `light`.
* @default 'dark'
*/
color: 'dark' | 'light';
/**
* The placement of the popover.
* @default 'top'
*/
placement: DokuPopoverPlacement;
/**
* Actions that will close the popover.
*
* - `manual`, only manual action that will close the popover like using `hide` method.
* - `clickOutside`, close the popover when clicking outside its element.
*
* The top list has higher priority.
*/
closeBy: DokuPopoverCloseByKey[];
/**
* Whether to disable the popover.
* Disabled popover can't be opened.
* @default false
*/
disabled: boolean;
private isShown;
private popoverElement?;
private popoverContentElement?;
private popoverArrowElement?;
private viewRef?;
private cleanup?;
private destroy$;
constructor(document: Document, renderer: Renderer2, ngZone: NgZone, elementRef: ElementRef, appRef: ApplicationRef);
protected get classes(): string[];
ngOnInit(): void;
ngOnDestroy(): void;
/**
* Show popover programmatically.
*/
show(): void;
/**
* Hide popover programmatically.
*/
hide(): void;
/**
* Toggle popover programmatically.
*/
toggle(): void;
/**
* Update the content of the popover with new one.
*/
updateContent(content: string | TemplateRef<unknown>): void;
private createPopoverElement;
private createPopoverContentElement;
private createArrowElement;
private setPopoverContent;
private updatePosition;
private doAutoUpdatePosition;
private handleOnClick;
static ɵfac: i0.ɵɵFactoryDeclaration<DokuPopover, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<DokuPopover, "[doku-popover]", ["dokuPopover"], { "content": "doku-popover"; "color": "popoverColor"; "placement": "popoverPlacement"; "closeBy": "popoverCloseBy"; "disabled": "popoverDisabled"; }, {}, never, never, true>;
}