@nodegui/svelte-nodegui
Version:
Svelte integration for NodeGUI
116 lines (115 loc) • 5.13 kB
TypeScript
import { NSVViewMeta } from './registry';
import { Component, NodeObject, NodeWidget, QObjectSignals, QWidgetSignals } from '@nodegui/nodegui';
import type { RNComponent } from "../../react-nodegui/src/components/config";
import { EventWidget } from '@nodegui/nodegui/dist/lib/core/EventWidget';
import SvelteNodeGUIDocument from '../../svelte/SvelteNodeGUIDocument';
export declare const enum NSVNodeTypes {
TEXT = "text",
ELEMENT = "element",
COMMENT = "comment",
ROOT = "root"
}
export declare const enum NSVViewFlags {
NONE = 0,
SKIP_ADD_TO_DOM = 1,
NO_CHILDREN = 8
}
export declare function componentIsEventWidget<Signals extends {} = {}>(component: Component): component is EventWidget<Signals>;
export declare function componentIsStyleable<Signals extends QWidgetSignals = QWidgetSignals>(component: Component): component is NodeWidget<Signals>;
export declare function componentHasPropertyAccessor<Signals extends QObjectSignals = QObjectSignals>(component: Component): component is NodeObject<Signals>;
export declare function componentSupportsId<Signals extends QWidgetSignals = QWidgetSignals>(component: Component): component is NodeWidget<Signals>;
export declare function elementIterator(el: NSVNode): Iterable<NSVNode>;
export declare type NativeView<T extends Component = Component> = T & RNComponent;
export declare abstract class NSVNode {
protected constructor(nodeType: NSVNodeTypes);
nodeRole?: string;
nodeId: number;
nodeType: NSVNodeTypes;
get textContent(): string | null;
set textContent(value: string);
parentNode: NSVNode | null;
parentElement: NSVElement | null;
childNodes: NSVNode[];
nextSibling: NSVNode | null;
previousSibling: NSVNode | null;
get firstChild(): NSVNode;
get lastChild(): NSVNode;
appendChild(child: NSVNode): NSVNode;
insertBefore(newNode: NSVNode, referenceNode: NSVNode): NSVNode;
removeChild(child: NSVNode): NSVNode;
}
export declare class NSVElement<T extends NativeView = NativeView> extends NSVNode {
private readonly _tagName;
private readonly _nativeView;
private _meta;
private readonly recycledNewProps;
private readonly recycledOldProps;
private readonly propsSetter;
ownerDocument: SvelteNodeGUIDocument | null;
constructor(tagName: string);
get tagName(): string;
get nativeView(): T;
private readonly stylesMap;
get id(): string;
set id(value: string);
setStyle(property: string, value: string | number | null, priority: "important" | ""): void;
/**
* Accessed by Svelte's set_style() function.
* Expected to return an object that provides setters for each style.
* @example node.style.setProperty(key, value, important ? 'important' : '');
*/
readonly style: {
setProperty: (propertyName: string, value: string, priority: "important" | "") => void;
removeProperty: (propertyName: string) => void;
animation: string;
cssText: string;
};
updateNativeText(): void;
get meta(): NSVViewMeta<T>;
/**
* We keep references to the event listeners so that the Svelte NodeGUI HostConfig can remove any attached event listener if it needs to replace it.
*/
private _eventListeners?;
get eventListeners(): Map<string, any>;
addEventListener<Signals extends {}, SignalType extends keyof Signals>(event: SignalType, handler: Signals[SignalType], options?: AddEventListenerOptions): void;
removeEventListener<Signals extends {}, SignalType extends keyof Signals>(event: SignalType, handler?: Signals[SignalType]): void;
dispatchEvent(event: string): void;
getAttribute(name: string): unknown;
private static readonly recycledOldProps;
setAttribute(name: string, value: unknown): void;
removeAttribute(name: string): void;
removeChild(child: NSVNode): NSVNode;
appendChild(child: NSVNode): NSVNode;
insertBefore(newNode: NSVNode, referenceNode?: NSVNode | null): NSVNode;
toString(): string;
}
export declare class NSVComment extends NSVNode {
data: string;
constructor(data?: string);
toString(): string;
}
/**
* This is a text node. It's a virtual element (is non-visual), and serves only as a data structure.
* Whenever its data changes, we tell its parentNode to update its "text" property.
*/
export declare class NSVText extends NSVNode {
private _data;
constructor(data?: string);
get data(): string | undefined;
set data(t: string | undefined);
/**
* The Svelte runtime calls this upon the text node.
* @see set_data()
*/
get wholeText(): string | undefined;
replaceWholeText(wholeText: string): null | NSVText;
toString(): string;
}
export declare class NSVRoot<T extends NativeView = NativeView> extends NSVNode {
baseRef?: NSVElement<T>;
constructor();
get text(): string | undefined;
set text(t: string | undefined);
setBaseRef(el: NSVNode | null): void;
toString(): string;
}