UNPKG

@rx-angular/cdk

Version:

@rx-angular/cdk is a Component Development Kit for ergonomic and highly performant angular applications. It helps to to build Large scale applications, UI libs, state management, rendering systems and much more. Furthermore the unique way of mixing reacti

58 lines (57 loc) 2.2 kB
import { ChangeDetectorRef, EmbeddedViewRef, ErrorHandler, NgZone, TemplateRef, ViewContainerRef } from '@angular/core'; import { RxNotification } from '@rx-angular/cdk/notifications'; import { RxStrategies } from '@rx-angular/cdk/render-strategies'; import { Observable } from 'rxjs'; export type rxBaseTemplateNames = 'errorTpl' | 'completeTpl' | 'suspenseTpl'; export declare enum RxBaseTemplateNames { error = "errorTpl", complete = "completeTpl", suspense = "suspenseTpl" } export declare const enum RxListTemplateChangeType { insert = 0, remove = 1, move = 2, update = 3, context = 4 } export type RxListTemplateChangePayload<T> = [T, number, number?]; export type RxListTemplateChange<T = any> = [ RxListTemplateChangeType, RxListTemplateChangePayload<T> ]; export type RxListTemplateChanges<T = any> = [ RxListTemplateChange<T>[], boolean ]; export interface RxViewContext<T> { $implicit: T; error: boolean | Error; complete: boolean; suspense: boolean; } export interface RxRenderAware<T> { nextStrategy: (nextConfig: string | Observable<string>) => void; render: (values$: Observable<RxNotification<T>>) => Observable<void>; } export interface RxRenderSettings { cdRef: ChangeDetectorRef; parent: boolean; patchZone: NgZone | false; strategies: RxStrategies<string>; defaultStrategyName: string; errorHandler?: ErrorHandler; } export type CreateEmbeddedView<C> = (viewContainerRef: ViewContainerRef, patchZone: NgZone | false) => (templateRef: TemplateRef<C>, context?: C, index?: number) => EmbeddedViewRef<C>; export type CreateViewContext<T, C, U = unknown> = (value: T, computedContext: U) => C; export type UpdateViewContext<T, C, U = unknown> = (value: T, view: EmbeddedViewRef<C>, computedContext?: U) => void; export interface RxTemplateSettings<T, C> { viewContainerRef: ViewContainerRef; customContext?: (value: T) => Partial<C>; } export interface RxListTemplateSettings<T, C, U = unknown> { viewContainerRef: ViewContainerRef; createViewContext: CreateViewContext<T, C, U>; updateViewContext: UpdateViewContext<T, C, U>; initialTemplateRef?: TemplateRef<C>; }