UNPKG

@taiga-ui/cdk

Version:

Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance

27 lines (26 loc) 1.54 kB
import { type Provider, type ProviderToken, type Type } from '@angular/core'; import { type TuiContext } from '@taiga-ui/cdk/types'; import { PolymorpheusComponent, type PolymorpheusContent } from '@taiga-ui/polymorpheus'; import { type BehaviorSubject, Observable, type Observer } from 'rxjs'; import { TuiIdService } from './id.service'; import * as i0 from "@angular/core"; export interface TuiPopoverContext<O> extends TuiContext<Observer<O>> { readonly component: PolymorpheusComponent<any>; readonly createdAt: number; readonly id: string; readonly completeWith: (value: O) => void; } export type TuiPopover<T, O> = T & TuiPopoverContext<O> & { content: PolymorpheusContent<T & TuiPopoverContext<O>>; }; export declare abstract class TuiPopoverService<T, K = void> { protected readonly options: T; protected readonly component: PolymorpheusComponent<any>; protected readonly id: TuiIdService; protected readonly items$: BehaviorSubject<ReadonlyArray<TuiPopover<T, any>>>; constructor(items: ProviderToken<BehaviorSubject<ReadonlyArray<TuiPopover<T, any>>>>, component: Type<any>, options?: T); open<G = void>(content: PolymorpheusContent<T & TuiPopoverContext<K extends void ? G : K>>, options?: Partial<T>): Observable<K extends void ? G : K>; static ɵfac: i0.ɵɵFactoryDeclaration<TuiPopoverService<any, any>, never>; static ɵprov: i0.ɵɵInjectableDeclaration<TuiPopoverService<any, any>>; } export declare function tuiAsPopover(popover: Type<TuiPopoverService<any>>): Provider;