@plait/angular-board
Version:
123 lines (117 loc) • 5.37 kB
TypeScript
import * as i0 from '@angular/core';
import { ComponentRef, ChangeDetectorRef, ViewContainerRef, Injector, EventEmitter, OnInit, OnDestroy, OnChanges, AfterViewInit, AfterContentInit, ElementRef, QueryList, NgZone, SimpleChanges } from '@angular/core';
import { RoughSVG } from 'roughjs/bin/svg';
import { Subject } from 'rxjs';
import { PlaitElement, PlaitOperation, Viewport, Selection, PlaitTheme, ComponentType, PlaitBoard, PlaitPlugin, PlaitBoardOptions, ListRender } from '@plait/core';
import { RenderComponentRef } from '@plait/common';
interface AngularBoard {
renderComponent: <T, K extends {
nativeElement: () => HTMLElement;
}>(type: ComponentType<K>, container: Element | DocumentFragment, props: T) => {
ref: RenderComponentRef<T>;
componentRef: ComponentRef<K>;
};
}
declare const AngularBoard: {
getBoardComponentInjector(board: PlaitBoard): i0.Injector;
};
interface OnChangeData {
children: PlaitElement[];
operations: PlaitOperation[];
viewport: Viewport;
selection: Selection | null;
theme: PlaitTheme;
}
interface BoardComponentInterface {
markForCheck: () => void;
cdr: ChangeDetectorRef;
nativeElement: HTMLElement;
viewContainerRef: ViewContainerRef;
injector: Injector;
onChange: EventEmitter<OnChangeData>;
}
declare abstract class PlaitIslandBaseComponent {
protected cdr: ChangeDetectorRef;
board: PlaitBoard;
constructor(cdr: ChangeDetectorRef);
initialize(board: PlaitBoard): void;
markForCheck(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<PlaitIslandBaseComponent, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<PlaitIslandBaseComponent, never, never, {}, {}, never, never, false, never>;
}
declare abstract class PlaitIslandPopoverBaseComponent implements OnInit, OnDestroy {
cdr: ChangeDetectorRef;
board: PlaitBoard;
private subscription?;
constructor(cdr: ChangeDetectorRef);
initialize(board: PlaitBoard): void;
ngOnInit(): void;
ngOnDestroy(): void;
/**
* use islandOnInit replace ngOnInit to avoid ngOnInit being overridden
*/
abstract islandOnInit(): void;
/**
* use islandOnDestroy replace ngOnDestroy to avoid ngOnDestroy being overridden
*/
abstract islandOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<PlaitIslandPopoverBaseComponent, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<PlaitIslandPopoverBaseComponent, never, never, { "board": { "alias": "board"; "required": false; }; }, {}, never, never, false, never>;
}
interface OnBoardChange {
onBoardChange: () => void;
}
declare const hasOnBoardChange: (value: any) => value is OnBoardChange;
declare class PlaitBoardComponent implements BoardComponentInterface, OnInit, OnChanges, AfterViewInit, AfterContentInit, OnDestroy {
cdr: ChangeDetectorRef;
injector: Injector;
viewContainerRef: ViewContainerRef;
private elementRef;
private ngZone;
hasInitialized: boolean;
board: PlaitBoard;
roughSVG: RoughSVG;
destroy$: Subject<void>;
private resizeObserver;
plaitValue: PlaitElement[];
plaitViewport: Viewport;
plaitPlugins: PlaitPlugin[];
plaitOptions?: PlaitBoardOptions;
plaitTheme?: PlaitTheme;
onChange: EventEmitter<OnChangeData>;
plaitBoardInitialized: EventEmitter<PlaitBoard>;
get host(): SVGSVGElement;
get hostClass(): string;
getBrowserClassName(): "safari" | "chrome" | "firefox" | "";
get readonly(): boolean | undefined;
get isFocused(): boolean;
get disabledScrollOnNonFocus(): boolean | undefined;
get nativeElement(): HTMLElement;
svg: ElementRef;
activeHostG: i0.Signal<ElementRef<any> | undefined>;
viewportContainer: ElementRef;
islands?: QueryList<PlaitIslandBaseComponent>;
listRender: ListRender;
constructor(cdr: ChangeDetectorRef, injector: Injector, viewContainerRef: ViewContainerRef, elementRef: ElementRef<HTMLElement>, ngZone: NgZone);
ngOnInit(): void;
ngAfterContentInit(): void;
ngOnChanges(changes: SimpleChanges): void;
ngAfterViewInit(): void;
private initializePlugins;
private initializeHookListener;
private initializeListRender;
private updateListRender;
private initializeChildrenContext;
private viewportScrollListener;
private elementResizeListener;
private initializeIslands;
private updateIslands;
private wheelZoomListener;
trackBy: (index: number, element: PlaitElement) => string;
ngOnDestroy(): void;
markForCheck(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<PlaitBoardComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<PlaitBoardComponent, "plait-board", never, { "plaitValue": { "alias": "plaitValue"; "required": false; }; "plaitViewport": { "alias": "plaitViewport"; "required": false; }; "plaitPlugins": { "alias": "plaitPlugins"; "required": false; }; "plaitOptions": { "alias": "plaitOptions"; "required": false; }; "plaitTheme": { "alias": "plaitTheme"; "required": false; }; }, { "onChange": "onChange"; "plaitBoardInitialized": "plaitBoardInitialized"; }, ["islands"], ["*"], true, never>;
}
export { AngularBoard, PlaitBoardComponent, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, hasOnBoardChange };
export type { BoardComponentInterface, OnBoardChange, OnChangeData };