@taiga-ui/kit
Version:
Taiga UI Angular main components kit
45 lines (44 loc) • 2.21 kB
TypeScript
import { ChangeDetectorRef, ComponentFactoryResolver, ElementRef, Injector, NgZone, OnDestroy, Renderer2, ViewContainerRef } from '@angular/core';
import { TuiActiveZoneDirective, TuiBooleanHandler, TuiDestroyService, TuiParentsScrollService, TuiPortalService } from '@taiga-ui/cdk';
import { AbstractTuiDropdown, TuiDropdown } from '@taiga-ui/core';
import { TuiDropdownPosition } from '@taiga-ui/kit/enums';
export declare class TuiDropdownSelectionDirective extends AbstractTuiDropdown implements TuiDropdown, OnDestroy {
readonly refresh$: TuiParentsScrollService;
private readonly changeDetectorRef;
private readonly ngZone;
private readonly renderer;
private readonly viewContainerRef;
set tuiDropdownSelection(handler: TuiBooleanHandler<Range> | undefined);
position: TuiDropdownPosition;
private range;
private visibilityHandler;
private readonly documentRef;
private ghost?;
constructor(documentRef: Document, componentFactoryResolver: ComponentFactoryResolver, injector: Injector, portalService: TuiPortalService, elementRef: ElementRef<HTMLElement>, activeZone: TuiActiveZoneDirective | null, shadowRootRef: Document | null, customElementRef: ElementRef<HTMLElement> | null, destroy$: TuiDestroyService, refresh$: TuiParentsScrollService, changeDetectorRef: ChangeDetectorRef, ngZone: NgZone, renderer: Renderer2, viewContainerRef: ViewContainerRef);
get clientRect(): ClientRect;
ngOnDestroy(): void;
/**
* get ClientRect of current Range according to provided position
*/
private get rangeRect();
/**
* Toggle dropdown visibility (has to be in ngZone.run because it could be initiated inside iframe in Editor)
*/
private toggleDropdownBox;
/**
* Check if Node is inside dropdown
*/
private boxContains;
/**
* Check if given range is at leaset partially inside dropdown
*/
private inDropdown;
/**
* Position invisible DIV and create Range similar to selected range inside input/textarea
*/
private veryVerySadInputFix;
/**
* Create an invisible DIV styled exactly like input/textarea element inside directive
*/
private initGhost;
}