@nodescript/core
Version:
Visual programming language for Browser and Node
69 lines (68 loc) • 2.28 kB
TypeScript
import { PropEntrySpec, PropSpec } from '../types/model.js';
import { ModuleParamSpec } from '../types/module.js';
import { SchemaSpec } from '../types/schema.js';
import { NodeView } from './NodeView.js';
export type PropLine = {
value: string;
linkId?: string;
linkKey?: string;
expand: boolean;
};
export declare abstract class PropLineView {
readonly node: NodeView;
readonly propKey: string;
protected propLine: PropLine;
private _paramSpec;
constructor(node: NodeView, propKey: string, propLine: PropLine);
toJSON(): PropLine;
abstract getSchema(): SchemaSpec;
abstract get lineUid(): string;
get graph(): import("./GraphView.js").GraphView;
get value(): string;
get linkId(): string | undefined;
get linkKey(): string | undefined;
getParamSpec(): ModuleParamSpec;
getStaticValue(): string;
isUsingDefaultValue(): boolean;
/**
* Returns the node identified by its linkId.
*/
getLinkNode(): NodeView | null;
isLinked(): boolean;
canExpand(): boolean;
isExpanded(): boolean;
isDeferred(): boolean | undefined;
}
export declare class PropView extends PropLineView {
protected propSpec: PropSpec;
constructor(node: NodeView, propKey: string, propSpec: PropSpec);
get lineUid(): string;
getSchema(): SchemaSpec;
getEntries(): PropEntryView[];
/**
* Managed entries appear for each property defined in parent prop's schema.
*
* They are special in a couple ways:
*
* - users can't delete them or change their key
* - the order of managed entries is predefined
* - they have stable ids so that they are consistently persisted
*/
getManagedEntries(): PropEntryView[];
getCustomEntries(): PropEntryView[];
isSupportsEntries(): boolean;
isUsesEntries(): boolean;
hasEntries(): boolean;
isAdvanced(): boolean;
isListed(): boolean;
}
export declare class PropEntryView extends PropLineView {
readonly parentProp: PropView;
protected propEntrySpec: PropEntrySpec;
constructor(parentProp: PropView, propEntrySpec: PropEntrySpec);
get id(): string;
get key(): string;
get lineUid(): string;
isManaged(): boolean | undefined;
getSchema(): SchemaSpec;
}