Interfaces
Library Interfaces.
ComponentStateless
ComponentStateless.ts
export interface ComponentStateless<TProps = any> {
id: string
host: Element
parent: ComponentStateful | undefined
props: TProps
slick: boolean
setSlick(cb: () => boolean): this
setProps(cb: () => TProps): this
setParent(parent: ComponentStateful | undefined): this
mount(): void
destroy(): void
onMounted(): void
onDestroy(): void
render(): string
}
ComponentStateful
ComponentStateful.ts
export interface ComponentStateful<TProps = any, TState = any> {
id: string
host: Element
parent: ComponentStateful | undefined
props: TProps
stateSubject: BehaviorSubject<TState>
state: Observable<TState>
slick: boolean
children(): ChildrenIterator
setSlick(cb: () => boolean): this
setProps(cb: () => TProps): this
setParent(parent: ComponentStateful | undefined): this
mount(): void
destroy(): void
onMounted(): void
onUpdated(): void
onDestroy(): void
render(): string
}
Children
Children.ts
export type Children = ComponentStateless | ComponentStateful
ChildrenIterator
ChildrenIterator.ts
export interface ChildrenIterator {
forEach: (cb: (c: Children) => void) => void
}
IdGenerator
IdGenerator.ts
export interface IdGenerator {
generate(): string
}
DomFinder
DomFinder.ts
export interface DomFinder {
attr: string
find(node?: Element | null, id?: string | null): Element | null
}
RootRender
RootRender.ts
export interface RootRender {
render(rootElement: Element, rootComponent: () => ComponentStateful): void
}