UNPKG

domsubi

Version:

A Virtual-DOM Library for JavaScript

240 lines (239 loc) 12 kB
import { Cell, Stream, StreamSink } from "sodiumjs"; export declare abstract class DOMContext { abstract contains(o: DOMContext): boolean; abstract render(value: DOMSource, old_value: DOMSource): void; } export declare type EventStreamMap = { abort: StreamSink<UIEvent>; animationcancel: StreamSink<AnimationEvent>; animationend: StreamSink<AnimationEvent>; animationiteration: StreamSink<AnimationEvent>; animationstart: StreamSink<AnimationEvent>; auxclick: StreamSink<MouseEvent>; blur: StreamSink<FocusEvent>; cancel: StreamSink<Event>; canplay: StreamSink<Event>; canplaythrough: StreamSink<Event>; change: StreamSink<Event>; click: StreamSink<MouseEvent>; close: StreamSink<Event>; contextmenu: StreamSink<MouseEvent>; cuechange: StreamSink<Event>; dblclick: StreamSink<MouseEvent>; drag: StreamSink<DragEvent>; dragend: StreamSink<DragEvent>; dragenter: StreamSink<DragEvent>; dragexit: StreamSink<Event>; dragleave: StreamSink<DragEvent>; dragover: StreamSink<DragEvent>; dragstart: StreamSink<DragEvent>; drop: StreamSink<DragEvent>; durationchange: StreamSink<Event>; emptied: StreamSink<Event>; ended: StreamSink<Event>; error: StreamSink<ErrorEvent>; focus: StreamSink<FocusEvent>; focusin: StreamSink<FocusEvent>; focusout: StreamSink<FocusEvent>; gotpointercapture: StreamSink<PointerEvent>; input: StreamSink<Event>; invalid: StreamSink<Event>; keydown: StreamSink<KeyboardEvent>; keypress: StreamSink<KeyboardEvent>; keyup: StreamSink<KeyboardEvent>; load: StreamSink<Event>; loadeddata: StreamSink<Event>; loadedmetadata: StreamSink<Event>; loadstart: StreamSink<Event>; lostpointercapture: StreamSink<PointerEvent>; mousedown: StreamSink<MouseEvent>; mouseenter: StreamSink<MouseEvent>; mouseleave: StreamSink<MouseEvent>; mousemove: StreamSink<MouseEvent>; mouseout: StreamSink<MouseEvent>; mouseover: StreamSink<MouseEvent>; mouseup: StreamSink<MouseEvent>; pause: StreamSink<Event>; play: StreamSink<Event>; playing: StreamSink<Event>; pointercancel: StreamSink<PointerEvent>; pointerdown: StreamSink<PointerEvent>; pointerenter: StreamSink<PointerEvent>; pointerleave: StreamSink<PointerEvent>; pointermove: StreamSink<PointerEvent>; pointerout: StreamSink<PointerEvent>; pointerover: StreamSink<PointerEvent>; pointerup: StreamSink<PointerEvent>; progress: StreamSink<ProgressEvent>; ratechange: StreamSink<Event>; reset: StreamSink<Event>; resize: StreamSink<UIEvent>; scroll: StreamSink<Event>; securitypolicyviolation: StreamSink<SecurityPolicyViolationEvent>; seeked: StreamSink<Event>; seeking: StreamSink<Event>; select: StreamSink<Event>; selectionchange: StreamSink<Event>; selectstart: StreamSink<Event>; stalled: StreamSink<Event>; slotchange: StreamSink<Event>; submit: StreamSink<Event>; suspend: StreamSink<Event>; timeupdate: StreamSink<Event>; toggle: StreamSink<Event>; touchcancel: StreamSink<TouchEvent>; touchend: StreamSink<TouchEvent>; touchmove: StreamSink<TouchEvent>; touchstart: StreamSink<TouchEvent>; transitioncancel: StreamSink<TransitionEvent>; transitionend: StreamSink<TransitionEvent>; transitionrun: StreamSink<TransitionEvent>; transitionstart: StreamSink<TransitionEvent>; volumechange: StreamSink<Event>; waiting: StreamSink<Event>; wheel: StreamSink<WheelEvent>; } & { [key: string]: StreamSink<Event>; }; export declare type DOMEventHandlerExpr<E extends Event> = { handleEvent(e: E): any; } | ((e: E) => any) | string | null; export declare type DOMEventHandler = Partial<{ onabort: DOMEventHandlerExpr<UIEvent>; onanimationcancel: DOMEventHandlerExpr<AnimationEvent>; onanimationend: DOMEventHandlerExpr<AnimationEvent>; onanimationiteration: DOMEventHandlerExpr<AnimationEvent>; onanimationstart: DOMEventHandlerExpr<AnimationEvent>; onauxclick: DOMEventHandlerExpr<MouseEvent>; onblur: DOMEventHandlerExpr<FocusEvent>; oncancel: DOMEventHandlerExpr<Event>; oncanplay: DOMEventHandlerExpr<Event>; oncanplaythrough: DOMEventHandlerExpr<Event>; onchange: DOMEventHandlerExpr<Event>; onclick: DOMEventHandlerExpr<MouseEvent>; onclose: DOMEventHandlerExpr<Event>; oncontextmenu: DOMEventHandlerExpr<MouseEvent>; oncuechange: DOMEventHandlerExpr<Event>; ondblclick: DOMEventHandlerExpr<MouseEvent>; ondrag: DOMEventHandlerExpr<DragEvent>; ondragend: DOMEventHandlerExpr<DragEvent>; ondragenter: DOMEventHandlerExpr<DragEvent>; ondragexit: DOMEventHandlerExpr<Event>; ondragleave: DOMEventHandlerExpr<DragEvent>; ondragover: DOMEventHandlerExpr<DragEvent>; ondragstart: DOMEventHandlerExpr<DragEvent>; ondrop: DOMEventHandlerExpr<DragEvent>; ondurationchange: DOMEventHandlerExpr<Event>; onemptied: DOMEventHandlerExpr<Event>; onended: DOMEventHandlerExpr<Event>; onerror: DOMEventHandlerExpr<ErrorEvent>; onfocus: DOMEventHandlerExpr<FocusEvent>; onfocusin: DOMEventHandlerExpr<FocusEvent>; onfocusout: DOMEventHandlerExpr<FocusEvent>; onformdata: DOMEventHandlerExpr<Event & { formdata: FormData; }>; ongotpointercapture: DOMEventHandlerExpr<PointerEvent>; oninput: DOMEventHandlerExpr<Event>; oninvalid: DOMEventHandlerExpr<Event>; onkeydown: DOMEventHandlerExpr<KeyboardEvent>; onkeypress: DOMEventHandlerExpr<KeyboardEvent>; onkeyup: DOMEventHandlerExpr<KeyboardEvent>; onload: DOMEventHandlerExpr<Event>; onloadeddata: DOMEventHandlerExpr<Event>; onloadedmetadata: DOMEventHandlerExpr<Event>; onloadstart: DOMEventHandlerExpr<Event>; onlostpointercapture: DOMEventHandlerExpr<PointerEvent>; onmousedown: DOMEventHandlerExpr<MouseEvent>; onmouseenter: DOMEventHandlerExpr<MouseEvent>; onmouseleave: DOMEventHandlerExpr<MouseEvent>; onmousemove: DOMEventHandlerExpr<MouseEvent>; onmouseout: DOMEventHandlerExpr<MouseEvent>; onmouseover: DOMEventHandlerExpr<MouseEvent>; onmouseup: DOMEventHandlerExpr<MouseEvent>; onpause: DOMEventHandlerExpr<Event>; onplay: DOMEventHandlerExpr<Event>; onplaying: DOMEventHandlerExpr<Event>; onpointercancel: DOMEventHandlerExpr<PointerEvent>; onpointerdown: DOMEventHandlerExpr<PointerEvent>; onpointerenter: DOMEventHandlerExpr<PointerEvent>; onpointerleave: DOMEventHandlerExpr<PointerEvent>; onpointermove: DOMEventHandlerExpr<PointerEvent>; onpointerout: DOMEventHandlerExpr<PointerEvent>; onpointerover: DOMEventHandlerExpr<PointerEvent>; onpointerup: DOMEventHandlerExpr<PointerEvent>; onprogress: DOMEventHandlerExpr<ProgressEvent>; onratechange: DOMEventHandlerExpr<Event>; onreset: DOMEventHandlerExpr<Event>; onresize: DOMEventHandlerExpr<UIEvent>; onscroll: DOMEventHandlerExpr<Event>; onsecuritypolicyviolation: DOMEventHandlerExpr<SecurityPolicyViolationEvent>; onseeked: DOMEventHandlerExpr<Event>; onseeking: DOMEventHandlerExpr<Event>; onselect: DOMEventHandlerExpr<Event>; onselectionchange: DOMEventHandlerExpr<Event>; onselectstart: DOMEventHandlerExpr<Event>; onslotchange: DOMEventHandlerExpr<Event>; onstalled: DOMEventHandlerExpr<Event>; onsubmit: DOMEventHandlerExpr<Event>; onsuspend: DOMEventHandlerExpr<Event>; ontimeupdate: DOMEventHandlerExpr<Event>; ontoggle: DOMEventHandlerExpr<Event>; ontouchcancel: DOMEventHandlerExpr<TouchEvent>; ontouchend: DOMEventHandlerExpr<TouchEvent>; ontouchmove: DOMEventHandlerExpr<TouchEvent>; ontouchstart: DOMEventHandlerExpr<TouchEvent>; ontransitioncancel: DOMEventHandlerExpr<TransitionEvent>; ontransitionend: DOMEventHandlerExpr<TransitionEvent>; ontransitionrun: DOMEventHandlerExpr<TransitionEvent>; ontransitionstart: DOMEventHandlerExpr<TransitionEvent>; onvolumechange: DOMEventHandlerExpr<Event>; onwaiting: DOMEventHandlerExpr<Event>; onwheel: DOMEventHandlerExpr<WheelEvent>; }>; export interface WebComponentConstructor extends CustomElementConstructor { tag: string; shadowOpen: boolean; prefix?: string; observedAttributes?: string[]; observedMutation?: MutationObserverInit; } export interface WebComponentClass { attributeChangedCallback?(name: string, oldValue: string, newValue: string): void; connectedCallback?(): void; disconnectedCallback?(): void; adoptedCallback?(olddoc: Document, newdoc: Document): void; } export declare type HTMLAttrName = "abbr" | "accept" | "accept-charset" | "accesskey" | "action" | "allow" | "allowfullscreen" | "allowpaymentrequest" | "alt" | "as" | "async" | "autocapitalize" | "autocomplete" | "autofocus" | "autoplay" | "charset" | "checked" | "cite" | "class" | "color" | "cols" | "colspan" | "content" | "contenteditable" | "controls" | "coords" | "crossorigin" | "data" | "datetime" | "decoding" | "default" | "defer" | "dir" | "dir" | "dirname" | "disabled" | "download" | "draggable" | "enctype" | "enterkeyhint" | "for" | "form" | "formaction" | "formenctype" | "formmethod" | "formnovalidate" | "formtarget" | "headers" | "height" | "hidden" | "high" | "href" | "hreflang" | "http-equiv" | "id" | "imagesizes" | "imagesrcset" | "inputmode" | "integrity" | "is" | "ismap" | "itemid" | "itemprop" | "itemref" | "itemscope" | "itemtype" | "kind" | "label" | "lang" | "list" | "loop" | "low" | "manifest" | "max" | "maxlength" | "media" | "method" | "min" | "minlength" | "multiple" | "muted" | "name" | "nomodule" | "nonce" | "novalidate" | "open" | "optimum" | "pattern" | "ping" | "placeholder" | "playsinline" | "poster" | "preload" | "readonly" | "referrerpolicy" | "rel" | "required" | "reversed" | "rows" | "rowspan" | "sandbox" | "scope" | "selected" | "shape" | "size" | "sizes" | "slot" | "span" | "spellcheck" | "src" | "srcdoc" | "srclang" | "srcset" | "start" | "step" | "style" | "tabindex" | "target" | "title" | "translate" | "type" | "usemap" | "value"; export declare type CSSPropertyName = { [P in keyof CSSStyleDeclaration]: CSSStyleDeclaration[P] extends string ? P : never; }[keyof CSSStyleDeclaration]; export declare type ElementSource = ({ $?: AttributesSource; } & { [P in keyof HTMLElementTagNameMap]?: NodeSource; }) | { [key: string]: NodeSource | AttributesSource | Cell<AttributesSource>; }; export declare type DOMStringSource = string | number | boolean | null | undefined | { toString(): string; }; export declare type TextNodeSource = DOMStringSource; export declare type DocumentFragmentSource = NodeSource[]; export declare type NodeSource = Node | TextNodeSource | DocumentFragmentSource | ElementSource | Stream<NodeSource> | Cell<NodeSource>; export declare type AttrValue = DOMStringSource | string[] | DOMEventHandler[keyof DOMEventHandler] | StyleSource | DatasetSource | Promise<AttrValue> | Cell<AttrValue>; export declare type StyleSource = { [P in CSSPropertyName]: Cell<DOMStringSource> | DOMStringSource; }; export declare type DatasetSource = { [key: string]: Cell<DOMStringSource> | DOMStringSource; }; export declare type AttributesSource = ({ [P in HTMLAttrName]?: AttrValue; } & DOMEventHandler & { [key: string]: AttrValue | DOMEventHandler[keyof DOMEventHandler]; }) | Stream<AttributesSource> | Cell<AttributesSource>; export declare type AttrSource = AttributesSource | StyleSource | DatasetSource; export declare type PointReference = [Node] | [Node, Node]; export declare type FRPV<V> = Promise<V> | Cell<V> | Stream<V>; export declare type DOMSource = NodeSource | AttrSource | AttrValue | StyleSource | DatasetSource;